From a8c8e4281c0298ce9a946b1d65166a2fe438ce1c Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期四, 26 九月 2024 09:04:14 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java |  172 ++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 144 insertions(+), 28 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 b698dd5..0d6f813 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
@@ -4,6 +4,12 @@
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
+import com.doumee.core.haikang.model.HKConstants;
+import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.model.param.request.CarChargeAddRequest;
+import com.doumee.core.haikang.model.param.request.ParkReservationAddRequest;
+import com.doumee.core.haikang.model.param.respose.ParkReservationAddResponse;
+import com.doumee.core.haikang.service.HKService;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
@@ -27,6 +33,8 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.service.business.impl.hksync.HkSyncParkServiceImpl;
+import com.doumee.service.business.impl.hksync.fhk.HkSyncVehicleFromHKServiceImpl;
 import com.doumee.service.system.NoticesService;
 import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
@@ -96,7 +104,18 @@
     private PlatformJobMapper platformJobMapper;
     @Autowired
     private PlatformLogMapper platformLogMapper;
+    @Autowired
+    private PlatformReasonMapper platformReasonMapper;
 
+
+    @Autowired
+    private ParksMapper parksMapper;
+
+    @Autowired
+    private ParkBookMapper parkBookMapper;
+
+    @Autowired
+    private VisitParkMapper visitParkMapper;
 
 
     @Override
@@ -326,6 +345,7 @@
             internalHomeVO.setNoticeCopyNum(
                     noticesList.stream().filter(i->Constants.equalsInteger(i.getUserId(),noticesDTO.getMemberId())
                             &&Constants.equalsInteger(i.getSendacopy(),Constants.ONE)
+                            &&Constants.equalsInteger(i.getReaded(),Constants.ZERO)
                     ).count()
             );
         }
@@ -476,7 +496,7 @@
             List<String> memberNameList =memberList.stream().map(m->m.getName()).collect(Collectors.toList());
             String memberNames = String.join(",",memberNameList);
             Integer noticeType = Constants.approveTypeToNoticeType(approveTempl.getType());
-            String title = "銆愯瀹㈢敵璇枫�戠敵璇蜂汉 - ";
+            String title = "[璁垮鐢宠]鐢宠浜�-";
             Map<String,Object> jsonMap = new HashMap<>();
             for (int j = 0; j < memberList.size(); j++) {
                 Member member = memberList.get(j);
@@ -538,8 +558,8 @@
                 approve.setTemplatId(approveTempl.getId());
                 approve.setChekorId(memberId);
                 approve.setStatus(i==0?Constants.ONE:Constants.ZERO);
-                approve.setStatusInfo(i==0?"瀹℃壒涓�":"寰呭鎵�");
-                approve.setTitle("瀹℃壒浜�");
+                approve.setStatusInfo(i==0?"瀹℃壒涓�":"澶勭悊涓�");
+                approve.setTitle(StringUtils.isBlank(approveParam.getRemark())?"瀹℃壒涓�":approveParam.getRemark());
                 approve.setIsEndCheck((i+1) == approveParamList.size()?Constants.ONE:Constants.ZERO);
                 approve.setObjId(businessId);
                 approve.setLevel(i+1);
@@ -575,7 +595,7 @@
             if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.visit)){
                 title = title + visits.getName();
             }else{
-                title = "銆愯瀹㈡姤澶囥�戠敵璇蜂汉 - " + visits.getName();
+                title = "[璁垮鎶ュ]鐢宠浜�-" + visits.getName();
             }
             jsonMap.put("name", "璁块棶浜�:" + visits.getCompanyName() + " - " + visits.getReceptMemberName());
             jsonMap.put("sTime", "鍏ュ洯鏃堕棿:" + DateUtil.DateToStr(visits.getStarttime() , "yyyy-MM-dd HH:mm"));
@@ -596,7 +616,7 @@
             if(Objects.isNull(carUseBook)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌涓氬姟鏁版嵁淇℃伅");
             }
