server/dmvisit_service/src/main/java/com/doumee/core/erp/ErpTool.java
@@ -8,8 +8,8 @@ import com.doumee.core.erp.model.openapi.request.erp.UserListRequest; import com.doumee.core.erp.model.openapi.response.erp.ApproveInfoResponse; import com.doumee.core.erp.model.openapi.response.erp.ERPApiResponse; import com.doumee.core.erp.model.openapi.response.erp.OrgListRespone; import com.doumee.core.erp.model.openapi.response.erp.UserListRespone; import com.doumee.core.erp.model.openapi.response.erp.ErpOrgListResponse; import com.doumee.core.erp.model.openapi.response.erp.ErpUserListResponse; import com.doumee.core.utils.HttpsUtil; import org.apache.commons.lang3.StringUtils; @@ -22,12 +22,12 @@ * @param param * @return */ public static List<OrgListRespone> getErpOrgList(String url,OrgListRequest param){ public static List<ErpOrgListResponse> getErpOrgList(String url, OrgListRequest param){ String result = HttpsUtil.postJson(url, JSONObject.toJSONString(param)); if(StringUtils.isNotBlank(result)){ TypeReference typeReference = new TypeReference<ERPApiResponse<List<OrgListRespone>>>(){}; ERPApiResponse<List<OrgListRespone>> response = JSONObject.parseObject(result, typeReference.getType()); new TypeReference<ERPApiResponse<List<ErpOrgListResponse>>>(){}; ERPApiResponse<List<ErpOrgListResponse>> response = JSONObject.parseObject(result, typeReference.getType()); if(response!=null){ return response.getData(); } @@ -42,12 +42,12 @@ * @param param * @return */ public static List<UserListRespone> getErpUserList(String url, UserListRequest param){ public static List<ErpUserListResponse> getErpUserList(String url, UserListRequest param){ String result = HttpsUtil.postJson(url, JSONObject.toJSONString(param)); if(StringUtils.isNotBlank(result)){ TypeReference typeReference = new TypeReference<ERPApiResponse<List<UserListRespone>>>(){}; ERPApiResponse<List<UserListRespone>> response = JSONObject.parseObject(result, typeReference.getType()); new TypeReference<ERPApiResponse<List<ErpUserListResponse>>>(){}; ERPApiResponse<List<ErpUserListResponse>> response = JSONObject.parseObject(result, typeReference.getType()); if(response!=null){ return response.getData(); } server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/response/erp/ErpOrgListResponse.java
ÎļþÃû´Ó server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/response/erp/OrgListRespone.java ÐÞ¸Ä @@ -12,7 +12,7 @@ */ @Data @ApiModel("ç»ç»ä¿¡æ¯åæ¥è¿åä¿¡æ¯") public class OrgListRespone { public class ErpOrgListResponse { @ApiModelProperty(value = "å¯ä¸æ è¯" ,example = "1") private String id; @ApiModelProperty(value = "åç§°" ) server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/response/erp/ErpUserListResponse.java
ÎļþÃû´Ó server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/response/erp/UserListRespone.java ÐÞ¸Ä @@ -1,16 +1,9 @@ package com.doumee.core.erp.model.openapi.response.erp; import com.doumee.core.constants.ResponseStatus; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import org.springframework.http.HttpStatus; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.io.Serializable; import java.util.Date; import java.util.List; @@ -20,7 +13,7 @@ */ @Data @ApiModel("人åä¿¡æ¯åæ¥è¿åä¿¡æ¯") public class UserListRespone { public class ErpUserListResponse { @ApiModelProperty(value = "å¯ä¸æ è¯" ,example = "1") private String id; @ApiModelProperty(value = "å§å" ) @@ -40,7 +33,7 @@ @ApiModelProperty(value = "æ´æ°æ¶é´,å¦2023-11-24 09:47:36") private Date editDate; @ApiModelProperty(value = "æå±ç»ç»ç¼ç ") private Integer orgId; private String orgId; @ApiModelProperty(value = "人è¸ç §çå°å,å¾çå ¬ç½è®¿é®å°å") private String faceImg; @ApiModelProperty(value = "å·¥å·") server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -12,20 +12,15 @@ import com.doumee.core.erp.ErpConstants; import com.doumee.core.erp.ErpTool; import com.doumee.core.erp.model.openapi.request.erp.*; import com.doumee.core.erp.model.openapi.response.erp.ApproveInfoResponse; import com.doumee.core.erp.model.openapi.response.erp.ERPApiResponse; 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.service.HKService; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.erp.model.openapi.request.*; import com.doumee.core.erp.model.openapi.response.*; import com.doumee.core.erp.model.openapi.response.erp.OrgListRespone; import com.doumee.core.erp.model.openapi.response.erp.UserListRespone; import com.doumee.core.erp.model.openapi.response.erp.ErpOrgListResponse; import com.doumee.core.erp.model.openapi.response.erp.ErpUserListResponse; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DESUtil; import com.doumee.core.utils.DateUtil; @@ -39,11 +34,8 @@ import com.doumee.service.business.ERPSyncService; import com.doumee.service.business.InterfaceLogService; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.hikvision.artemis.sdk.config.ArtemisConfig; import io.swagger.models.auth.In; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.checkerframework.checker.units.qual.C; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; @@ -131,7 +123,7 @@ @Transactional public String syncCompany(OrgListRequest param){ //è·åERPç»ç»ä¿¡æ¯ï¼å ¨éåæ¥ï¼ List<OrgListRespone> list = ErpTool.getErpOrgList(ErpConstants.orgListUrl,param); List<ErpOrgListResponse> list = ErpTool.getErpOrgList(ErpConstants.orgListUrl,param); if(list !=null && list.size()>0){ List<Company> addList = new ArrayList<>(); List<Company> updateList = new ArrayList<>(); @@ -167,9 +159,9 @@ * @param delIds * @param allList */ private void dealCompanyChangeList(List<OrgListRespone> list, List<Company> addList, List<Company> updateList, List<Integer> delIds, List<Company> allList) { private void dealCompanyChangeList(List<ErpOrgListResponse> list, List<Company> addList, List<Company> updateList, List<Integer> delIds, List<Company> allList) { Date date = new Date(); for(OrgListRespone respone : list){ for(ErpOrgListResponse respone : list){ //æ ¹æ®erpidæ¥è¯¢ä¼ä¸ä¿¡æ¯ï¼å¤ææ¯æ°å¢è¿æ¯æ´æ° Company company = findCompanyByERPId(allList,respone.getId()); if(company == null){ @@ -206,7 +198,7 @@ * @param date * @return */ private Company addUpdateCompanyModel(OrgListRespone respone,Company company,Date date) { private Company addUpdateCompanyModel(ErpOrgListResponse respone, Company company, Date date) { company.setName(respone.getName()); company.setErpId(respone.getId()); company.setEditDate(date); @@ -223,7 +215,7 @@ * @param date * @return */ private Company getAddCompanyModel(OrgListRespone respone, Date date) { private Company getAddCompanyModel(ErpOrgListResponse respone, Date date) { Company company = new Company(); company.setIsdeleted(Constants.ZERO); company.setName(respone.getName()); @@ -236,8 +228,8 @@ return company; } private boolean isCompanyDeleted(Company c, List<OrgListRespone> list) { for(OrgListRespone m : list){ private boolean isCompanyDeleted(Company c, List<ErpOrgListResponse> list) { for(ErpOrgListResponse m : list){ if(StringUtils.equals(c.getErpId(),m.getId())){ return true; } @@ -267,7 +259,7 @@ @Override @Transactional public String syncUsers(UserListRequest param){ List<UserListRespone> list = ErpTool.getErpUserList(ErpConstants.userListUrl,param); List<ErpUserListResponse> list = ErpTool.getErpUserList(ErpConstants.userListUrl,param); if(list !=null && list.size()>0) { List<Member> addList = new ArrayList<>(); List<Member> updateList = new ArrayList<>(); @@ -286,6 +278,7 @@ if(updateList.size()>0){ for(Member c : updateList){ dealRoleEmpower(c,param.getStartTime(), param.getEndTime()); c.setHkStatus(Constants.ZERO); memberMapper.updateById(c); } } @@ -294,7 +287,8 @@ dealRoleEmpower(member,param.getStartTime(), param.getEndTime()); } delIds = delList.stream().map(m->m.getId()).collect(Collectors.toList()); memberMapper.update(null,new UpdateWrapper<Member>().lambda().set(Member::getHkStatus,Constants.ZERO) memberMapper.update(null,new UpdateWrapper<Member>().lambda() .set(Member::getHkStatus,Constants.ZERO) .set(Member::getIsdeleted, Constants.ONE).in(Member::getId,delIds)); } }else{ @@ -311,9 +305,9 @@ } private void dealUserChangeList(List<UserListRespone> list, List<Member> addList, List<Member> updateList,List<Member> delList, List<Member> allList) { private void dealUserChangeList(List<ErpUserListResponse> list, List<Member> addList, List<Member> updateList, List<Member> delList, List<Member> allList) { Date date = new Date(); for(UserListRespone response : list){ for(ErpUserListResponse response : list){ //æ ¹æ® erpId æ¥è¯¢ç¨æ·ä¿¡æ¯ï¼å¤ææ¯æ°å¢è¿æ¯æ´æ° Member member = findUserByERPId(allList,response.getId()); if(member == null){ @@ -330,7 +324,6 @@ member.setRoleIds(response.getRoleIds()); delList.add(member); // delIds.add(member.getId()); continue; } updateList.add(addUpdateMemberModel(response,member,date)); @@ -346,7 +339,7 @@ } } private Member getAddMemberModel(UserListRespone param, Date date) { private Member getAddMemberModel(ErpUserListResponse param, Date date) { Member member = new Member(); BeanUtils.copyProperties(param,member); member.setCreateDate(new Date()); @@ -359,18 +352,18 @@ String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo()); member.setIdcardNo(encryptIdNo); member.setIdcardDecode(Constants.getTuominStr(param.getIdNo())); member.setCompanyId(param.getOrgId()); member.setErpOrgId(param.getOrgId()); member.setHkStatus(Constants.ZERO); member.setRoleIds(param.getRoleIds()); return member; } private Member addUpdateMemberModel(UserListRespone param,Member member,Date date) { private Member addUpdateMemberModel(ErpUserListResponse param, Member member, Date date) { BeanUtils.copyProperties(param,member); String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo()); member.setIdcardNo(encryptIdNo); member.setIdcardDecode(Constants.getTuominStr(param.getIdNo())); member.setCompanyId(param.getOrgId()); member.setErpOrgId(param.getOrgId()); member.setEditDate(new Date()); member.setErpDate(new Date()); member.setHkStatus(Constants.ZERO); @@ -378,8 +371,8 @@ return member; } private boolean isUserDeleted(Member c, List<UserListRespone> list) { for(UserListRespone m : list){ private boolean isUserDeleted(Member c, List<ErpUserListResponse> list) { for(ErpUserListResponse m : list){ if(StringUtils.equals(c.getErpId(),m.getId().toString())){ c.setRoleIds(m.getRoleIds()); return true; server/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java
@@ -1,15 +1,18 @@ package com.doumee.api.web; import com.doumee.core.erp.model.openapi.response.erp.ERPApiResponse; import com.doumee.core.haikang.model.param.respose.OrgListResponse; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.doumee.core.erp.model.openapi.request.erp.ApproveAddRequest; import com.doumee.core.erp.model.openapi.request.erp.UserFailRequest; import com.doumee.core.erp.model.openapi.response.erp.ERPApiResponse; import com.doumee.core.erp.model.openapi.response.erp.ErpOrgListResponse; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.erp.model.openapi.request.erp.OrgListRequest; import com.doumee.core.erp.model.openapi.request.erp.UserListRequest; import com.doumee.core.erp.model.openapi.response.erp.ApproveInfoResponse; import com.doumee.core.erp.model.openapi.response.erp.UserListRespone; import com.doumee.core.erp.model.openapi.response.erp.ErpUserListResponse; import com.doumee.core.utils.Constants; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -17,6 +20,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; @@ -34,13 +39,45 @@ public class ErpResourceController extends ApiController { @ApiOperation(value = "å ¨éç»ç»ä¿¡æ¯æ¥å£", notes = "ERP端æä¾ï¼ä¾è®¿å®¢ç«¯æåå ¨é¨ç»ç»ä¿¡æ¯ï¼ç¨äºåå§ååå¨ææ§æ°æ®æ ¸æ¥") @PostMapping("/org/list") public ERPApiResponse<PageData<OrgListResponse>> orgList (@RequestBody PageWrap<OrgListRequest> pageWrap) { return ERPApiResponse.success(null); public ERPApiResponse<PageData<ErpOrgListResponse>> orgList (@RequestBody PageWrap<OrgListRequest> pageWrap) { List<ErpOrgListResponse> list = new ArrayList<>(); String[] ids = new String[]{"","001","002","003"}; String[] names = new String[]{"","ç»ç»1","ç»ç»2","ç»ç»3"}; for(int i=1;i<=4;i++){ ErpOrgListResponse r = new ErpOrgListResponse(); r.setParentOrgId(ids[i-1]); r.setCreateDate(new Date()); r.setCode(UUID.randomUUID().toString()); r.setStatus(Constants.ZERO); r.setName(names[i]); list.add(r); } IPage<ErpOrgListResponse> pageInfo = new Page<>(1,10,3); pageInfo.setRecords(list); PageData<ErpOrgListResponse> r = PageData.from( pageInfo); return ERPApiResponse.success(r); } @ApiOperation(value = "å ¨é人åä¿¡æ¯æ¥å£", notes = "ERP端æä¾ï¼ä¾è®¿å®¢ç«¯æåå ¨é¨äººåä¿¡æ¯ï¼ç¨äºåå§ååå¨ææ§æ°æ®æ ¸æ¥") @PostMapping("/user/list") public ERPApiResponse<PageData<UserListRespone>> userList (@RequestBody PageWrap<UserListRequest> pageWrap) { return ERPApiResponse.success(null); public ERPApiResponse<PageData<ErpUserListResponse>> userList (@RequestBody PageWrap<UserListRequest> pageWrap) { List<ErpUserListResponse> list = new ArrayList<>(); String[] ids = new String[]{"","1001","1002","1003"}; String[] names = new String[]{"","人å1","人å2","人å3"}; String[] orgs = new String[]{"","001","002","003"}; for(int i=1;i<=4;i++){ ErpUserListResponse r = new ErpUserListResponse(); r.setOrgId(orgs[i]); r.setId(ids[i]); r.setName(names[i-1]); r.setCode( ids[i]); r.setName(names[i]); r.setFaceImg("/20223402/"+r.getId()+".png"); list.add(r); } IPage<ErpUserListResponse> pageInfo = new Page<>(1,10,3); pageInfo.setRecords(list); PageData<ErpUserListResponse> r = PageData.from( pageInfo); return ERPApiResponse.success(r); } @ApiOperation(value = "访客ç³è¯·æäº¤å®¡æ¹æ¥å£", notes = "ERP端æä¾ï¼ä¾è®¿å®¢ç«¯è°ç¨ï¼æäº¤è®¿å®¢ç³è¯·ä¿¡æ¯,æ¥å£æäº¤æåï¼ERP端è¿å审æ¹è®°å½ç¼ç ") @PostMapping("/event/approve/apply")