فهرست منبع

Merge remote-tracking branch 'origin/master' into master

yangyj 11 ماه پیش
والد
کامیت
4d22c307b7

+ 2 - 0
blade-common/src/main/java/org/springblade/common/constant/ClientIdConstant.java

@@ -8,4 +8,6 @@ public interface ClientIdConstant {
 
     /** 消息推送使用的系统名称,也是后管应用管理里的应用id*/
     String METER_ID = "measure";
+    String CLIENT_ID = "client";
+    String ARCHIVE_ID = "archives";
 }

+ 1 - 1
blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/TaskClient.java

@@ -169,7 +169,7 @@ public interface TaskClient {
     boolean updateFixedFlow(@RequestParam Long fixedFlowId, @RequestParam String fixedName);
 
     @PostMapping(value = "/updateFixedFlowLink")
-    void updateFixedFlowLink(@RequestParam Long fixedFlowId, @RequestParam String name,
+    R updateFixedFlowLink(@RequestParam Long fixedFlowId, @RequestParam String name,
                              @RequestParam Integer type,@RequestParam String userIds,
                              @RequestParam Long projectId, @RequestParam Long contractId,
                              @RequestParam Integer linkSort,@RequestParam Integer userSort,

+ 2 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/FixedFlowVO.java

@@ -24,6 +24,8 @@ public class FixedFlowVO implements Serializable {
         private Integer type;
         @ApiModelProperty(value = "流程类型 1=普通流程、2=审计流程")
         private Integer flowTaskType;
+        @ApiModelProperty(value = "审批人,按照顺序英文逗号拼接为字符串")
+        private String userIds;
         @ApiModelProperty(value = "任务人数组")
         private List<User> userList;
 

+ 19 - 10
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/TaskClientImpl.java

@@ -244,8 +244,9 @@ public class TaskClientImpl implements TaskClient {
     }
 
     @Override
-    public void updateFixedFlowLink(Long fixedFlowId, String name, Integer type, String userIds, Long projectId, Long contractId, Integer linkSort,Integer userSort,Integer flowTaskType) {
+    public R updateFixedFlowLink(Long fixedFlowId, String name, Integer type, String userIds, Long projectId, Long contractId, Integer linkSort,Integer userSort,Integer flowTaskType) {
         this.saveFixedFlowLink(fixedFlowId, name, type, userIds, projectId, contractId, linkSort,userSort,flowTaskType);
+        return R.success("修改成功");
     }
 
     @Override
@@ -282,15 +283,23 @@ public class TaskClientImpl implements TaskClient {
                 Map<String, Object> map = new HashMap<>();
                 List<FixedFlowLink> one = group.getOrDefault(fixedFlow.getId(), null);
                 if (one != null) {
-                    Set<String> names = one.stream()
-                            .sorted(Comparator.comparingInt(FixedFlowLink::getFixedFlowBranchSort))
-                            .collect(Collectors.toMap(
-                                    FixedFlowLink::getFixedFlowLink,
-                                    FixedFlowLink::getFixedFlowLink,
-                                    (existing, replacement) -> existing,
-                                    LinkedHashMap::new
-                            ))
-                            .keySet();
+//                    Set<String> names = one.stream()
+//                            .sorted(Comparator.comparingInt(FixedFlowLink::getFixedFlowBranchSort))
+//                            .collect(Collectors.toMap(
+//                                    FixedFlowLink::getFixedFlowLink,
+//                                    FixedFlowLink::getFixedFlowLink,
+//                                    (existing, replacement) -> existing,
+//                                    LinkedHashMap::new
+//                            ))
+//                            .keySet();
+                    /** 上面方法会去除同名流程*/
+                    List<String> names = one.stream().filter(l->l.getFixedFlowLinkSort() != null).collect(Collectors.groupingBy(
+                            FixedFlowLink::getFixedFlowLinkSort,
+                            Collectors.collectingAndThen(
+                                    Collectors.toList(),
+                                    l -> l.isEmpty() ? null : l.get(0)
+                            )
+                    )).values().stream().map(l->l.getFixedFlowLink()).collect(Collectors.toList());
 
                     map.put("id", fixedFlow.getId());
                     map.put("isUse", ids.contains(fixedFlow.getId()) ? 1 : 0);

+ 4 - 4
blade-service/blade-manager/src/main/java/com/mixsmart/utils/CustomFunction.java

@@ -2298,10 +2298,10 @@ public class CustomFunction {
         return "";
     }
 
-    public static void main(String[] args) {
-         int x=1234567800;
-        System.out.println(xN(x,0.0001));
-    }
+//    public static void main(String[] args) {
+//         int x=1234567800;
+//        System.out.println(xN(x,0.0001));
+//    }
 
     public static Object repeat(Object data) {
         List<Object> result = new ArrayList<>();

+ 11 - 3
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/TaskController.java

@@ -4183,7 +4183,11 @@ public class TaskController extends BladeController {
         if (fixedFlow != null) {
             List<FixedFlowLink> fixedFlowLinkList = jdbcTemplate.query("SELECT * FROM u_fixed_flow_link WHERE is_deleted = 0 AND fixed_flow_id = ? ORDER BY fixed_flow_branch_sort,fixed_flow_link_sort", new Object[]{fixedFlow.getId()}, new BeanPropertyRowMapper<>(FixedFlowLink.class));
             if (fixedFlowLinkList.size() > 0) {
-                Map<String, List<FixedFlowLink>> group = fixedFlowLinkList.stream().collect(Collectors.groupingBy(obj -> obj.getFixedFlowLink() + "@@@" + obj.getFixedFlowLinkType() + "@@@"+obj.getFlowTaskType(), LinkedHashMap::new, Collectors.toList()));
+                Map<String, List<FixedFlowLink>> group = fixedFlowLinkList.stream().collect(Collectors.groupingBy(
+                        obj -> obj.getFixedFlowLink() + "@@@" + obj.getFixedFlowLinkType() + "@@@"+obj.getFlowTaskType() + "@@@"+obj.getFixedFlowLinkSort(),
+                        LinkedHashMap::new,
+                        Collectors.toList())
+                );
 
                 FixedFlowVO vo = new FixedFlowVO();
                 vo.setFixedFlowId(fixedFlow.getId());
@@ -4213,6 +4217,7 @@ public class TaskController extends BladeController {
                     }
 
                     fixedBranchVO.setUserList(userListResult);
+                    fixedBranchVO.setUserIds(userListResult.stream().map(l->l.getUserId()+"").collect(Collectors.joining(",")));
                     fixedBranchVOList.add(fixedBranchVO);
                 }
 
@@ -4230,7 +4235,6 @@ public class TaskController extends BladeController {
         if (ObjectUtil.isEmpty(dto.getFixedBranchList()) || dto.getFixedBranchList().size() == 0) {
             return R.fail("请选择任务流程人员");
         }
-        taskClient.updateFixedFlow(dto.getFixedFlowId(), dto.getFixedName());
         //校验是否被使用过
         List<Task> tasks = jdbcTemplate.query("SELECT * FROM u_task WHERE contract_id = ? and is_deleted = 0 and status != 3 AND fixed_flow_id = ? ", new Object[]{dto.getContractId(), dto.getFixedFlowId()}, new BeanPropertyRowMapper<>(Task.class));
         if (tasks.size() > 0) {
@@ -4256,8 +4260,12 @@ public class TaskController extends BladeController {
                 if(i>0){
                     userSort += Func.toLongList(dto.getFixedBranchList().get(i-1).getUserIds()).size();
                 }
-                taskClient.updateFixedFlowLink(dto.getFixedFlowId(), fixedBranch.getName(), fixedBranch.getType(), fixedBranch.getUserIds(), dto.getProjectId(), dto.getContractId(), i+1 ,userSort,fixedBranch.getFlowTaskType());
+                R r = taskClient.updateFixedFlowLink(dto.getFixedFlowId(), fixedBranch.getName(), fixedBranch.getType(), fixedBranch.getUserIds(), dto.getProjectId(), dto.getContractId(), i + 1, userSort, fixedBranch.getFlowTaskType());
+                if (r.getCode() != 200){
+                    throw new ServiceException("修改子流程失败:"+r.getMsg());
+                }
             }
+            taskClient.updateFixedFlow(dto.getFixedFlowId(), dto.getFixedName());
             return R.success("操作成功");
         }
         return R.fail("操作失败");