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