xieb
2023-06-17 88176914e8edc506b02eab131c431cad0eda9619
同步用户
6 files modified
1 files added
125 ■■■■ changed files
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/feign/IAttResManagePersonClient.java 10 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/feign/IAttResManagePersonClientFallback.java 10 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/feign/AttResManagePersonClient.java 10 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.java 1 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.xml 26 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResManagePersonServiceImpl.java 31 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/UserXxlJob.java 37 ●●●●● patch | view | raw | blame | history
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;
    }
}