Browse Source

管控相关

liuyc 2 năm trước cách đây
mục cha
commit
4df9de4649

+ 15 - 8
blade-service/blade-control/src/main/java/org/springblade/control/controller/AttendanceManagerController.java

@@ -8,7 +8,7 @@ import lombok.AllArgsConstructor;
 import org.springblade.control.dto.AttendanceTripInfoDTO;
 import org.springblade.control.service.AttendanceTripService;
 import org.springblade.control.vo.AttendanceTripInfoVO;
-import org.springblade.control.vo.EMDraftVO;
+import org.springblade.control.vo.EMDraftGroupVO;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
@@ -35,10 +35,17 @@ public class AttendanceManagerController extends BladeController {
     @GetMapping("/trip/draft/list")
     @ApiOperationSupport(order = 2)
     @ApiOperation(value = "出差信息草稿箱列表")
-    public R<List<EMDraftVO>> tripDraftList() {
+    public R<List<EMDraftGroupVO>> tripDraftList() {
         return R.data(attendanceTripService.tripDraftList());
     }
 
+    @GetMapping("/trip/draft/detail")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "财务报销草稿箱编辑详情", notes = "传入当前草稿的eMDraftIds")
+    public R<List<AttendanceTripInfoVO>> financialDraftDetail(@RequestParam String eMDraftIds) {
+        return R.data(attendanceTripService.financialDraftDetail(eMDraftIds));
+    }
+
     @GetMapping("/trip/detail")
     @ApiOperationSupport(order = 3)
     @ApiOperation(value = "出差信息信息详情", notes = "传入出差信息id")
@@ -48,16 +55,16 @@ public class AttendanceManagerController extends BladeController {
 
     @PostMapping("/trip/submit")
     @ApiOperationSupport(order = 4)
-    @ApiOperation(value = "出差信息信息提交", notes = "传入AttendanceTripInfoDTO")
-    public R<Object> tripSubmit(@RequestBody AttendanceTripInfoDTO dto) {
-        return R.status(attendanceTripService.tripSubmit(dto));
+    @ApiOperation(value = "出差信息信息提交", notes = "传入List<AttendanceTripInfoDTO>集合")
+    public R<Object> tripSubmit(@RequestBody List<AttendanceTripInfoDTO> dtoList) {
+        return R.status(attendanceTripService.tripSubmit(dtoList));
     }
 
     @PostMapping("/trip/remove")
     @ApiOperationSupport(order = 5)
-    @ApiOperation(value = "出差信息记录物理删除", notes = "传入出差信息id")
-    public R<Object> tripRemove(@RequestParam Long id) {
-        return R.status(attendanceTripService.tripRemove(id));
+    @ApiOperation(value = "出差信息记录物理删除", notes = "传入groupId")
+    public R<Object> tripRemove(@RequestParam Long groupId) {
+        return R.status(attendanceTripService.tripRemove(groupId));
     }
 
     @PostMapping("/trip/cancel")

+ 6 - 4
blade-service/blade-control/src/main/java/org/springblade/control/service/AttendanceTripService.java

@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.control.dto.AttendanceTripInfoDTO;
 import org.springblade.control.entity.AttendanceTripInfo;
 import org.springblade.control.vo.AttendanceTripInfoVO;
-import org.springblade.control.vo.EMDraftVO;
+import org.springblade.control.vo.EMDraftGroupVO;
 import org.springblade.core.mp.base.BaseService;
 
 import java.util.List;
@@ -13,14 +13,16 @@ public interface AttendanceTripService extends BaseService<AttendanceTripInfo> {
 
     IPage<AttendanceTripInfoVO> tripPage(IPage<AttendanceTripInfo> page, AttendanceTripInfoDTO dto);
 
-    List<EMDraftVO> tripDraftList();
+    List<EMDraftGroupVO> tripDraftList();
 
     AttendanceTripInfoVO tripDetail(Long id);
 
-    boolean tripSubmit(AttendanceTripInfoDTO dto);
+    boolean tripSubmit(List<AttendanceTripInfoDTO> dtoList);
 
-    boolean tripRemove(Long id);
+    boolean tripRemove(Long groupId);
 
     boolean tripCancel(Long id);
 
+    List<AttendanceTripInfoVO> financialDraftDetail(String eMDraftIds);
+
 }

+ 116 - 88
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AttendanceTripServiceImpl.java

@@ -12,12 +12,13 @@ import org.springblade.control.entity.*;
 import org.springblade.control.mapper.AttendanceTripMapper;
 import org.springblade.control.service.AttendanceTripService;
 import org.springblade.control.vo.AttendanceTripInfoVO;
-import org.springblade.control.vo.EMDraftVO;
+import org.springblade.control.vo.EMDraftGroupVO;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
@@ -65,7 +66,7 @@ public class AttendanceTripServiceImpl extends BaseServiceImpl<AttendanceTripMap
     }
 
     @Override
-    public List<EMDraftVO> tripDraftList() {
+    public List<EMDraftGroupVO> tripDraftList() {
         if (ObjectUtil.isEmpty(SecureUtil.getUser())) {
             throw new ServiceException("获取当前用户信息失败,请联系管理员");
         }
@@ -79,17 +80,27 @@ public class AttendanceTripServiceImpl extends BaseServiceImpl<AttendanceTripMap
         queryWrapper.eq(AttendanceTripInfo::getIsTemp, 0); //暂存
         List<AttendanceTripInfo> list = baseMapper.selectList(queryWrapper);
         Map<Long, List<User>> userMaps = iUserClient.selectUserAll().stream().collect(Collectors.groupingBy(User::getId));
-        List<EMDraftVO> resultVOS = new ArrayList<>();
-        for (AttendanceTripInfo obj : list) {
-            EMDraftVO vo = new EMDraftVO();
-            vo.setId(obj.getId());
-            userMaps.get(obj.getCreateUser()).stream().findAny().ifPresent(user -> vo.setTitle((ObjectUtil.isNotEmpty(user) && ObjectUtil.isNotEmpty(user.getRealName())) ? user.getRealName() + "提交的商旅出差" : ""));
-            vo.setUpdateTime(obj.getUpdateTime());
-            resultVOS.add(vo);
+        List<String> dataIds = list.stream().map(AttendanceTripInfo::getId).map(String::valueOf).collect(Collectors.toList());
+
+        List<EMDraftGroupVO> resultList = new LinkedList<>();
+        if (dataIds.size() > 0) {
+            List<ExDraftRecord> query = jdbcTemplate.query("select * from c_ex_draft_record where data_type = 9 and data_id in(" + StringUtils.join(dataIds, ",") + ")", new BeanPropertyRowMapper<>(ExDraftRecord.class));
+            Map<Long, List<ExDraftRecord>> groupMaps = query.stream().collect(Collectors.groupingBy(ExDraftRecord::getGroupId));
+            for (Map.Entry<Long, List<ExDraftRecord>> listEntry : groupMaps.entrySet()) {
+                Long groupId = listEntry.getKey();
+                List<Long> ids = listEntry.getValue().stream().map(ExDraftRecord::getDataId).collect(Collectors.toList());
+                AttendanceTripInfo obj = baseMapper.selectById(ids.get(0));
+                EMDraftGroupVO vo = new EMDraftGroupVO();
+                if (obj != null) {
+                    userMaps.get(obj.getCreateUser()).stream().findAny().ifPresent(user -> vo.setTitle((ObjectUtil.isNotEmpty(user) && ObjectUtil.isNotEmpty(user.getRealName())) ? user.getRealName() + "提交的日常报销" : ""));
+                    vo.setUpdateTime(obj.getUpdateTime());
+                }
+                vo.setGroupId(groupId);
+                vo.setEMDraftIds(StringUtils.join(ids, ","));
+                resultList.add(vo);
+            }
         }
-        return resultVOS.stream()
-                .sorted(Comparator.comparing(EMDraftVO::getUpdateTime).reversed())
-                .collect(Collectors.toList());
+        return resultList;
     }
 
     @Override
@@ -101,100 +112,110 @@ public class AttendanceTripServiceImpl extends BaseServiceImpl<AttendanceTripMap
     }
 
     @Override
-    public boolean tripSubmit(AttendanceTripInfoDTO dto) {
+    public boolean tripSubmit(List<AttendanceTripInfoDTO> dtoList) {
         if (ObjectUtil.isEmpty(SecureUtil.getUser())) {
             throw new ServiceException("获取当前用户信息失败,请联系管理员");
         }
         boolean var = false;
-        if (("1").equals(dto.getSubmitStatus())) {
-            if (ObjectUtil.isNotEmpty(dto.getId())) {
-                AttendanceTripInfo obj = baseMapper.selectById(dto.getId());
-                if (obj != null && obj.getStatus() == 3) {
-                    //如果是已驳回任务,那么重新生成新的记录信息
-                    dto.setId(SnowFlakeUtil.getId());
-                    var = true;
-                }
-            }
-            dto.setIsTemp(0); //暂存
-            dto.setStatus(0); //未上报
-            if (var) {
-                this.save(dto);
-            } else {
-                this.saveOrUpdate(dto);
-            }
-            return true;
-
-        } else if (("2").equals(dto.getSubmitStatus())) { //提交审批
-            if (ObjectUtil.isNotEmpty(dto.getId())) {
-                AttendanceTripInfo obj = baseMapper.selectById(dto.getId());
-                if (obj != null && (obj.getStatus() != 0 && obj.getStatus() != 3)) {
-                    throw new ServiceException("当前填报的信息不是未上报、已驳回状态,不允许操作!");
-                } else if (obj != null && obj.getStatus() == 3) {
-                    //如果是已驳回任务,那么重新生成新的记录信息
-                    dto.setId(SnowFlakeUtil.getId());
-                    var = true;
-                }
-            }
-            if (ObjectUtil.isNotEmpty(dto.getResponsibleUser()) && ObjectUtil.isNotEmpty(dto.getPersonnelUser())) {
-                //新增审批任务
-                if (ObjectUtil.isEmpty(SecureUtil.getUserName())) {
-                    throw new ServiceException("获取当前用户信息失败,请联系管理员");
-                }
-                TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
-                taskProcessInfo.setId(SnowFlakeUtil.getId());
-                taskProcessInfo.setStatus(1); //待审批
-                taskProcessInfo.setReportDate(new Date());
-                taskProcessInfo.setTaskType(9); //出差审批
-                taskProcessInfo.setTaskName("【" + SecureUtil.getUserName() + "】向您发起【出差审批】审批");
-                //上报人
-                taskProcessInfo.setReportUserId(SecureUtil.getUserId());
-
-                //审批人
-                List<String> auditUserIds = new LinkedList<>();
-                EMProcessTaskUser responsibleObj = dto.getResponsibleUser(); //部门负责人
-                auditUserIds.add(responsibleObj.getUserId());
-                EMProcessTaskUser personnelUser = dto.getPersonnelUser(); //人事
-                auditUserIds.add(personnelUser.getUserId());
-                taskProcessInfo.setAuditUserIds(StringUtils.join(auditUserIds, ","));
-
-                //抄送人
-                if (ObjectUtil.isNotEmpty(dto.getCcUserList())) {
-                    List<String> ccUserObjList = dto.getCcUserList().stream().map(EMProcessTaskUser::getUserId).collect(Collectors.toList());
-                    taskProcessInfo.setCcUserIds(StringUtils.join(ccUserObjList, ","));
+        Long draftGroupId = SnowFlakeUtil.getId(); //草稿draftGroupId
+        for (AttendanceTripInfoDTO dto : dtoList) {
+            if (("1").equals(dto.getSubmitStatus())) {
+                if (ObjectUtil.isNotEmpty(dto.getId())) {
+                    AttendanceTripInfo obj = baseMapper.selectById(dto.getId());
+                    if (obj != null && obj.getStatus() == 3) {
+                        //如果是已驳回任务,那么重新生成新的记录信息
+                        dto.setId(SnowFlakeUtil.getId());
+                        var = true;
+                    }
                 }
-                taskProcessService.save(taskProcessInfo);
-
-                //新增信息
-                dto.setIsTemp(1); //提交
-                dto.setStatus(1); //待审批
+                dto.setIsTemp(0); //暂存
+                dto.setStatus(0); //未上报
                 if (var) {
                     this.save(dto);
                 } else {
                     this.saveOrUpdate(dto);
                 }
+                Long aLong = jdbcTemplate.queryForObject("select count(1) from c_ex_draft_record where data_type = 9 and data_id = " + dto.getId(), Long.class);
+                if (aLong == null || aLong == 0L) {
+                    //绑定关系
+                    jdbcTemplate.execute("insert into c_ex_draft_record(id,group_id,data_id,data_type) values(" + SnowFlakeUtil.getId() + "," + draftGroupId + "," + dto.getId() + ",9)");
+                }
 
-                //新增审批任务关联信息
-                jdbcTemplate.execute("delete from c_expense_task_record where task_id = " + taskProcessInfo.getId() + " and expense_info_id = " + dto.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + dto.getId() + ",9)");
-
-                //关联项目id,项目计划预算等,在任务闭环时计算推送
-
-                return true;
+            } else if (("2").equals(dto.getSubmitStatus())) { //提交审批
+                if (ObjectUtil.isNotEmpty(dto.getId())) {
+                    AttendanceTripInfo obj = baseMapper.selectById(dto.getId());
+                    if (obj != null && (obj.getStatus() != 0 && obj.getStatus() != 3)) {
+                        throw new ServiceException("当前填报的信息不是未上报、已驳回状态,不允许操作!");
+                    } else if (obj != null && obj.getStatus() == 3) {
+                        //如果是已驳回任务,那么重新生成新的记录信息
+                        dto.setId(SnowFlakeUtil.getId());
+                        var = true;
+                    }
+                }
+                if (ObjectUtil.isNotEmpty(dto.getResponsibleUser()) && ObjectUtil.isNotEmpty(dto.getPersonnelUser())) {
+                    //新增审批任务
+                    if (ObjectUtil.isEmpty(SecureUtil.getUserName())) {
+                        throw new ServiceException("获取当前用户信息失败,请联系管理员");
+                    }
+                    TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
+                    taskProcessInfo.setId(SnowFlakeUtil.getId());
+                    taskProcessInfo.setStatus(1); //待审批
+                    taskProcessInfo.setReportDate(new Date());
+                    taskProcessInfo.setTaskType(9); //出差审批
+                    taskProcessInfo.setTaskName("【" + SecureUtil.getUserName() + "】向您发起【出差审批】审批");
+                    //上报人
+                    taskProcessInfo.setReportUserId(SecureUtil.getUserId());
+
+                    //审批人
+                    List<String> auditUserIds = new LinkedList<>();
+                    EMProcessTaskUser responsibleObj = dto.getResponsibleUser(); //部门负责人
+                    auditUserIds.add(responsibleObj.getUserId());
+                    EMProcessTaskUser personnelUser = dto.getPersonnelUser(); //人事
+                    auditUserIds.add(personnelUser.getUserId());
+                    taskProcessInfo.setAuditUserIds(StringUtils.join(auditUserIds, ","));
+
+                    //抄送人
+                    if (ObjectUtil.isNotEmpty(dto.getCcUserList())) {
+                        List<String> ccUserObjList = dto.getCcUserList().stream().map(EMProcessTaskUser::getUserId).collect(Collectors.toList());
+                        taskProcessInfo.setCcUserIds(StringUtils.join(ccUserObjList, ","));
+                    }
+                    taskProcessService.save(taskProcessInfo);
+
+                    //新增信息
+                    dto.setIsTemp(1); //提交
+                    dto.setStatus(1); //待审批
+                    if (var) {
+                        this.save(dto);
+                    } else {
+                        this.saveOrUpdate(dto);
+                    }
+
+                    //新增审批任务关联信息
+                    jdbcTemplate.execute("delete from c_expense_task_record where task_id = " + taskProcessInfo.getId() + " and expense_info_id = " + dto.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + dto.getId() + ",9)");
+
+                    //关联项目id,项目计划预算等,在任务闭环时计算推送
 
-            } else {
-                throw new ServiceException("获取当前审批流程人员信息失败,请联系管理员");
+                } else {
+                    throw new ServiceException("获取当前审批流程人员信息失败,请联系管理员");
+                }
             }
         }
-        return false;
+        return true;
     }
 
     @Override
-    public boolean tripRemove(Long id) {
-        AttendanceTripInfo attendanceTripInfo = baseMapper.selectById(id);
-        if (attendanceTripInfo.getIsTemp().equals(0)) {
-            return this.removeById(id);
-        } else {
-            throw new ServiceException("当前记录信息不是草稿数据,无法删除");
+    public boolean tripRemove(Long groupId) {
+        List<ExDraftRecord> query = jdbcTemplate.query("select * from c_ex_draft_record where group_id = " + groupId, new BeanPropertyRowMapper<>(ExDraftRecord.class));
+        if (query.size() > 0) {
+            List<String> ids = query.stream().map(ExDraftRecord::getDataId).map(String::valueOf).collect(Collectors.toList());
+            if (ids.size() > 0) {
+                jdbcTemplate.execute("delete from c_ex_draft_record where group_id = " + groupId);
+                jdbcTemplate.execute("delete from c_attendance_trip_info where id in(" + StringUtils.join(ids, ",") + ")");
+                return true;
+            }
+            return false;
         }
+        return false;
     }
 
     @Override
@@ -220,4 +241,11 @@ public class AttendanceTripServiceImpl extends BaseServiceImpl<AttendanceTripMap
         }
         return false;
     }
+
+    @Override
+    public List<AttendanceTripInfoVO> financialDraftDetail(String eMDraftIds) {
+        List<AttendanceTripInfo> attendanceTripInfos = baseMapper.selectBatchIds(Func.toStrList(eMDraftIds));
+        List<AttendanceTripInfoVO> vos = BeanUtil.copyProperties(attendanceTripInfos, AttendanceTripInfoVO.class);
+        return vos;
+    }
 }

+ 13 - 6
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMFinancialReimbursementServiceImpl.java

@@ -96,7 +96,7 @@ public class EMFinancialReimbursementServiceImpl extends BaseServiceImpl<ExMFina
         List<String> dataIds = list.stream().map(EMFinancialReimbursementInfo::getId).map(String::valueOf).collect(Collectors.toList());
         List<EMDraftGroupVO> resultList = new LinkedList<>();
         if (dataIds.size() > 0) {
-            List<ExDraftRecord> query = jdbcTemplate.query("select * from c_ex_draft_record where data_type = 1 and data_id in(" + StringUtils.join(dataIds, ",") + ")", new BeanPropertyRowMapper<>(ExDraftRecord.class));
+            List<ExDraftRecord> query = jdbcTemplate.query("select * from c_ex_draft_record where data_type = 2 and data_id in(" + StringUtils.join(dataIds, ",") + ")", new BeanPropertyRowMapper<>(ExDraftRecord.class));
             Map<Long, List<ExDraftRecord>> groupMaps = query.stream().collect(Collectors.groupingBy(ExDraftRecord::getGroupId));
             for (Map.Entry<Long, List<ExDraftRecord>> listEntry : groupMaps.entrySet()) {
                 Long groupId = listEntry.getKey();
@@ -152,10 +152,10 @@ public class EMFinancialReimbursementServiceImpl extends BaseServiceImpl<ExMFina
                     this.saveOrUpdate(dto);
                 }
 
-                Long aLong = jdbcTemplate.queryForObject("select count(1) from c_ex_draft_record where data_type = 1 and data_id = " + dto.getId(), Long.class);
+                Long aLong = jdbcTemplate.queryForObject("select count(1) from c_ex_draft_record where data_type = 2 and data_id = " + dto.getId(), Long.class);
                 if (aLong == null || aLong == 0L) {
                     //绑定关系
-                    jdbcTemplate.execute("insert into c_ex_draft_record(id,group_id,data_id,data_type) values(" + SnowFlakeUtil.getId() + "," + draftGroupId + "," + dto.getId() + ",1)");
+                    jdbcTemplate.execute("insert into c_ex_draft_record(id,group_id,data_id,data_type) values(" + SnowFlakeUtil.getId() + "," + draftGroupId + "," + dto.getId() + ",2)");
                 }
 
             } else if (("2").equals(dto.getSubmitStatus())) { //提交审批
@@ -197,7 +197,14 @@ public class EMFinancialReimbursementServiceImpl extends BaseServiceImpl<ExMFina
                     }
                     EMProcessTaskUser cashierObj = dto.getCashierUser(); //出纳
                     auditUserIds.add(cashierObj.getUserId());
-                    taskProcessInfo.setAuditUserIds(StringUtils.join(auditUserIds, ","));
+
+                    List<String> nonEmptyAuditUserIds = new LinkedList<>();
+                    for (String userId : auditUserIds) {
+                        if (StringUtils.isNotEmpty(userId)) {
+                            nonEmptyAuditUserIds.add(userId);
+                        }
+                    }
+                    taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
 
                     //抄送人
                     if (ObjectUtil.isNotEmpty(dto.getCcUserList())) {
@@ -260,11 +267,11 @@ public class EMFinancialReimbursementServiceImpl extends BaseServiceImpl<ExMFina
 
                 //修改当前记录为未上报状态,且暂存
                 if (this.update(Wrappers.<EMFinancialReimbursementInfo>lambdaUpdate().set(EMFinancialReimbursementInfo::getStatus, 0).set(EMFinancialReimbursementInfo::getIsTemp, 0).eq(EMFinancialReimbursementInfo::getId, id))) {
-                    Long aLong = jdbcTemplate.queryForObject("select count(1) from c_ex_draft_record where data_type = 1 and data_id = " + id, Long.class);
+                    Long aLong = jdbcTemplate.queryForObject("select count(1) from c_ex_draft_record where data_type = 2 and data_id = " + id, Long.class);
                     if (aLong == null || aLong == 0L) {
                         //绑定关系
                         Long draftGroupId = SnowFlakeUtil.getId();
-                        jdbcTemplate.execute("insert into c_ex_draft_record(id,group_id,data_id,data_type) values(" + SnowFlakeUtil.getId() + "," + draftGroupId + "," + id + ",1)");
+                        jdbcTemplate.execute("insert into c_ex_draft_record(id,group_id,data_id,data_type) values(" + SnowFlakeUtil.getId() + "," + draftGroupId + "," + id + ",2)");
                     }
                 }
 

+ 9 - 2
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMInvoiceServiceImpl.java

@@ -171,7 +171,14 @@ public class EMInvoiceServiceImpl extends BaseServiceImpl<ExMInvoiceMapper, EMIn
                 auditUserIds.add(responsibleObj.getUserId());
                 EMProcessTaskUser financeObj = dto.getFinanceUser(); //财务
                 auditUserIds.add(financeObj.getUserId());
-                taskProcessInfo.setAuditUserIds(StringUtils.join(auditUserIds, ","));
+
+                List<String> nonEmptyAuditUserIds = new LinkedList<>();
+                for (String userId : auditUserIds) {
+                    if (StringUtils.isNotEmpty(userId)) {
+                        nonEmptyAuditUserIds.add(userId);
+                    }
+                }
+                taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
 
                 //抄送人
                 if (ObjectUtil.isNotEmpty(dto.getCcUserList())) {
@@ -240,7 +247,7 @@ public class EMInvoiceServiceImpl extends BaseServiceImpl<ExMInvoiceMapper, EMIn
 
     @Override
     public boolean invoiceUpload(Long id, String pdfUrl) {
-        if (StringUtils.isNotEmpty(pdfUrl)) {
+        if (StringUtils.isEmpty(pdfUrl)) {
             throw new ServiceException("未获取到当前pdf路径信息,上传失败!");
         }
         EMInvoiceInfo obj = baseMapper.selectById(id);

+ 8 - 1
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMLoanServiceImpl.java

@@ -180,7 +180,14 @@ public class EMLoanServiceImpl extends BaseServiceImpl<ExMLoanMapper, EMLoanInfo
                 }
                 EMProcessTaskUser cashierObj = dto.getCashierUser(); //出纳
                 auditUserIds.add(cashierObj.getUserId());
-                taskProcessInfo.setAuditUserIds(StringUtils.join(auditUserIds, ","));
+
+                List<String> nonEmptyAuditUserIds = new LinkedList<>();
+                for (String userId : auditUserIds) {
+                    if (StringUtils.isNotEmpty(userId)) {
+                        nonEmptyAuditUserIds.add(userId);
+                    }
+                }
+                taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
 
                 //抄送人
                 if (ObjectUtil.isNotEmpty(dto.getCcUserList())) {

+ 8 - 1
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMOutsourcingPayServiceImpl.java

@@ -169,7 +169,14 @@ public class EMOutsourcingPayServiceImpl extends BaseServiceImpl<ExMOutsourcingP
                 }
                 EMProcessTaskUser cashierObj = dto.getCashierUser(); //出纳
                 auditUserIds.add(cashierObj.getUserId());
-                taskProcessInfo.setAuditUserIds(StringUtils.join(auditUserIds, ","));
+
+                List<String> nonEmptyAuditUserIds = new LinkedList<>();
+                for (String userId : auditUserIds) {
+                    if (StringUtils.isNotEmpty(userId)) {
+                        nonEmptyAuditUserIds.add(userId);
+                    }
+                }
+                taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
 
                 //抄送人
                 if (ObjectUtil.isNotEmpty(dto.getCcUserList())) {

+ 8 - 1
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMPayServiceImpl.java

@@ -150,7 +150,14 @@ public class EMPayServiceImpl extends BaseServiceImpl<ExMPayMapper, EMPayInfo> i
                 }
                 EMProcessTaskUser cashierObj = dto.getCashierUser(); //出纳
                 auditUserIds.add(cashierObj.getUserId());
-                taskProcessInfo.setAuditUserIds(StringUtils.join(auditUserIds, ","));
+
+                List<String> nonEmptyAuditUserIds = new LinkedList<>();
+                for (String userId : auditUserIds) {
+                    if (StringUtils.isNotEmpty(userId)) {
+                        nonEmptyAuditUserIds.add(userId);
+                    }
+                }
+                taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
 
                 //抄送人
                 if (ObjectUtil.isNotEmpty(dto.getCcUserList())) {

+ 9 - 2
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMPurchaseServiceImpl.java

@@ -91,7 +91,7 @@ public class EMPurchaseServiceImpl extends BaseServiceImpl<ExMPurchaseMapper, EM
                 EMPurchaseInfo obj = baseMapper.selectById(ids.get(0));
                 EMDraftGroupVO vo = new EMDraftGroupVO();
                 if (obj != null) {
-                    userMaps.get(obj.getCreateUser()).stream().findAny().ifPresent(user -> vo.setTitle((ObjectUtil.isNotEmpty(user) && ObjectUtil.isNotEmpty(user.getRealName())) ? user.getRealName() + "提交的日常报销" : ""));
+                    userMaps.get(obj.getCreateUser()).stream().findAny().ifPresent(user -> vo.setTitle((ObjectUtil.isNotEmpty(user) && ObjectUtil.isNotEmpty(user.getRealName())) ? user.getRealName() + "提交的采购申请" : ""));
                     vo.setUpdateTime(obj.getUpdateTime());
                 }
                 vo.setGroupId(groupId);
@@ -177,7 +177,14 @@ public class EMPurchaseServiceImpl extends BaseServiceImpl<ExMPurchaseMapper, EM
                     }
                     EMProcessTaskUser cashierObj = dto.getCashierUser(); //出纳
                     auditUserIds.add(cashierObj.getUserId());
-                    taskProcessInfo.setAuditUserIds(StringUtils.join(auditUserIds, ","));
+
+                    List<String> nonEmptyAuditUserIds = new LinkedList<>();
+                    for (String userId : auditUserIds) {
+                        if (StringUtils.isNotEmpty(userId)) {
+                            nonEmptyAuditUserIds.add(userId);
+                        }
+                    }
+                    taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
 
                     //抄送人
                     if (ObjectUtil.isNotEmpty(dto.getCcUserList())) {

+ 9 - 2
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMUseCarServiceImpl.java

@@ -93,7 +93,7 @@ public class EMUseCarServiceImpl extends BaseServiceImpl<ExMUseCarMapper, EMUseC
                 EMUseCarInfo obj = baseMapper.selectById(ids.get(0));
                 EMDraftGroupVO vo = new EMDraftGroupVO();
                 if (obj != null) {
-                    userMaps.get(obj.getCreateUser()).stream().findAny().ifPresent(user -> vo.setTitle((ObjectUtil.isNotEmpty(user) && ObjectUtil.isNotEmpty(user.getRealName())) ? user.getRealName() + "提交的日常报销" : ""));
+                    userMaps.get(obj.getCreateUser()).stream().findAny().ifPresent(user -> vo.setTitle((ObjectUtil.isNotEmpty(user) && ObjectUtil.isNotEmpty(user.getRealName())) ? user.getRealName() + "提交的用车申请" : ""));
                     vo.setUpdateTime(obj.getUpdateTime());
                 }
                 vo.setGroupId(groupId);
@@ -173,7 +173,14 @@ public class EMUseCarServiceImpl extends BaseServiceImpl<ExMUseCarMapper, EMUseC
                     auditUserIds.add(responsibleObj.getUserId());
                     EMProcessTaskUser personnelUser = dto.getPersonnelUser(); //人事
                     auditUserIds.add(personnelUser.getUserId());
-                    taskProcessInfo.setAuditUserIds(StringUtils.join(auditUserIds, ","));
+
+                    List<String> nonEmptyAuditUserIds = new LinkedList<>();
+                    for (String userId : auditUserIds) {
+                        if (StringUtils.isNotEmpty(userId)) {
+                            nonEmptyAuditUserIds.add(userId);
+                        }
+                    }
+                    taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
 
                     //抄送人
                     if (ObjectUtil.isNotEmpty(dto.getCcUserList())) {

+ 7 - 1
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/LogHistoryServiceImpl.java

@@ -327,7 +327,13 @@ public class LogHistoryServiceImpl extends BaseServiceImpl<LogHistoryMapper, Log
             responsibleObj.setUserName(departmentHead.getRealName());
             auditUserIds.add(responsibleObj.getUserId());
 
-            taskProcessInfo.setAuditUserIds(StringUtils.join(auditUserIds, ","));
+            List<String> nonEmptyAuditUserIds = new LinkedList<>();
+            for (String userId : auditUserIds) {
+                if (StringUtils.isNotEmpty(userId)) {
+                    nonEmptyAuditUserIds.add(userId);
+                }
+            }
+            taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
 
             taskProcessService.save(taskProcessInfo);
 

+ 14 - 2
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/TaskProcessServiceImpl.java

@@ -488,7 +488,13 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
                         responsibleObj.setUserName(departmentHead.getRealName());
                         auditUserIds.add(responsibleObj.getUserId());
 
-                        taskProcessInfo.setAuditUserIds(StringUtils.join(auditUserIds, ","));
+                        List<String> nonEmptyAuditUserIds = new LinkedList<>();
+                        for (String userId : auditUserIds) {
+                            if (StringUtils.isNotEmpty(userId)) {
+                                nonEmptyAuditUserIds.add(userId);
+                            }
+                        }
+                        taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
 
                         this.save(taskProcessInfo);
 
@@ -518,7 +524,13 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
                         responsibleObj.setUserName(departmentHead.getRealName());
                         auditUserIds.add(responsibleObj.getUserId());
 
-                        taskProcessInfo.setAuditUserIds(StringUtils.join(auditUserIds, ","));
+                        List<String> nonEmptyAuditUserIds = new LinkedList<>();
+                        for (String userId : auditUserIds) {
+                            if (StringUtils.isNotEmpty(userId)) {
+                                nonEmptyAuditUserIds.add(userId);
+                            }
+                        }
+                        taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
 
                         this.save(taskProcessInfo);