zm
2024-11-12 2e8250c824a5ed0a0720c50fc3421257ee45073b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
package com.product.administration.service;
 
import com.product.administration.config.CmnConst;
import com.product.administration.config.SystemCode;
import com.product.administration.service.ide.ICarApplicationService;
import com.product.common.lang.StringUtils;
import com.product.core.dao.BaseDao;
import com.product.core.entity.DataTableEntity;
import com.product.core.entity.FieldSetEntity;
import com.product.core.exception.BaseException;
import com.product.core.permission.PermissionService;
import com.product.core.service.support.AbstractBaseService;
import com.product.core.service.support.QueryFilterService;
import com.product.core.spring.context.SpringMVCContextHolder;
import com.product.core.transfer.Transactional;
import com.product.util.BaseUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
 
import java.text.DateFormat;
import java.util.Date;
 
/**
 * Copyright LX
 * @Title: CarApplicationService
 * @Project: product-server
 * @date: 2021-05-06 9:22
 * @author: ZhouJie
 * @Description: 用车申请
 */
@Component
public class CarApplicationService extends AbstractBaseService implements ICarApplicationService {
 
    @Autowired
    public BaseDao baseDao;
    @Autowired
    PermissionService permissionService;
    @Autowired
    QueryFilterService queryFilterService;
 
    /**
     * @description: 用车申请保存
     * @author: ZhouJie
     * @date: 2021-05-06 10:52
     */
    @Override
    @Transactional
    public String saveCarApplication(FieldSetEntity fs) {
        if(StringUtils.isEmpty(fs.getString(CmnConst.UUID))){
            fs.setValue("created_by", SpringMVCContextHolder.getCurrentUser().getUser_id());
            fs.setValue("created_utc_datetime",new Date());
            return baseDao.add(fs);
        } else {
            fs.setValue("updated_by", SpringMVCContextHolder.getCurrentUser().getUser_id());
            fs.setValue("updated_utc_datetime",new Date());
            baseDao.update(fs);
            return fs.getString(CmnConst.UUID);
        }
    }
 
    /**
     * @description: 用车申请删除
     * @author: ZhouJie
     * @date: 2021-05-06 10:53
     */
    @Override
    @Transactional
    public boolean deleteCarApplication(FieldSetEntity fs) {
        String uuid = fs.getUUID();
        String[] uuids = uuid.split(",");
        return baseDao.delete(CmnConst.PRODUCT_OA_CAR_APPLICATION,BaseUtil.buildQuestionMarkFilter(CmnConst.UUID, uuids.length, true), uuids);
    }
 
    /**
     * @description: 用车申请列表获取
     * @author: ZhouJie
     * @date: 2021-05-06 14:23
     */
    public DataTableEntity CarApplicationlist(FieldSetEntity fs) {
        String queryFilter;
        if(BaseUtil.dataTableIsEmpty(fs.getSubDataTable("systemSeniorQueryString"))){
            queryFilter = "";
        }else {
            queryFilter    = queryFilterService.getQueryFilter(fs) + " and ";
        }
        queryFilter += fs.getString("filter");
        String filters = " applicant=? and "+queryFilter;
        String dataFilter = permissionService.getDataFilter(fs.getTableName(),CmnConst.CREATED_BY);
        if(!StringUtils.isEmpty(dataFilter)){
            filters += " and "+dataFilter;
        }
        DataTableEntity dt = baseDao.listTable(CmnConst.PRODUCT_OA_CAR_APPLICATION,filters,new Object[]{SpringMVCContextHolder.getCurrentUser().getUser_id()},null,"created_utc_datetime desc",fs.getInteger(CmnConst.PAGESIZE), fs.getInteger(CmnConst.CPAGE));
        baseDao.loadPromptData(dt);
        return dt;
    }
 
    /**
     * @description: 用车申请详情查看
     * @author: ZhouJie
     * @date: 2021-05-06 15:53
     */
    public FieldSetEntity CarApplicationInfo(FieldSetEntity fs) throws BaseException {
        return baseDao.getFieldSetEntity(CmnConst.PRODUCT_OA_CAR_APPLICATION,fs.getUUID(),true);
    }
    /**
     * @description: 用车申请送办
     * @author: ZhouJie
     * @date: 2021-06-03 14:53
     */
    @Transactional
    public boolean senCarApplication(String uuid){
        String senCarApplication = "senCarApplication";
        //获取当前申请的车辆申请信息
        FieldSetEntity fs = baseDao.getFieldSetEntity(CmnConst.PRODUCT_OA_CAR_APPLICATION,uuid,false);
        DateFormat df= DateFormat.getDateInstance();
        String date1 = fs.getString("driving_time");
        String date2 = fs.getString("return_time");
        DataTableEntity dt = baseDao.listTable(CmnConst.PRODUCT_OA_CAR_APPLICATION," vehicle_info_uuid=? and flow_flag=? and uuid <> ? ",new Object[]{fs.getString("vehicle_info_uuid"),1,uuid});
        if(dt!=null && dt.getRows()>0){
            for (int i = 0; i < dt.getRows(); i++) {
                FieldSetEntity fsub = dt.getFieldSetEntity(i);
                String datee1 = fsub.getString("driving_time");
                String datee2 = fsub.getString("return_time");
                if((date1.compareTo(datee1)<=0 && date2.compareTo(datee1)<=0)||(date1.compareTo(datee2)>=0 && date2.compareTo(datee2)>=0)){
                    return true;
                }
            }
        }
        throw new BaseException(SystemCode.SYSTEM_CAR_APPLICATION_ALREADY_FAIL.getValue(), SystemCode.SYSTEM_CAR_APPLICATION_ALREADY_FAIL.getText(), this.getClass(), senCarApplication);
    }
 
}