许鹏程
2024-12-30 327991834574bbb8bbd78f29382297aa13d001d6
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
package com.home.xining.service;
 
import cn.hutool.core.collection.CollectionUtil;
import com.home.xining.config.CmnConst;
import com.home.xining.service.idel.IReceiptDocumentService;
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.transfer.Transactional;
import com.product.tool.flow.service.FlowService;
import com.product.util.BaseUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
 
import java.util.List;
import java.util.stream.Collectors;
 
/**
 * @ClassName: ReceiptDocumentService
 * @Author: ZhouJie
 * @Date: 2022/2/21 13:48
 * @Description: 收文管理
 */
@Component
public class ReceiptDocumentService extends AbstractBaseService implements IReceiptDocumentService {
 
    @Autowired
    public BaseDao baseDao;
    @Autowired
    PermissionService permissionService;
    @Autowired
    QueryFilterService queryFilterService;
    @Autowired
    FlowService flowService;
 
    public DataTableEntity getReciptDocList(FieldSetEntity fs) throws BaseException {
        String filter = fs.getString("filter");
        //创建人字段
        String dataFilter = "";
        String created_by_field = fs.getString(CmnConst.CREATED_BY_FIELD);
        if (!BaseUtil.strIsNull(created_by_field)) {
            dataFilter = permissionService.getDataFilter(fs.getTableName(), created_by_field);
        }
//        String dataFilter = permissionService.getDataFilter(fs.getTableName(), CmnConst.SF33);
        if (!StringUtils.isEmpty(dataFilter)) {
            if (!StringUtils.isEmpty(filter)) {
                filter += " and " + dataFilter;
            } else {
                filter = dataFilter;
            }
        }
        if (!BaseUtil.dataTableIsEmpty(fs.getSubDataTable("systemSeniorQueryString"))) {
            filter = filter + " and " + queryFilterService.getQueryFilter(fs);
        }
        DataTableEntity dt = baseDao.listTable(CmnConst.SFGL, filter, null, null, "sf26 desc", fs.getInteger(CmnConst.PAGESIZE), fs.getInteger(CmnConst.CPAGE));
        baseDao.loadPromptData(dt);
        return dt;
    }
 
    /**
     * 收文管理 状态改为已打印
     *
     * @param fse
     * @return
     */
    @Override
    @Transactional
    public Boolean isPrint(FieldSetEntity fse) {
        return baseDao.update(fse);
    }
 
 
    //收文抄送局长
    public Boolean sendToLeader(FieldSetEntity record, String jobPostName) {
        FieldSetEntity task = getBaseDao().getFieldSetByFilter(com.product.tool.flow.config.CmnConst.TABLE_FLOW_TASK, "table_name=? and record_uuid=?", new Object[]{record.getTableName(), record.getUUID()}, false);
 
        if (!FieldSetEntity.isEmpty(task)) {
//            根据岗位名称模糊搜索人员
            DataTableEntity dataTableEntity = getBaseDao().listTable("product_sys_staffs",
                    "job_post_uuid IN ( SELECT uuid FROM product_sys_job_posts WHERE job_post_name LIKE concat('%',?,'%') ) AND staff_status in(1,3)",
                    new Object[]{jobPostName});
            if (!DataTableEntity.isEmpty(dataTableEntity)) {
                List<String> collect = dataTableEntity.getData().stream().map(item -> item.getString("user_id")).collect(Collectors.toList());
                task.setValue("accept_users", CollectionUtil.join(collect, ","));
                task.setValue("circularize_type", "1");
                flowService.circularize(task);
            }
        }
 
        return true;
    }
}