From c9d5baa887fbbb4abc3b5e63bcf228094ec972ea Mon Sep 17 00:00:00 2001
From: lishuai <260038442@qq.com>
Date: 星期三, 27 十二月 2023 18:17:44 +0800
Subject: [PATCH] 人员开卡功能
---
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java | 128 +++++++++++++++++++++++++++++-------------
1 files changed, 89 insertions(+), 39 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..2f2f9d1 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,17 +14,18 @@
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;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
-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;
@@ -49,7 +50,7 @@
@Autowired
private EmpowerMapper empowerMapper;
@Autowired
- private MemberMapper memberMapper;
+ private MemberJoinMapper memberMapper;
@Autowired
private ERPSyncService erpSyncService;
@Autowired
@@ -70,7 +71,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 +79,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 +106,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 +134,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(result !=null && 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(result !=null && 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 +203,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 +227,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 +237,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 +260,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 +316,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 +351,8 @@
//鍒犻櫎鐨勭粍缁囷紝涓嶅仛澶勭悊,娴峰悍鐘舵�佹洿鏂颁负涓嶅鐞嗭紝涓嬫涓嶅啀澶勭悊杩欎釜璁板綍
c.setHkStatus(Constants.TWO);
c.setRemark("鏈悓姝ユ暟鎹紝鐩存帴鍒犻櫎");
+ c.setEditDate(date);
+ c.setErpId(c.getErpOrgId()+"_"+UUID.randomUUID().toString());
memberMapper.updateById(c);
return false;
}
@@ -320,7 +367,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 +376,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;
}
@@ -344,7 +391,7 @@
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 ){
+ if(response !=null && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)&& response.getData()!=null ){
return response.getData().getFaceId();
}
}else{
@@ -423,7 +470,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