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/HkSyncOrgUserServiceImpl.java |  125 +++++++++++++++++++++++++++++------------
 1 files changed, 88 insertions(+), 37 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 03fafb7..8a22813 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
@@ -14,10 +14,12 @@
 import com.doumee.core.haikang.model.param.respose.*;
 import com.doumee.core.haikang.service.HKService;
 import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DESUtil;
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.ImageBase64Util;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.join.CompanyJoinMapper;
+import com.doumee.dao.business.join.MemberJoinMapper;
 import com.doumee.dao.business.model.*;
 import com.doumee.service.business.ERPSyncService;
 import com.github.yulichang.query.MPJQueryWrapper;
@@ -49,7 +51,7 @@
     @Autowired
     private EmpowerMapper empowerMapper;
     @Autowired
-    private MemberMapper memberMapper;
+    private MemberJoinMapper memberMapper;
     @Autowired
     private ERPSyncService erpSyncService;
     @Autowired
@@ -70,7 +72,7 @@
             //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑浼佷笟鏁版嵁
             String rootOrgId = systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_ROOTORG_CODE).getCode();
             List<Company> list = companyMapper.selectList(new QueryWrapper<Company>()
-                    .select("*,(select b.hk_id from company b where company.erp_parent_id = b.id limit 1) as hkParentId")
+                    .select("*,(select b.hk_id from company b where company.erp_parent_id = b.erp_id limit 1) as hkParentId")
                     .lambda()
                     .eq(Company::getHkStatus,Constants.ZERO)
                     .orderByAsc(Company::getErpDate));
@@ -78,6 +80,7 @@
                 return;
             }
             Date date = new Date();
+            List<OrgEditRequest> editHkList = new ArrayList<>();
             List<OrgAddRequest> addList = new ArrayList<>();
             List<Company> updateList = new ArrayList<>();
             List<Integer> delIds = new ArrayList<>();
@@ -104,20 +107,21 @@
                     c.setHkId(m.getOrgIndexCode());
                     updateList.add(c);
                 }else{
-                    //鍒犻櫎鐨勬暟鎹紝杩涜鍒犻櫎
-                    delIds.add(c.getId());
-                    delHKIds.add(c.getHkId());
-                    //鍒犻櫎娴峰悍鍘熸湁鐨勬暟鎹紝鍐嶆柊澧炵粍缁�
-                    OrgAddRequest m = getOrgAddModel(c,rootOrgId);
-                    addList.add(m);
-                    c.setHkId(m.getOrgIndexCode());
+                    if(Constants.equalsInteger(c.getIsdeleted(),Constants.ONE)){
+                        //鍒犻櫎鐨勬暟鎹紝杩涜鍒犻櫎
+                        delIds.add(c.getId());
+                        delHKIds.add(c.getHkId());
+                    }else{
+                        //濡傛灉鏇存柊
+                        editHkList.add(getOrgHkEditModel(c,rootOrgId));
+                    }
                     updateList.add(c);
                 }
             }
             //澶勭悊鍒犻櫎鏁版嵁
             doHkDeleteOrg(delIds,delHKIds,date);
             //澶勭悊鏂板鏁版嵁
