From 70577a6d6cf2bded29e71dcad11a0c2605193d20 Mon Sep 17 00:00:00 2001
From: lishuai <260038442@qq.com>
Date: 星期二, 26 十二月 2023 10:32:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java |  166 ++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 133 insertions(+), 33 deletions(-)

diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
index 5a769c6..b5b1367 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
@@ -4,22 +4,20 @@
 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.AcsDeviceListRequest;
+import com.doumee.core.haikang.model.param.request.CarChargeAddRequest;
+import com.doumee.core.haikang.model.param.request.CarChargeDelRequest;
 import com.doumee.core.haikang.model.param.request.ParkListRequest;
-import com.doumee.core.haikang.model.param.respose.AcsDeviceInfoResponse;
-import com.doumee.core.haikang.model.param.respose.AcsDeviceListResponse;
 import com.doumee.core.haikang.model.param.respose.ParkListResponse;
 import com.doumee.core.haikang.service.HKService;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
-import com.doumee.dao.business.DeviceMapper;
 import com.doumee.dao.business.ParksMapper;
-import com.doumee.dao.business.model.Device;
-import com.doumee.dao.business.model.Parks;
+import com.doumee.dao.business.join.ParkBookJoinMapper;
+import com.doumee.dao.business.model.*;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -34,7 +32,97 @@
 
     @Autowired
     private ParksMapper parksMapper;
