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;
|
}
|
}
|