skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/feign/IAttResManagePersonClient.java
@@ -5,6 +5,7 @@ import org.springblade.core.tool.api.R; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -27,6 +28,8 @@ String GET_AD_BASE = API_PREFIX + "/getAdBaseById"; String GET_PERSONG_LIST_BY_RES_GUID = API_PREFIX + "/getPersonListByResGuid"; String GET_USER_LIST_BY_RES_GUID = API_PREFIX + "/getUserListByResGuid"; String SYNCHARONIZATION_ADD_USER = API_PREFIX + "/synchronizationAddUser"; String SYNCHARONIZATION_UPDATE_USER = API_PREFIX + "/synchronizationUpdateUser"; @GetMapping(QUERY_LIST_BY_PHONE) R queryListByPhone(@RequestParam("userPhone") String userPhone); @@ -50,4 +53,11 @@ */ @GetMapping(GET_USER_LIST_BY_RES_GUID) List<PersonVO> getUserListByResGuid(@RequestParam("res_cd") String res_cd); @PostMapping(SYNCHARONIZATION_ADD_USER) int syncharonization_add_user(); @PostMapping(SYNCHARONIZATION_UPDATE_USER) int syncharonization_update_user(); } skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/feign/IAttResManagePersonClientFallback.java
@@ -36,4 +36,14 @@ public List<PersonVO> getUserListByResGuid(String res_cd) { return null; } @Override public int syncharonization_add_user() { return 0; } @Override public int syncharonization_update_user() { return 0; } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/feign/AttResManagePersonClient.java
@@ -81,4 +81,14 @@ public List<PersonVO> getUserListByResGuid(String res_cd) { return adBaseService.getPersonListByResGuid(res_cd); } @Override public int syncharonization_add_user() { return attResManagePersonService.synchronizationAddUser(); } @Override public int syncharonization_update_user() { return attResManagePersonService.synchronizationUpdateUser(); } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.java
@@ -38,5 +38,6 @@ List<UserPersonVO> getPersonByUserNotExists(); List<UserPersonVO> getPersonByUser(); int updateUserByPerson(); } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.xml
@@ -129,4 +129,30 @@ order by "user_phone") a) a </select> <update id="updateUserByPerson"> UPDATE YWXT.BLADE_USER a, ( select distinct a."user_name", a."user_phone", a."ad_code", to_char((select wm_concat( distinct CASE tmp."type" WHEN '1' THEN '1648252341572902914' WHEN '2' THEN '1648252441107931137' WHEN '3' THEN '1648252563300589570' WHEN '4' THEN '1648252509110181890' WHEN '5' THEN '1642713427301355522' ELSE '' END ) from "SJZT_MD"."att_res_manage_person" tmp where tmp."user_phone" = a."user_phone")) as role_id from (select * from (select distinct a."user_name", a."user_phone", concat(b."ad_guid", '000000') as "ad_code" from "SJZT_MD"."att_res_manage_person" a left join "SJZT_MD"."att_res_base" b on a."res_guid" = b."guid" where "user_phone" is not null and "user_name" not like '%、' and length(a."user_phone") = 11 order by "user_phone") a) a ) b set a.role_id = b.role_id, a.dept_id = case b.role_id when '1642713427301355522' then cast(b."ad_code" as bigint) + 1 else b."ad_code" end where a.phone = b."user_phone" </update> </mapper> skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResManagePersonServiceImpl.java
@@ -124,35 +124,8 @@ @Override public int synchronizationUpdateUser() { // 同步没有责任人表中没有的用户 List<UserPersonVO> userPersonVOS = baseMapper.getPersonByUser(); int i = 0; for (UserPersonVO vo:userPersonVOS) { R<User> userR = userClient.userByAccount("000000", vo.getUserPhone()); User user = userR.getData(); // 责任人角色不相等需要修改 if (!vo.getRoleId().equals(user.getRoleId())) { user.setRoleId(vo.getRoleId()); // 如果是巡查责任人,设置为默认部门 if (user.getRoleId().equals("1642713427301355522")) { user.setDeptId(String.valueOf(Integer.parseInt(vo.getAdCode()) + 1)); } else { user.setDeptId(vo.getAdCode()); } user.setDeptId(vo.getAdCode()); user.setName(vo.getUserName().trim()); user.setRealName(vo.getUserName().trim()); user.setPhone(vo.getUserPhone()); try { R<Boolean> ret = userClient.upateUser(user); if (ret.getData()) { i++; } } catch (Exception e) { e.printStackTrace(); } } } return i; int ret = baseMapper.updateUserByPerson(); return ret; } } skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/UserXxlJob.java
New file @@ -0,0 +1,37 @@ package cn.gistack.job.executor.jobhandler; import cn.gistack.sm.sjztmd.feign.IAttResManagePersonClient; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.log.XxlJobLogger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** * @PROJECT_NAME: skjcmanager * @DESCRIPTION: 用户调度器 * @USER: aix * @DATE: 2023/6/17 10:24 */ @Component public class UserXxlJob { @Autowired private IAttResManagePersonClient attResManagePersonClient; /** * 用户同步调度器 * @return */ @XxlJob("synchronizationUserJobHandler") public ReturnT<String> execute(String param) { XxlJobLogger.log("开始用户同步任务..."); int retAddInt = attResManagePersonClient.syncharonization_add_user(); XxlJobLogger.log("新增用户:<span style='color:red'>" + retAddInt + "</span>"); int retupInt = attResManagePersonClient.syncharonization_update_user(); XxlJobLogger.log("修改用户:<span style='color:red'>" + retupInt + "</span>"); XxlJobLogger.log("结束用户同步任务..."); return ReturnT.SUCCESS; } }