lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/controller/EamBaseRepairDepartController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,286 @@ package org.jeecg.modules.eam.base.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.eam.base.entity.EamBaseRepairDepart; import org.jeecg.modules.eam.base.model.RepairDepartIdModel; import org.jeecg.modules.eam.base.model.EamBaseRepairDepartTreeModel; import org.jeecg.modules.eam.base.service.IEamBaseRepairDepartService; import org.springframework.cache.annotation.CacheEvict; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /** * @Description: ç»´ä¿®é¨é¨çç» * @Author: liuS * @Date: 2023-03-23 * @Version: V1.0 */ @Slf4j @Api(tags = "ç»´ä¿®é¨é¨çç»") @RestController @RequestMapping("/eam/eamBaseRepairDepart") public class EamBaseRepairDepartController extends JeecgController<EamBaseRepairDepart, IEamBaseRepairDepartService> { @Resource private IEamBaseRepairDepartService sysMaintainDepartService; /** * å页å表æ¥è¯¢ * * @param eamBaseRepairDepart * @param pageNo * @param pageSize * @param req * @return */ @AutoLog(value = "ç»´ä¿®é¨é¨çç»-å页å表æ¥è¯¢") @ApiOperation(value = "ç»´ä¿®é¨é¨çç»-å页å表æ¥è¯¢", notes = "ç»´ä¿®é¨é¨çç»-å页å表æ¥è¯¢") @GetMapping(value = "/list") public Result<?> queryPageList(EamBaseRepairDepart eamBaseRepairDepart, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { QueryWrapper<EamBaseRepairDepart> queryWrapper = QueryGenerator.initQueryWrapper(eamBaseRepairDepart, req.getParameterMap()); Page<EamBaseRepairDepart> page = new Page<EamBaseRepairDepart>(pageNo, pageSize); IPage<EamBaseRepairDepart> pageList = sysMaintainDepartService.page(page, queryWrapper); return Result.OK(pageList); } @AutoLog(value = "ç»´ä¿®é¨é¨çç»-æ å½¢å表") @ApiOperation(value = "ç»´ä¿®é¨é¨çç»-æ å½¢å表", notes = "ç»´ä¿®é¨é¨çç»-æ å½¢å表") @GetMapping(value = "/queryTreeList") public Result<List<EamBaseRepairDepartTreeModel>> queryTreeList(@RequestParam(name = "ids", required = false) String ids) { Result<List<EamBaseRepairDepartTreeModel>> result = new Result<>(); try { if (oConvertUtils.isNotEmpty(ids)) { List<EamBaseRepairDepartTreeModel> maintainDepartList = sysMaintainDepartService.queryTreeList(ids); result.setResult(maintainDepartList); } else { List<EamBaseRepairDepartTreeModel> list = sysMaintainDepartService.queryTreeList(); result.setResult(list); } result.setSuccess(true); } catch (Exception e) { log.error(e.getMessage(), e); } return result; } @AutoLog(value = "ç»´ä¿®é¨é¨çç»-æ ¹æ®ç¨æ·idè·åäº§çº¿ä¸ææ é项") @ApiOperation(value = "ç»´ä¿®é¨é¨çç»-æ ¹æ®ç¨æ·idè·åäº§çº¿ä¸ææ é项", notes = "ç»´ä¿®é¨é¨çç»-æ ¹æ®ç¨æ·idè·åäº§çº¿ä¸ææ é项") @GetMapping(value = "/loadMaintainDepartTreeOptions") public Result<List<RepairDepartIdModel>> loadMaintainDepartTreeOptions() { Result<List<RepairDepartIdModel>> result = new Result<>(); LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String userId = user.getId(); try { List<RepairDepartIdModel> list = sysMaintainDepartService.loadMaintainDepartTreeOptions(userId); result.setSuccess(true); result.setResult(list); } catch (Exception e) { log.error(e.getMessage(), e); } return result; } @AutoLog(value = "ç»´ä¿®é¨é¨çç»-idéå") @ApiOperation(value = "ç»´ä¿®é¨é¨çç»-idéå", notes = "ç»´ä¿®é¨é¨çç»-idéå") @GetMapping(value = "/queryTreeIdList") public Result<List<String>> queryTreeIdList() { Result<List<String>> result = new Result<>(); try { List<EamBaseRepairDepart> maintainDepartList = sysMaintainDepartService.list(new LambdaQueryWrapper<EamBaseRepairDepart>().eq(EamBaseRepairDepart::getDelFlag, CommonConstant.DEL_FLAG_0).orderByAsc(EamBaseRepairDepart::getDepartOrder)); List<String> ids = maintainDepartList.stream().map(EamBaseRepairDepart::getId).collect(Collectors.toList()); result.setSuccess(true); result.setResult(ids); } catch (Exception e) { log.error(e.getMessage(), e); } return result; } /** * æ·»å * * @param eamBaseRepairDepart * @return */ @AutoLog(value = "ç»´ä¿®é¨é¨çç»-æ·»å ") @ApiOperation(value = "ç»´ä¿®é¨é¨çç»-æ·»å ", notes = "ç»´ä¿®é¨é¨çç»-æ·»å ") @PostMapping(value = "/add") @CacheEvict(value = {"sys:cache:maintainDepart:alldata", "sys:cache:maintainDepart:allids"}, allEntries = true) public Result<EamBaseRepairDepart> add(@RequestBody EamBaseRepairDepart eamBaseRepairDepart) { Result<EamBaseRepairDepart> result = new Result<>(); try { sysMaintainDepartService.saveMaintainDepartData(eamBaseRepairDepart); result.success("æ·»å æåï¼"); } catch (Exception e) { log.error(e.getMessage(), e); result.error500("æä½å¤±è´¥"); } return result; } /** * ç¼è¾ * * @param eamBaseRepairDepart * @return */ @AutoLog(value = "ç»´ä¿®é¨é¨çç»-ç¼è¾") @ApiOperation(value = "ç»´ä¿®é¨é¨çç»-ç¼è¾", notes = "ç»´ä¿®é¨é¨çç»-ç¼è¾") @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) @CacheEvict(value = {"sys:cache:maintainDepart:alldata", "sys:cache:maintainDepart:allids"}, allEntries = true) public Result<EamBaseRepairDepart> edit(@RequestBody EamBaseRepairDepart eamBaseRepairDepart) { Result<EamBaseRepairDepart> result = new Result<>(); EamBaseRepairDepart eamBaseRepairDepartEntity = sysMaintainDepartService.getById(eamBaseRepairDepart.getId()); if (eamBaseRepairDepartEntity == null) { result.error500("æªæ¾å°å¯¹åºå®ä½"); } else { boolean ok = sysMaintainDepartService.updateMaintainDepartDataById(eamBaseRepairDepart); if (ok) { result.success("ä¿®æ¹æå!"); } } return result; } /** * éè¿idå é¤ * * @param id * @return */ @AutoLog(value = "ç»´ä¿®é¨é¨çç»-éè¿idå é¤") @ApiOperation(value = "ç»´ä¿®é¨é¨çç»-éè¿idå é¤", notes = "ç»´ä¿®é¨é¨çç»-éè¿idå é¤") @DeleteMapping(value = "/delete") @CacheEvict(value = {"sys:cache:maintainDepart:alldata", "sys:cache:maintainDepart:allids"}, allEntries = true) public Result<EamBaseRepairDepart> delete(@RequestParam(name = "id", required = true) String id) { Result<EamBaseRepairDepart> result = new Result<>(); EamBaseRepairDepart eamBaseRepairDepart = sysMaintainDepartService.getById(id); if (eamBaseRepairDepart == null) { result.error500("æªæ¾å°å¯¹åºå®ä½"); } else { boolean ok = sysMaintainDepartService.delete(id); if (ok) { result.success("å 餿å!"); } } return result; } /** * æ¹éå é¤ * * @param ids * @return */ @AutoLog(value = "ç»´ä¿®é¨é¨çç»-æ¹éå é¤") @ApiOperation(value = "ç»´ä¿®é¨é¨çç»-æ¹éå é¤", notes = "ç»´ä¿®é¨é¨çç»-æ¹éå é¤") @DeleteMapping(value = "/deleteBatch") @CacheEvict(value = {"sys:cache:maintainDepart:alldata", "sys:cache:maintainDepart:allids"}, allEntries = true) public Result<EamBaseRepairDepart> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { Result<EamBaseRepairDepart> result = new Result<>(); if (ids == null || "".equals(ids.trim())) { result.error500("åæ°ä¸è¯å«ï¼"); } else { this.sysMaintainDepartService.deleteBatchWithChildren(Arrays.asList(ids.split(","))); result.success("å 餿å!"); } return result; } @AutoLog(value = "ç»´ä¿®é¨é¨çç»-æ¥è¯¢æ å½¢ç»æææäº§çº¿åç§°") @ApiOperation(value = "ç»´ä¿®é¨é¨çç»-æ¥è¯¢æ å½¢ç»æææäº§çº¿åç§°", notes = "ç»´ä¿®é¨é¨çç»-æ¥è¯¢æ å½¢ç»æææäº§çº¿åç§°") @GetMapping(value = "/queryIdTree") public Result<List<RepairDepartIdModel>> queryIdTree() { Result<List<RepairDepartIdModel>> result = new Result<>(); try { List<RepairDepartIdModel> list = sysMaintainDepartService.queryMaintainDepartIdTreeList(); result.setResult(list); result.setSuccess(true); } catch (Exception e) { log.error(e.getMessage(), e); } return result; } @AutoLog(value = "ç»´ä¿®é¨é¨çç»-æ ¹æ®å ³é®åæ¨¡ç³æç´¢ç¸å ³äº§çº¿") @ApiOperation(value = "ç»´ä¿®é¨é¨çç»-æ ¹æ®å ³é®åæ¨¡ç³æç´¢ç¸å ³äº§çº¿", notes = "ç»´ä¿®é¨é¨çç»-æ ¹æ®å ³é®åæ¨¡ç³æç´¢ç¸å ³äº§çº¿") @GetMapping(value = "/searchBy") public Result<List<EamBaseRepairDepartTreeModel>> searchBy(@RequestParam(name = "keyWord", required = true) String keyWord) { Result<List<EamBaseRepairDepartTreeModel>> result = new Result<>(); List<EamBaseRepairDepartTreeModel> treeList = sysMaintainDepartService.searchByKeyWord(keyWord); if (treeList == null || treeList.isEmpty()) { result.setSuccess(false); result.setMessage("æªæ¥è¯¢å¹é æ°æ®ï¼"); return result; } result.setResult(treeList); return result; } /** * éè¿idæ¥è¯¢ * * @param id * @return */ @AutoLog(value = "ç»´ä¿®é¨é¨çç»-éè¿idæ¥è¯¢") @ApiOperation(value = "ç»´ä¿®é¨é¨çç»-éè¿idæ¥è¯¢", notes = "ç»´ä¿®é¨é¨çç»-éè¿idæ¥è¯¢") @GetMapping(value = "/queryById") public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { EamBaseRepairDepart eamBaseRepairDepart = sysMaintainDepartService.getById(id); return Result.OK(eamBaseRepairDepart); } /** * 导åºexcel * * @param request * @param eamBaseRepairDepart */ @AutoLog(value = "ç»´ä¿®é¨é¨çç»-导åºexcel") @ApiOperation(value = "ç»´ä¿®é¨é¨çç»-导åºexcel", notes = "ç»´ä¿®é¨é¨çç»-导åºexcel") @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, EamBaseRepairDepart eamBaseRepairDepart) { return super.exportXls(request, eamBaseRepairDepart, EamBaseRepairDepart.class, "ç»´ä¿®é¨é¨çç»"); } /** * éè¿excelå¯¼å ¥æ°æ® * * @param request * @param response * @return */ @AutoLog(value = "ç»´ä¿®é¨é¨çç»-éè¿excelå¯¼å ¥æ°æ®") @ApiOperation(value = "ç»´ä¿®é¨é¨çç»-éè¿excelå¯¼å ¥æ°æ®", notes = "ç»´ä¿®é¨é¨çç»-éè¿excelå¯¼å ¥æ°æ®") @PostMapping(value = "/importExcel") @CacheEvict(value = {"sys:cache:maintainDepart:alldata", "sys:cache:maintainDepart:allids"}, allEntries = true) public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, EamBaseRepairDepart.class); } } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/entity/EamBaseRepairDepart.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,98 @@ package org.jeecg.modules.eam.base.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.jeecg.common.system.base.entity.JeecgEntity; import org.jeecgframework.poi.excel.annotation.Excel; /** * @Description: ç»´ä¿®é¨é¨çç» * @Author: liuS * @Date: 2023-03-23 * @Version: V1.0 */ @Data @TableName("eam_base_repair_depart") @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @ApiModel(value = "eam_base_repair_depart对象", description = "ç»´ä¿®é¨é¨çç»") public class EamBaseRepairDepart extends JeecgEntity { private static final long serialVersionUID = 4128209535052886060L; /** * ç¶ç»´ä¿®é¨é¨çç»ID */ @ApiModelProperty(value = "ç¶ç»´ä¿®é¨é¨çç»ID") private String parentId; /** * ç»´ä¿®é¨é¨çç»åç§° */ @Excel(name = "ç»´ä¿®é¨é¨çç»åç§°", width = 20) @ApiModelProperty(value = "ç»´ä¿®é¨é¨çç»åç§°") private String departName; /** * 缩å */ @ApiModelProperty(value = "缩å") private String departNameAbbr; /** * æåº */ @Excel(name = "æåº", width = 15) @ApiModelProperty(value = "æåº") private Integer departOrder; /** * æè¿° */ @Excel(name = "æè¿°", width = 15) @ApiModelProperty(value = "æè¿°") private String description; /** * ç»´ä¿®é¨é¨çç»ç±»å 1ä¸çº§é¨é¨ 2åé¨é¨ */ @ApiModelProperty(value = "ç»´ä¿®é¨é¨çç»ç±»å 1ä¸çº§é¨é¨ 2åé¨é¨") private String orgType; /** * ç»´ä¿®é¨é¨çç»ç¼ç */ @ApiModelProperty(value = "ç»´ä¿®é¨é¨çç»ç¼ç ") private String orgCode; /** * ç»´ä¿®é¨é¨çç»ç¼ç */ @ApiModelProperty(value = "车é´ç¼ç ") private String maintainCode; /** * å°å */ @Excel(name = "å°å", width = 15) @ApiModelProperty(value = "å°å") private String address; /** * 夿³¨ */ @Excel(name = "夿³¨", width = 20) @ApiModelProperty(value = "夿³¨") private String memo; /** * ç¶æï¼1å¯ç¨ï¼0ä¸å¯ç¨ï¼ */ @ApiModelProperty(value = "ç¶æï¼1å¯ç¨ï¼0ä¸å¯ç¨ï¼") private String status; /** * å é¤ç¶æï¼0ï¼æ£å¸¸ï¼1å·²å é¤ï¼ */ @Excel(name = "å é¤ç¶æ", width = 15, dicCode = "del_flag") @ApiModelProperty(value = "å é¤ç¶æï¼0ï¼æ£å¸¸ï¼1å·²å é¤ï¼") private String delFlag; /**é¨é¨è´è´£äººçids*/ @TableField(exist = false) private String directorUserIds; } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/entity/EamBaseRepairDepartUser.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,64 @@ package org.jeecg.modules.eam.base.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; import java.util.Date; /** * ç¨æ·äº§çº¿ * * @author: LiuS * @create: 2023-03-24 15:39 */ @Data @TableName("eam_base_repair_depart_user") @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @ApiModel(value="eam_base_repair_depart_user对象", description="ç¨æ·ç»´ä¿®çç»è¡¨") public class EamBaseRepairDepartUser implements Serializable { private static final long serialVersionUID = -615660545315767149L; /** * 主é®id */ @TableId(type = IdType.ASSIGN_ID) private String id; /** * ç¨æ·id */ private String userId; /** * ç»´ä¿®çç»id */ private String departId; /** * å建人 */ private String createBy; /** * å建æ¶é´ */ private Date createTime; public EamBaseRepairDepartUser(String id, String userId, String departId) { super(); this.id = id; this.userId = userId; this.departId = departId; } public EamBaseRepairDepartUser(String id, String departId) { this.userId = id; this.departId = departId; } } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/mapper/EamBaseRepairDepartMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,47 @@ package org.jeecg.modules.eam.base.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.jeecg.modules.eam.base.entity.EamBaseRepairDepart; import java.util.List; /** * @Author: Lius * @CreateTime: 2025-07-01 * @Description: */ public interface EamBaseRepairDepartMapper extends BaseMapper<EamBaseRepairDepart> { /** * æ ¹æ®idä¸çº§ç»´ä¿®é¨é¨çç» */ @Select("SELECT * FROM sys_maintain_depart where del_flag ='0' AND parent_id = #{parentId,jdbcType=VARCHAR}") List<EamBaseRepairDepart> queryRepDepByPid(@Param("parentId") String parentId); /** * é彿¥è¯¢ææåèç¹ */ List<String> recursionChildren(@Param("maintainId") String maintainId); /** * æ ¹æ®ç¨æ·idå车é´idè·åç¨æ·æ¥æç车é´id * * @param userId * @param maintainId * @return */ String findFirstMaintain(@Param("userId") String userId, @Param("maintainId") String maintainId); /** * æ ¹æ®ç¨æ·idæ¥è¯¢ç¨æ·ç»´ä¿®é¨é¨çç»æé * * @param userId * @return */ String findThreeMaintainId(@Param("userId") String userId); EamBaseRepairDepart findMaintainList(@Param("equipmentId") String equipmentId); } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/mapper/EamBaseRepairDepartUserMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,21 @@ package org.jeecg.modules.eam.base.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.eam.base.entity.EamBaseRepairDepartUser; import java.util.List; /** * @Author: Lius * @CreateTime: 2025-07-01 * @Description: */ public interface EamBaseRepairDepartUserMapper extends BaseMapper<EamBaseRepairDepartUser> { /** * æ ¹æ®æå®ç¨æ·idæ¥è¯¢ç»´ä¿®é¨é¨çç»idéå */ List<String> queryRepairDepartIdsByUserId(@Param("userId") String userId); } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/mapper/xml/EamBaseRepairDepartMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,45 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.jeecg.modules.eam.base.mapper.EamBaseRepairDepartMapper"> <!--é彿¥è¯¢ææåèç¹--> <select id="recursionChildren" resultType="java.lang.String"> WITH temp ( id ) AS ( SELECT id FROM sys_maintain_depart WHERE id = #{ maintainId } UNION ALL SELECT a.id FROM sys_maintain_depart a INNER JOIN temp ON a.parent_id = temp.id ) SELECT * FROM temp </select> <!--æ ¹æ®ç¨æ·idå车é´idè·åç¨æ·æ¥æç车é´id--> <select id="findFirstMaintain" resultType="java.lang.String"> SELECT TOP 1 t2.id FROM mdc_user_maintain t1 LEFT JOIN sys_maintain_depart t2 ON t1.pro_id = t2.id WHERE t1.user_id = #{ userId } AND t2.parent_id = #{maintainId} </select> <!--æ ¹æ®ç¨æ·idæ¥è¯¢ç¨æ·å·¥æ®µæé--> <select id="findThreeMaintainId" resultType="java.lang.String"> SELECT TOP 1 t2.id id FROM mdc_user_maintain t1 LEFT JOIN sys_maintain_depart t2 ON t1.pro_id = t2.id WHERE t1.user_id = #{userId} AND t2.org_type = '3' </select> <select id="findMaintainList" resultType="org.jeecg.modules.eam.base.entity.EamBaseRepairDepart"> SELECT t1.* FROM sys_maintain_depart t1 LEFT JOIN sys_maintain_depart_equipment t2 ON t1.id = t2.maintain_id LEFT JOIN mdc_equipment t3 ON t3.id = t2.equipment_id WHERE t3.equipment_id = #{equipmentId} </select> </mapper> lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/mapper/xml/EamBaseRepairDepartUserMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.jeecg.modules.eam.base.mapper.EamBaseRepairDepartUserMapper"> <!--æ ¹æ®æå®ç¨æ·idæ¥è¯¢äº§çº¿idéå--> <select id="queryRepairDepartIdsByUserId" resultType="java.lang.String"> SELECT depart_id FROM eam_base_repair_depart_user WHERE user_id = #{userId} </select> </mapper> lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/model/EamBaseRepairDepartTreeModel.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,117 @@ package org.jeecg.modules.eam.base.model; import io.swagger.annotations.ApiModel; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.jeecg.modules.eam.base.entity.EamBaseRepairDepart; import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * @author: LiuS * @create: 2023-03-23 14:16 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @ApiModel(value = "ç»´ä¿®é¨é¨çç»æ ç»ææ°æ®å®ä½", description = "ç»´ä¿®é¨é¨çç»") public class EamBaseRepairDepartTreeModel implements Serializable { private static final long serialVersionUID = 5098613810355342955L; /** * 对åºEamBaseRepairDepartä¸çidåæ®µ,åç«¯æ°æ®æ ä¸çkey */ private String key; /** * 对åºEamBaseRepairDepartä¸çidåæ®µ,åç«¯æ°æ®æ ä¸çvalue */ private String value; /** * 对åºdepart_nameåæ®µ,åç«¯æ°æ®æ ä¸çtitle */ private String title; private boolean isLeaf; //以䏿æå段åä¸EamBaseRepairDepartç¸å private String id; private String parentId; private String departName; private String departNameAbbr; private Integer departOrder; private String description; private String orgType; private String orgCode; private String departCode; private String address; private String memo; private String status; private String delFlag; private String createBy; private Date createTime; private String updateBy; private Date updateTime; /** * 产线è´è´£äººids */ private String directorUserIds; private List<EamBaseRepairDepartTreeModel> children = new ArrayList<>(); public EamBaseRepairDepartTreeModel() { } /** * å°SysMaintainDepartå¯¹è±¡è½¬æ¢æSysMaintainDepartTreeModel对象 * * @param eamBaseRepairDepart */ public EamBaseRepairDepartTreeModel(EamBaseRepairDepart eamBaseRepairDepart) { this.key = eamBaseRepairDepart.getId(); this.value = eamBaseRepairDepart.getId(); this.title = eamBaseRepairDepart.getDepartName(); this.id = eamBaseRepairDepart.getId(); this.parentId = eamBaseRepairDepart.getParentId(); this.departName = eamBaseRepairDepart.getDepartName(); this.departNameAbbr = eamBaseRepairDepart.getDepartNameAbbr(); this.departOrder = eamBaseRepairDepart.getDepartOrder(); this.description = eamBaseRepairDepart.getDescription(); this.orgType = eamBaseRepairDepart.getOrgType(); this.orgCode = eamBaseRepairDepart.getOrgCode(); this.departCode = eamBaseRepairDepart.getMaintainCode(); this.address = eamBaseRepairDepart.getAddress(); this.memo = eamBaseRepairDepart.getMemo(); this.status = eamBaseRepairDepart.getStatus(); this.delFlag = eamBaseRepairDepart.getDelFlag(); this.createBy = eamBaseRepairDepart.getCreateBy(); this.createTime = eamBaseRepairDepart.getCreateTime(); this.updateBy = eamBaseRepairDepart.getUpdateBy(); this.updateTime = eamBaseRepairDepart.getUpdateTime(); this.directorUserIds = eamBaseRepairDepart.getDirectorUserIds(); } } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/model/RepairDepartIdModel.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,65 @@ package org.jeecg.modules.eam.base.model; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.jeecg.modules.eam.base.entity.EamBaseRepairDepart; import java.io.Serializable; import java.util.ArrayList; import java.util.List; /** * @Author: Lius * @CreateTime: 2025-07-01 * @Description: */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) public class RepairDepartIdModel implements Serializable { private static final long serialVersionUID = -1114067150036416102L; /** * 主é®ID */ private String key; /** * 主é®ID */ private String value; /** * 产线åç§° */ private String title; List<RepairDepartIdModel> children = new ArrayList<>(); /** * å°SysMaintainDepartTreeModelçé¨åæ°æ®æ¾å¨è¯¥å¯¹è±¡å½ä¸ * * @param treeModel * @return */ public RepairDepartIdModel convert(EamBaseRepairDepartTreeModel treeModel) { this.key = treeModel.getId(); this.value = treeModel.getId(); this.title = treeModel.getDepartName(); return this; } /** * è¯¥æ¹æ³ä¸ºç¨æ·äº§çº¿çå®ç°ç±»æä½¿ç¨ * * @return */ public RepairDepartIdModel convertByUserMaintainDepart(EamBaseRepairDepart mdcMaintainDepart) { this.key = mdcMaintainDepart.getId(); this.value = mdcMaintainDepart.getId(); this.title = mdcMaintainDepart.getDepartName(); return this; } } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/rule/OrgCodeRepDepRule.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,98 @@ package org.jeecg.modules.eam.base.rule; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import io.netty.util.internal.StringUtil; import org.jeecg.common.handler.IFillRuleHandler; import org.jeecg.common.util.SpringContextUtils; import org.jeecg.common.util.YouBianCodeUtil; import org.jeecg.modules.eam.base.entity.EamBaseRepairDepart; import org.jeecg.modules.eam.base.service.IEamBaseRepairDepartService; import java.util.ArrayList; import java.util.List; /** * @author: LiuS * @create: 2023-07-04 16:15 * @Description: è½¦é´æºæç¼ç çæè§å */ public class OrgCodeRepDepRule implements IFillRuleHandler { @Override public Object execute(JSONObject params, JSONObject formData) { IEamBaseRepairDepartService eamBaseRepairDepartService = (IEamBaseRepairDepartService) SpringContextUtils.getBean("eamBaseRepairDepartImpl"); LambdaQueryWrapper<EamBaseRepairDepart> query = new LambdaQueryWrapper<EamBaseRepairDepart>(); LambdaQueryWrapper<EamBaseRepairDepart> query1 = new LambdaQueryWrapper<EamBaseRepairDepart>(); // å建ä¸ä¸ªListéå,å卿¥è¯¢è¿åçææEamBaseRepairDepart对象 List<EamBaseRepairDepart> eamBaseRepairDepartList = new ArrayList<>(); String[] strArray = new String[2]; //å®ä¹è½¦é´ç±»å String orgType = ""; // å®ä¹æ°ç¼ç å符串 String newOrgCode = ""; // å®ä¹æ§ç¼ç å符串 String oldOrgCode = ""; String parentId = null; if (formData != null && formData.size() > 0) { Object obj = formData.get("parentId"); if (obj != null) { parentId = obj.toString(); } } else { if (params != null) { Object obj = params.get("parentId"); if (obj != null) { parentId = obj.toString(); } } } //å¦ææ¯æé«çº§,åæ¥è¯¢åºå级çorg_code, è°ç¨å·¥å ·ç±»çæç¼ç å¹¶è¿å if (StringUtil.isNullOrEmpty(parentId)) { // çº¿å¤ææ°æ®åºä¸ç表æ¯å¦ä¸ºç©º,空åç´æ¥è¿ååå§ç¼ç query1.eq(EamBaseRepairDepart::getParentId, "").or().isNull(EamBaseRepairDepart::getParentId); query1.orderByDesc(EamBaseRepairDepart::getOrgCode); eamBaseRepairDepartList = eamBaseRepairDepartService.list(query1); if (eamBaseRepairDepartList == null || eamBaseRepairDepartList.size() == 0) { strArray[0] = YouBianCodeUtil.getNextYouBianCode(null); strArray[1] = "1"; return strArray; } else { EamBaseRepairDepart eamBaseRepairDepart = eamBaseRepairDepartList.get(0); oldOrgCode = eamBaseRepairDepart.getOrgCode(); orgType = eamBaseRepairDepart.getOrgType(); newOrgCode = YouBianCodeUtil.getNextYouBianCode(oldOrgCode); } } else {//åä¹åæ¥è¯¢åºææå级ç车é´,è·åç»æåæä¸¤ç§æ åµ,æåçº§åæ²¡æå级 // å°è£ æ¥è¯¢åçº§çæ¡ä»¶ query.eq(EamBaseRepairDepart::getParentId, parentId); // éåºæåº query.orderByDesc(EamBaseRepairDepart::getOrgCode); // æ¥è¯¢åºå级维修é¨é¨çç»çéå List<EamBaseRepairDepart> parentList = eamBaseRepairDepartService.list(query); // æ¥è¯¢åºç¶çº§ç»´ä¿®é¨é¨çç» EamBaseRepairDepart repairDepart = eamBaseRepairDepartService.getById(parentId); // è·åç¶çº§ç»´ä¿®é¨é¨çç»çcode String parentCode = repairDepart.getOrgCode(); // æ ¹æ®ç¶çº§ç»´ä¿®é¨é¨çç»ç±»åç®åºå½åç»´ä¿®é¨é¨çç»çç±»å orgType = String.valueOf(Integer.valueOf(repairDepart.getOrgType()) + 1); // å¤çå级维修é¨é¨çç»ä¸ºnullçæ åµ if (parentList == null || parentList.size() == 0) { // ç´æ¥çæå½åçç»´ä¿®é¨é¨çç»ç¼ç å¹¶è¿å newOrgCode = YouBianCodeUtil.getSubYouBianCode(parentCode, null); } else { //å¤çæå级维修é¨é¨çç»çæ åµ // è·åå级维修é¨é¨çç»çç¼ç ,å©ç¨å·¥å ·ç±» String subCode = parentList.get(0).getOrgCode(); // è¿åçæçå½åç»´ä¿®é¨é¨çç»ç¼ç newOrgCode = YouBianCodeUtil.getSubYouBianCode(parentCode, subCode); } } // è¿åæç»å°è£ äºç»´ä¿®é¨é¨çç»ç¼ç åç»´ä¿®é¨é¨çç»ç±»åçæ°ç» strArray[0] = newOrgCode; strArray[1] = orgType; return strArray; } } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/service/IEamBaseRepairDepartService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,93 @@ package org.jeecg.modules.eam.base.service; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.eam.base.entity.EamBaseRepairDepart; import org.jeecg.modules.eam.base.model.EamBaseRepairDepartTreeModel; import org.jeecg.modules.eam.base.model.RepairDepartIdModel; import java.util.List; /** * @Author: Lius * @CreateTime: 2025-07-01 * @Description: ç»´ä¿®é¨é¨çç» */ public interface IEamBaseRepairDepartService extends IService<EamBaseRepairDepart> { /** * æ¥è¯¢ææäº§çº¿ä¿¡æ¯ï¼å¹¶åèç¹è¿è¡æ¾ç¤º */ List<EamBaseRepairDepartTreeModel> queryTreeList(); /** * æ¥è¯¢ææäº§çº¿ä¿¡æ¯ï¼å¹¶åèç¹è¿è¡æ¾ç¤º */ List<EamBaseRepairDepartTreeModel> queryTreeList(String ids); /** * æ¥è¯¢ææé¨é¨DepartIdä¿¡æ¯,å¹¶åèç¹è¿è¡æ¾ç¤º */ List<RepairDepartIdModel> queryMaintainDepartIdTreeList(); /** * æ ¹æ®å ³é®åæç´¢ç¸å ³çäº§çº¿æ°æ® */ List<EamBaseRepairDepartTreeModel> searchByKeyWord(String keyWord); /** * ä¿åäº§çº¿æ°æ® */ void saveMaintainDepartData(EamBaseRepairDepart eamBaseRepairDepart); /** * æ´æ°äº§çº¿æ°æ® */ boolean updateMaintainDepartDataById(EamBaseRepairDepart eamBaseRepairDepart); /** * æ ¹æ®äº§çº¿idå é¤å¹¶å é¤å ¶å¯è½åå¨çå级产线 */ boolean delete(String id); /** * æ ¹æ®äº§çº¿idæ¹éå é¤å¹¶å é¤å ¶å¯è½åå¨çå级产线 */ void deleteBatchWithChildren(List<String> ids); /** * è·åä¸çº§äº§çº¿ */ List<EamBaseRepairDepart> queryRepDepByPid(String pid); /** * æ ¹æ®ç¨æ·idè·åäº§çº¿ä¸ææ é项 */ List<RepairDepartIdModel> loadMaintainDepartTreeOptions(String userId); /** * é彿¥è¯¢ææåèç¹ */ List<String> recursionChildren(String productionId); /** * æ ¹æ®ç¨æ·idå车é´idè·åç¨æ·æ¥æç车é´id * * @param userId * @param productionId * @return */ String findFirstMaintainDepart(String userId, String productionId); /** * æ ¹æ®ç¨æ·idæ¥è¯¢ç¨æ·å·¥æ®µæé */ String findThreeMaintainDepartId(String userId); /** * * @param equipmentId * @return */ EamBaseRepairDepart findMaintainDepartList(String equipmentId); } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/service/impl/BaseFactoryServiceImpl.java
@@ -16,7 +16,7 @@ import org.jeecg.modules.eam.base.model.EamBaseFactoryTreeModel; import org.jeecg.modules.eam.base.model.WorkShopIdModel; import org.jeecg.modules.eam.base.service.IBaseFactoryService; import org.jeecg.modules.eam.base.controller.util.FindsBaseFactorysChildrenUtil; import org.jeecg.modules.eam.base.util.FindsBaseFactorysChildrenUtil; import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.mapper.SysUserMapper; import org.springframework.beans.factory.annotation.Autowired; lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/service/impl/EamBaseRepairDepartImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,312 @@ package org.jeecg.modules.eam.base.service.impl; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.FillRuleConstant; import org.jeecg.common.util.FillRuleUtil; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.eam.base.entity.EamBaseRepairDepart; import org.jeecg.modules.eam.base.entity.EamBaseRepairDepartUser; import org.jeecg.modules.eam.base.mapper.EamBaseRepairDepartUserMapper; import org.jeecg.modules.eam.base.service.IEamBaseRepairDepartService; import org.jeecg.modules.system.entity.*; import org.jeecg.modules.eam.base.mapper.EamBaseRepairDepartMapper; import org.jeecg.modules.eam.base.model.EamBaseRepairDepartTreeModel; import org.jeecg.modules.eam.base.model.RepairDepartIdModel; import org.jeecg.modules.eam.base.util.FindsRepairDepartsChildrenUtil; import org.jeecg.modules.system.mapper.SysUserMapper; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; /** * @Author: Lius * @CreateTime: 2025-07-01 * @Description: */ @Service public class EamBaseRepairDepartImpl extends ServiceImpl<EamBaseRepairDepartMapper, EamBaseRepairDepart> implements IEamBaseRepairDepartService { @Resource private SysUserMapper sysUserMapper; @Resource private EamBaseRepairDepartUserMapper repairDepartUserMapper; /** * queryTreeList å¯¹åº queryTreeList æ¥è¯¢ææçç»´ä¿®é¨é¨çç»æ°æ®,以æ ç»æå½¢å¼ååºç»å端 */ @Override @Cacheable(value = "eam:cache:repairDepart:alldata") public List<EamBaseRepairDepartTreeModel> queryTreeList() { LambdaQueryWrapper<EamBaseRepairDepart> query = new LambdaQueryWrapper<EamBaseRepairDepart>(); query.eq(EamBaseRepairDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString()); query.orderByAsc(EamBaseRepairDepart::getDepartOrder); List<EamBaseRepairDepart> list = this.list(query); //è®¾ç½®ç¨æ·idï¼è®©åå°æ¾ç¤º this.setUserIdsByProList(list); //è°ç¨wrapTreeDataToTreeListæ¹æ³çææ ç¶æ°æ® return FindsRepairDepartsChildrenUtil.wrapTreeDataToTreeList(list); } /** * queryTreeList æ ¹æ®ç»´ä¿®é¨é¨çç»idæ¥è¯¢,åç«¯åæ¾è°ç¨ */ @Override public List<EamBaseRepairDepartTreeModel> queryTreeList(String ids) { List<EamBaseRepairDepartTreeModel> listResult = new ArrayList<>(); LambdaQueryWrapper<EamBaseRepairDepart> query = new LambdaQueryWrapper<EamBaseRepairDepart>(); query.eq(EamBaseRepairDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString()); if (oConvertUtils.isNotEmpty(ids)) { query.in(true, EamBaseRepairDepart::getId, ids.split(",")); } query.orderByAsc(EamBaseRepairDepart::getDepartOrder); List<EamBaseRepairDepart> list = this.list(query); for (EamBaseRepairDepart repairDepart : list) { listResult.add(new EamBaseRepairDepartTreeModel(repairDepart)); } return listResult; } @Override @Cacheable(value = "eam:cache:repairDepart:allids") public List<RepairDepartIdModel> queryMaintainDepartIdTreeList() { LambdaQueryWrapper<EamBaseRepairDepart> query = new LambdaQueryWrapper<>(); query.eq(EamBaseRepairDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString()); query.orderByAsc(EamBaseRepairDepart::getDepartOrder); List<EamBaseRepairDepart> list = this.list(query); //è°ç¨wrapTreeDataToTreeListæ¹æ³çææ ç¶æ°æ® return FindsRepairDepartsChildrenUtil.wrapTreeDataToMaintainDepartIdTreeList(list); } /** * æ ¹æ®å ³é®åæç´¢ç¸å ³çé¨é¨æ°æ® */ @Override public List<EamBaseRepairDepartTreeModel> searchByKeyWord(String keyWord) { LambdaQueryWrapper<EamBaseRepairDepart> query = new LambdaQueryWrapper<>(); List<EamBaseRepairDepartTreeModel> newList = new ArrayList<>(); query.like(EamBaseRepairDepart::getDepartName, keyWord); EamBaseRepairDepartTreeModel model = new EamBaseRepairDepartTreeModel(); List<EamBaseRepairDepart> repairDepartList = this.list(query); if (!repairDepartList.isEmpty()) { for (EamBaseRepairDepart eamBaseRepairDepart : repairDepartList) { model = new EamBaseRepairDepartTreeModel(eamBaseRepairDepart); model.setChildren(null); newList.add(model); } return newList; } return Collections.emptyList(); } /** * saveMaintainDepartData å¯¹åº add ä¿åç¨æ·å¨é¡µé¢æ·»å çæ°çç»´ä¿®é¨é¨çç»å¯¹è±¡æ°æ® */ @Override @Transactional(rollbackFor = Exception.class) public void saveMaintainDepartData(EamBaseRepairDepart eamBaseRepairDepart) { if (eamBaseRepairDepart != null) { if (eamBaseRepairDepart.getParentId() == null) { eamBaseRepairDepart.setParentId(""); } eamBaseRepairDepart.setId(IdWorker.getIdStr(eamBaseRepairDepart)); // å å¤æè¯¥å¯¹è±¡ææ ç¶çº§ID,æåæå³ç䏿¯æé«çº§,å¦åæå³çæ¯æé«çº§ // è·åç¶çº§ID String parentId = eamBaseRepairDepart.getParentId(); JSONObject formData = new JSONObject(); formData.put("parentId",parentId); String[] codeArray = (String[]) FillRuleUtil.executeRule(FillRuleConstant.PRODUCTION,formData); eamBaseRepairDepart.setOrgCode(codeArray[0]); String orgType = codeArray[1]; eamBaseRepairDepart.setOrgType(String.valueOf(orgType)); eamBaseRepairDepart.setDelFlag(CommonConstant.DEL_FLAG_0.toString()); this.save(eamBaseRepairDepart); } } /** * updateMaintainDepartDataById å¯¹åº edit æ ¹æ®ç»´ä¿®é¨é¨çç»ä¸»é®æ¥æ´æ°å¯¹åºçç»´ä¿®é¨é¨çç»æ°æ® */ @Override @Transactional(rollbackFor = Exception.class) public boolean updateMaintainDepartDataById(EamBaseRepairDepart eamBaseRepairDepart) { if (eamBaseRepairDepart != null) { this.updateById(eamBaseRepairDepart); return true; } return false; } /** * æ ¹æ®ç»´ä¿®é¨é¨çç»idå é¤å¹¶å é¤å ¶å¯è½åå¨çå级维修é¨é¨çç» */ @Override @Transactional(rollbackFor = Exception.class) public boolean delete(String id) { List<String> idList = new ArrayList<>(); idList.add(id); this.checkChildrenExists(id, idList); boolean result = this.removeByIds(idList); //æ ¹æ®ç»´ä¿®é¨é¨çç»idå é¤ç¨æ·ä¸ç»´ä¿®é¨é¨çç»å ³ç³» repairDepartUserMapper.delete(new LambdaQueryWrapper<EamBaseRepairDepartUser>().in(EamBaseRepairDepartUser::getDepartId, idList)); //æ ¹æ®ç»´ä¿®é¨é¨çç»idå é¤ç»´ä¿®é¨é¨çç»ä¸è®¾å¤å ³ç³» // repairDepartEquipmentMapper.delete(new LambdaQueryWrapper<SysMaintainDepartEquipment>().in(SysMaintainDepartEquipment::getMaintainDepartId, idList)); return result; } /** * æ ¹æ®ç»´ä¿®é¨é¨çç»idæ¹éå é¤å¹¶å é¤å ¶å¯è½åå¨çå级维修é¨é¨çç» */ @Override @Transactional(rollbackFor = Exception.class) public void deleteBatchWithChildren(List<String> ids) { List<String> idList = new ArrayList<>(); for (String id : ids) { idList.add(id); this.checkChildrenExists(id, idList); } this.removeByIds(idList); //æ ¹æ®ç»´ä¿®é¨é¨çç»idå é¤ç¨æ·ä¸ç»´ä¿®é¨é¨çç»å ³ç³» repairDepartUserMapper.delete(new LambdaQueryWrapper<EamBaseRepairDepartUser>().in(EamBaseRepairDepartUser::getDepartId, idList)); //æ ¹æ®ç»´ä¿®é¨é¨çç»idå é¤ç»´ä¿®é¨é¨çç»ä¸è®¾å¤å ³ç³» // repairDepartEquipmentMapper.delete(new LambdaQueryWrapper<SysMaintainDepartEquipment>().in(SysMaintainDepartEquipment::getMaintainDepartId, idList)); } /** * æ ¹æ®idæ¥è¯¢ä¸çº§ç»´ä¿®é¨é¨çç» */ @Override public List<EamBaseRepairDepart> queryRepDepByPid(String pid) { return this.baseMapper.queryRepDepByPid(pid); } /** * æ ¹æ®ç¨æ·idè·åç»´ä¿®é¨é¨çç»ä¸ææ é项 */ @Override public List<RepairDepartIdModel> loadMaintainDepartTreeOptions(String userId) { //è·åææç»´ä¿®é¨é¨çç»æ°æ® List<EamBaseRepairDepart> repairDepartList = this.baseMapper.selectList(new LambdaQueryWrapper<EamBaseRepairDepart>().eq(EamBaseRepairDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString()).orderByAsc(EamBaseRepairDepart::getDepartOrder)); //æ ¹æ®ç¨æ·idè·åæ¥æçç»´ä¿®é¨é¨çç»ä¿¡æ¯éå List<String> repairDepartIds = repairDepartUserMapper.queryRepairDepartIdsByUserId(userId); List<String> allMaintainDepartIds = new ArrayList<>(); //æ¾å°ææç»´ä¿®é¨é¨çç»idçä¸çº§id if (repairDepartIds != null && !repairDepartIds.isEmpty()) { for (String repairDepartId : repairDepartIds) { this.getAllMaintainDepartIds(repairDepartList, repairDepartId, allMaintainDepartIds); } } //è¿æ»¤ç»´ä¿®é¨é¨çç»æ°æ® List<EamBaseRepairDepart> list = repairDepartList.stream().filter((EamBaseRepairDepart eamBaseRepairDepart) -> allMaintainDepartIds.contains(eamBaseRepairDepart.getId())).collect(Collectors.toList()); return FindsRepairDepartsChildrenUtil.wrapTreeDataToMaintainDepartIdTreeList(list); } /** * é彿¥è¯¢ææåèç¹id */ @Override public List<String> recursionChildren(String repairDepartId) { return this.baseMapper.recursionChildren(repairDepartId); } /** * æ ¹æ®ç¨æ·idå车é´idè·åç¨æ·æ¥æç车é´id * @param userId * @param repairDepartId * @return */ @Override public String findFirstMaintainDepart(String userId, String repairDepartId) { return this.baseMapper.findFirstMaintain(userId, repairDepartId); } /** * æ ¹æ®ç¨æ·idæ¥è¯¢ç¨æ·ç»´ä¿®é¨é¨çç»æé */ @Override public String findThreeMaintainDepartId(String userId) { return this.baseMapper.findThreeMaintainId(userId); } @Override public EamBaseRepairDepart findMaintainDepartList(String equipmentId) { return this.baseMapper.findMaintainList(equipmentId); } /** * delete æ¹æ³è°ç¨ é彿¥æ¾åéid */ private void checkChildrenExists(String id, List<String> idList) { LambdaQueryWrapper<EamBaseRepairDepart> query = new LambdaQueryWrapper<>(); query.eq(EamBaseRepairDepart::getParentId, id); List<EamBaseRepairDepart> repairDepartList = this.list(query); if (repairDepartList != null && !repairDepartList.isEmpty()) { for (EamBaseRepairDepart repairDepart : repairDepartList) { idList.add(repairDepart.getId()); this.checkChildrenExists(repairDepart.getId(), idList); } } } /** * è·åææçç»´ä¿®é¨é¨çç»idï¼å 嫿æä¸çº§ï¼ */ private void getAllMaintainDepartIds(List<EamBaseRepairDepart> repairDepartList, String repairDepartId, List<String> allMaintainDepartIds) { if (!allMaintainDepartIds.contains(repairDepartId)) { allMaintainDepartIds.add(repairDepartId); } for (EamBaseRepairDepart eamBaseRepairDepart : repairDepartList) { if (StringUtils.isEmpty(eamBaseRepairDepart.getParentId())) { continue; } if (repairDepartId.equals(eamBaseRepairDepart.getId())) { if (!allMaintainDepartIds.contains(eamBaseRepairDepart.getParentId())) { allMaintainDepartIds.add(eamBaseRepairDepart.getParentId()); getAllMaintainDepartIds(repairDepartList, eamBaseRepairDepart.getParentId(), allMaintainDepartIds); } } } } /** * éè¿ç»´ä¿®é¨é¨çç»éå为维修é¨é¨çç»è®¾ç½®ç¨æ·idï¼ç¨äºåå°å±ç¤º */ private void setUserIdsByProList(List<EamBaseRepairDepart> repairDepartList) { //æ¥è¯¢è´è´£é¨é¨ä¸ä¸ºç©ºçæ åµ LambdaQueryWrapper<SysUser> query = new LambdaQueryWrapper<>(); query.isNotNull(SysUser::getDepartIds); List<SysUser> users = sysUserMapper.selectList(query); Map<String, Object> map = new HashMap(5); //å 循ç¯ä¸éæ¾å°ä¸åçè´è´£ç»´ä¿®é¨é¨çç»id for (SysUser user : users) { String repairDepartIds = user.getRepairDepartIds(); if (StringUtils.isNotBlank(repairDepartIds)) { String[] repairDepartIdArray = repairDepartIds.split(","); for (String repairDepartId : repairDepartIdArray) { if (map.containsKey(repairDepartId)) { String userIds = map.get(repairDepartId) + "," + user.getId(); map.put(repairDepartId, userIds); } else { map.put(repairDepartId, user.getId()); } } } } //循ç¯ç»´ä¿®é¨é¨çç»éåæ¾å°ç»´ä¿®é¨é¨çç»id对åºçè´è´£ç¨æ· for (EamBaseRepairDepart eamBaseRepairDepart : repairDepartList) { if (map.containsKey(eamBaseRepairDepart.getId())) { eamBaseRepairDepart.setDirectorUserIds(map.get(eamBaseRepairDepart.getId()).toString()); } } } } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/util/FindsBaseFactorysChildrenUtil.java
ÎļþÃû´Ó lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/controller/util/FindsBaseFactorysChildrenUtil.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package org.jeecg.modules.eam.base.controller.util; package org.jeecg.modules.eam.base.util; import cn.hutool.core.util.StrUtil; import org.jeecg.common.util.oConvertUtils; lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/util/FindsRepairDepartsChildrenUtil.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,102 @@ package org.jeecg.modules.eam.base.util; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.eam.base.entity.EamBaseRepairDepart; import org.jeecg.modules.eam.base.model.EamBaseRepairDepartTreeModel; import org.jeecg.modules.eam.base.model.RepairDepartIdModel; import java.util.ArrayList; import java.util.List; /** * 对åºç»´ä¿®é¨é¨çç»ç表ï¼å¤çå¹¶æ¥æ¾æ ç»ææ°æ® * @Author: Lius * @CreateTime: 2025-07-01 * @Description: */ public class FindsRepairDepartsChildrenUtil { /** * queryTreeListçåæ¹æ³ ====1===== * è¯¥æ¹æ³æ¯så°SysMaintainDepartç±»åçlistéåè½¬æ¢æEamBaseRepairDepartTreeModelç±»åçéå */ public static List<EamBaseRepairDepartTreeModel> wrapTreeDataToTreeList(List<EamBaseRepairDepart> recordList) { List<RepairDepartIdModel> idList = new ArrayList<>(); List<EamBaseRepairDepartTreeModel> records = new ArrayList<>(); for (int i = 0; i < recordList.size(); i++) { EamBaseRepairDepart eamBaseRepairDepart = recordList.get(i); records.add(new EamBaseRepairDepartTreeModel(eamBaseRepairDepart)); } List<EamBaseRepairDepartTreeModel> tree = findChildren(records, idList); setEmptyChildrenAsNull(tree); return tree; } /** * queryTreeListçåæ¹æ³ ====1===== * è¯¥æ¹æ³æ¯æ¾å°å¹¶å°è£ 顶级ç¶ç±»çèç¹å°TreeListéå */ public static List<EamBaseRepairDepartTreeModel> findChildren(List<EamBaseRepairDepartTreeModel> recordList, List<RepairDepartIdModel> maintainDepartIdList) { List<EamBaseRepairDepartTreeModel> treeList = new ArrayList<>(); for (int i = 0; i < recordList.size(); i++) { EamBaseRepairDepartTreeModel branch = recordList.get(i); if (oConvertUtils.isEmpty(branch.getParentId())) { treeList.add(branch); RepairDepartIdModel maintainDepartIdModel = new RepairDepartIdModel().convert(branch); maintainDepartIdList.add(maintainDepartIdModel); } } getGrandChildren(treeList, recordList, maintainDepartIdList); return treeList; } /** * queryTreeListçåæ¹æ³====3==== *è¯¥æ¹æ³æ¯æ¾å°é¡¶çº§ç¶ç±»ä¸çææåèç¹éåå¹¶å°è£ å°TreeListéå */ private static void getGrandChildren(List<EamBaseRepairDepartTreeModel> treeList, List<EamBaseRepairDepartTreeModel> recordList, List<RepairDepartIdModel> idList) { for (int i = 0; i < treeList.size(); i++) { EamBaseRepairDepartTreeModel model = treeList.get(i); RepairDepartIdModel idModel = idList.get(i); for (int i1 = 0; i1 < recordList.size(); i1++) { EamBaseRepairDepartTreeModel m = recordList.get(i1); if (m.getParentId() != null && m.getParentId().equals(model.getId())) { model.getChildren().add(m); RepairDepartIdModel pim = new RepairDepartIdModel().convert(m); idModel.getChildren().add(pim); } } getGrandChildren(treeList.get(i).getChildren(), recordList, idList.get(i).getChildren()); } } /** * queryTreeListçåæ¹æ³ ====4==== * è¯¥æ¹æ³æ¯å°åèç¹ä¸ºç©ºçListéå设置为Nullå¼ */ private static void setEmptyChildrenAsNull(List<EamBaseRepairDepartTreeModel> treeList) { for (int i = 0; i < treeList.size(); i++) { EamBaseRepairDepartTreeModel model = treeList.get(i); if (model.getChildren().size() == 0) { model.setChildren(null); model.setLeaf(true); } else { setEmptyChildrenAsNull(model.getChildren()); model.setLeaf(false); } } } /** * è·å DepartIdModel */ public static List<RepairDepartIdModel> wrapTreeDataToMaintainDepartIdTreeList(List<EamBaseRepairDepart> recordList) { List<RepairDepartIdModel> idList = new ArrayList<>(); List<EamBaseRepairDepartTreeModel> records = new ArrayList<>(); for (int i = 0; i < recordList.size(); i++) { EamBaseRepairDepart eamBaseRepairDepart = recordList.get(i); records.add(new EamBaseRepairDepartTreeModel(eamBaseRepairDepart)); } findChildren(records, idList); return idList; } } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/util/WorkShopOrgCodeProRule.java
ÎļþÃû´Ó lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/controller/util/WorkShopOrgCodeProRule.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package org.jeecg.modules.eam.base.controller.util; package org.jeecg.modules.eam.base.util; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java
@@ -189,6 +189,13 @@ private String productionIds; /** * è´è´£ç»´ä¿®é¨é¨çç» */ @Excel(name="è´è´£ç»´ä¿®é¨é¨çç»",width = 15,dictTable ="eam_base_repair_depart",dicText = "depart_name",dicCode = "id") @Dict(dictTable ="eam_base_repair_depart",dicText = "depart_name",dicCode = "id") private String repairDepartIds; /** * å¤ç§æ·idé ç½®ï¼ç¼è¾ç¨æ·çæ¶å设置 */ private String relTenantIds;