k94314517
2023-12-22 078bfa743804c25754162f5ec47231c499e28828
ERP接口
已修改4个文件
153 ■■■■■ 文件已修改
server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
@@ -1,6 +1,7 @@
package com.doumee.task;
import com.doumee.service.business.MemberService;
import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl;
import com.doumee.service.business.impl.hksync.HkSyncImgServiceImpl;
import com.doumee.service.business.impl.hksync.HkSyncOrgUserServiceImpl;
@@ -29,6 +30,8 @@
    private HkSyncOrgUserServiceImpl hkSyncOrgUserService;
    @Autowired
    private HkSyncVisitServiceImpl hkSyncVisitService;
    @Autowired
    private MemberService memberService;
    /**
     * 是否开发者
     */
@@ -102,4 +105,12 @@
    }
    /**
     * 定时冻结内部人员
     */
    @Scheduled(fixedDelay= 60*1000)
    public void memberFreeze()  {
        memberService.memberFreeze();
    }
}
server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -80,6 +80,9 @@
    // ERP ACCESS_SECRET
    public static final String ERP_ACCESS_SECRET = "ERP_ACCESS_SECRET";
    // 内部人员冻结配置时间
    public static final String TIMEOUT_FREEZE = "TIMEOUT_FREEZE";
    // FTP文件服务器资源访问地址
    public static  Date  getBirthdyByCardNo(String idCard){
server/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
@@ -159,7 +159,10 @@
    PageData<MemberInfoDTO> findUnusualPage(PageWrap<MemberQuery> pageWrap);
    /**
     * 定时冻结内部人员
     */
    void memberFreeze();
    /********************************************公众号接口***********************************************************************/
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -26,11 +26,11 @@
import com.doumee.dao.admin.request.LaborMemberDTO;
import com.doumee.dao.admin.request.MemberQuery;
import com.doumee.dao.admin.response.MemberInfoDTO;
import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.TrainTimeMapper;
import com.doumee.dao.business.*;
import com.doumee.dao.business.join.MemberJoinMapper;
import com.doumee.dao.business.join.UserActionJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.web.reqeust.CheckVisitedDTO;
import com.doumee.dao.web.response.MemberVO;
@@ -45,15 +45,14 @@
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.apache.shiro.SecurityUtils;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
 * 人员信息表Service实现
@@ -72,6 +71,17 @@
    @Autowired
    private TrainTimeMapper trainTimeMapper;
    @Autowired
    private MemberRoleMapper memberRoleMapper;
    @Autowired
    private DeviceRoleMapper deviceRoleMapper;
    @Autowired
    private EmpowerMapper empowerMapper;
    @Autowired
    private DeviceMapper deviceMapper;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
@@ -256,6 +266,9 @@
            update.setStatus(Constants.Status.ENABLE.getValue());
            update.setId(s.getId());
            memberMapper.updateById(update);
            //解冻业务 处理用户授权导入记录
            this.thawMember(result);
            UserAction userAction=new UserAction();
            userAction.setIsdeleted(Constants.ZERO);
@@ -618,8 +631,6 @@
    @Override
    public PageData<MemberInfoDTO> findUnusualPage(PageWrap<MemberQuery> pageWrap) {
        IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
@@ -648,6 +659,113 @@
    }
    /**
     * 用户解冻 添加授权导入记录
     * @param member
     */
    public void thawMember(Member member){
        //用户角色组
        List<MemberRole> memberRoleList =  memberRoleMapper.selectList(new QueryWrapper<MemberRole>().lambda().eq(MemberRole::getMemberId,member.getId()));
        if(CollectionUtils.isNotEmpty(memberRoleList)){
            List<Integer> roleIds = memberRoleList.stream().map(m->m.getId()).collect(Collectors.toList());
            //角色组设备权限
            List<DeviceRole> deviceRoleList= deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda()
                    .eq(DeviceRole::getType,Constants.TWO)
                    .in(DeviceRole::getId,roleIds));
            if(CollectionUtils.isNotEmpty(deviceRoleList)){
                String ids = "";
                List<Integer> r = new ArrayList<>();
                for (int i = 0; i < deviceRoleList.size(); i++) {
                    DeviceRole deviceRole =deviceRoleList.get(i);
                    if(i>0){
                        ids += ",";
                    }
                    Integer id =deviceRole.getId();
                    ids += "["+id+"]";
                    String doorids =deviceRole.getDoorIds();
                    if(StringUtils.isNotBlank(doorids)){
                        String[] ss = doorids.split(",");
                        try {
                            for(String s :ss){
                                r.add(Integer.parseInt(s));
                            }
                        }catch (Exception e){
                            //脏数据不处理
                        }
                    }
                }
                if(CollectionUtils.isNotEmpty(r)){
                    List<Empower> list = new ArrayList<>();
                    List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,r));
                    if(deviceList == null || deviceList.size() == 0){
                        return;
                    }
                    for (Device deviceRole:deviceList) {
                        Empower model = new Empower();
                        model.setCreateDate(new Date());
                        model.setMemberId(member.getId());
                        model.setIsdeleted(Constants.ZERO);
                        model.setDeviceId(deviceRole.getId());
                        model.setSendStatus(Constants.ZERO);
                        model.setSendType(Constants.ZERO);
                        list.add(model);
                    }
                    //导入新增的授权信息
                    empowerMapper.insertBatchSomeColumn(list);
                }
            }
        }
    }
    /**
     * 定时冻结内部人员
     */
    @Override
    public void memberFreeze(){
        SystemDictData systemDictData = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.TIMEOUT_FREEZE);
        if(Objects.isNull(systemDictData)||
                StringUtils.isBlank(systemDictData.getCode())
        ){
            return;
        }
        List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>()
                .lambda().eq(Member::getIsdeleted,Constants.ZERO)
                .eq(Member::getType,Constants.memberType.internal)
                .isNotNull(Member::getHkId)
                .notExists(" SELECT 1 FROM device_event b WHERE b.ext_event_person_no = a.HK_ID AND TO_DAYS( NOW())- TO_DAYS( b.CREATE_DATE )> "+systemDictData.getCode()+") ")
        );
        if(CollectionUtils.isEmpty(memberList)){
           return;
        }
        List<Integer> memberIds = memberList.stream().map(m->m.getId()).collect(Collectors.toList());
        //冻结状态
        memberMapper.update(null,new UpdateWrapper<Member>()
                .lambda().set(Member::getStatus,Constants.TWO)
                .in(Member::getId,memberIds)
        );
        //处理下发数据
        empowerMapper.update(null,new UpdateWrapper<Empower>()
                .lambda()
                .set(Empower::getIsdeleted,Constants.ONE)
                .set(Empower::getSendStatus,Constants.ZERO)
                .set(Empower::getEditDate,new Date())
                .in(Empower::getMemberId,memberIds)
        );
    }
    /********************************************公众号接口***********************************************************************/