From beea81f59962e10358672365cb16f0eeda7893df Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 24 一月 2024 10:50:44 +0800
Subject: [PATCH] 开发业务接口

---
 server/platform/src/main/java/com/doumee/shiro/ShiroConfig.java                            |    7 --
 server/platform/src/main/java/com/doumee/api/business/DispatchUnitController.java          |   12 ++++
 server/platform/src/main/java/com/doumee/api/common/PublicController.java                  |    7 --
 server/service/src/main/java/com/doumee/service/business/DispatchUnitService.java          |    4 +
 server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java |  145 +++++++++++++++++++++++++++++++++++++++++++++++-
 server/service/src/main/java/com/doumee/dao/business/DuWorktypeMapper.java                 |    4 +
 6 files changed, 161 insertions(+), 18 deletions(-)

diff --git a/server/platform/src/main/java/com/doumee/api/business/DispatchUnitController.java b/server/platform/src/main/java/com/doumee/api/business/DispatchUnitController.java
index a640db4..cb00156 100644
--- a/server/platform/src/main/java/com/doumee/api/business/DispatchUnitController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/DispatchUnitController.java
@@ -38,6 +38,18 @@
     public ApiResponse create(@RequestBody SaveDispatchUnitDTO saveDispatchUnitDTO) {
         return ApiResponse.success(dispatchUnitService.create(saveDispatchUnitDTO));
     }
+    @ApiOperation("娲鹃仯鍗曚綅瀹℃牳")
+    @PostMapping("/check")
+    @RequiresPermissions("business:dispatchunit:check")
+    public ApiResponse check(@RequestBody DispatchUnit param) {
+        return ApiResponse.success(dispatchUnitService.check(param));
+    }
+    @ApiOperation("娲鹃仯鍗曚綅宸ョ瀹℃牳")
+    @PostMapping("/checkWorktype")
+    @RequiresPermissions("business:dispatchunit:checkWorktype")
+    public ApiResponse checkWorktype(@RequestBody DispatchUnit param) {
+        return ApiResponse.success(dispatchUnitService.checkWorktype(param));
+    }
 
     @ApiOperation("鏍规嵁ID鍒犻櫎")
     @GetMapping("/delete/{id}")
