已添加1个文件
已修改9个文件
150 ■■■■■ 文件已修改
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentFaultReasonController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderWxMessageSendJob.java 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserRoleMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserRoleMapper.xml 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserRoleService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserRoleServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/vo/SysUserRoleExitVo.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentFaultReasonController.java
@@ -62,7 +62,7 @@
        List<EamEquipmentFaultReason> records = pageList.getRecords();
        records.forEach(r ->{
            r.setText(r.getFaultName());
            r.setValue(r.getId());
            r.setValue(r.getFaultName());
        });
        return Result.OK(pageList);
    }
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderWxMessageSendJob.java
@@ -16,7 +16,9 @@
import org.jeecg.modules.quartz.service.ISysQuartzLogService;
import org.jeecg.modules.qywx.message.vo.TemplateCard;
import org.jeecg.modules.qywx.message.vo.TemplateCardEntity;
import org.jeecg.modules.system.entity.MdcProduction;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.IMdcProductionService;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.system.service.impl.ThirdAppWechatEnterpriseServiceImpl;
import org.jeecg.modules.system.vo.UserSelector;
@@ -27,10 +29,7 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -50,6 +49,8 @@
    private ISysQuartzLogService sysQuartzLogService;
    @Autowired
    private IQuartzJobService quartzJobService;
    @Autowired
    private IMdcProductionService mdcProductionService;
    @Value("${wechatEnterprise.cardActionUrl}")
    private String cardActionUrl;