-            doHkAddOrg(updateList,addList);
+            doHkAddOrg(updateList,addList,editHkList);
         }catch (Exception e){
             e.printStackTrace();
         }finally {
@@ -131,24 +135,51 @@
      * @param updateList
      * @param addList
      */
-    private void doHkAddOrg(List<Company> updateList, List<OrgAddRequest> addList) {
+    private void doHkAddOrg(List<Company> updateList, List<OrgAddRequest> addList, List<OrgEditRequest> editHkList) {
         Date date = new Date();
-
-        BaseResponse<OrgOrUserAddResponse> result =  HKService.addBatchOrg(addList);
-        if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){
-            OrgOrUserAddResponse data = result.getData();
-            if(data.getSuccesses()!=null && data.getSuccesses().size()>0){
-                //澶勭悊鏂板鎴愬姛鐨勬暟鎹紝淇敼娴峰悍鍚屾鐘舵��
-              for(OrgOrUserAddSuccessResponse r :data.getSuccesses()){
-                  Integer index = getCompanyId(updateList,r.getOrgIndexCode());
-                  if(index!=null){
-                      companyMapper.update(null,new UpdateWrapper<Company>().lambda()
-                              .set(Company::getHkStatus,Constants.ONE)
-                              .set(Company::getHkDate,date)
-                              .set(Company::getHkId,r.getOrgIndexCode())
-                              .eq(Company::getId, index) );
-                  }
-              }
+        if(addList!=null &&addList.size()>0){
+            //澶勭悊鏂板
+            BaseResponse<OrgOrUserAddResponse> result =  HKService.addBatchOrg(addList);
+            if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){
+                OrgOrUserAddResponse data = result.getData();
+                if(data.getSuccesses()!=null && data.getSuccesses().size()>0){
+                    //澶勭悊鏂板鎴愬姛鐨勬暟鎹紝淇敼娴峰悍鍚屾鐘舵��
+                    for(OrgOrUserAddSuccessResponse r :data.getSuccesses()){
+                        Integer index = getCompanyId(updateList,r.getOrgIndexCode());
+                        if(index!=null){
+                            companyMapper.update(null,new UpdateWrapper<Company>().lambda()
+                                    .set(Company::getHkStatus,Constants.ONE)
+                                    .set(Company::getHkDate,date)
+                                    .set(Company::getHkId,r.getOrgIndexCode())
+                                    .eq(Company::getId, index) );
+                        }
+                    }
+                }
+            }
+        }
+        if(editHkList!=null){
+            //鎵ц鏇存柊鎿嶄綔
+            List<String> success = new ArrayList<>();
+            List<String> error = new ArrayList<>();
+            for(OrgEditRequest param : editHkList){
+                BaseResponse  result =  HKService.editOrg(param);
+                if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){
+                    success.add(param.getOrgIndexCode());
+                }else{
+                    error.add(param.getOrgIndexCode());
+                }
+            }
+            if(success.size()>0){
+                companyMapper.update(null,new UpdateWrapper<Company>().lambda()
+                        .set(Company::getHkStatus,Constants.ONE)
+                        .set(Company::getHkDate,date)
+                        .in(Company::getHkId, success) );
+            }
+            if(error.size()>0){
+                companyMapper.update(null,new UpdateWrapper<Company>().lambda()
+                        .set(Company::getHkStatus,Constants.TWO)
+                        .set(Company::getHkDate,date)
+                        .in(Company::getHkId, error) );
             }
         }
     }
@@ -173,6 +204,13 @@
         return  model;
 
     }