diff --git a/server/platform/src/main/java/com/doumee/api/common/PublicController.java b/server/platform/src/main/java/com/doumee/api/common/PublicController.java
index ab7e6b6..aabb39a 100644
--- a/server/platform/src/main/java/com/doumee/api/common/PublicController.java
+++ b/server/platform/src/main/java/com/doumee/api/common/PublicController.java
@@ -41,12 +41,8 @@
 @RequestMapping("/public")
 @Slf4j
 public class PublicController extends BaseController {
-
-
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
-
-
     @ApiOperation(value = "涓婁紶", notes = "涓婁紶", httpMethod = "POST", position = 6)
     @ApiImplicitParams({
         @ApiImplicitParam(name = "folder", value = "鏂囦欢澶�", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
@@ -61,8 +57,6 @@
             systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode(),
             systemDictDataBiz.queryByCode(Constants.OSS,Constants.ENDPOINT).getCode());
     }
-
-
     @ApiOperation(value = "涓婁紶鍥剧墖", notes = "涓婁紶鍥剧墖", httpMethod = "POST", position = 6)
     @ApiImplicitParams({
             @ApiImplicitParam(name = "folder", value = "鏂囦欢澶�", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
@@ -88,7 +82,6 @@
                 systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode(),
                 systemDictDataBiz.queryByCode(Constants.OSS,Constants.ENDPOINT).getCode());
     }
-
     public void upload(HttpServletRequest request, HttpServletResponse response, String folder, String bucketName,
         String access_id, String access_key, String resourcePath, String endpoint) throws Exception {
         response.setCharacterEncoding("UTF-8");
diff --git a/server/platform/src/main/java/com/doumee/shiro/ShiroConfig.java b/server/platform/src/main/java/com/doumee/shiro/ShiroConfig.java
index 5f49fff..de2c792 100644
--- a/server/platform/src/main/java/com/doumee/shiro/ShiroConfig.java
+++ b/server/platform/src/main/java/com/doumee/shiro/ShiroConfig.java
@@ -88,17 +88,10 @@
         shiroFilterFactoryBean.setSecurityManager(securityManager);
         Map<String, String> map = new LinkedHashMap<>();
         // 璺緞鎷︽埅閰嶇疆
-        map.put("/system/dictData/companyUserRules","anon");
         map.put("/system/login", "anon");
         map.put("/system/logout", "anon");
-        map.put("/system/loginH5", "anon");
         map.put("/common/captcha", "anon");
         map.put("/business/areas/*", "anon");
-        map.put("/public/uploadPicture","anon");
-        map.put("/public/uploadLocal","anon");
-
-
-
         // - 鏀捐swagger
         map.put("/doc.html", "anon");
         map.put("/webjars/**", "anon");
diff --git a/server/service/src/main/java/com/doumee/dao/business/DuWorktypeMapper.java b/server/service/src/main/java/com/doumee/dao/business/DuWorktypeMapper.java
index a4a84e7..e989197 100644
--- a/server/service/src/main/java/com/doumee/dao/business/DuWorktypeMapper.java
+++ b/server/service/src/main/java/com/doumee/dao/business/DuWorktypeMapper.java
@@ -1,12 +1,16 @@
 package com.doumee.dao.business;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.ApplyDetail;
 import com.doumee.dao.business.model.DuWorktype;
+
+import java.util.List;
 
 /**
  * @author 姹熻箘韫�
  * @date 2024/01/16 10:03
  */
 public interface DuWorktypeMapper extends BaseMapper<DuWorktype> {
+    void insertBatchSomeColumn(List<DuWorktype> list);
 
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/DispatchUnitService.java b/server/service/src/main/java/com/doumee/service/business/DispatchUnitService.java
index 70fe3d5..cbfb258 100644
--- a/server/service/src/main/java/com/doumee/service/business/DispatchUnitService.java
+++ b/server/service/src/main/java/com/doumee/service/business/DispatchUnitService.java
@@ -130,4 +130,8 @@
      * @return
      */
     List<DispatchUnit> findByDTO(DispatchUnitQueryDTO dispatchUnitQueryDTO);
+
+    Integer check(DispatchUnit param);
+
+    Integer checkWorktype(DispatchUnit param);
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
index 4f25c0a..a53a69d 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
@@ -30,10 +30,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
-import java.util.UUID;
+import java.util.*;
 
 /**
  * 娲鹃仯鍗曚綅淇℃伅琛⊿ervice瀹炵幇
@@ -64,7 +61,147 @@
     @Autowired
     private DuWorkTypeJoinMapper duWorkTypeJoinMapper;
 
+    @Override
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    public Integer checkWorktype(DispatchUnit param) {
+        if(Objects.isNull(param)
+                ||Objects.isNull(param.getId())
+                ||param.getWorktypeStatus() == null
+                ||!(param.getWorktypeStatus() ==Constants.ONE || param.getWorktypeStatus() == Constants.TWO)){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        DispatchUnit model = dispatchUnitMapper.selectById(param.getId());
+        if(Objects.isNull(model) || Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO) ||!Constants.equalsInteger(model.getDataType(),Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌娲鹃仯鍗曚綅淇℃伅");
+        }
+        if(!Constants.equalsInteger(model.getStatus(),Constants.ONE)){
+            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ユ淳閬e崟浣嶅皻鏈鏍搁�氳繃锛屼笉鏀寔璇ユ搷浣滐紒");
+        }
+        if(Constants.equalsInteger(model.getWorktypeStatus(),Constants.ZERO)){
+            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ユ淳閬e崟浣嶅伐绉嶅凡瀹℃牳锛岃鍕块噸澶嶆彁浜");
+        }
+        DispatchUnit update = new DispatchUnit();
+        update.setEditor(user.getId());
+        update.setEditDate(new Date());
+        update.setId(model.getId());
+        update.setWorktypeStatus(param.getWorktypeStatus());
+        update.setCheckDate(update.getEditDate());
+        update.setCheckUserId(user.getId());
+        update.setCheckInfo(param.getCheckInfo());
+        dispatchUnitMapper.updateById(update);
+        if(Constants.equalsInteger(param.getWorktypeStatus(),Constants.ONE)){
+            //瀹℃牳閫氳繃锛屼慨鏀圭姸鎬侊紝浜х敓鍘嗗彶鐗堟湰
+            newVersionData(model,update);
+        }else{
+            //鏇存柊鏄庣粏鏁版嵁涓哄鏍稿け璐�
+            duSolutionMapper.update(null,new UpdateWrapper<DuSolution>().lambda()
+                    .set(DuSolution::getCheckDate,new Date() )
+                    .set(DuSolution::getStatus,Constants.TWO)
+                    .set(DuSolution::getCheckUserId,update.getCheckUserId())
+                    .set(DuSolution::getCheckInfo,update.getCheckInfo())
+                    .eq(DuSolution::getDispatchUnitId,update.getId()));
+        }
+        return  1;
+    }
 
+    private void newVersionData(DispatchUnit model, DispatchUnit update) {
+        dispatchUnitMapper.update(null,new UpdateWrapper<DispatchUnit>().lambda()
+                .set(DispatchUnit::getDataType,Constants.ZERO)
+                .eq(DispatchUnit::getIsdeleted,Constants.ZERO)
+                .eq(DispatchUnit::getBaseId,model.getId()));
+        DispatchUnit newVersion = new DispatchUnit();
+        BeanUtils.copyProperties(model, newVersion);
+        newVersion.setWorktypeStatus(Constants.ONE);
+        newVersion.setCheckDate(update.getEditDate());
+        newVersion.setCheckUserId(update.getCheckUserId());
+        newVersion.setCheckInfo(update.getCheckInfo());
+        newVersion.setCreateDate(update.getCreateDate());
+        newVersion.setCreator(update.getEditor());
+        newVersion.setBaseId(model.getBaseId());
+        newVersion.setDataType(Constants.TWO);
+        dispatchUnitMapper.insert(newVersion);
+
+        List<DuWorktype> newWorktypes = new ArrayList<>();
+        List<DuSolution> solutions = duSolutionMapper.selectList(new QueryWrapper<DuSolution>().lambda()
+                .eq(DuSolution::getIsdeleted,Constants.ZERO)
+                .eq(DuSolution::getDispatchUnitId,model.getSolutionId()));
+        if(solutions == null || solutions.size() ==0){
+            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ユ淳閬e崟浣嶆湭璁剧疆鏂规宸ョ淇℃伅锛屽鏍搁�氳繃澶辫触锛�");
+        }
+        for (DuSolution s : solutions){
+            DuSolution ns = new DuSolution();
+            BeanUtils.copyProperties(s, ns);
+            ns.setDispatchUnitId(newVersion.getId());
+            ns.setCheckDate(update.getEditDate());
+            ns.setStatus(Constants.ONE);
+            ns.setCheckInfo(update.getCheckInfo());
+            ns.setCheckUserId(update.getCheckUserId());
+            duSolutionMapper.insert(ns);
+            List<DuWorktype> worktypes = duWorktypeMapper.selectList(new QueryWrapper<DuWorktype>().lambda()
+                    .eq(DuWorktype::getIsdeleted,Constants.ZERO)
+                    .eq(DuWorktype::getDuSolutionId,s.getId()));
+            if(worktypes == null || worktypes.size() ==0){
+                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ユ淳閬e崟浣嶆柟妗堝瓨鍦ㄦ柟妗堟槸鏈缃伐绉嶄俊鎭俊鎭紝瀹℃牳閫氳繃澶辫触锛�");
+            }
+            for (DuWorktype w : worktypes) {
+                DuWorktype nw = new DuWorktype();
+                BeanUtils.copyProperties(w, nw);
+                nw.setCheckDate(update.getEditDate());
+                nw.setStatus(Constants.ONE);
+                nw.setDuSolutionId(ns.getId());
+                nw.setCheckInfo(update.getCheckInfo());
+                nw.setCheckUserId(update.getCheckUserId());
+                newWorktypes.add(nw);
+            }
+        }
+        if(newWorktypes!=null &&newWorktypes.size()>0){
+            //鎵归噺鏌ヨ宸ョ鍏宠仈璁板綍
+            duWorktypeMapper.insertBatchSomeColumn(newWorktypes);
+        }
+    }
+
+    @Override
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    public Integer check(DispatchUnit param) {
+        if(Objects.isNull(param)
+                ||Objects.isNull(param.getId())
+                ||param.getStatus() == null
+                ||!(param.getStatus() ==Constants.ONE || param.getStatus() == Constants.TWO)){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        DispatchUnit model = dispatchUnitMapper.selectById(param.getId());
+        if(Objects.isNull(model) || Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO) ||!Constants.equalsInteger(model.getDataType(),Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌娲鹃仯鍗曚綅淇℃伅");
+        }
+        if(Constants.equalsInteger(model.getStatus(),Constants.ZERO)){
+            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ユ淳閬e崟浣嶅伐绉嶅凡瀹℃牳锛岃鍕块噸澶嶆彁浜");
+        }
+        DispatchUnit update = new DispatchUnit();
+        update.setEditor(user.getId());
+        update.setEditDate(new Date());
+        update.setId(model.getId());
+        update.setStatus(param.getStatus());
+        update.setWorktypeStatus(param.getWorktypeStatus());
+        update.setCheckDate(update.getEditDate());
+        update.setCheckUserId(user.getId());
+        update.setCheckInfo(param.getCheckInfo());
+        dispatchUnitMapper.updateById(update);
+        if(Constants.equalsInteger(model.getStatus(),Constants.ONE)){
+            //瀹℃牳閫氳繃锛屼慨鏀圭姸鎬侊紝浜х敓鍘嗗彶鐗堟湰
+            newVersionData(model,update);
+        }else{
+            //鏇存柊鏄庣粏鏁版嵁涓哄鏍稿け璐�
+            duSolutionMapper.update(null,new UpdateWrapper<DuSolution>().lambda()
+                    .set(DuSolution::getCheckDate,new Date() )
+                    .set(DuSolution::getStatus,Constants.TWO)
+                    .set(DuSolution::getCheckUserId,update.getCheckUserId())
+                    .set(DuSolution::getCheckInfo,update.getCheckInfo())
+                    .eq(DuSolution::getDispatchUnitId,update.getId()));
+        }
+        return  1;
+    }
     @Override
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
     public Integer create(SaveDispatchUnitDTO saveDispatchUnitDTO) {

--
Gitblit v1.9.3