@@ -67,21 +68,19 @@
        long startTime = System.currentTimeMillis();
        try {
            //查询所有待保养的周保工单
            List<EamWeekMaintenanceOrder> waitOrderList = eamWeekMaintenanceOrderService.list(new LambdaQueryWrapper<EamWeekMaintenanceOrder>()
                    .eq(EamWeekMaintenanceOrder::getMaintenanceStatus, WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name())
                    .eq(EamWeekMaintenanceOrder::getDelFlag, CommonConstant.DEL_FLAG_0));
            List<EamWeekMaintenanceOrder> unReceivedOrderList = eamWeekMaintenanceOrderService.selectUnReceivedMaintenanceOrder();
            if (!unReceivedOrderList.isEmpty()) {
                //有待保养的工单,推送企业微信消息
                Map<String, List<EamWeekMaintenanceOrder>> unReceivedOrderMap = unReceivedOrderList.stream()
                        .collect(Collectors.groupingBy(EamWeekMaintenanceOrder::getOrgId));
                Set<String> productionIds = selectTwoLevelProductionIds(unReceivedOrderMap.keySet());
                StringBuilder message = new StringBuilder();
                for (String orgId : unReceivedOrderMap.keySet()) {
                for (String orgId : productionIds) {
                    //查询该产线下的所有操作工
                    List<UserSelector> userSelectorList = sysUserService.selectOperatorList(null, orgId, BusinessCodeConst.PCR0001);
                    if (userSelectorList.isEmpty()) {
                        log.error("系统未设置操作工用户,无法推送工单领取提醒消息");
                        message.append("系统未设置操作工用户,无法推送工单领取提醒消息").append("\n");
                        log.error("id为:{},的产线未配置操作工用户,无法推送周保工单领取提醒消息", orgId);
                        message.append("id为: ").append(orgId).append(" çš„产线未配置操作工用户,无法推送周保工单领取提醒消息").append("\n");
                    } else {
                        String toUsers = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.joining(","));
                        String touser = wechatEnterpriseService.getTouser(toUsers, false);
@@ -126,4 +125,24 @@
        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
        sysQuartzLogService.save(quartzLog);
    }
    //如果当前产线是三级,查询对应二级产线,如果不是不做处理
    private Set<String> selectTwoLevelProductionIds(Set<String> productionIds) {
        Set<String> result = new HashSet<>();
        List<MdcProduction> mdcProductionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().in(MdcProduction::getId, productionIds));
        for (MdcProduction production : mdcProductionList) {
            //如果是三级产线,查找对应的二级产线,添加进结果集
            if ("3".equals(production.getOrgType())) {
                mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>()
                        .eq(MdcProduction::getId, production.getParentId())
                        .eq(MdcProduction::getOrgType, "2"))
                        .stream().findFirst().ifPresent(mdcProduction -> result.add(mdcProduction.getId()));
            }
            //如果是二级产线,添加进结果集
            if ("2".equals(production.getOrgType())) {
                result.add(production.getId());
            }
        }
        return result;
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java
@@ -11,6 +11,7 @@
import org.jeecg.common.api.vo.FileUploadResult;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.constant.DataBaseConstant;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog;
@@ -203,6 +204,10 @@
    @Transactional(rollbackFor = Exception.class)
    @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.REPORT_REPAIR, businessTable = "eam_report_repair")
    public EamReportRepair add(EamReportRepair eamReportRepair) {
        EamEquipment equipment = eamEquipmentService.getById(eamReportRepair.getEquipmentId());
        if (equipment == null) {
            throw new JeecgBootException("设备不存在,请检查!");
        }
        eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_REPAIR.name());
        eamReportRepair.setDelFlag(CommonConstant.DEL_FLAG_0);
        // é™„件处理
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java
@@ -1,6 +1,7 @@
package org.jeecg.modules.system.controller;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.RandomUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
@@ -32,6 +33,7 @@
import org.jeecg.modules.system.model.SysUserSysDepartModel;
import org.jeecg.modules.system.service.*;
import org.jeecg.modules.system.vo.SysDepartUsersVO;
import org.jeecg.modules.system.vo.SysUserRoleExitVo;
import org.jeecg.modules.system.vo.SysUserRoleVO;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
@@ -580,7 +582,17 @@
        }
        //update-end--Author:kangxiaolin  Date:20180825 for:[03]用户导出,如果选择数据则只导出相关数据----------------------
        List<SysUser> pageList = sysUserService.list(queryWrapper);
        // æŸ¥è¯¢ç”¨æˆ·è§’色
        List<String> userIds = pageList.stream().map(SysUser::getId).collect(Collectors.toList());
        List<SysUserRoleExitVo> userRoleExitVoList = sysUserRoleService.queryRoleNamesByUserIds(userIds);
        if (!CollectionUtil.isEmpty(userRoleExitVoList)) {
            Map<String, String> userRolesMap = userRoleExitVoList.stream().collect(Collectors.toMap(SysUserRoleExitVo::getUsername, SysUserRoleExitVo::getRoleNames));
            pageList.forEach(user -> {
                if (userRolesMap.containsKey(user.getUsername())) {
                    user.setRoleIds(userRolesMap.get(user.getUsername()));
                }
            });
        }
        //导出文件名称
        mv.addObject(NormalExcelConstants.FILE_NAME, "用户列表");
        mv.addObject(NormalExcelConstants.CLASS, SysUser.class);
