server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
@@ -18,8 +18,8 @@ * @date 2021-10-10 14:40:35 * https://www.bejson.com/othertools/cron/ cron 表达å¼çæå°å */ //@Component //@EnableScheduling @Component @EnableScheduling public class ScheduleTool { @Autowired server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/erp/UserListRequest.java
@@ -15,9 +15,9 @@ @ApiModel("人å忥æ¥å£è¯·æ±ä¿¡æ¯") public class UserListRequest { @ApiModelProperty(value = "人åå¯ä¸æ è¯ï¼ERP端IDï¼" ,example = "1") private Integer id; @ApiModelProperty(value = "ç»ç»å¯ä¸æ è¯(ERP端IDï¼" ,example = "1") private Integer orgId; private String id; @ApiModelProperty(value = "ç»ç»å¯ä¸æ è¯(ERP端IDï¼" ) private String orgId; @ApiModelProperty(value = "人åå§åï¼æ¯ææ¨¡ç³æ¥è¯¢" ) private String name; @ApiModelProperty(value = "身份è¯å·" ) server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CardDeletionRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ package com.doumee.core.haikang.model.param.request; import lombok.Data; @Data public class CardDeletionRequest { private String cardNumber;// string True å¡å·ï¼æ ¹æ®è·åå¡çå表æ¥å£è·åè¿ååæ°cardNo private String personId ;//string True 人åIdï¼è·å人åå表v2 æ¥å£è·åè¿ååæ°personId } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CardLossRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ package com.doumee.core.haikang.model.param.request; import lombok.Data; import java.util.List; @Data public class CardLossRequest { private List<CardDeletionRequest> cardList;// object[] True 人å¡å ³èç»åæ°ç»(æ¹éæå¤±æ°éä¸è½è¶ è¿200个) } server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -703,6 +703,66 @@ return null; } /** *海康éå¡ * @return */ public static BaseResponse cardDeletion(CardDeletionRequest param){ log.info("ãæµ·åº·éå¡ã================å¼å§===="+JSONObject.toJSONString(param)); String res = null; try { res = HKTools.cardDeletion(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse >(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康éå¡"); return result; }catch (Exception e){ log.error("ãæµ·åº·éå¡ã================失败====ï¼\n"+ e.getMessage()); }finally { } return null; } /** *海康æ¹éæå¤± * @return */ public static BaseResponse cardLoss(CardLossRequest param){ log.info("ãæµ·åº·æ¹éæå¤±ã================å¼å§===="+JSONObject.toJSONString(param)); String res = null; try { res = HKTools.cardDeletion(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse >(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康æ¹éæå¤±"); return result; }catch (Exception e){ log.error("ãæµ·åº·æ¹éæå¤±ã================失败====ï¼\n"+ e.getMessage()); }finally { } return null; } /** *海康æ¹éè§£æ * @return */ public static BaseResponse cardUnLoss(CardLossRequest param){ log.info("ãæµ·åº·æ¹éè§£æã================å¼å§===="+JSONObject.toJSONString(param)); String res = null; try { res = HKTools.cardUnloss(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse >(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康æ¹éè§£æ"); return result; }catch (Exception e){ log.error("ãæµ·åº·æ¹éè§£æã================失败====ï¼\n"+ e.getMessage()); }finally { } return null; } /** *海康æ¥è¯¢è®¾å¤ééç人åæéä¸è½½è¯¦æ * @return */ server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java
@@ -3,13 +3,17 @@ import cn.hutool.core.lang.PatternPool; import cn.hutool.core.lang.Validator; import cn.hutool.core.util.ReUtil; 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.CardDeletionRequest; 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; import com.doumee.core.utils.Utils; import com.doumee.dao.admin.response.CarEventDTO; import com.doumee.dao.business.MemberCardMapper; import com.doumee.dao.business.*; import com.doumee.dao.business.join.MemberCardJoinMapper; import com.doumee.dao.business.model.Company; import com.doumee.dao.business.model.Member; @@ -21,9 +25,11 @@ 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.HkSyncOrgUserServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.*; @@ -37,9 +43,18 @@ */ @Service public class MemberCardServiceImpl implements MemberCardService { @Autowired private MemberRoleMapper memberRoleMapper; @Autowired private DeviceRoleMapper deviceRoleMapper; @Autowired private DeviceMapper deviceMapper; @Autowired private EmpowerMapper empowerMapper; @Autowired private MemberCardMapper memberCardMapper; @Autowired private MemberMapper memberMapper; @Autowired private MemberCardJoinMapper memberCardJoinMapper; @@ -84,9 +99,17 @@ this.updateById(memberCard); } } @Override @Transactional(rollbackFor = {Exception.class, BusinessException.class}) public void updateRefundCard(MemberCard memberCard) { MemberCard model = memberCardMapper.selectById(memberCard.getId()); memberCardMapper.updateById(memberCard); dealMemberRoleEmpower(memberMapper.selectById(memberCard.getMemberId())); BaseResponse response = HKService.cardDeletion(new CardDeletionRequest()); if(){ } } @Override @@ -111,6 +134,16 @@ return memberCardMapper.selectList(wrapper); } /** * æ´ç»äººåå ¨é¨é¨ç¦æé * @param member */ private void dealMemberRoleEmpower(Member member ) { //å¤çæ°å¢ç人åå¡çæ°æ®ï¼ä¸æµ·åº·åæ¥ï¼ List<MemberCard> cards = HkSyncOrgUserServiceImpl.getNormalCardList(member,memberCardMapper); HkSyncOrgUserServiceImpl.dealMemberRoleEmpowerDo(cards,member,deviceRoleMapper,empowerMapper,deviceMapper); } @Override public PageData<MemberCard> findPage(PageWrap<MemberCard> pageWrap) { IPage<MemberCard> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -34,6 +34,7 @@ import com.doumee.service.business.ERPSyncService; import com.doumee.service.business.InterfaceLogService; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.Synchronized; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; @@ -121,6 +122,7 @@ */ @Override @Transactional @Synchronized public String syncCompany(OrgListRequest param){ if(!StringUtils.equals(Constants.ONE+"", systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ORG_USER_ORIGIN).getCode())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对ä¸èµ·ï¼å½å䏿¯æç»ç»åæ¥æä½~"); @@ -271,6 +273,7 @@ */ @Override @Transactional @Synchronized public String syncUsers(UserListRequest param){ if(!StringUtils.equals(Constants.ONE+"", systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ORG_USER_ORIGIN).getCode())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对ä¸èµ·ï¼å½å䏿¯æäººå忥æä½~"); @@ -322,7 +325,12 @@ private void dealUserChangeList(List<ErpUserListResponse> list, List<Member> addList, List<Member> updateList, List<Member> delList, List<Member> allList,UserListRequest param) { Date date = new Date(); int num =0; for(ErpUserListResponse response : list){ response.setPhone("1534569100"+num); response.setFaceImg("20223402/DM1005.png"); response.setIdNo("34112219880427200"+num); num++; Company company = new Company(); if(StringUtils.isNotBlank(response.getOrgId())){ company = companyMapper.selectOne(new QueryWrapper<Company>().lambda().eq(Company::getErpId,response.getOrgId()).last("limit 1")); server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java
@@ -224,7 +224,28 @@ } } /** * åæ®µè¯·æ±ä¸åæé * @param list */ private void dealDelListTask(List<Empower> list) { int sublistSize = 100; int startIndex = 0; int endIndex = sublistSize; while (startIndex < list.size()) { if (endIndex > list.size()) { endIndex = list.size(); } List<Empower> sublist = list.subList(startIndex, endIndex); if(sublist.size()>0){ dealDelListTaskDo(sublist); } startIndex = endIndex; endIndex += sublistSize; } } private void dealDelListTaskDo(List<Empower> list) { //æç §ç¶çº§ç³è¯·åæ¹å¤çæ¯æ¬¡ç³è¯·æ°æ® if(list ==null || list.size()==0){ return; @@ -232,43 +253,41 @@ Date date = new Date(); //åå»ºä»»å¡ String taskId = hkTaskAddtion(); List<Empower> successList = new ArrayList<>(); List<Empower> errorList = new ArrayList<>(); List<Integer> successList = new ArrayList<>(); List<Integer> errorList = new ArrayList<>(); for(Empower c : list) { //å任塿·»å 人åã设å¤ä¿¡æ¯æ°æ® if(addTaskData(c,taskId,HKConstants.OPERA_TYPE.DEL.getKey())){ successList.add(c); successList.add(c.getId()); }else{ errorList.add(c); errorList.add(c.getId()); } } if(successList.size()>0){ //å¼å§æ§è¡ä¸å boolean status = startTask(taskId); for(Empower model : successList){ Empower update = new Empower(); update.setId(model.getId()); update.setSendDate(date); update.setEditDate(date); update.setHkId(taskId); update.setRemark(status?"ä¸å任塿§è¡æå":"ä¸å任塿§è¡å¤±è´¥"); update.setSendInfo(status?"ä¸å任塿§è¡æå":"ä¸å任塿§è¡å¤±è´¥"); //ä¸åä¸ update.setSendStatus(status?Constants.EmpowerStatus.ing:Constants.EmpowerStatus.fail); empowerMapper.updateById(update); } empowerMapper.update(null,new UpdateWrapper<Empower>() .lambda() .set(Empower::getSendDate,date) .set(Empower::getEditDate,date) .set(Empower::getSendStatus,status?Constants.EmpowerStatus.ing:Constants.EmpowerStatus.fail) .set(Empower::getHkId,taskId) .set(Empower::getSendInfo,status?"ä¸å任塿§è¡æå":"ä¸å任塿§è¡å¤±è´¥") .set(Empower::getRemark,status?"ä¸å任塿§è¡æå":"ä¸å任塿§è¡å¤±è´¥") .set(Empower::getEditDate,date) .in(Empower::getId,successList)); } for(Empower model : errorList){ Empower update = new Empower(); update.setId(model.getId()); update.setSendDate(date); update.setEditDate(date); update.setHkId(taskId); update.setSendStatus(Constants.EmpowerStatus.fail); update.setSendInfo( "æ·»å ä¸å任塿°æ®åªé¤ææå¤±è´¥"); update.setRemark( "æ·»å ä¸å任塿°æ®åªé¤ææå¤±è´¥"); empowerMapper.updateById(update); } empowerMapper.update(null,new UpdateWrapper<Empower>() .lambda() .set(Empower::getSendStatus,Constants.EmpowerStatus.fail) .set(Empower::getSendDate,date) .set(Empower::getEditDate,date) .set(Empower::getHkId,taskId) .set(Empower::getSendInfo, "æ·»å ä¸å任塿°æ®åªé¤ææå¤±è´¥") .set(Empower::getRemark, "æ·»å ä¸å任塿°æ®åªé¤ææå¤±è´¥") .set(Empower::getEditDate,date) .in(Empower::getId,errorList)); } private void dealNewListTask(List<Empower> list) { @@ -407,13 +426,13 @@ queryWrapper.selectAll(Empower.class); queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo); queryWrapper.selectAs(Member::getHkId,Empower::getMemberHkId); queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId); queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode); queryWrapper.selectAs(Device::getResourceType,Empower::getDeviceType); queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId); queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId); queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.downloaded); queryWrapper.isNotNull(Member::getHkId) ; queryWrapper.orderByAsc(Empower::getSendDate); queryWrapper.isNotNull(Empower::getMemberHkId) ; List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper); return list; } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java
@@ -43,10 +43,13 @@ public class HkSyncOrgUserServiceImpl extends HkSyncBaseServiceImpl { @Autowired private CompanyMapper companyMapper; @Autowired private MemberRoleMapper memberRoleMapper; @Autowired private DeviceRoleMapper deviceRoleMapper; @Autowired private MemberRoleMapper memberRoleMapper; private DeviceMapper deviceMapper; @Autowired private EmpowerMapper empowerMapper; @Autowired @@ -55,8 +58,6 @@ private MemberJoinMapper memberMapper; @Autowired private ERPSyncService erpSyncService; @Autowired private DeviceMapper deviceMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @@ -284,7 +285,7 @@ Constants.DEALING_HK_USER =false; } } private List<Integer> getRoleIdByParam( Member member) { public static List<Integer> getRoleIdByParam( Member member,DeviceRoleMapper deviceRoleMapper) { //æ¥è¯¢æ°æ®åºåå¨çæé List<DeviceRole> deviceRoleList= deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() .eq(DeviceRole::getType,Constants.TWO) @@ -332,10 +333,14 @@ private void dealMemberRoleEmpower(Member member ) { //å¤çæ°å¢ç人åå¡çæ°æ®ï¼ä¸æµ·åº·åæ¥ï¼ List<MemberCard> cards = dealMemberHkCard(member); dealMemberRoleEmpowerDo(cards,member,deviceRoleMapper,empowerMapper,deviceMapper); } public static void dealMemberRoleEmpowerDo(List<MemberCard> cards,Member member , DeviceRoleMapper deviceRoleMapper, EmpowerMapper empowerMapper, DeviceMapper deviceMapper) { if(cards == null || cards.size() == 0){ return; } List<Integer> doorIds = getRoleIdByParam(member); List<Integer> doorIds = getRoleIdByParam(member,deviceRoleMapper); if(doorIds==null || doorIds.size() == 0){ return; } @@ -402,10 +407,7 @@ .eq(MemberCard::getHkStatus,Constants.ZERO) ); if(memberCards==null || memberCards.size()==0){ //没æå¸¦å¤ççæ°æ®ï¼ç´æ¥è·³è¿ return memberCardMapper.selectList(new QueryWrapper<MemberCard>().lambda() .eq(MemberCard::getMemberId,member.getId()) .eq(MemberCard::getType,Constants.TWO) .eq(MemberCard::getHkStatus,Constants.ONE) ); return getNormalCardList(member,memberCardMapper); } List<Integer> allCodes = new ArrayList<>(); @@ -456,11 +458,18 @@ .notIn(doneCodes.size()>0,MemberCard::getCode,doneCodes) .in(MemberCard::getId,allCodes)); return memberCardMapper.selectList(new QueryWrapper<MemberCard>().lambda() return getNormalCardList(member,memberCardMapper); } public static List<MemberCard> getNormalCardList(Member member,MemberCardMapper memberCardMapper) { return memberCardMapper.selectList(new QueryWrapper<MemberCard>().lambda() .eq(MemberCard::getMemberId,member.getId()) .eq(MemberCard::getType,Constants.TWO) .eq(MemberCard::getStatus,Constants.MemberCard.normal) .eq(MemberCard::getHkStatus,Constants.ONE) ); } /** * 妿ä¹åå·²ç»åæµ·åº·åæ¥ï¼åæ´æ°ç¨æ·æ°æ®ä»¥åäººè¸æ°æ®ï¼å¯è½æ°å¢äººè¸ ä¹å¯è½æ´æ°äººè¸ï¼ @@ -594,7 +603,7 @@ */ private boolean doHkDeleteUser(Integer id,String delHkIds, Date date ) { if(StringUtils.isBlank(delHkIds)){ return false; return true; } UserDelRequest request = new UserDelRequest(); request.setPersonIds(new String[]{delHkIds});