-            title = "銆愮敤杞︾敵璇枫�戠敵璇蜂汉 - " + carUseBook.getMemberName();
+            title = "[鐢ㄨ溅鐢宠]鐢宠浜�-" + carUseBook.getMemberName();
             jsonMap.put("name", "鐢宠浜�:" + carUseBook.getCompanyName() + " - " + carUseBook.getMemberName());
             jsonMap.put("sTime", "寮�濮嬫椂闂�:" + DateUtil.DateToStr(carUseBook.getStartTime() , "yyyy-MM-dd HH:mm"));
             jsonMap.put("eTime", "缁撴潫鏃堕棿:" + DateUtil.DateToStr(carUseBook.getEndTime() , "yyyy-MM-dd HH:mm"));
@@ -608,7 +628,7 @@
             if(Objects.isNull(platformBooks)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌涓氬姟鏁版嵁淇℃伅");
             }
-            title = "銆愮墿娴佽溅鍏ュ洯棰勭害銆戠敵璇蜂汉 - " + platformBooks.getDriverName();
+            title = "[鐗╂祦杞﹀叆鍥绾鐢宠浜�-" + platformBooks.getDriverName();
             jsonMap.put("inType", "鍏ュ簱绫诲瀷锛�"+(Constants.equalsInteger(platformBooks.getInType(),Constants.ZERO)?"鏁存墭鐩�":"浠剁儫"));
             jsonMap.put("totalNum", "鎬昏繍杈撻噺锛�"+platformBooks.getTotalNum()+"涓囨敮");
             jsonMap.put("arriveDate", "鍒板満鏃堕棿锛�" + DateUtil.DateToStr(platformBooks.getArriveDate() , "yyyy-MM-dd HH:mm"));
