|
@@ -19,7 +19,6 @@ import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO;
|
|
|
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskReturnReqVO;
|
|
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.purchase.OaPurchaseDO;
|
|
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.purchase.OaPurchaseObjDO;
|
|
|
-import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.purchase.OaPurchaseDO;
|
|
|
import cn.iocoder.yudao.module.bpm.dal.mysql.oa.purchase.OaPurchaseMapper;
|
|
|
import cn.iocoder.yudao.module.bpm.dal.mysql.oa.purchase.OaPurchaseObjMapper;
|
|
|
import cn.iocoder.yudao.module.bpm.enums.DictDataConstants;
|
|
@@ -46,7 +45,12 @@ import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.time.LocalDateTime;
|
|
|
-import java.util.*;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
@@ -126,6 +130,20 @@ public class OaPurchaseServiceImpl implements OaPurchaseService {
|
|
|
oaPurchase.setCreator(String.valueOf(loginEmployee.getId()));
|
|
|
// 暂存不保存审批人信息
|
|
|
oaPurchase.setStartUserSelectAssignees(null);
|
|
|
+ // 连续暂存,回显时前端会直接显示上次缓存的数据,会让用户认为第一次暂存没保存审批人,第二次却保存了
|
|
|
+ // 为了前后一致,暂存时如果选择了审批人,也保存一下
|
|
|
+ List<Long> selectAssignees = stagingReqVO.getStartUserSelectAssignees();
|
|
|
+ if (CollectionUtil.isNotEmpty(selectAssignees)) {
|
|
|
+ String collect = selectAssignees.stream().map(String::valueOf).collect(Collectors.joining(","));
|
|
|
+ oaPurchase.setStartUserSelectAssignees(collect);
|
|
|
+ } else {
|
|
|
+ if (oaPurchase.getId() != null) {
|
|
|
+ // 单独更新审批人字段
|
|
|
+ oaPurchaseMapper.update(new LambdaUpdateWrapper<OaPurchaseDO>()
|
|
|
+ .eq(OaPurchaseDO::getId, oaPurchase.getId())
|
|
|
+ .set(OaPurchaseDO::getStartUserSelectAssignees, null));
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
// 保存或更新表单信息
|
|
|
if (oaPurchase.getId() == null) {
|