From 36f691267e45ca2861bed663fdcf5f2efcefdfce Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 10 十一月 2025 15:27:08 +0800
Subject: [PATCH] 最新版本541200007
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java | 169 +++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 130 insertions(+), 39 deletions(-)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
index 575f5a3..6bc2a13 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -1,5 +1,7 @@
package com.doumee.service.business.impl;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -23,6 +25,11 @@
import com.doumee.core.haikang.model.param.respose.OrgOrUserAddResponse;
import com.doumee.core.haikang.model.param.respose.OrgUpdateFailureResponse;
import com.doumee.core.haikang.service.HKService;
+import com.doumee.core.jiandaoyun.api.arch.DeptApiClient;
+import com.doumee.core.jiandaoyun.constants.HttpConstant;
+import com.doumee.core.jiandaoyun.model.dept.DeptEntityModel;
+import com.doumee.core.wms.model.response.WmsBaseDataResponse;
+import com.doumee.core.wms.model.response.WmsBaseResponse;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
@@ -808,10 +815,15 @@
.eq(Company::getErpId,jsonArray.getLong(i))
);
OapiV2DepartmentGetResponse.DeptGetResponse deptGetResponse = dingTalk.syncDepartmentInfo(jsonArray.getLong(i));
+ Company param = new Company();
+ param.setName(deptGetResponse.getName());
+ param.setErpId(deptGetResponse.getDeptId().toString());
+ param.setErpParentId(deptGetResponse.getParentId().toString());
if(Objects.isNull(company)){
- getAddCompanyModel(deptGetResponse,company);
+ param.setSortnum(deptGetResponse.getOrder().intValue());//榛樿鏈�涓婇潰
+ getAddCompanyModel(param);
}else{
- getUpdateCompanyModel(deptGetResponse,company);
+ getUpdateCompanyModel(param,company);
}
}
}
@@ -850,35 +862,106 @@
}
@Override
- public String syncDDCompany() throws ApiException {
- List<OapiV2DepartmentGetResponse.DeptGetResponse> list = dingTalk.syncAllDDDepartmentList();
- if(list !=null && list.size()>0){
- List<Company> addList = new ArrayList<>();
- List<Company> updateList = new ArrayList<>();
- List<Long> delIds = new ArrayList<>();//淇敼涓轰娇鐢ㄩ拤閽塱d erpId
- List<Company> allList = companyMapper.selectList(new QueryWrapper<Company>().lambda()
- .eq(Company::getIsdeleted,Constants.ZERO).eq(Company::getType,Constants.ONE));
- dealCompanyChangeList(list,addList,updateList,delIds,allList);
- if(delIds.size()>0){
- syncDelCompany(delIds);
+ public String syncDDCompany() {
+ try {
+ List<OapiV2DepartmentGetResponse.DeptGetResponse> list = dingTalk.syncAllDDDepartmentList();
+ if(list !=null && list.size()>0){
+ List<Company> addList = new ArrayList<>();
+ List<Company> updateList = new ArrayList<>();
+ List<Long> delIds = new ArrayList<>();//淇敼涓轰娇鐢ㄩ拤閽塱d erpId
+ List<Company> allList = companyMapper.selectList(new QueryWrapper<Company>().lambda()
+ .eq(Company::getIsdeleted,Constants.ZERO).eq(Company::getType,Constants.ONE));
+ dealCompanyChangeList(list,addList,updateList,delIds,allList);
+ if(delIds.size()>0){
+ syncDelCompany(delIds);
+ }
+ return "鍚屾鏁版嵁锛氭柊澧炪��"+addList.size()+"銆戞潯锛屾洿鏂般��"+updateList.size()+"銆戞潯锛屽垹闄ゃ��"+delIds.size()+"銆戞潯";
+ }else{
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鍚屾閽夐拤鏁版嵁涓虹┖锛�");
}
- return "鍚屾鏁版嵁锛氭柊澧炪��"+addList.size()+"銆戞潯锛屾洿鏂般��"+updateList.size()+"銆戞潯锛屽垹闄ゃ��"+delIds.size()+"銆戞潯";
- }else{
- throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鍚屾閽夐拤鏁版嵁涓虹┖锛�");
+ }catch (Exception e){
+ e.printStackTrace();
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鍚屾閽夐拤鏁版嵁寮傚父锛�");
}
}
+ @Override
+ public String syncJdyCompany() {
+ //{
+ // "dept_no": 1,//鏁板瓧 1 涓烘牴閮ㄩ棬缂栧彿銆�
+ // "has_child": true
+ //}
+ DeptApiClient deptApiClient = new DeptApiClient(HttpConstant.API_KEY, HttpConstant.HOST);
+ try {
+ Map<String, Object> result = deptApiClient.deptList(1,true,deptApiClient.getDefaultVersion());
+ if(result!=null && result.get("departments")!=null ){
+ TypeReference<List<DeptEntityModel>> typeReference = new TypeReference<List<DeptEntityModel>>(){};
+ Object obj = result.get("departments");
+ List<DeptEntityModel> list = com.alibaba.fastjson.JSONObject.parseObject(JSON.toJSONString(obj), typeReference.getType());
+ if(list !=null && list.size()>0){
+ List<Company> addList = new ArrayList<>();
+ List<Company> updateList = new ArrayList<>();
+ List<Long> delIds = new ArrayList<>();//淇敼涓轰娇鐢ㄩ拤閽塱d erpId
+ List<Company> allList = companyMapper.selectList(new QueryWrapper<Company>().lambda()
+ .eq(Company::getIsdeleted,Constants.ZERO).eq(Company::getType,Constants.ONE));
+ dealCompanyChangeListJdy(list,addList,updateList,delIds,allList);
+ if(delIds.size()>0){
+ syncDelCompany(delIds);
+ }
+ return "鍚屾鏁版嵁锛氭柊澧炪��"+addList.size()+"銆戞潯锛屾洿鏂般��"+updateList.size()+"銆戞潯锛屽垹闄ゃ��"+delIds.size()+"銆戞潯";
+ }else{
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鍚屾閽夐拤鏁版嵁涓虹┖锛�");
+ }
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鍚屾鏁版嵁寮傚父锛�");
+ }
+ return null;
+ }
+
+ private void dealCompanyChangeListJdy(List<DeptEntityModel> list, List<Company> addList, List<Company> updateList, List<Long> delIds, List<Company> allList) {
+ Date date = new Date();
+ for(DeptEntityModel respone : list){
+ Company param = new Company();
+ param.setName(respone.getName());
+ param.setErpId(respone.getDept_no().toString());
+ param.setErpParentId(respone.getParent_no() !=null?respone.getParent_no() .toString():null);
+ param.setSortnum(respone.getSeq()!=null?respone.getSeq().intValue():null);//榛樿鏈�涓婇潰
+ //鏍规嵁erpid鏌ヨ浼佷笟淇℃伅锛屽垽鏂槸鏂板杩樻槸鏇存柊
+ Company company = findCompanyByERPId(allList,respone.getDept_no().toString());
+ if(company == null){
+ //濡傛灉鏄柊澧�
+ //灏佽鏂板缁勭粐瀵硅薄鏁版嵁
+ addList.add(getAddCompanyModel(param));
+ }else{
+ updateList.add(getUpdateCompanyModel(param,company));
+ }
+ }
+ if(allList!=null && allList.size()>0){
+ for(Company c : allList){
+ if(!isCompanyDeletedJdy(c,list)){
+ delIds.add(Long.valueOf(c.getErpId()));
+ }
+ }
+ }
+ }
private void dealCompanyChangeList(List<OapiV2DepartmentGetResponse.DeptGetResponse> list, List<Company> addList, List<Company> updateList, List<Long> delIds, List<Company> allList) {
Date date = new Date();
for(OapiV2DepartmentGetResponse.DeptGetResponse respone : list){
+ Company param = new Company();
+ param.setName(respone.getName());
+ param.setErpId(respone.getDeptId().toString());
+ param.setErpParentId(respone.getParentId().toString());
+ param.setSortnum(respone.getOrder().intValue());//榛樿鏈�涓婇潰
//鏍规嵁erpid鏌ヨ浼佷笟淇℃伅锛屽垽鏂槸鏂板杩樻槸鏇存柊
Company company = findCompanyByERPId(allList,respone.getDeptId().toString());
if(company == null){
//濡傛灉鏄柊澧�
//灏佽鏂板缁勭粐瀵硅薄鏁版嵁
- addList.add(getAddCompanyModel(respone,new Company()));
+ addList.add(getAddCompanyModel(param));
}else{
- updateList.add(getUpdateCompanyModel(respone,company));
+ updateList.add(getUpdateCompanyModel(param,company));
}
}
if(allList!=null && allList.size()>0){
@@ -893,21 +976,20 @@
/**
* 鏁寸悊閽夐拤鍚屾 鏂板缁勭粐瀵硅薄
- * @param deptGetResponse
* @return
*/
- private Company getAddCompanyModel(OapiV2DepartmentGetResponse.DeptGetResponse deptGetResponse,Company company) {
- return syncDDAddCompanyModel(deptGetResponse,company);
+ private Company getAddCompanyModel(Company param ) {
+ return syncDDAddCompanyModel(param);
}
/**
* 鏁寸悊閽夐拤鍚屾 鏂板 闇�瑕佷慨鏀圭殑缁勭粐瀵硅薄
- * @param deptGetResponse
+ * @param param
* @param company
* @return
*/
- private Company getUpdateCompanyModel(OapiV2DepartmentGetResponse.DeptGetResponse deptGetResponse, Company company) {
- return syncDDEditCompanyModel(deptGetResponse,company);
+ private Company getUpdateCompanyModel(Company param, Company company) {
+ return syncDDEditCompanyModel(param,company);
}
@@ -936,24 +1018,35 @@
}
return false;
}
+ private boolean isCompanyDeletedJdy(Company c, List<DeptEntityModel> list) {
+ for(DeptEntityModel m : list){
+ if(StringUtils.equals(c.getErpId(),m.getDept_no().toString())){
+ return true;
+ }
+ }
+ return false;
+ }
/**
* 鏁寸悊 閽夐拤鍚屾鐨� 缁勭粐淇℃伅
- * @param deptGetResponse
- * @param company
+ * @param param
* @return
*/
- public Company syncDDAddCompanyModel(OapiV2DepartmentGetResponse.DeptGetResponse deptGetResponse,Company company){
- company = new Company();
+ public Company syncDDAddCompanyModel(Company param ){
+ Company company = new Company();
company.setCreateDate(new Date());
company.setIsdeleted(Constants.ZERO);
company.setStatus(Constants.ZERO);
- company.setName(deptGetResponse.getName());
- company.setErpId(deptGetResponse.getDeptId().toString());
- company.setErpParentId(deptGetResponse.getParentId().toString());
- company.setSortnum(deptGetResponse.getOrder().intValue());//榛樿鏈�涓婇潰
+// company.setName(deptGetResponse.getName());
+// company.setErpId(deptGetResponse.getDeptId().toString());
+// company.setErpParentId(deptGetResponse.getParentId().toString());
+// company.setSortnum(deptGetResponse.getOrder().intValue());//榛樿鏈�涓婇潰
+ company.setName(param.getName());
+ company.setErpId(param.getErpId() );
+ company.setErpParentId(param.getErpParentId());
+ company.setSortnum(param.getSortnum());//榛樿鏈�涓婇潰
company.setType(Constants.ONE);
String rootOrgId = systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_ROOTORG_CODE).getCode();
@@ -1007,8 +1100,8 @@
}
- public Company syncDDEditCompanyModel(OapiV2DepartmentGetResponse.DeptGetResponse deptGetResponse,Company company){
- company.setErpParentId(deptGetResponse.getParentId().toString());
+ public Company syncDDEditCompanyModel(Company param,Company company){
+ company.setErpParentId(param.getErpParentId().toString());
String idPath = "";
if(StringUtils.isNotBlank(company.getErpParentId())){
Company parent = companyMapper.selectOne(new QueryWrapper<Company>().lambda().eq(Company::getErpId,company.getErpParentId())
@@ -1030,15 +1123,13 @@
company.setParentId(parent.getId());
}
- company.setName(deptGetResponse.getName());
- company.setErpId(deptGetResponse.getDeptId().toString());
- company.setErpParentId(deptGetResponse.getParentId().toString());
- company.setSortnum(deptGetResponse.getOrder().intValue());//榛樿鏈�涓婇潰
+ company.setName(param.getName());
+ company.setErpId(param.getErpId());
+ company.setSortnum(param.getSortnum());//榛樿鏈�涓婇潰
company.setEditDate(new Date());
company.setHkCompanyPath(company.getCompanyNamePath());
company.setHkStatus(Constants.ZERO);
company.setStatus(Constants.ZERO);
- company.setSortnum(deptGetResponse.getOrder().intValue());
company.setHkDate(company.getCreateDate());
company.setEditDate(company.getCreateDate());
company.setEditor(company.getCreator());
--
Gitblit v1.9.3