@@ -627,6 +639,9 @@
                    sysUserExcel.setSalt(salt);
                    String passwordEncode = PasswordUtil.encrypt(sysUserExcel.getUsername(), sysUserExcel.getPassword(), salt);
                    sysUserExcel.setPassword(passwordEncode);
                    sysUserExcel.setDelFlag(CommonConstant.DEL_FLAG_0);
                    sysUserExcel.setPasswordFlag(CommonConstant.DEL_FLAG_1);
                    sysUserExcel.setPasswordTime(new Date());
                    try {
                        sysUserService.save(sysUserExcel);
                        successLines++;
@@ -672,6 +687,17 @@
                        }
                        userProductionService.saveBatch(userProductionList);
                    }
                    // æ‰¹é‡å°†è§’色和用户信息建立关联关系
                    String roleIds = sysUserExcel.getRoleIds();
                    if (StringUtils.isNotBlank(roleIds)) {
                        String userId = sysUserExcel.getId();
                        String[] roleIdArray = roleIds.split(",");
                        List<SysUserRole> sysRoleList = new ArrayList<>(roleIdArray.length);
                        for (String roleId : roleIdArray) {
                            sysRoleList.add(new SysUserRole(userId, roleId));
                        }
                        sysUserRoleService.saveBatch(sysRoleList);
                    }
                }
            } catch (Exception e) {
                errorMessage.add("发生异常:" + e.getMessage());
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java
@@ -189,6 +189,14 @@
    private String productionIds;
    /**
     * è§’色分配 (导入导出使用)
     */
    @Excel(name="角色分配",width = 15,dictTable ="sys_role",dicText = "role_name",dicCode = "id")
    @Dict(dictTable ="sys_role",dicText = "role_name",dicCode = "id")
    @TableField(exist = false)
    private String roleIds;
    /**
     * å¤šç§Ÿæˆ·id配置,编辑用户的时候设置
     */
    private String relTenantIds;
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserRoleMapper.java
@@ -1,10 +1,12 @@
package org.jeecg.modules.system.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.entity.SysUserRole;
import org.jeecg.modules.system.vo.SysUserRoleExitVo;
import java.util.List;
@@ -48,4 +50,11 @@
    @Select("select username from sys_user where id in (select user_id from sys_user_role where role_id = #{roleId})")
    List<String> getUserNameByRoleId(@Param("roleId") String roleId);
    /**
     * é€šè¿‡ç”¨æˆ·id集合获取用户和角色关系
     * @param userIds
     * @return
     */
    @InterceptorIgnore(tenantLine = "true") // è·³è¿‡ç§Ÿæˆ·æ’件解析
    List<SysUserRoleExitVo> queryRoleNamesByUserIds(@Param("userIds") List<String> userIds);
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserRoleMapper.xml
@@ -15,4 +15,30 @@
        where t2.id is not null
        )
    </select>
    <select id="queryRoleNamesByUserIds" resultType="org.jeecg.modules.system.vo.SysUserRoleExitVo">
        SELECT
            t1.username,
            ISNULL(
                    STUFF(
                            (
                                SELECT ',' + t3.role_name
                                FROM sys_user_role t2
                                         INNER JOIN sys_role t3 ON t2.role_id = t3.id
                                WHERE t2.user_id = t1.id
                                FOR XML PATH(''), TYPE
                            ).value('.', 'NVARCHAR(MAX)'), 1, 1, ''
                    ), ''
            ) AS roleNames
        FROM sys_user t1
        <where>
            <if test="userIds!=null  and userIds.size()>0">
                AND t1.id IN
                <foreach collection="userIds" index="index" item="userId" open="(" separator="," close=")">
                    #{userId}
                </foreach>
            </if>
        </where>
        GROUP BY t1.username, t1.id
    </select>
</mapper>
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserRoleService.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.entity.SysUserRole;
import org.jeecg.modules.system.vo.SysUserRoleExitVo;
import java.util.List;
@@ -28,4 +29,10 @@
     */
    List<String> getUserNameByRoleId(String roleId);
    /**
     * é€šè¿‡ç”¨æˆ·id集合获取用户和角色关系
     * @param userIds
     * @return
     */
    List<SysUserRoleExitVo> queryRoleNamesByUserIds(List<String> userIds);
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserRoleServiceImpl.java
@@ -5,9 +5,11 @@
import org.jeecg.modules.system.entity.SysUserRole;
import org.jeecg.modules.system.mapper.SysUserRoleMapper;
import org.jeecg.modules.system.service.ISysUserRoleService;
import org.jeecg.modules.system.vo.SysUserRoleExitVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
/**
@@ -42,4 +44,14 @@
        return sysUserRoleMapper.getUserNameByRoleId(roleId);
    }
    /**
     * é€šè¿‡ç”¨æˆ·id集合获取用户和角色关系
     * @param userIds
     * @return
     */
    @Override
    public List<SysUserRoleExitVo> queryRoleNamesByUserIds(List<String> userIds) {
        return sysUserRoleMapper.queryRoleNamesByUserIds(userIds);
    }
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/vo/SysUserRoleExitVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package org.jeecg.modules.system.vo;
import lombok.Data;
/**
 * @Author: Lius
 * @CreateTime: 2025-08-20
 * @Description:
 */
@Data
public class SysUserRoleExitVo {
    private String username;
    private String roleNames;
}