From 3a86c9c6879971051ab1e01a5b9b88eed27e55db Mon Sep 17 00:00:00 2001
From: lishuai <260038442@qq.com>
Date: 星期五, 15 十二月 2023 17:57:29 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java | 2
server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java | 6
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java | 201 ++++++++++++++++++++++++++++++++++++++++
server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java | 19 +++
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgUpdateFailureResponse.java | 11 ++
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java | 3
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java | 8 +
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java | 7 +
server/dmvisit_service/src/main/java/com/doumee/service/business/HkSyncService.java | 4
9 files changed, 255 insertions(+), 6 deletions(-)
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java b/server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
index 4955c56..3ad095e 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
@@ -2,6 +2,7 @@
import com.doumee.service.business.impl.hksync.HkSyncImgServiceImpl;
+import com.doumee.service.business.impl.hksync.HkSyncOrgUserServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.EnableScheduling;
@@ -20,6 +21,8 @@
@Autowired
private HkSyncImgServiceImpl hkSyncImgService;
+ @Autowired
+ private HkSyncOrgUserServiceImpl hkSyncOrgUserService;
/**
* 鏄惁寮�鍙戣��
*/
@@ -35,5 +38,21 @@
public void downloadHkImg() throws Exception {
hkSyncImgService.downHKImgs(0);
}
+ /**
+ * 瀹氭椂鍚屾缁勭粐淇℃伅鍒版捣搴风郴缁�
+ * @throws Exception
+ */
+ @Scheduled(fixedDelay= 60*1000)
+ public void syncOrgData() {
+ hkSyncOrgUserService.syncOrgData();
+ }
+ /**
+ * 瀹氭椂鍚屾鐢ㄦ埛淇℃伅鍒版捣搴风郴缁�
+ * @throws Exception
+ */
+ @Scheduled(fixedDelay= 60*1000)
+ public void syncUserData() {
+ hkSyncImgService.syncUserData();
+ }
}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgUpdateFailureResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgUpdateFailureResponse.java
new file mode 100644
index 0000000..c5f2ab2
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgUpdateFailureResponse.java
@@ -0,0 +1,11 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class OrgUpdateFailureResponse {
+
+ private String msg;// string False 閿欒淇℃伅
+ private String orgIndexCode;// string False 缁勭粐鏍囧織
+ private String code;//杩斿洖鐮�0锛氭垚鍔� 鍏朵粬锛氬け璐�
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
index c53ce61..d7ae35b 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -78,7 +78,7 @@
*鎵归噺鍒犻櫎缁勭粐鏁版嵁
* @return
*/
- public static BaseResponse delBatchOrg(OrgDelRequest param){
+ public static BaseResponse<List<OrgUpdateFailureResponse>> delBatchOrg(OrgDelRequest param){
log.info("銆愭捣搴峰垹闄ょ粍缁囥��================寮�濮�===="+JSONObject.toJSONString(param));
try {
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
index fb80c8a..4fe02c2 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -23,7 +23,6 @@
public static final int ZERO = 0 ;
public static final int ONE = 1 ;
public static final int TWO = 2 ;
- public static final int THREE = 2 ;
public static final String HK_PARAM ="HK_PARAM" ;
public static final String HK_HOST ="HK_HOST" ;
public static final String HK_APPKEY ="HK_APPKEY" ;
@@ -62,8 +61,11 @@
public static final String ERP_APPROVE_URL ="ERP_APPROVE_URL" ;
public static final String ERP_USERSTATUS_RL ="ERP_USERSTATUS_RL" ;
public static final String ERP ="ERP" ;
+ public static final Integer THREE =3 ;
public static boolean DEALING_HK_IMG = false;
+ public static boolean DEALING_HK_ORG = false;
+ public static boolean DEALING_HK_USER = false;
// ERP鎺ュ彛閰嶇疆
public static final String ERP_CONFIG = "ERP_CONFIG";
// ERP ACCESS_KEY
@@ -71,7 +73,7 @@
// ERP ACCESS_SECRET
public static final String ERP_ACCESS_SECRET = "ERP_ACCESS_SECRET";
-
+ // FTP鏂囦欢鏈嶅姟鍣ㄨ祫婧愯闂湴鍧�
public static Date getBirthdyByCardNo(String idCard){
if(idCard ==null || idCard.length()<14){
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java
index 82ea543..d05fe0b 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java
@@ -167,6 +167,9 @@
@ApiModelProperty(value = "涓婄骇缁勭粐鍚嶇О")
@TableField(exist = false)
private String parentName;
+ @ApiModelProperty(value = "娴峰悍涓婄骇缁勭粐")
+ @TableField(exist = false)
+ private String hkParentId;
}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/HkSyncService.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/HkSyncService.java
index 78f55c4..89b0912 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/HkSyncService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/HkSyncService.java
@@ -53,4 +53,8 @@
String dealParkEvent(EventParkRequest param, HttpServletResponse response);
String downHKImgs(int type);
void cancelEventSub();
+
+ void syncOrgData();
+
+ void syncUserData();
}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
index 7c59fe5..88c30a0 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -143,7 +143,10 @@
}
if(delIds.size()>0){
//鍒犻櫎鎵�鏈夐渶瑕佸垹闄ょ殑缁勭粐淇℃伅(閫昏緫鍒犻櫎锛�
- companyMapper.update(null,new UpdateWrapper<Company>().lambda().set(Company::getIsdeleted, Constants.ONE).in(Company::getId,delIds));
+ companyMapper.update(null,new UpdateWrapper<Company>().lambda()
+ .set(Company::getIsdeleted, Constants.ONE)
+ .set(Company::getHkStatus, Constants.ZERO)
+ .in(Company::getId,delIds));
}
return "鍚屾鏁版嵁锛氭柊澧炪��"+addList.size()+"銆戞潯锛屾洿鏂般��"+updateList.size()+"銆戞潯锛屽垹闄ゃ��"+delIds.size()+"銆戞潯";
}else{
@@ -224,8 +227,7 @@
company.setCode(respone.getCode());
company.setErpParentId(respone.getParentOrgId());
company.setErpDate(date);
- //娴峰悍鏁版嵁
- company.setHkId(HKConstants.RES_INDEX+UUID.randomUUID().toString());
+ company.setHkStatus(Constants.ZERO);
return company;
}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
index 240c794..5e03224 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -73,4 +73,11 @@
public String downHKImgs(int type){
return null;
}
+ @Override
+ public void syncUserData(){
+ }
+ @Override
+ public void syncOrgData( ){
+ }
+
}
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
new file mode 100644
index 0000000..9aea7de
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java
@@ -0,0 +1,201 @@
+package com.doumee.service.business.impl.hksync;
+
+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;
+import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.model.param.request.OrgAddRequest;
+import com.doumee.core.haikang.model.param.request.OrgDelRequest;
+import com.doumee.core.haikang.model.param.request.ParkListRequest;
+import com.doumee.core.haikang.model.param.respose.OrgOrUserAddResponse;
+import com.doumee.core.haikang.model.param.respose.OrgOrUserAddSuccessResponse;
+import com.doumee.core.haikang.model.param.respose.OrgUpdateFailureResponse;
+import com.doumee.core.haikang.model.param.respose.ParkListResponse;
+import com.doumee.core.haikang.service.HKService;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.dao.business.CompanyMapper;
+import com.doumee.dao.business.ParksMapper;
+import com.doumee.dao.business.join.CompanyJoinMapper;
+import com.doumee.dao.business.model.Company;
+import com.doumee.dao.business.model.Parks;
+import com.github.yulichang.query.MPJQueryWrapper;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+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 java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+/**
+ * 娴峰悍鍋滆溅搴撳悓姝ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+@Service
+public class HkSyncOrgUserServiceImpl extends HkSyncBaseServiceImpl {
+
+ @Autowired
+ private CompanyMapper companyMapper;
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+
+ /**
+ * 鍚屾娴峰悍缁勭粐淇℃伅
+ * @return
+ */
+ @Override
+ public void syncOrgData(){
+ if(Constants.DEALING_HK_ORG){
+ return ;
+ }
+ Constants.DEALING_HK_ORG =true;
+ try {
+ //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑浼佷笟鏁版嵁
+ 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")
+ .lambda()
+ .eq(Company::getHkStatus,Constants.ZERO)
+ .orderByDesc(Company::getErpDate));
+ if(list ==null || list.size()==0){
+ return;
+ }
+ Date date = new Date();
+ List<OrgAddRequest> addList = new ArrayList<>();
+ List<Company> updateList = new ArrayList<>();
+ List<Integer> delIds = new ArrayList<>();
+ List<String> delHKIds = new ArrayList<>();
+ for(Company c : list){
+ if(StringUtils.isBlank(c.getErpParentId())){
+ //濡傛灉鏄痚rp椤跺眰缁勭粐锛岄粯璁ゅ啀娴峰悍鏍圭粍缁囦笅鍒涘缓缁勭粐
+ c.setHkParentId(rootOrgId);
+ }
+ if(StringUtils.isBlank(c.getHkParentId())){
+ //濡傛灉涓婄骇娴峰悍閮ㄩ棬杩樻病鍚屾锛屽垯姝ゆ涓嶅鐞�
+ continue;
+ }
+ if(StringUtils.isBlank(c.getHkId())){
+ //濡傛灉鏂板鍚屾鏁告摎
+ if(Constants.equalsInteger(Constants.ONE,c.getIsdeleted())){
+ //鍒犻櫎鐨勭粍缁囷紝涓嶅仛澶勭悊,娴峰悍鐘舵�佹洿鏂颁负涓嶅鐞嗭紝涓嬫涓嶅啀澶勭悊杩欎釜璁板綍
+ c.setHkStatus(Constants.TWO);
+ companyMapper.updateById(c);
+ continue ;
+ }
+ OrgAddRequest m = getOrgAddModel(c,rootOrgId);
+ addList.add(m);
+ 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());
+ updateList.add(c);
+ }
+ }
+ //澶勭悊鍒犻櫎鏁版嵁
+ doHkDeleteOrg(delIds,delHKIds,date);
+ //澶勭悊鏂板鏁版嵁
+ doHkAddOrg(updateList,addList);
+ }catch (Exception e){
+ e.printStackTrace();
+ }finally {
+ Constants.DEALING_HK_ORG =false;
+ }
+
+ }
+
+ /**
+ * 澶勭悊鎵归噺鏂板鐨勬捣搴锋暟鎹紝鏇存柊鍚屾鏁版嵁鐘舵��
+ * @param updateList
+ * @param addList
+ */
+ private void doHkAddOrg(List<Company> updateList, List<OrgAddRequest> addList) {
+ 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) );
+ }
+ }
+ }
+ }
+ }
+
+ private Integer getCompanyId(List<Company> updateList, String orgIndexCode) {
+ if(updateList!=null && StringUtils.isNotBlank(orgIndexCode)){
+ for(Company c : updateList){
+ if(StringUtils.equals(c.getHkId(),orgIndexCode)){
+ return c.getId();
+ }
+ }
+ }
+ return null;
+ }
+
+ private OrgAddRequest getOrgAddModel(Company c,String rootOrgId) {
+ OrgAddRequest model = new OrgAddRequest();
+ model.setOrgIndexCode(HKConstants.RES_INDEX+UUID.randomUUID().toString());
+ model.setOrgName(c.getName());
+ model.setOrgCode(c.getCode());
+ model.setOrgIndexCode(c.getHkParentId());
+ return model;
+
+ }
+
+ /**
+ * 瀵规捣搴峰垹闄ょ粍缁囦俊鎭�
+ * @param delIds
+ * @param date
+ */
+ private void doHkDeleteOrg(List<Integer> delIds,List<String> delHkIds, Date date) {
+ OrgDelRequest request = new OrgDelRequest();
+ request.setIndexCodes((String[]) delHkIds.toArray());
+ BaseResponse<List<OrgUpdateFailureResponse>> result = HKService.delBatchOrg(request);
+ if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){
+ List<String> fIds = new ArrayList<>();
+ if(result.getData()!=null){
+ for(OrgUpdateFailureResponse r : result.getData()){
+ fIds.add(r.getOrgIndexCode());//鍒犻櫎澶辫触鐨勬暟鎹泦鍚�
+ }
+ }
+ //鏍囪鍒犻櫎鎴愬姛鐨勬暟鎹紙娴峰悍瀵规帴鐘舵�佷负宸插悓姝ワ紝锛屽悓姝ュけ璐ョ殑浠嶄负寰呭悓姝ワ紝绛変笅涓�娆$户缁鐞嗭紝鐭ラ亾鍏ㄩ儴鍒犻櫎瀹屾瘯锛�
+ companyMapper.update(null,new UpdateWrapper<Company>().lambda()
+ .set(Company::getHkStatus,Constants.ONE)
+ .set(Company::getHkDate,date)
+ .in(Company::getId, delIds)
+ .notIn(fIds.size()>0,Company::getHkId, fIds));
+ }
+ }
+
+ /**
+ * 鍚屾娴峰悍浜哄憳淇℃伅
+ * @return
+ */
+ @Override
+ public void syncUserData(){
+
+ }
+
+}
--
Gitblit v1.9.3