xieb
2023-06-17 8b864f5c98c4bf2bd361f669b9b9e44145402713
同步责任人用户
7 files modified
1 files added
194 ■■■■■ changed files
skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java 5 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResManagePersonController.java 6 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.java 6 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.xml 54 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResManagePersonService.java 14 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResManagePersonServiceImpl.java 78 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/UserPersonVO.java 25 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/feign/UserClient.java 6 ●●●●● patch | view | raw | blame | history
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))));