+    @Autowired
+    private ParkBookJoinMapper parkBookMapper;
+    @Override
+    public  void syncParkBookData() {
+        if(Constants.DEALING_HK_PARKBOOK){
+            return   ;
+        }
+        Constants.DEALING_HK_PARKBOOK =true;
+        try {
+            //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑鏁版嵁
+            List<ParkBook> list =getDealList ();
+            if(list ==null || list.size()==0){
+                return;
+            }
+            Date date = new Date();
+            //鍏堝嚭鎵�鏈夐渶瑕佸彇娑堝寘鏈熺殑鏁版嵁璁板綍
+            for(ParkBook c : list) {
+                if(Constants.equalsObject(c.getIsdeleted(),Constants.ONE)){
+                    //濡傛灉鍙栨秷棰勭害锛屽垯杩涜鍙栨秷鍖呮湡
+                    if(StringUtils.isNotBlank(c.getParkHkId())
+                            && StringUtils.isNotBlank(c.getCarCode())){
+                       boolean result =  cancelParkBookHk(c);
+                        c.setHkStatus(result?Constants.ONE:Constants.TWO);
+                    }else{
+                        c.setHkStatus(Constants.TWO);//涓嬪彂澶辫触
+                    }
+                    c.setHkDate(date);
+                    parkBookMapper.updateById(c);
+                }
+            }
+            //澶勭悊鎵�鏈夐渶瑕佸寘鏈熺殑杞﹁締鏁版嵁璁板綍
+            for(ParkBook c : list) {
+                if(Constants.equalsObject(c.getIsdeleted(),Constants.ONE)) {
+                    //鍒犻櫎鐨勫凡澶勭悊锛岃烦杩囧鐞�
+                    continue;
+                }
+                //鏁版嵁涓嶅悎娉曪紝鐩存帴鎻愮ず涓嬪彂澶辫触
+                if(StringUtils.isNotBlank(c.getParkHkId())
+                        && StringUtils.isNotBlank(c.getCarCode())){
+                    boolean result =  addParkBookHk(c);
+                    c.setHkStatus(result?Constants.ONE:Constants.TWO);
+                }else{
+                    c.setHkStatus(Constants.TWO);
+                }
+                c.setHkDate(date);
+                parkBookMapper.updateById(c);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }finally {
+            Constants.DEALING_HK_PARKBOOK =false;
+        }
 
+    }
+
+    private boolean addParkBookHk(ParkBook c) {
+        CarChargeAddRequest param = new CarChargeAddRequest();
+        param.setPlateNo(c.getCarCode());
+        param.setParkSyscode(c.getParkHkId());
+        param.setStartTime(DateUtil.getISO8601Timestamp(c.getStartTime()));
+        param.setEndTime(DateUtil.getISO8601Timestamp(c.getEndTime()));
+        BaseResponse response = HKService.carChargeAddtion(param);
+        if(response!=null
+                && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)){
+            return true;
+        }else{
+            return  false;
+        }
+    }
+    private boolean cancelParkBookHk(ParkBook c) {
+        CarChargeDelRequest param = new CarChargeDelRequest();
+        param.setPlateNo(c.getCarCode());
+        param.setParkSyscode(c.getParkHkId());
+        BaseResponse response = HKService.carChargeDeletion(param);
+        if(response!=null
+                && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)){
+            return true;
+        }else{
+            return  false;
+        }
+    }
+
+    private List<ParkBook> getDealList() {
+        MPJLambdaWrapper<ParkBook> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.selectAll(ParkBook.class);
+        queryWrapper.selectAs(Parks::getHkId,ParkBook::getParkHkId);
+        queryWrapper.leftJoin(Parks.class,Parks::getId,ParkBook::getParkId);
+        queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode);
+        List<ParkBook> list = parkBookMapper.selectJoinList(ParkBook.class,queryWrapper);
+        return list;
+    }
     /**
      * 鍚屾娴峰悍鍋滆溅搴撴暟鎹�
      * @param param
@@ -43,36 +131,47 @@
     @Override
 //    @Async
     public   String syncHkParks(ParkListRequest param){
-        List<Parks> deleteList = new ArrayList<>();
-        List<Parks> addList = new ArrayList<>();
-        List<Parks> editList = new ArrayList<>();
-        Date date = new Date();
-        //鏌ヨ鍏ㄩ儴褰撳墠鏁版嵁
-        List<Parks> allList = parksMapper.selectList(null);
+        if(Constants.DEALING_HK_SYNCPRIVILEGE){
+            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鍚屾浠诲姟姝e湪鎵ц鍝︼紝璇风◢鍚庢煡鐪嬬粨鏋滐紒") ;
+        }
+        Constants.DEALING_HK_SYNCPRIVILEGE =true;
+        try {
+            List<Parks> deleteList = new ArrayList<>();
+            List<Parks> addList = new ArrayList<>();
+            List<Parks> editList = new ArrayList<>();
+            Date date = new Date();
+            //鏌ヨ鍏ㄩ儴褰撳墠鏁版嵁
+            List<Parks> allList = parksMapper.selectList(null);
             //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
-        param = new ParkListRequest();
-        BaseResponse<List<ParkListResponse>> response = HKService.parkList(param);
-        if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
-            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
-        }
-        List<ParkListResponse> allHkList = response.getData();
-         // 鑾峰彇澧炲垹鏀规暟鎹泦鍚�
-        getDataChangeList(allList,allHkList,addList,editList,deleteList,date);
-        if(deleteList.size()>0){
-            //閫昏緫鍒犻櫎
-            for(Parks d : deleteList){
-                parksMapper.updateById(d);
+            param = new ParkListRequest();
+            BaseResponse<List<ParkListResponse>> response = HKService.parkList(param);
+            if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
             }
-        }
-        if(addList.size()>0){
-            parksMapper.insertBatchSomeColumn(addList);
-        }
-        if(editList.size()>0){
-            for(Parks d : editList){
-                parksMapper.updateById(d);
+            List<ParkListResponse> allHkList = response.getData();
+            // 鑾峰彇澧炲垹鏀规暟鎹泦鍚�
+            getDataChangeList(allList,allHkList,addList,editList,deleteList,date);
+            if(deleteList.size()>0){
+                //閫昏緫鍒犻櫎
+                for(Parks d : deleteList){
+                    parksMapper.updateById(d);
+                }
             }
+            if(addList.size()>0){
+                parksMapper.insertBatchSomeColumn(addList);
+            }
+            if(editList.size()>0){
+                for(Parks d : editList){
+                    parksMapper.updateById(d);
+                }
+            }
+            return "鍚屾鏁版嵁锛氭柊澧炪��"+addList.size()+"銆戞潯锛屾洿鏂般��"+editList.size()+"銆戞潯锛屽垹闄ゃ��"+deleteList.size()+"銆戞潯";
+        }catch (Exception e){
+            e.printStackTrace();
+            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "鍚屾澶辫触锛�");
+        }finally {
+            Constants.DEALING_HK_SYNCPRIVILEGE =false;
         }
-        return "鍚屾鏁版嵁锛氭柊澧炪��"+addList.size()+"銆戞潯锛屾洿鏂般��"+editList.size()+"銆戞潯锛屽垹闄ゃ��"+deleteList.size()+"銆戞潯";
     }
     private void getDataChangeList(List<Parks> allList, List<ParkListResponse> allHkList, List<Parks> addList, List<Parks> editList,List<Parks> deleteList, Date date) {
         if(allHkList!=null && allHkList.size()>0){
@@ -109,6 +208,7 @@
         model.setEditDate(DateUtil.getISO8601DateByStr(device.getUpdateTime()));
         model.setHkId(device.getParkIndexCode());
         model.setHkStatus(Constants.ONE);
+        model.setStatus(Constants.ONE);
         return  model;
     }
 

--
Gitblit v1.9.3