6c
2025-07-02 d98b07bc1ba63fda03dc7f9bdbab51ec91b9b21c
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
package com.home.xining.service;
 
import cn.hutool.core.collection.CollectionUtil;
import com.google.common.collect.Sets;
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.Arrays;
import java.util.List;
import java.util.Set;
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);
    }
 
    /**
     * 保存
     * @param fse
     */
    @Override
    @Transactional
    public void save(FieldSetEntity fse) {
        String curMember = fse.getString("cur_member");
        if (!StringUtils.isEmpty(curMember)) {
            String allMember = fse.getString("all_member");
            if (StringUtils.isEmpty(allMember)) {
                fse.setValue("all_member", curMember);
            } else {
                Set<String> allMemberSet = Sets.newLinkedHashSet();
                allMemberSet.addAll(Arrays.asList(allMember.split(",")));
                allMemberSet.addAll(Arrays.asList(curMember.split(",")));
                fse.setValue("all_member", BaseUtil.collection2String(allMemberSet));
            }
            fse.setValue("cur_member", null);
        }
        baseDao.saveFieldSetEntity(fse);
    }
 
    /**
     * 科员退回特殊处理
     * @param fse
     */
    public void memberBack(FieldSetEntity fse) {
        fse.setValue("all_member", null);
        baseDao.saveFieldSetEntity(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;
    }
}