From bdbb62001dc4c3c63198270269795e54235c0e40 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期四, 21 十二月 2023 15:34:14 +0800 Subject: [PATCH] 海康接口对接开发 --- server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java | 249 ++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 190 insertions(+), 59 deletions(-) diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java index 6f4a268..8635604 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java +++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.constants.ResponseStatus; +import com.doumee.core.erp.model.openapi.request.UserUpdateRequest; import com.doumee.core.erp.model.openapi.request.erp.UserFailRequest; import com.doumee.core.exception.BusinessException; import com.doumee.core.haikang.model.HKConstants; @@ -15,13 +16,9 @@ import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.ImageBase64Util; -import com.doumee.dao.business.CompanyMapper; -import com.doumee.dao.business.MemberMapper; -import com.doumee.dao.business.ParksMapper; +import com.doumee.dao.business.*; import com.doumee.dao.business.join.CompanyJoinMapper; -import com.doumee.dao.business.model.Company; -import com.doumee.dao.business.model.Member; -import com.doumee.dao.business.model.Parks; +import com.doumee.dao.business.model.*; import com.doumee.service.business.ERPSyncService; import com.github.yulichang.query.MPJQueryWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper; @@ -30,6 +27,7 @@ import org.checkerframework.checker.units.qual.C; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Date; @@ -47,9 +45,15 @@ @Autowired private CompanyMapper companyMapper; @Autowired + private MemberRoleMapper memberRoleMapper; + @Autowired + private EmpowerMapper empowerMapper; + @Autowired private MemberMapper memberMapper; @Autowired private ERPSyncService erpSyncService; + @Autowired + private DeviceMapper deviceMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @@ -224,47 +228,132 @@ String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); for(Member c : list){ - if( c.getCompanyId() == null){ - //濡傛灉娌℃湁缁勭粐涓嶅仛澶勭悊 - continue; - } - UserAddRequest addHkModel = new UserAddRequest(); - if(StringUtils.isBlank(c.getHkId())){ - //濡傛灉鏂板鍚屾鏁告摎 - if(Constants.equalsInteger(Constants.ONE,c.getIsdeleted())){ - //鍒犻櫎鐨勭粍缁囷紝涓嶅仛澶勭悊,娴峰悍鐘舵�佹洿鏂颁负涓嶅鐞嗭紝涓嬫涓嶅啀澶勭悊杩欎釜璁板綍 - c.setHkStatus(Constants.TWO); - memberMapper.updateById(c); - continue ; - } - addHkModel = getUserAddModel(c,path); - c.setHkId(addHkModel.getPersonId()); - }else{ - //鍒犻櫎娴峰悍鍘熸湁鐨勬暟鎹紝鍐嶆柊澧炵粍缁� - addHkModel = getUserAddModel(c,path); - c.setHkId(addHkModel.getPersonId()); - } - if(addHkModel == null){ - //濡傛灉浜鸿劯鏁版嵁涓嶆纭紝涓嬭浇澶辫触绛夊師鍥� - noticeErpFail(c,Constants.ZERO,"浜鸿劯鐓х墖涓嶅瓨鍦紝鑾峰彇澶辫触锛�"); - continue; - } - //澶勭悊鍒犻櫎鏁版嵁锛堝垹闄や箣鍓嶄笅鍙戠殑娴峰悍浜哄憳淇℃伅锛岀劧鍚庢柊澧烇級 - doHkDeleteUser(c.getId(),c.getHkId(),date); - //澶勭悊鏂板鏁版嵁 - BaseResponse<UserAddResponse> result = HKService.addUser(addHkModel); - if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) && result.getData()!=null){ - c.setFaceId(result.getData().getFaceId()); - memberMapper.updateById(c); - }else{ - noticeErpFail(c,Constants.ZERO,"浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃淇鍚庨噸璇曪紒"+result.getCode()+result.getMsg()); - } + dealMemberInfoBiz(c,date,path) ; } }catch (Exception e){ e.printStackTrace(); }finally { Constants.DEALING_HK_USER =false; } + } + + @Transactional + private boolean dealMemberInfoBiz(Member c, Date date, String path) { + if( c.getCompanyId() == null){ + //濡傛灉娌℃湁缁勭粐涓嶅仛澶勭悊 + return false; + } + if(StringUtils.isBlank(c.getHkId())){ + //濡傛灉鏂板鍚屾鏁告摎 + dealUserHkAddBiz(c,date,path); + }else{ + //濡傛灉涔嬪墠宸茬粡鍜屾捣搴峰悓姝ワ紝鍒欐洿鏂扮敤鎴锋暟鎹互鍙婁汉鑴告暟鎹紙鍙兘鏂板浜鸿劯 涔熷彲鑳芥洿鏂颁汉鑴革級 + dealUserHkEditBiz(c,date,path); + } + return false; + } + + /** + * 濡傛灉涔嬪墠宸茬粡鍜屾捣搴峰悓姝ワ紝鍒欐洿鏂扮敤鎴锋暟鎹互鍙婁汉鑴告暟鎹紙鍙兘鏂板浜鸿劯 涔熷彲鑳芥洿鏂颁汉鑴革級 + * @param c + * @param date + * @param path + */ + private void dealUserHkEditBiz(Member c, Date date, String path) { + c.setHkStatus(Constants.ONE); + if(Constants.equalsInteger(Constants.ONE,c.getIsdeleted())){ + //澶勭悊鍒犻櫎鏁版嵁锛堝垹闄や箣鍓嶄笅鍙戠殑娴峰悍浜哄憳淇℃伅锛� + boolean r = doHkDeleteUser(c.getId(),c.getHkId(),date); + c.setHkStatus(r?Constants.ONE:Constants.TWO); + c.setRemark(r?null:"鍒犻櫎娴峰悍浜哄憳淇℃伅澶辫触锛�"); + }else{ + //澶勭悊淇敼鏁版嵁锛屽苟涓旀洿鏂颁汉鑴� + UserAddRequest addHkModel = getUserAddModel(c,path,1);//淇敼 + //澶勭悊鏂板鏁版嵁 + BaseResponse result = HKService.editUser(addHkModel); + if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) && result.getData()!=null){ + if(StringUtils.isNotBlank(c.getFaceImg())){ + //濡傛灉鏈変汉鑴哥収鐗囷紝澶勭悊浜鸿劯鐓х墖鍚屾 + String faceid = dealMemberFace(c,path); + if(StringUtils.isBlank(faceid)){ + noticeErpFail(c,Constants.ZERO,"浜鸿劯淇℃伅鏇存柊澶辫触锛岃妫�鏌ヤ汉鑴哥収鐗囨槸鍚﹀悎娉曪紒"); + c.setHkStatus(Constants.TWO); + c.setRemark("浜鸿劯淇℃伅鏇存柊澶辫触锛岃妫�鏌ヤ汉鑴哥収鐗囨槸鍚﹀悎娉曪紒锛�"); + }else{ + c.setFaceId(faceid); + } + } + }else{ + noticeErpFail(c,Constants.ZERO,"浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃淇鍚庨噸璇曪紒"+result.getCode()+result.getMsg()); + c.setHkStatus(Constants.TWO); + c.setRemark("浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴鏇存柊澶辫触锛岃淇鍚庨噸璇曪紒锛�"); + } + + } + c.setHkDate(date); + memberMapper.updateById(c); + } + + /** + * 鏂扮敤鎴峰悓姝ュ埌娴峰悍骞冲彴 + * @param c + * @param date + * @param path + * @return + */ + private boolean dealUserHkAddBiz(Member c, Date date, String path) { + if(Constants.equalsInteger(Constants.ONE,c.getIsdeleted())){ + //鍒犻櫎鐨勭粍缁囷紝涓嶅仛澶勭悊,娴峰悍鐘舵�佹洿鏂颁负涓嶅鐞嗭紝涓嬫涓嶅啀澶勭悊杩欎釜璁板綍 + c.setHkStatus(Constants.TWO); + c.setRemark("鏈悓姝ユ暟鎹紝鐩存帴鍒犻櫎"); + memberMapper.updateById(c); + return false; + } + UserAddRequest addHkModel = getUserAddModel(c,path,0);//鏂板 + if(addHkModel == null){ + //濡傛灉浜鸿劯鏁版嵁涓嶆纭紝涓嬭浇澶辫触绛夊師鍥� + noticeErpFail(c,Constants.ZERO,"浜鸿劯鐓х墖涓嶅瓨鍦紝鑾峰彇澶辫触锛�"); + c.setHkStatus(Constants.TWO); + c.setRemark("浜鸿劯鐓х墖涓嶅瓨鍦紝鑾峰彇澶辫触锛�"); + memberMapper.updateById(c); + return false; + } + //澶勭悊鏂板鏁版嵁 + BaseResponse<UserAddResponse> result = HKService.addUser(addHkModel); + if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) && result.getData()!=null){ + c.setFaceId(result.getData().getFaceId()); + c.setHkStatus(Constants.ONE); + c.setHkId(addHkModel.getPersonId()); + memberMapper.updateById(c); + return true; + }else{ + noticeErpFail(c,Constants.ZERO,"浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃淇鍚庨噸璇曪紒"+result.getCode()+result.getMsg()); + c.setHkStatus(Constants.TWO); + c.setRemark("浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃淇鍚庨噸璇曪紒"); + memberMapper.updateById(c); + return false; + } + } + + /** + * 澶勭悊鏂板鎴栬�呬慨鏀逛汉鑴镐俊鎭� + * @param c + * @param path + * @return + */ + private String dealMemberFace(Member c,String path) { + if(StringUtils.isBlank(c.getFaceId())){ + BaseResponse<FaceAddOrEditesponse> response = HKService.addFace(getFaceAddModel(c,path)); + if(StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)&& response.getData()!=null ){ + return response.getData().getFaceId(); + } + }else{ + BaseResponse response = HKService.editFace(getFaceUpdateModel(c,path)); + if(StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE) ){ + return c.getFaceId(); + } + } + return null; } /** @@ -287,53 +376,95 @@ * @param id * @param date */ - private void doHkDeleteUser(Integer id,String delHkIds, Date date) { + private boolean doHkDeleteUser(Integer id,String delHkIds, Date date ) { if(StringUtils.isBlank(delHkIds)){ - return; + return false; } UserDelRequest request = new UserDelRequest(); request.setPersonIds(new String[]{delHkIds}); BaseResponse<List<UserDelResponse>> result = HKService.delBatchUser(request); if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){ List<String> fIds = new ArrayList<>(); + //鏍囪鍒犻櫎鎴愬姛鐨勬暟鎹紙娴峰悍瀵规帴鐘舵�佷负宸插悓姝ワ紝锛屽悓姝ュけ璐ョ殑浠嶄负寰呭悓姝ワ紝绛変笅涓�娆$户缁鐞嗭紝鐭ラ亾鍏ㄩ儴鍒犻櫎瀹屾瘯锛� if(result.getData()!=null && result.getData().size()>0){ log.info("娴峰悍鍒犻櫎鐢ㄦ埛澶辫触锛�==============="+result.getData().get(0).getPersonId()); - /* for(UserDelResponse r : result.getData()){ - if(!r.getCode().equals("0x00072001")){ - //涓嶅瓨鍦ㄧ殑涔熺畻鍒犻櫎鎴愬姛 - fIds.add(r.getPersonId());//鍒犻櫎澶辫触鐨勬暟鎹泦鍚� - } - }}*/ + memberMapper.update(null,new UpdateWrapper<Member>().lambda() + .set(Member::getHkStatus,Constants.TWO)//鍚屾澶辫触 + .set(Member::getHkDate,date) + .in(Member::getId, id)); }else{ //鏍囪鍒犻櫎鎴愬姛鐨勬暟鎹紙娴峰悍瀵规帴鐘舵�佷负宸插悓姝ワ紝锛屽悓姝ュけ璐ョ殑浠嶄负寰呭悓姝ワ紝绛変笅涓�娆$户缁鐞嗭紝鐭ラ亾鍏ㄩ儴鍒犻櫎瀹屾瘯锛� - companyMapper.update(null,new UpdateWrapper<Company>().lambda() - .set(Company::getHkStatus,Constants.ONE) - .set(Company::getHkDate,date) - .in(Company::getId, id)); + memberMapper.update(null,new UpdateWrapper<Member>().lambda() + .set(Member::getHkStatus,Constants.ONE)//鍚屾鎴愬姛 + .set(Member::getHkDate,date) + .in(Member::getId, id)); } + return true; } + return false; } - private UserAddRequest getUserAddModel(Member c,String path) { + /** + * 鍒犻櫎浜哄憳鎵�鏈夎澶囦笂鐨勬潈闄愪俊鎭� + * @param userId + * @param allDevice + */ + private void delUserHkRolle(String userId,List<Device> allDevice) { + //鍒涘缓浠诲姟 + String taskId = hkTaskAddtion(); + // + if(taskId!=null){ + //鍒犻櫎鎵�鏈夎澶囦笂鐨勬潈闄� + addTaskDataAllDel(userId,taskId,allDevice); + startTask(taskId); + } + } + + private UserAddRequest getUserAddModel(Member c,String path,int type) { UserAddRequest model = new UserAddRequest(); model.setOrgIndexCode(c.getCompanyHkId()); - model.setPersonId(HKConstants.RES_USER_INDEX+UUID.randomUUID().toString().replace("-", "")); + model.setPersonId(type == 0 ?HKConstants.RES_USER_INDEX+UUID.randomUUID().toString().replace("-", ""):c.getHkId()); model.setGender(Constants.formatIntegerNum(c.getSex())+""); model.setPersonName(c.getName()); - if(StringUtils.isNotBlank(c.getFaceImg())){ + if(type== 0 && StringUtils.isNotBlank(c.getFaceImg())){ model.setFaces(new ArrayList<>()); UserAddFaceRequest face = new UserAddFaceRequest(); String imageBase = ImageBase64Util.Image2Base64(path+c.getFaceImg()); - if(face.getFaceData() == null){ + if(imageBase== null){ //浜鸿劯鏁版嵁涓嶆纭紝 return null; } + face.setFaceData(imageBase); model.getFaces().add(face); } return model; - } - + private FaceAddRequest getFaceAddModel(Member c,String path) { + FaceAddRequest model = new FaceAddRequest(); + model.setPersonId(c.getHkId()); + if(StringUtils.isNotBlank(c.getFaceImg())){ + String imageBase = ImageBase64Util.Image2Base64(path+c.getFaceImg()); + if(imageBase == null){ + //浜鸿劯鏁版嵁涓嶆纭紝 + return null; + } + model.setFaceData(imageBase); + } + return model; + } + private FaceEditRequest getFaceUpdateModel(Member c,String path) { + FaceEditRequest model = new FaceEditRequest(); + model.setFaceId(c.getFaceId()); + if(StringUtils.isNotBlank(c.getFaceImg())){ + String imageBase = ImageBase64Util.Image2Base64(path+c.getFaceImg()); + if(imageBase == null){ + //浜鸿劯鏁版嵁涓嶆纭紝 + return null; + } + model.setFaceData(imageBase); + } + return model; + } } -- Gitblit v1.9.3