skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java
@@ -51,6 +51,8 @@ String USER_INFO_BY_PHONE_OR_ACCOUNT = API_PREFIX + "/user-info-by-phone-or-account"; String USER_AUTH_INFO = API_PREFIX + "/user-auth-info"; String SAVE_USER = API_PREFIX + "/save-user"; String UPDATE_USER = API_PREFIX + "/upate-user"; String REMOVE_USER = API_PREFIX + "/remove-user"; String GET_ALL_USER_LIST = API_PREFIX+ "/get-all-user-list"; /** @@ -132,6 +134,9 @@ @PostMapping(SAVE_USER) R<Boolean> saveUser(@RequestBody User user); @PostMapping(UPDATE_USER) R<Boolean> upateUser(@RequestBody User user); /** * 删除用户 * skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResManagePersonController.java
@@ -125,4 +125,10 @@ return attResManagePersonService.saveOrUpdateResManagePerson(attResManagePersons); } @ApiOperation(value="同步责任人用户", notes="同步责任人用户") @GetMapping(value = "/synchronizationUser") public R synchronizationUser() { return R.data(attResManagePersonService.synchronizationAddUser()); } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.java
@@ -3,6 +3,7 @@ import cn.gistack.sm.sjztmd.entity.AttResManagePerson; import cn.gistack.sm.sjztmd.entity.PatrolResponsiblePerson; import cn.gistack.sm.sjztmd.vo.PersonVO; import cn.gistack.sm.sjztmd.vo.UserPersonVO; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; @@ -33,4 +34,9 @@ */ @DS("zt") List<PersonVO> getPersonListByResGuid(@Param("res_cd")String res_cd, @Param("list") List<String> personList); List<UserPersonVO> getPersonByUserNotExists(); List<UserPersonVO> getPersonByUser(); } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.xml
@@ -13,7 +13,7 @@ <result column="res_guid" property="resGuid"/> </resultMap> <!-- <select id="attResManagePersonListByResId" resultMap="baseResultMap">--> <!-- <select id="attResManagePersonListByResId" resultMap="baseResultMap">--> <select id="attResManagePersonListByResId" resultMap="baseResultMap"> select DISTINCT "guid","user_name","type","user_phone","user_unit","position","res_guid","user_guid" @@ -24,9 +24,13 @@ </select> <select id="getPatrolResponsiblePersonAll" resultType="cn.gistack.sm.sjztmd.entity.PatrolResponsiblePerson"> select DISTINCT a."res_guid",c."name",b.id as user_id from "SJZT_MD"."att_res_manage_person" a,"BLADE_USER" b ,"SJZT_MD"."att_res_base" c WHERE a."user_phone" = b.PHONE and a."res_guid" = c."guid" and a."type" = 5 select DISTINCT a."res_guid", c."name", b.id as user_id from "SJZT_MD"."att_res_manage_person" a, "BLADE_USER" b, "SJZT_MD"."att_res_base" c WHERE a."user_phone" = b.PHONE and a."res_guid" = c."guid" and a."type" = 5 </select> <update id="updateResManagePersonByGuid"> @@ -58,7 +62,8 @@ </update> <insert id="insertResManagePersion"> insert into "att_res_manage_person"("guid", "user_name", "type", "user_phone", "user_unit", "position", "res_guid", "sys_resource") insert into "att_res_manage_person"("guid", "user_name", "type", "user_phone", "user_unit", "position", "res_guid", "sys_resource") values (rawtohex(sys_guid()), #{attResManagePerson.userName}, #{attResManagePerson.type}, @@ -77,7 +82,7 @@ <choose> <when test="list!=null and list.size()>0"> and "type" in <foreach collection="list" item="type" separator ="," open="(" close=")"> <foreach collection="list" item="type" separator="," open="(" close=")"> #{type} </foreach> </when> @@ -87,4 +92,41 @@ </choose> </select> <select id="getPersonByUserNotExists" resultType="cn.gistack.sm.sjztmd.vo.UserPersonVO"> select distinct a.*, 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 where not exists(select * from "YWXT"."BLADE_USER" where a."user_phone" = "PHONE")) a </select> <select id="getPersonByUser" resultType="cn.gistack.sm.sjztmd.vo.UserPersonVO"> 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 </select> </mapper> skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResManagePersonService.java
@@ -3,6 +3,7 @@ import cn.gistack.sm.sjztmd.entity.AttResManagePerson; import cn.gistack.sm.sjztmd.entity.PatrolResponsiblePerson; import cn.gistack.sm.sjztmd.vo.PersonVO; import cn.gistack.sm.sjztmd.vo.UserPersonVO; import com.baomidou.mybatisplus.extension.service.IService; import org.springblade.core.tool.api.R; @@ -41,4 +42,17 @@ * @return */ List<PersonVO> getPersonListByResGuid(String res_cd, List<String> personList); /** * 同步责任人账号 新增 * @return */ int synchronizationAddUser(); /** * 同步责任人账号 修改 * @return */ int synchronizationUpdateUser(); } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResManagePersonServiceImpl.java
@@ -5,11 +5,15 @@ import cn.gistack.sm.sjztmd.mapper.AttResManagePersonMapper; import cn.gistack.sm.sjztmd.service.IAttResManagePersonService; import cn.gistack.sm.sjztmd.vo.PersonVO; import cn.gistack.sm.sjztmd.vo.UserPersonVO; import cn.gistack.system.user.entity.User; import cn.gistack.system.user.feign.IUserClient; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.StringUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -25,6 +29,10 @@ @Service @DS("zt") public class AttResManagePersonServiceImpl extends ServiceImpl<AttResManagePersonMapper, AttResManagePerson> implements IAttResManagePersonService { @Autowired private IUserClient userClient; @Override public Boolean saveOrUpdateResManagePerson(AttResManagePerson attResManagePerson) { if (StringUtil.isBlank(attResManagePerson.getResGuid())) @@ -75,8 +83,76 @@ * @return */ @Override @DS("zt") public List<PersonVO> getPersonListByResGuid(String res_cd, List<String> personList) { return baseMapper.getPersonListByResGuid(res_cd,personList); } @Override public int synchronizationAddUser() { // 同步没有责任人表中没有的用户 List<UserPersonVO> userPersonVOS = baseMapper.getPersonByUserNotExists(); int i = 0; for (UserPersonVO vo:userPersonVOS) { User user = new User(); user.setId(Long.parseLong(vo.getUserPhone())); user.setAccount(vo.getUserPhone()); user.setPassword("383977f7a48c4600a6cadff28f4340cee30f3011"); 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.saveUser(user); if (ret.getData()) { i++; } } catch (Exception e) { e.printStackTrace(); } } return i; } @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; } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/UserPersonVO.java
New file @@ -0,0 +1,25 @@ package cn.gistack.sm.sjztmd.vo; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModel; import lombok.Data; /** * @PROJECT_NAME: skjcmanager * @DESCRIPTION: * @USER: aix * @DATE: 2023/6/16 15:38 */ @Data @ApiModel(value = "同步责任人用户", description = "同步责任人用户") public class UserPersonVO { @TableField("\"user_name\"") private String userName; @TableField("\"user_phone\"") private String userPhone; @TableField("\"ad_code\"") private String adCode; @TableField("\"ROLE_ID\"") private String roleId; } skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/feign/UserClient.java
@@ -94,6 +94,12 @@ } @Override @PostMapping(UPDATE_USER) public R<Boolean> upateUser(User user) { return R.data(service.updateUser(user)); } @Override @PostMapping(REMOVE_USER) public R<Boolean> removeUser(String tenantIds) { return R.data(service.remove(Wrappers.<User>query().lambda().in(User::getTenantId, Func.toStrList(tenantIds))));