+    private OrgEditRequest getOrgHkEditModel(Company c,String rootOrgId) {
+        OrgEditRequest model = new OrgEditRequest();
+        model.setOrgIndexCode(c.getHkId());
+        model.setOrgName(c.getName());
+        return  model;
+
+    }
 
     /**
      * 瀵规捣搴峰垹闄ょ粍缁囦俊鎭�
@@ -190,7 +228,7 @@
             List<String> fIds = new ArrayList<>();
             if(result.getData()!=null){
                 for(OrgUpdateFailureResponse r : result.getData()){
-                    if(!r.getCode().equals("0x00072001")){
+                    if(!r.getCode().equals("0x00052102")){
                         //涓嶅瓨鍦ㄧ殑涔熺畻鍒犻櫎鎴愬姛
                         fIds.add(r.getOrgIndexCode());//鍒犻櫎澶辫触鐨勬暟鎹泦鍚�
                     }
@@ -200,8 +238,14 @@
             companyMapper.update(null,new UpdateWrapper<Company>().lambda()
                     .set(Company::getHkStatus,Constants.ONE)
                     .set(Company::getHkDate,date)
+                    .set(Company::getHkId,null )
                     .in(Company::getId, delIds)
                     .notIn(fIds.size()>0,Company::getHkId, fIds));
+            companyMapper.update(null,new UpdateWrapper<Company>().lambda()
+                    .set(Company::getHkStatus,Constants.TWO)
+                    .set(Company::getHkDate,date)
+                    .in(Company::getId, delIds)
+                    .in(fIds.size()>0,Company::getHkId, fIds));
         }
     }
 
@@ -217,8 +261,10 @@
         Constants.DEALING_HK_USER =true;
         try {
             //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑浼佷笟鏁版嵁
-            List<Member> list = memberMapper.selectList(new QueryWrapper<Member>()
-                    .lambda()
+            List<Member> list = memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
+                    .selectAll(Member.class )
+                    .selectAs(Company::getHkId,Member::getCompanyHkId)
+                    .leftJoin(Company.class,Company::getId,Member::getCompanyId)
                     .eq(Member::getHkStatus,Constants.ZERO)
                     .orderByAsc(Member::getErpDate));
             if(list ==null || list.size()==0){
@@ -271,22 +317,22 @@
             UserAddRequest  addHkModel = getUserAddModel(c,path,1);//淇敼
             //澶勭悊鏂板鏁版嵁
             BaseResponse result =  HKService.editUser(addHkModel);
-            if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) && result.getData()!=null){
+            if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) ){
                 if(StringUtils.isNotBlank(c.getFaceImg())){
                     //濡傛灉鏈変汉鑴哥収鐗囷紝澶勭悊浜鸿劯鐓х墖鍚屾
                     String faceid = dealMemberFace(c,path);
                     if(StringUtils.isBlank(faceid)){
                         noticeErpFail(c,Constants.ZERO,"浜鸿劯淇℃伅鏇存柊澶辫触锛岃妫�鏌ヤ汉鑴哥収鐗囨槸鍚﹀悎娉曪紒");
                         c.setHkStatus(Constants.TWO);
-                        c.setRemark("浜鸿劯淇℃伅鏇存柊澶辫触锛岃妫�鏌ヤ汉鑴哥収鐗囨槸鍚﹀悎娉曪紒锛�");
+                        c.setRemark("浜鸿劯淇℃伅鏇存柊澶辫触锛岃妫�鏌ヤ汉鑴哥収鐗囨槸鍚﹀悎娉曪紒锛�"+result.getMsg());
                     }else{
                         c.setFaceId(faceid);
                     }
                 }
             }else{
-                noticeErpFail(c,Constants.ZERO,"浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃淇鍚庨噸璇曪紒"+result.getCode()+result.getMsg());
+                noticeErpFail(c,Constants.ZERO,"浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃淇鍚庨噸璇曪紒");
                 c.setHkStatus(Constants.TWO);
-                c.setRemark("浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴鏇存柊澶辫触锛岃淇鍚庨噸璇曪紒锛�");
+                c.setRemark("浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴鏇存柊澶辫触锛岃淇鍚庨噸璇曪紒锛�"+(result!=null?result.getCode()+result.getMsg():""));
             }
 
         }
@@ -306,6 +352,8 @@
             //鍒犻櫎鐨勭粍缁囷紝涓嶅仛澶勭悊,娴峰悍鐘舵�佹洿鏂颁负涓嶅鐞嗭紝涓嬫涓嶅啀澶勭悊杩欎釜璁板綍
             c.setHkStatus(Constants.TWO);
             c.setRemark("鏈悓姝ユ暟鎹紝鐩存帴鍒犻櫎");
+            c.setEditDate(date);
+            c.setErpId(c.getErpOrgId()+"_"+UUID.randomUUID().toString());
             memberMapper.updateById(c);
             return  false;
         }
@@ -320,7 +368,7 @@
         }
         //澶勭悊鏂板鏁版嵁
         BaseResponse<UserAddResponse> result =  HKService.addUser(addHkModel);
-        if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) && result.getData()!=null){
+        if(result!=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) && result.getData()!=null){
             c.setFaceId(result.getData().getFaceId());
             c.setHkStatus(Constants.ONE);
             c.setHkId(addHkModel.getPersonId());
@@ -329,7 +377,7 @@
         }else{
             noticeErpFail(c,Constants.ZERO,"浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃淇鍚庨噸璇曪紒"+result.getCode()+result.getMsg());
             c.setHkStatus(Constants.TWO);
-            c.setRemark("浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃淇鍚庨噸璇曪紒");
+            c.setRemark("浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃淇鍚庨噸璇曪紒"+(result!=null?result.getMsg():""));
             memberMapper.updateById(c);
             return  false;
         }
@@ -423,7 +471,10 @@
     private UserAddRequest getUserAddModel(Member c,String path,int type) {
         UserAddRequest model = new UserAddRequest();
         model.setOrgIndexCode(c.getCompanyHkId());
-        model.setPersonId(type == 0 ?HKConstants.RES_USER_INDEX+UUID.randomUUID().toString().replace("-", ""):c.getHkId());
+        model.setJobNo(c.getCode());
+        model.setCertificateNo(DESUtil.decrypt(Constants.EDS_PWD, c.getIdcardNo()));
+        model.setCertificateType(HKConstants.CertificateType.SHENFENZHENG.getKey()+"");
+        model.setPersonId(type == 0 ?UUID.randomUUID().toString().replace("-", ""):c.getHkId());
         model.setGender(Constants.formatIntegerNum(c.getSex())+"");
         model.setPersonName(c.getName());
         if(type== 0 && StringUtils.isNotBlank(c.getFaceImg())){

--
Gitblit v1.9.3