From 1c20c8231980a8d4b91688ff8641a06d3b2f68ab Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期二, 14 十月 2025 16:34:22 +0800 Subject: [PATCH] 改bug --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPlatformsServiceImpl.java | 126 +++++++++++++++++++++++++++++++++++++----- 1 files changed, 111 insertions(+), 15 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPlatformsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPlatformsServiceImpl.java index fdefd55..8e507e5 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPlatformsServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPlatformsServiceImpl.java @@ -1,7 +1,9 @@ package com.doumee.service.business.impl.hksync; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +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; @@ -12,17 +14,22 @@ 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.PlatformDeviceMapper; +import com.doumee.dao.business.PlatformJobMapper; import com.doumee.dao.business.PlatformMapper; import com.doumee.dao.business.model.Device; import com.doumee.dao.business.model.Platform; +import com.doumee.dao.business.model.PlatformDevice; +import com.doumee.dao.business.model.PlatformJob; +import com.github.xiaoymin.knife4j.core.util.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * 璁惧淇℃伅琛⊿ervice瀹炵幇 @@ -31,9 +38,16 @@ */ @Service public class HkSyncPlatformsServiceImpl extends HkSyncBaseServiceImpl { - @Autowired private PlatformMapper platformMapper; + @Autowired + private PlatformJobMapper platformJobMapper; + @Autowired + private PlatformDeviceMapper platformDeviceMapper; + @Autowired + @Lazy + private SystemDictDataBiz systemDictDataBiz; + /** * 鍚屾娴峰悍鏈堝彴鏁版嵁 @@ -41,7 +55,7 @@ * @return */ @Override -// @Async + @Transactional public String syncPlatforms(PlatformsListRequest param){ if(Constants.DEALING_HK_SYNCPLATFORM){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鍚屾浠诲姟姝e湪鎵ц鍝︼紝璇风◢鍚庢煡鐪嬬粨鏋滐紒") ; @@ -51,22 +65,38 @@ List<Platform> deleteList = new ArrayList<>(); List<Platform> addList = new ArrayList<>(); List<Platform> editList = new ArrayList<>(); + List<PlatformDevice> deviceList = new ArrayList<>(); Date date = new Date(); //鏌ヨ鍏ㄩ儴闂ㄧ璁惧鏁版嵁 - List<Platform> allList = platformMapper.selectList(null); + List<Platform> allList = platformMapper.selectList(new QueryWrapper<Platform>().lambda().eq(Platform::getIsdeleted,Constants.ZERO)); List<PlatformListInfoResponse> allHkList = getAllHkList(param); /** * 鑾峰彇澧炲垹鏀规暟鎹泦鍚� */ - getDataChangeList(allList,allHkList,addList,editList,deleteList,date); + getDataChangeList(allList,allHkList,addList,deviceList,editList,deleteList,date); if(deleteList.size()>0){ //閫昏緫鍒犻櫎 + List<Integer> platIds = new ArrayList<>(); for(Platform d : deleteList){ platformMapper.updateById(d); + platIds.add(d.getId()); } + //鏇存柊鍒犻櫎鐨勬湀鍙颁俊鎭垹姝e湪鎵ц鐨勪綔涓氱姸鎬佷负銆愬緟绛惧埌銆戠姸鎬� + platformJobMapper.update(null, new UpdateWrapper<PlatformJob>().lambda() + .eq(PlatformJob::getIsdeleted,Constants.ZERO) + .notIn(PlatformJob::getStatus,Constants.PlatformJobStatus.WART_SIGN_IN.getKey() + ,Constants.PlatformJobStatus.WAIT_CONFIRM.getKey() + ,Constants.PlatformJobStatus.DONE.getKey() + ,Constants.PlatformJobStatus.LEAVED.getKey() + ,Constants.PlatformJobStatus.CANCEL.getKey() ) + .in(PlatformJob::getPlatformId,platIds) + .set(PlatformJob::getPlatformId,null) + .set(PlatformJob::getPlatforms,null) + .set(PlatformJob::getStatus,Constants.PlatformJobStatus.WART_SIGN_IN.getKey()) + ); } - if(addList.size()>0){ - platformMapper.insert(addList); + if(deviceList.size()>0){ + platformDeviceMapper.insert(deviceList); } if(editList.size()>0){ for(Platform d : editList){ @@ -98,9 +128,9 @@ //鏇存柊鐘舵�� (鏈堝彴鐘舵�� 0-鏃犺溅 1-鏈夎溅 2-瓒呮椂鍋滈潬 3-閿欒鍋滈潬) for(PlatformStatusInfoResponse d : allHkList){ platformMapper.update(null,new UpdateWrapper<Platform>().lambda() - .set(Platform::getStatus,d.getStatus()) + .set(Platform::getPlatformStatus,d.getStatus()) .set(Platform::getEditDate,date) - .eq(Platform::getHkId,d.getPlatformtId())); + .eq(Platform::getHkId,d.getPlatformId())); } } }catch (Exception e){ @@ -144,7 +174,8 @@ } private void getDataChangeList(List<Platform> allList, List<PlatformListInfoResponse> allHkList, - List<Platform> addList, + List<Platform> addList , + List<PlatformDevice> deviceList, List<Platform> editList, List<Platform> deleteList, Date date) { if(allHkList!=null && allHkList.size()>0){ @@ -155,16 +186,41 @@ //濡傛灉宸插瓨鍦紝鍒欐洿鏂版暟鎹� model = initDataByHkData(model,device,date); editList.add(model); + //娓呯┖鐩戞帶鐐规暟鎹� + platformDeviceMapper.delete(new UpdateWrapper<PlatformDevice>().lambda() + .eq(PlatformDevice::getPlatformId,model.getId()) + .eq(PlatformDevice::getType,Constants.ONE) + ); + deviceList.addAll(getCameraList(device.getCameras(),model)); }else{ //濡傛灉涓嶅瓨鍦紝鍒欐柊澧炴暟鎹� model = new Platform(); model = initDataByHkData(model,device,date); + platformMapper.insert(model); addList.add(model); + deviceList.addAll(getCameraList(device.getCameras(),model)); } } } //鍒ゆ柇鑾峰彇鍒犻櫎鐨勯棬绂佽澶囷紝閫昏緫鍒犻櫎 getDeleteList(allList,allHkList,deleteList,date); + } + + private List<PlatformDevice> getCameraList(List<PlatformCameraInfoResponse> cameras, Platform model) { + List<PlatformDevice> list = new ArrayList<>(); + if(cameras!=null && cameras.size()>0){ + for(PlatformCameraInfoResponse param :cameras){ + PlatformDevice d = new PlatformDevice(); + d.setCreateDate(model.getCreateDate()); + d.setPlatformId(model.getId()); + d.setIsdeleted(Constants.ZERO); + d.setDeviceId(param.getCameraId()); + d.setName(param.getCameraName()); + d.setType(Constants.ONE); + list.add(d); + } + } + return list; } /** @@ -176,6 +232,7 @@ */ private Platform initDataByHkData(Platform model, PlatformListInfoResponse device,Date date ) { model.setIsdeleted(Constants.ZERO); + model.setCreateDate(date); model.setHkDate(date); model.setHkId(device.getPlatformId()); model.setCreateDate(DateUtil.getISO8601DateByStr(device.getCreateTime())); @@ -189,8 +246,6 @@ model.setRemark(JSONObject.toJSONString(device)); return model; } - - private Platform getExistedDevice(PlatformListInfoResponse device, List<Platform> allList) { if(allList.size()>0){ @@ -225,7 +280,48 @@ } } return true; + } + + + public List<Integer> getMenuConfig(String userId){ + try { + List<Integer> resultList= new ArrayList<>(); + Map<String,String> param = new HashMap<>(); + param.put("userId",userId); + BaseResponse<MenuDataResponse> result = HKService.getMenuConfig(param); + if(result !=null){ + if(!StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){ + throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),result.getMsg()); + } + MenuDataResponse menuDataResponse = result.getData(); + List<String> list = menuDataResponse.getList(); + if(CollectionUtils.isNotEmpty(list)){ + //鍒嗗埆鍒ゆ柇4涓彍鍗� + if(list.stream().filter(i->i.equals("Infovision iPark Platform_"+HKConstants.MenuPageId.afzx)).collect(Collectors.toList()).size()>Constants.ZERO){ + resultList.add(0); + } + if(list.stream().filter(i->i.equals("Infovision iPark Platform_"+HKConstants.MenuPageId.xkzx)).collect(Collectors.toList()).size()>Constants.ZERO){ + resultList.add(1); + } + if(list.stream().filter(i->i.equals("Infovision iPark Platform_"+HKConstants.MenuPageId.ngzx)).collect(Collectors.toList()).size()>Constants.ZERO){ + resultList.add(2); + } + if(list.stream().filter(i->i.equals("Infovision iPark Platform_"+HKConstants.MenuPageId.jsc)).collect(Collectors.toList()).size()>Constants.ZERO){ + resultList.add(3); + } + if(list.stream().filter(i->i.equals("Infovision iPark Platform_"+HKConstants.MenuPageId.kqgzt)).collect(Collectors.toList()).size()>Constants.ZERO){ + resultList.add(4); + } + } + return resultList; + }else{ + throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鑿滃崟澶辫触锛�"); + } + }catch (Exception e){ + e.printStackTrace(); + } + throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鑿滃崟澶辫触锛岃绋嶅悗閲嶈瘯锛�"); } } -- Gitblit v1.9.3