@@ -800,7 +820,7 @@
     private List<Approve> getLevelInfoFromList(Approve level,List<Approve> approveGroupList) {
         List<Approve> list = new ArrayList<>();
         if(Constants.equalsInteger(level.getApproveType(),Constants.TWO)){
-            level.setApproveType(Constants.ZERO);
+            level.setApproveType(Constants.TWO);
             //濡傛灉鏄崟浜哄鎵�
             list.add(level);
             return list;
@@ -827,11 +847,17 @@
                 waitModel.setType(Constants.ZERO);
                 waitModel.setTitle(StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�"));
                 waitModel.setStatus(Constants.equalsInteger(waitList.get(Constants.ZERO).getStatus(),Constants.ONE)?Constants.ONE:Constants.ZERO);
-                waitModel.setStatusInfo("澶勭悊涓�");
-                if(Constants.equalsInteger(level.getStatus(),Constants.approveStatus.auditIng)
-                        ||Constants.equalsInteger(level.getStatus(),Constants.approveStatus.pass)){
-                    waitModel.setMemberName(waitList.size() +"浜轰細绛�");
+                if(Constants.equalsInteger(waitModel.getStatus(),Constants.approveStatus.wait)){
+                    waitModel.setStatusInfo("寰呭鐞�");
+                }else if(Constants.equalsInteger(waitModel.getStatus(),Constants.approveStatus.auditIng)){
+                    waitModel.setStatusInfo("澶勭悊涓�");
                 }
+
+                waitModel.setMemberName(waitList.size() +"浜轰細绛�");
+//                if(Constants.equalsInteger(level.getStatus(),Constants.approveStatus.auditIng)
+//                        ||Constants.equalsInteger(level.getStatus(),Constants.approveStatus.pass)){
+//                    waitModel.setMemberName(waitList.size() +"浜轰細绛�");
+//                }
                 if(CollectionUtils.isNotEmpty(waitList)){
                     waitModel.setCreateDate(waitList.get(Constants.ZERO).getCreateDate());
                 }
@@ -846,15 +872,18 @@
         }else {
             if((waitList.size()> 0 || otherPassList.size()>0)){
                 Approve waitModel = new Approve();
-                waitModel.setApproveType(Constants.ONE);
+                waitModel.setApproveType(Constants.ZERO);
                 if(Constants.equalsInteger(level.getStatus(),Constants.approveStatus.pass)){
-                    waitModel.setStatus(Constants.approveStatus.pass);
+                    waitModel.setStatus(level.getStatus());
                     waitModel.setType(Constants.ONE);
-                    waitModel.setTitle("瀹℃壒浜猴紙鎶勯�佹垨绛惧鎵逛汉锛�");
+                    waitModel.setCheckDate(level.getCheckDate());
+                    waitModel.setTitle(StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�"));
                 }else{
+                    waitModel.setStatus(level.getStatus());
                     waitModel.setType(Constants.ZERO);
-                    waitModel.setStatusInfo(passList.size()<=0?StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�"):"鎶勯�佹垨绛惧鎵逛汉");
-                    waitModel.setStatus(passList.size()>0?Constants.ONE:Constants.ZERO);
+                    //waitModel.setStatusInfo(passList.size()<=0?StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�"):"鎶勯�佹垨绛惧鎵逛汉");
+                    waitModel.setTitle(passList.size()<=0?StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�"):"鎶勯�佹垨绛惧鎵逛汉");
+
                 }
                 List<Approve> approveList = new ArrayList<>();
                 approveList.addAll(waitList);
@@ -868,7 +897,11 @@
                 if(Constants.equalsInteger(waitModel.getStatus(),Constants.approveStatus.pass)){
                     waitModel.setMemberName("宸叉妱閫�"+ approveList.size() +"浜�");
                 }else if(Constants.equalsInteger(waitModel.getStatus(),Constants.approveStatus.wait)){
-                    waitModel.setMemberName("澶勭悊涓�");
+                    waitModel.setMemberName(waitList.size() +"浜烘垨绛�");
+                    waitModel.setStatusInfo("寰呭鐞�");
+                }else{
+                    waitModel.setMemberName(waitList.size() +"浜烘垨绛�");
+                    waitModel.setStatusInfo("澶勭悊涓�");
                 }
                 waitModel.setApproveList(approveList);
                 list.add(waitModel);
@@ -1048,6 +1081,23 @@
         return Constants.ZERO;
     }
 
+    @Override
+    public String getApproveUserName(Integer businessId,Integer businessType){
+         List<Approve> approveList = approveJoinMapper.selectJoinList(Approve.class,new MPJLambdaWrapper<Approve>()
+                 .selectAll(Approve.class)
+                 .selectAs(Member::getName,Approve::getMemberName)
+                 .leftJoin(Member.class,Member::getId,Approve::getChekorId)
+                .eq(Approve::getObjId,businessId)
+                .eq(Approve::getObjType,businessType)
+                .eq(Approve::getType,Constants.ZERO)
+                .eq(Approve::getStatus,Constants.approveStatus.auditIng)
+        );
+         if(CollectionUtils.isNotEmpty(approveList)){
+             List<String> names = approveList.stream().map(m->m.getMemberName()).collect(Collectors.toList());
+             return String.join(",",names);
+         }
+         return null;
+    }
 
 
 
@@ -1144,7 +1194,7 @@
             noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
                     .set(Notices::getEditDate,new Date())
                     .set(Notices::getParam4,approveDTO.getLoginUserInfo().getMemberId())
-                    .set(Notices::getInfo,"瀹℃壒鏈�氳繃")
+                    .set(Notices::getInfo,"宸叉嫆缁�")
                     .set(Notices::getReaded,Constants.ONE)
                     .set(Notices::getParam2,Constants.TWO)
                     .set(Notices::getStatus,Constants.ONE)
@@ -1157,7 +1207,7 @@
                         .set(Notices::getSendacopy,Constants.ONE)
                         .set(Notices::getStatus,Constants.ONE)
                         .set(Notices::getParam2,Constants.TWO)
-                        .set(Notices::getInfo,"瀹℃壒鏈�氳繃")
+                        .set(Notices::getInfo,"宸叉嫆缁�")
                         .eq(Notices::getObjId,notices.getObjId())
                         .eq(Notices::getObjType,notices.getObjType())
                         .eq(Notices::getReaded,Constants.ZERO)
@@ -1206,8 +1256,6 @@
                     if(Objects.nonNull(visits)){
                         if(Constants.equalsInteger(visits.getStatus(),Constants.ZERO)){
                              visitsMapper.update(null,new UpdateWrapper<Visits>().lambda().set(Visits::getStatus,Constants.ONE).eq(Visits::getId,visits.getId()));
-                        }else{
-                            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌涓氬姟鏁版嵁瀵硅薄!璇峰埛鏂伴噸璇�");
                         }
                     }
 
@@ -1269,6 +1317,7 @@
                 .set(Notices::getEditDate,new Date())
                 .set(Notices::getReaded,Constants.ONE)
                 .set(Notices::getStatus,Constants.ONE)
+                .set(Notices::getInfo,Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)?"宸查�氳繃":"宸叉嫆缁�")
                 .set(dealBusinessBean,Notices::getParam2,Constants.ONE)
                 .set(Notices::getParam4,approveDTO.getLoginUserInfo().getMemberId())
                 .eq(Notices::getId,notices.getId())
@@ -1310,14 +1359,14 @@
         String info = "";
         List<String> memberNameList = Arrays.asList(memberNames.split(","));
         if(Constants.equalsInteger(memberNameList.size(),Constants.ONE)){
-            info = "寰� "+memberNameList.get(0)+" 澶勭悊涓�";
+            info = "寰�"+memberNameList.get(0)+"澶勭悊涓�";
         }else{
-            info = "寰� "+memberNameList.get(0)+" 绛�"+memberNameList.size()+"浜哄鐞嗕腑";
+            info = "寰�"+memberNameList.get(0)+"绛�"+memberNameList.size()+"浜哄鐞嗕腑";
         }
         //鏇存柊璇ヤ笟鍔℃暟鎹殑鎵�鏈夎褰曚俊鎭�
         noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
                         .set(!dealBusinessBean,Notices::getInfo,info)
-                        .set(dealBusinessBean,Notices::getInfo,"瀹℃壒閫氳繃")
+                        .set(dealBusinessBean,Notices::getInfo,"宸查�氳繃")
                         .set(Notices::getParam5,memberNames)
                         .eq(Notices::getObjId,notices.getObjId())
                         .eq(Notices::getObjType,notices.getObjType()));
@@ -1333,7 +1382,7 @@
                     copyNotices.setEditDate(new Date());
                     copyNotices.setParam2("2");
                     copyNotices.setParam3("");
-                    copyNotices.setInfo("瀹℃壒閫氳繃");
+                    copyNotices.setInfo("宸查�氳繃");
                     copyNotices.setUserId(copyApprove.getChekorId());
                     copyNotices.setStatus(Constants.ZERO);
                     copyNotices.setSendacopy(Constants.ONE);
@@ -1376,14 +1425,16 @@
             notices.setParam5(memberNames);
             notices.setRemark(nextDealApprove.getMemberName());
             if(Constants.equalsInteger(memberNameList.size(),Constants.ONE)){
-                notices.setInfo("寰� "+memberNameList.get(0)+" 澶勭悊涓�");
+                notices.setInfo("寰�"+memberNameList.get(0)+"澶勭悊涓�");
             }else{
-                notices.setInfo("寰� "+memberNameList.get(0)+" 绛�"+memberNameList.size()+"浜哄鐞嗕腑");
+                notices.setInfo("寰�"+memberNameList.get(0)+"绛�"+memberNameList.size()+"浜哄鐞嗕腑");
             }
             noticesJoinMapper.insert(newNotices);
         }
         return memberNames;
     }
+
+
 
     public void dealBusinessData(ApproveDTO approveDTO,Approve approve){
         if(approveDTO.getObjType().equals(Constants.approveObjectType.unConstructionVisit)
@@ -1397,6 +1448,65 @@
             visits.setStatus(approveDTO.getStatus());
             visits.setEditDate(new Date());
             visits.setEditor(approveDTO.getLoginUserInfo().getMemberId());
+            //涓嬪彂璁垮鎶ュ杞﹁締淇℃伅
+
+            if(approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)){
+                Boolean sendStatus = true;
+                //鏌ヨ褰撳墠鍚敤鐨勫仠杞﹀満
+                List<Parks> parksList = parksMapper.selectList(new QueryWrapper<Parks>()
+                        .lambda()
+                        .isNotNull(Parks::getHkId)
+                        .eq(Parks::getIsdeleted,Constants.ZERO));
+                List<VisitPark> parkBookList = new ArrayList<>();
+                if(CollectionUtils.isNotEmpty(parksList)){
+                    for (Parks parks:parksList) {
+                        VisitPark visitPark = new VisitPark();
+                        visitPark.setIsdeleted(Constants.ZERO);
+                        visitPark.setCreateDate(new Date());
+                        visitPark.setVisitApplyId(visits.getId().toString());
+                        visitPark.setCarCode(visits.getCarNos());
+                        visitPark.setParkId(parks.getId().toString());
+                        visitPark.setStartTime(visits.getStarttime());
+                        visitPark.setEndTime(visits.getEndtime());
+                        visitPark.setParkHkId(parks.getHkId());
+                        visitPark.setObjType(Constants.ZERO);
+
+                        ParkReservationAddRequest request = new ParkReservationAddRequest();
+                        request.setPlateNo(visitPark.getCarCode());
+                        request.setParkSyscode(visitPark.getParkHkId());
+                        request.setPhoneNo(visits.getPhone());
+                        request.setOwner(visits.getName());
+                        request.setAllowTimes(Constants.ONE+"");
+                        request.setIsCharge(Constants.ONE+"");
+                        request.setStartTime(Objects.isNull(visitPark.getStartTime())?DateUtil.getISO8601Timestamp2(new Date()):DateUtil.getISO8601Timestamp2(visitPark.getStartTime()));
+                        request.setEndTime(Objects.isNull(visitPark.getEndTime())?"2999-12-31T00:00:00+08:00":DateUtil.getISO8601Timestamp2(visitPark.getEndTime()));
+                        BaseResponse response =  HKService.parkReservationAddition(request);
+
+                        visitPark.setHkDate(new Date());
+                        if(response!=null
+                                && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+                            ParkReservationAddResponse parkReservationAddResponse = (ParkReservationAddResponse) response.getData();
+                            visitPark.setHkId(parkReservationAddResponse.getReserveOrderNo());
+                            visitPark.setHkStatus(Constants.ONE);
+                            visitPark.setRemark("鍖呮湡鎴愬姛");
+                        }else{
+                            visitPark.setHkStatus(Constants.TWO);
+                            visitPark.setRemark("鍖呮湡澶辫触~");
+                            //涓嬪彂澶辫触  鏍囪涓讳笟鍔$姸鎬佷负涓嬪彂澶辫触
+                            sendStatus = false;
+                        }
+                        parkBookList.add(visitPark);
+
+                    }
+                    visitParkMapper.insert(parkBookList);
+                }
+                if(sendStatus){
+                    visits.setStatus(Constants.VisitStatus.xfSuccess);
+                }else{
+                    visits.setStatus(Constants.VisitStatus.xfFail);
+                }
+            }
+
             visitsMapper.updateById(visits);
         }else if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
                 Constants.approveObjectType.unCityUseCar)){
@@ -1410,9 +1520,13 @@
             platformBooks.setStatus(approveDTO.getStatus());
             platformBooks.setEditDate(new Date());
             platformBooks.setEditor(approveDTO.getLoginUserInfo().getMemberId());
+            PlatformReason platformReason = platformReasonMapper.selectById(platformBooks.getReasonId());
 
             //鐢熸垚浠诲姟璁板綍
             PlatformJob platformJob = platformBooks.toPlatformJob();
+            platformJob.setPlatformGroupId(platformReason.getGroupId().intValue());
+            platformJob.setType(Constants.platformJobType.sgscxh);
+            platformJob.setStatus(Constants.PlatformJobStatus.WART_SIGN_IN.getKey());
             platformJobMapper.insert(platformJob);
             platformBooks.setJobId(platformJob.getId());
             platformBooksMapper.updateById(platformBooks);
@@ -1421,7 +1535,9 @@
             platformLog.setCreateDate(new Date());
             platformLog.setJobId(platformJob.getId());
             platformLog.setIsdeleted(Constants.ZERO);
-            platformLog.setObjType(Constants.PlatformJobStatus.WART_SIGN_IN.getKey());
+            platformLog.setParam4(platformJob.getCarCodeFront());
+            platformLog.setContent(Constants.PlatformJobLogType.CREATE.getInfo());
+            platformLog.setObjType(Constants.PlatformJobLogType.CREATE.getKey());
             platformLog.setObjId(platformJob.getId().toString());
             platformLog.setAfterContent(JSONObject.toJSONString(platformJob));
             platformLogMapper.insert(platformLog);

--
Gitblit v1.9.3