Explorar el Código

Merge branch 'qtz' of SH-Arbitrate/Mediation-Backend into dev

qtz hace 2 años
padre
commit
3773b276e8

+ 14
- 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsSignSealController.java Ver fichero

1
 package com.ruoyi.web.controller.wisdomarbitrate.mscase;
1
 package com.ruoyi.web.controller.wisdomarbitrate.mscase;
2
 
2
 
3
+import cn.hutool.core.util.StrUtil;
3
 import com.ruoyi.common.core.controller.BaseController;
4
 import com.ruoyi.common.core.controller.BaseController;
4
 import com.ruoyi.common.core.domain.AjaxResult;
5
 import com.ruoyi.common.core.domain.AjaxResult;
5
 import com.ruoyi.common.exception.EsignDemoException;
6
 import com.ruoyi.common.exception.EsignDemoException;
7
+import com.ruoyi.wisdomarbitrate.domain.dto.mscase.MsSignSealDTO;
6
 import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseApplicationVO;
8
 import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseApplicationVO;
7
 import com.ruoyi.wisdomarbitrate.service.mscase.MsSignSealService;
9
 import com.ruoyi.wisdomarbitrate.service.mscase.MsSignSealService;
8
 import org.springframework.beans.factory.annotation.Autowired;
10
 import org.springframework.beans.factory.annotation.Autowired;
28
         return msSignSealService.sureMediationSeal(caseApplication);
30
         return msSignSealService.sureMediationSeal(caseApplication);
29
     }
31
     }
30
 
32
 
33
+    /**
34
+     * 用印申请
35
+     */
36
+    @PostMapping("/sealApply")
37
+    public AjaxResult sealApply(@RequestBody MsSignSealDTO dto ) {
38
+        if ((dto.getCaseId() == null && StrUtil.isEmpty(dto.getBatchNumber()))
39
+                || dto.getCaseFlowId() == null) {
40
+            return error("参数校验失败");
41
+        }
42
+        return msSignSealService.sealApply(dto);
43
+    }
44
+
31
 
45
 
32
 
46
 
33
 
47
 

+ 23
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/dto/mscase/MsSignSealDTO.java Ver fichero

1
+package com.ruoyi.wisdomarbitrate.domain.dto.mscase;
2
+
3
+import lombok.Data;
4
+
5
+@Data
6
+public class MsSignSealDTO {
7
+
8
+    /**
9
+     * 案件id
10
+     */
11
+    private Long caseId;
12
+    /**
13
+     * 批次号
14
+     */
15
+    private String batchNumber;
16
+    /**
17
+     * 流程节点id
18
+     */
19
+    private Integer caseFlowId;
20
+
21
+
22
+
23
+}

+ 2
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/MsSignSealService.java Ver fichero

2
 
2
 
3
 import com.ruoyi.common.core.domain.AjaxResult;
3
 import com.ruoyi.common.core.domain.AjaxResult;
4
 import com.ruoyi.common.exception.EsignDemoException;
4
 import com.ruoyi.common.exception.EsignDemoException;
5
+import com.ruoyi.wisdomarbitrate.domain.dto.mscase.MsSignSealDTO;
5
 import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseApplicationVO;
6
 import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseApplicationVO;
6
 
7
 
7
 public interface MsSignSealService {
8
 public interface MsSignSealService {
9
 
10
 
10
     AjaxResult sureMediationSeal(MsCaseApplicationVO caseApplication) throws EsignDemoException, InterruptedException;
11
     AjaxResult sureMediationSeal(MsCaseApplicationVO caseApplication) throws EsignDemoException, InterruptedException;
11
 
12
 
13
+    AjaxResult sealApply(MsSignSealDTO dto);
12
 }
14
 }

+ 50
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java Ver fichero

1
 package com.ruoyi.wisdomarbitrate.service.mscase.impl;
1
 package com.ruoyi.wisdomarbitrate.service.mscase.impl;
2
 
2
 
3
 import cn.hutool.core.bean.BeanUtil;
3
 import cn.hutool.core.bean.BeanUtil;
4
+import cn.hutool.core.collection.CollectionUtil;
5
+import cn.hutool.core.util.StrUtil;
4
 import com.alibaba.fastjson.JSONArray;
6
 import com.alibaba.fastjson.JSONArray;
5
 import com.alibaba.fastjson.JSONObject;
7
 import com.alibaba.fastjson.JSONObject;
6
 import com.google.gson.Gson;
8
 import com.google.gson.Gson;
8
 import com.ruoyi.common.core.domain.AjaxResult;
10
 import com.ruoyi.common.core.domain.AjaxResult;
9
 import com.ruoyi.common.core.domain.entity.EsignHttpResponse;
11
 import com.ruoyi.common.core.domain.entity.EsignHttpResponse;
10
 import com.ruoyi.common.core.domain.entity.SysUser;
12
 import com.ruoyi.common.core.domain.entity.SysUser;
13
+import com.ruoyi.common.enums.YesOrNoEnum;
11
 import com.ruoyi.common.exception.EsignDemoException;
14
 import com.ruoyi.common.exception.EsignDemoException;
12
 import com.ruoyi.common.exception.ServiceException;
15
 import com.ruoyi.common.exception.ServiceException;
13
 import com.ruoyi.common.utils.SmsUtils;
16
 import com.ruoyi.common.utils.SmsUtils;
14
 import com.ruoyi.common.utils.file.SaaSAPIFileUtils;
17
 import com.ruoyi.common.utils.file.SaaSAPIFileUtils;
18
+import com.ruoyi.system.domain.entity.flow.MsCaseFlow;
19
+import com.ruoyi.system.mapper.flow.MsCaseFlowMapper;
15
 import com.ruoyi.wisdomarbitrate.domain.dto.dept.DeptIdentify;
