From 74c7d32b4339d241af18b33b3691dc912256306c Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 29 五月 2024 18:36:50 +0800
Subject: [PATCH] 代码初始化

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java |  164 ++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 140 insertions(+), 24 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
index b1a219e..ad7ed25 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -13,6 +13,8 @@
 import com.doumee.dao.business.join.ApproveJoinMapper;
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.business.vo.ApproveDataVO;
+import com.doumee.dao.system.join.NoticesJoinMapper;
+import com.doumee.dao.system.model.Notices;
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.dao.web.response.InternalHomeVO;
 import com.doumee.service.business.ApproveService;
@@ -23,6 +25,7 @@
 import com.doumee.service.system.NoticesService;
 import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import io.swagger.models.auth.In;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.xpath.operations.Bool;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -69,6 +72,9 @@
 
     @Autowired
     private VisitsMapper visitsMapper;
+
+    @Autowired
+    private NoticesJoinMapper noticesJoinMapper;
 
     @Override
     public Integer create(Approve approve) {
@@ -321,6 +327,31 @@
         }
     }
 
+    public void createNoticesData(List<Approve> approveList){
+        for (Approve approve:approveList) {
+            Notices notices = new Notices();
+            notices.setCreateDate(new Date());
+            notices.setIsdeleted(Constants.ZERO);
+            notices.setObjId(approve.getObjId());
+            notices.setObjId(approve.getApproveType());
+            if(Constants.equalsInteger(approve.getType(),Constants.approveObjectType.unConstructionVisit)
+            || Constants.equalsInteger(approve.getType(),Constants.approveObjectType.constructionVisit)){
+                notices.setType(Constants.ZERO);
+            }else if(Constants.equalsInteger(approve.getType(),Constants.approveObjectType.visitReporting)){
+                notices.setType(Constants.ONE);
+            }
+
+            
+            
+        }
+        
+        
+
+
+
+
+    }
+
 
     public void organizeApproveCopyData(ApproveTempl approveTempl,List<ApproveParam> approveCopyList,Integer businessId,List<Approve> approveList){
         for (ApproveParam approveParam:approveCopyList) {
@@ -441,13 +472,20 @@
         return auditCompany;
     }
 
-    public ApproveDataVO arrangeApprovedDataNew(Integer businessId, Integer businessType, Integer memberId){
+    @Override
+    public ApproveDataVO arrangeApprovedData(Integer businessId, Integer businessType, Integer memberId){
         ApproveDataVO approveDateVO = new ApproveDataVO();
         approveDateVO.setApproveList(new ArrayList<>());
         approveDateVO.setCanBeApproved(Constants.ZERO);
         List<Approve> approveGroupList = approveJoinMapper.selectJoinList(Approve.class,
                 new MPJLambdaWrapper<Approve>().
                         selectAll(Approve.class)
+                        .selectAs(Member::getName,Approve::getMemberName)
+                        .selectAs(Member::getPhone,Approve::getMemberPhone)
+                        .selectAs(Member::getFaceImg,Approve::getFaceImg)
+                        .selectAs(Company::getCompanyNamePath,Approve::getCompanyName)
+                        .leftJoin(Member.class,Member::getId,Approve::getChekorId)
+                        .leftJoin(Company.class,Company::getId,Member::getCompanyId)
                         .eq(Approve::getIsdeleted,Constants.ZERO)
                         .eq(Approve::getObjId,businessId)
                         .eq(Approve::getObjType,businessType)
@@ -455,7 +493,8 @@
         );
 
         //鏌ユ壘鍏ㄩ儴levelList
-        List<Approve> levelList = getLevelListFromResult(approveGroupList);
+        List<Approve> levelList = getLevelListFromResult(approveGroupList,approveDateVO,memberId);
+        List<Approve> copyList = getAllCopyList(approveGroupList);
         //閬嶅巻level鏌ヨ姣忎竴绾у埆涓氬姟鏁版嵁
         for(Approve level:levelList){
             List<Approve> tlist = getLevelInfoFromList(level,approveGroupList);
@@ -466,7 +505,27 @@
                 break;
             }
         }
+
+        //澶勭悊鎶勯�佽褰�
+        if (CollectionUtils.isNotEmpty(copyList)) {
+            Approve waitModel = new Approve();
+            waitModel.setApproveType(Constants.ONE);
+            waitModel.setStatusInfo("鎶勯��");
+            waitModel.setStatus(Constants.ONE);
+            waitModel.setType(Constants.ONE);
+            waitModel.setApproveList(copyList);
+            approveDateVO.getApproveList().add(waitModel);
+        }
+
         return approveDateVO;
+    }
+
+    private List<Approve> getAllCopyList(List<Approve> approveGroupList) {
+        List<Approve> copyList = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(approveGroupList)) {
+            copyList.addAll(approveGroupList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).collect(Collectors.toList()));
+        }
+        return copyList;
     }
 
     private List<Approve> getLevelInfoFromList(Approve level,List<Approve> approveGroupList) {
@@ -481,8 +540,9 @@
         Approve  refuseModel = new Approve();//宸叉嫆缁濈殑璁板綍
         List<Approve> waitList = new ArrayList<>();  //鏌ヨ鍏ㄩ儴鏈鐞嗙殑闆嗗悎
         List<Approve> otherPassList = new ArrayList<>();//浠栦汉宸插鐞嗙殑璁板綍闆�
-        dealGroupListBiz(level,passList,refuseModel,waitList,otherPassList);
-        if(refuseModel !=null){
+        List<Approve> levelApprove = approveGroupList.stream().filter(i->Constants.equalsInteger(i.getLevel(),level.getLevel())).collect(Collectors.toList());
+        dealGroupListBiz(level,levelApprove,approveGroupList,passList,refuseModel,waitList,otherPassList);
+        if(Objects.nonNull(refuseModel) && Objects.nonNull(refuseModel.getId())){
             //瀛樺湪鎷掔粷鐨勶紝鍙渶瑕佽繑鍥炰竴鏉″鐞嗘暟鎹紝鍚庣画涓嶉渶瑕佸洖鏄�
             list.add(refuseModel);
             return list;
@@ -494,20 +554,34 @@
                 Approve waitModel = new Approve();
                 waitModel.setApproveType(Constants.ONE);
                 waitModel.setStatusInfo(StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�")+"澶勭悊涓�");
-                waitModel.setStatus(Constants.ONE);
+                waitModel.setStatus(Constants.equalsInteger(waitList.get(Constants.ZERO).getStatus(),Constants.ONE)?Constants.ONE:Constants.ZERO);
                 waitModel.setApproveList(waitList);
                 list.add(waitModel);
             }
         }else {
-            //濡傛灉鏄垨绛�
-            if(otherPassList.size()>0){
+            if((waitList.size()> 0 || otherPassList.size()>0)){
                 Approve waitModel = new Approve();
                 waitModel.setApproveType(Constants.ONE);
-                waitModel.setStatusInfo(StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�")+"锛堟妱閫佹垨绛惧鎵逛汉锛�");
-                waitModel.setStatus(Constants.ONE);
-                waitModel.setApproveList(otherPassList);
+                waitModel.setStatusInfo(passList.size()<=0?StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�"):"鎶勯�佹垨绛惧鎵逛汉");
+                waitModel.setStatus(passList.size()>0?Constants.ONE:Constants.ZERO);
+                List<Approve> approveList = new ArrayList<>();
+                approveList.addAll(waitList);
+                //濡傛灉鏄垨绛�
+                if(passList.size()>0){
+                    approveList.addAll(otherPassList);
+                }
+                waitModel.setApproveList(approveList);
                 list.add(waitModel);
             }
+            //濡傛灉鏄垨绛�
+//            if(otherPassList.size()>0){
+//                Approve waitModel = new Approve();
+//                waitModel.setApproveType(Constants.ONE);
+//                waitModel.setStatusInfo(StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�")+"锛堟妱閫佹垨绛惧鎵逛汉锛�");
+//                waitModel.setStatus(Constants.ONE);
+//                waitModel.setApproveList(otherPassList);
+//                list.add(waitModel);
+//            }
         }
 
 
@@ -515,22 +589,65 @@
 
     }
 
-    private void dealGroupListBiz(Approve level, List<Approve> passList, Approve refuseModel, List<Approve> waitList, List<Approve> otherPassList) {
-
-        //TODO----------rk
+    private void dealGroupListBiz(Approve level, List<Approve> levelApprove,List<Approve> approveGroupList, List<Approve> passList, Approve refuseModel, List<Approve> waitList, List<Approve> otherPassList) {
+        //鏌ヨ鏄惁瀛樺湪鎷掔粷鏁版嵁
+        for (Approve approve:levelApprove) {
+            if(Constants.equalsInteger(Constants.approveStatus.pass,approve.getStatus())){
+                passList.add(approve);
+            }else if(Constants.equalsInteger(Constants.approveStatus.otherDeal,approve.getStatus())){
+                otherPassList.add(approve);
+            }else if(Constants.equalsInteger(Constants.approveStatus.auditIng,approve.getStatus())||Constants.equalsInteger(Constants.approveStatus.wait,approve.getStatus())){
+                waitList.add(approve);
+            }else if(Constants.equalsInteger(Constants.approveStatus.unPass,approve.getStatus())){
+                refuseModel = approve;
+            }
+        }
     }
 
     private List<Approve> sortByCreateTime(List<Approve> passList) {
-        //TODO----------rk
-
+        Collections.sort(passList, (a, b) -> a.getCheckDate().compareTo(b.getCheckDate()));
         return  passList;
     }
 
 
-    private List<Approve> getLevelListFromResult(List<Approve> approveGroupList) {
-        //TODO----------rk
-        return  null;
+    private List<Approve> getLevelListFromResult(List<Approve> approveGroupList,ApproveDataVO approveDataVO,Integer memberId) {
+        approveDataVO.setCanBeApproved(Constants.ZERO);
+        approveDataVO.setDriverParam(Constants.ZERO);
+        List<Approve> approveList = new ArrayList<>();
+        String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
+                +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
+        for (Approve approve:approveGroupList) {
+            if(StringUtils.isNotBlank(approve.getFaceImg())){
+                approve.setFaceImg(path + approve.getFaceImg());
+            }
+            if(Constants.equalsInteger(approve.getType(),Constants.ONE)){
+                continue;
+            }
+            if(Constants.equalsInteger(approve.getChekorId(),memberId)){
+                approveDataVO.setCanBeApproved(Constants.ONE);
+                approveDataVO.setDriverParam(approve.getDriverParam());
+            }
+            if(notExsits(approveList,approve.getLevel())){
+                approveList.add(approve);
+            }
+        }
+
+        if(CollectionUtils.isEmpty(approveList)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀹℃壒淇℃伅锛氱骇鍒暟鎹紓甯�");
+        }
+
+        return  approveList;
     }
+
+    private boolean notExsits(List<Approve> approveList, Integer level) {
+        for (Approve approve:approveList) {
+            if(Constants.equalsInteger(approve.getLevel(),level)){
+                return false;
+            }
+        }
+        return true;
+    }
+
 
     /**
      * 鏁寸悊 瀹℃壒鏁版嵁
@@ -538,18 +655,18 @@
      * @param businessType
      * @return
      */
-    @Override
-    public ApproveDataVO arrangeApprovedData(Integer businessId, Integer businessType, Integer memberId){
+//    @Override
+    public ApproveDataVO arrangeApprovedDataOld(Integer businessId, Integer businessType, Integer memberId){
         ApproveDataVO approveDateVO = new ApproveDataVO();
         approveDateVO.setCanBeApproved(Constants.ZERO);
         List<Approve> approveGroupList = approveJoinMapper.selectJoinList(Approve.class,
                 new MPJLambdaWrapper<Approve>().
-                        select(Approve::getLevel,Approve::getType)
+                        select(Approve::getLevel,Approve::getType,Approve::getTitle,Approve::getApproveType)
                         .eq(Approve::getIsdeleted,Constants.ZERO)
                         .eq(Approve::getObjId,businessId)
                         .isNotNull(Approve::getLevel)
                         .eq(Approve::getObjType,businessType)
-                        .groupBy(Approve::getLevel,Approve::getType)
+                        .groupBy(Approve::getLevel,Approve::getType,Approve::getTitle,Approve::getApproveType)
         );
         if(CollectionUtils.isEmpty(approveGroupList)){
             return approveDateVO;
@@ -673,6 +790,7 @@
         approve.setCheckInfo(approveDTO.getCheckInfo());
         approve.setCheorId(approveDTO.getLoginUserInfo().getMemberId().toString());
         approve.setCheckorName(approve.getLoginUserInfo().getRealname());
+        approve.setCheckDate(new Date());
         approve.setStatusInfo(approveDTO.getStatus()==Constants.TWO?"瀹℃壒閫氳繃":approveDTO.getCheckInfo());
         Visits visits = new Visits();
         CarUseBook carUseBook = new CarUseBook();
@@ -762,8 +880,6 @@
                 //TODO 瀹℃壒鏈�氳繃閫氱煡
 
             }
-
-
         }else if(approveDTO.getObjType().equals(Constants.approveObjectType.logisticsCarUse)){
             //TODO  鐗╂祦杞﹂绾�
 

--
Gitblit v1.9.3