20
 import com.ruoyi.wisdomarbitrate.domain.dto.dept.DeptIdentify;
16
 import com.ruoyi.wisdomarbitrate.domain.dto.dept.SealManage;
21
 import com.ruoyi.wisdomarbitrate.domain.dto.dept.SealManage;
22
+import com.ruoyi.wisdomarbitrate.domain.dto.mscase.MsSignSealDTO;
17
 import com.ruoyi.wisdomarbitrate.domain.dto.mscase.SealSignRecord;
23
 import com.ruoyi.wisdomarbitrate.domain.dto.mscase.SealSignRecord;
18
 import com.ruoyi.wisdomarbitrate.domain.entity.dept.MsSealSignRecord;
24
 import com.ruoyi.wisdomarbitrate.domain.entity.dept.MsSealSignRecord;
19
 import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseAffiliate;
25
 import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseAffiliate;
26
 import com.ruoyi.wisdomarbitrate.mapper.mscase.MsCaseAffiliateMapper;
32
 import com.ruoyi.wisdomarbitrate.mapper.mscase.MsCaseAffiliateMapper;
27
 import com.ruoyi.wisdomarbitrate.mapper.mscase.MsCaseApplicationMapper;
33
 import com.ruoyi.wisdomarbitrate.mapper.mscase.MsCaseApplicationMapper;
28
 import com.ruoyi.wisdomarbitrate.mapper.mscase.MsCaseAttachMapper;
34
 import com.ruoyi.wisdomarbitrate.mapper.mscase.MsCaseAttachMapper;
35
+import com.ruoyi.wisdomarbitrate.service.mscase.MsCaseApplicationService;
29
 import com.ruoyi.wisdomarbitrate.service.mscase.MsSignSealService;
36
 import com.ruoyi.wisdomarbitrate.service.mscase.MsSignSealService;
37
+import com.ruoyi.wisdomarbitrate.utils.CaseLogUtils;
30
 import com.ruoyi.wisdomarbitrate.utils.SignAward;
38
 import com.ruoyi.wisdomarbitrate.utils.SignAward;
31
 import org.springframework.beans.factory.annotation.Autowired;
39
 import org.springframework.beans.factory.annotation.Autowired;
32
 import org.springframework.stereotype.Service;
40
 import org.springframework.stereotype.Service;
33
 import org.springframework.transaction.annotation.Transactional;
41
 import org.springframework.transaction.annotation.Transactional;
34
 
42
 
43
+import javax.annotation.Resource;
35
 import java.util.ArrayList;
44
 import java.util.ArrayList;
36
 import java.util.List;
45
 import java.util.List;
37
 
46
 
48
     private DeptIdentifyMapper deptIdentifyMapper;
57
     private DeptIdentifyMapper deptIdentifyMapper;
49
     @Autowired
58
     @Autowired
50
     private SealManageMapper sealManageMapper;
59
     private SealManageMapper sealManageMapper;
60
+    @Autowired
61
+    MsCaseFlowMapper caseFlowMapper;
51
 
62
 
52
     @Autowired
63
     @Autowired
53
     private MsSealSignRecordMapper sealSignRecordMapper;
64
     private MsSealSignRecordMapper sealSignRecordMapper;
54
 
65
 
66
+    @Resource
67
+    private MsCaseApplicationService applicationService;
68
+    @Autowired
69
+    private MsCaseApplicationMapper caseApplicationMapper;
70
+
55
 
71
 
56
     @Override
72
     @Override
57
     @Transactional
73
     @Transactional
287
         return  AjaxResult.success();
303
         return  AjaxResult.success();
288
     }
304
     }
289
 
305
 
306
+    @Override
307
+    @Transactional
308
+    public AjaxResult sealApply(MsSignSealDTO dto) {
309
+        // 根据流程id查找下一个流程节点
310
+        MsCaseFlow nextFlow = caseFlowMapper.nextFlow(dto.getCaseFlowId());
311
+        if (nextFlow == null) {
312
+            return AjaxResult.error("未找到下一个流程节点");
313
+        }
314
+        if (StrUtil.isNotEmpty(dto.getBatchNumber())) {
315
+            // 批量操作
316
+            // 查询该批号下该流程的案件
317
+            List<MsCaseApplication> applicationList = applicationService.listByBatchNumber(dto.getBatchNumber(), dto.getCaseFlowId());
318
+            if (CollectionUtil.isEmpty(applicationList)) {
319
+                return AjaxResult.error("该批号下未找到案件");
320
+            }
321
+            for (MsCaseApplication application : applicationList) {
322
+                application.setCaseFlowId(nextFlow.getId());
323
+                application.setCaseStatusName(nextFlow.getCaseStatusName());
324
+                caseApplicationMapper.updateByPrimaryKeySelective(application);
325
+                CaseLogUtils.insertCaseLog(application.getId(), nextFlow.getNodeId(), nextFlow.getCaseStatusName(),"用印申请");
326
+            }
327
+        } else {
328
+            // 单独
329
+            MsCaseApplication application = new MsCaseApplication();
330
+            application.setId(dto.getCaseId());
331
+            application.setLockStatus(YesOrNoEnum.YES.getCode());
332
+            application.setCaseFlowId(nextFlow.getId());
333
+            application.setCaseStatusName(nextFlow.getCaseStatusName());
334
+            caseApplicationMapper.updateByPrimaryKeySelective(application);
335
+            CaseLogUtils.insertCaseLog(application.getId(), nextFlow.getNodeId(), nextFlow.getCaseStatusName(),"用印申请");
290
 
336
 
337
+        }
338
+        return AjaxResult.success("用印申请成功");
339
+
340
+    }
291
 
341
 
292
 
342
 
293
 }
343
 }