f472efc9ad1f9bda645dd39b40607c5eabb73b47..fe65bb1d764ca9d32647818240bb551db06e0b7c
2025-06-30 lyh
设备车间管理与用户
fe65bb 对比 | 目录
2025-06-30 lyh
设备车间管理与用户
0843d9 对比 | 目录
2025-06-30 lyh
设备车间管理与用户
e3a037 对比 | 目录
已添加15个文件
已修改5个文件
1350 ■■■■■ 文件已修改
lxzn-boot-base-core/src/main/java/org/jeecg/config/Swagger2Config.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/WorkShopDepartController.java 231 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/WorkShopDepartUserController.java 193 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/WorkShopDepart.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/WorkShopDepartUser.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/WorkShopDepartMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/WorkShopDepartUserMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/WorkShopDepartMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/WorkShopDepartUserMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/model/EamWorkShopDepartTreeModel.java 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/model/WorkShopIdModel.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IWorkShopDepartService.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IWorkShopDepartUserService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/WorkShopDepartServiceImpl.java 230 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/WorkShopDepartUserServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/util/FindsWorkShopDepartsChildrenUtil.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-boot-base-core/src/main/java/org/jeecg/config/Swagger2Config.java
@@ -103,6 +103,29 @@
                .groupName("MDC");
    }
    /**
     * swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等 ï¼ˆMDC)
     *
     * @return Docket
     */
    @Bean(value = "defaultApi1")
    public Docket defaultApi1() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                //此包路径下的类,才生成接口文档
                .apis(RequestHandlerSelectors.basePackage("org.jeecg.modules.eam"))
                //加了ApiOperation注解的类,才生成接口文档
                .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .paths(PathSelectors.any())
                .build()
                .securitySchemes(Collections.singletonList(securityScheme()))
                .securityContexts(securityContexts())
                .globalOperationParameters(setHeaderToken())
                .groupName("EAM");
    }
    /***
     * oauth2配置
     * éœ€è¦å¢žåŠ swagger授权回调地址
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/WorkShopDepartController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,231 @@
package org.jeecg.modules.eam.controller;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.entity.WorkShopDepart;
import org.jeecg.modules.eam.model.EamWorkShopDepartTreeModel;
import org.jeecg.modules.eam.model.WorkShopIdModel;
import org.jeecg.modules.eam.service.IWorkShopDepartService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
 /**
 * @Description: è®¾å¤‡è½¦é—´ç®¡ç†
 * @Author: jeecg-boot
 * @Date:   2025-06-30
 * @Version: V1.0
 */
@Api(tags="设备车间管理")
@RestController
@RequestMapping("/eam/workShopDepart")
@Slf4j
public class WorkShopDepartController extends JeecgController<WorkShopDepart, IWorkShopDepartService> {
    @Autowired
    private IWorkShopDepartService workShopDepartService;
    /**
     * åˆ†é¡µåˆ—表查询
     *
     * @param workShopDepart
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    //@AutoLog(value = "设备车间管理-分页列表查询")
    @ApiOperation(value="设备车间管理-分页列表查询", notes="设备车间管理-分页列表查询")
    @GetMapping(value = "/list")
    public Result<IPage<WorkShopDepart>> queryPageList(WorkShopDepart workShopDepart,
                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
        QueryWrapper<WorkShopDepart> queryWrapper = QueryGenerator.initQueryWrapper(workShopDepart, req.getParameterMap());
        Page<WorkShopDepart> page = new Page<WorkShopDepart>(pageNo, pageSize);
        IPage<WorkShopDepart> pageList = workShopDepartService.page(page, queryWrapper);
        return Result.OK(pageList);
    }
     @AutoLog(value = "设备车间管理-树形列表")
     @ApiOperation(value = "设备车间管理-树形列表", notes = "设备车间管理-树形列表")
     @GetMapping(value = "/queryTreeList")
     public Result<List<EamWorkShopDepartTreeModel>> queryTreeList(@RequestParam(name = "ids", required = false) String ids) {
         Result<List<EamWorkShopDepartTreeModel>> result = new Result<>();
         try {
             if (oConvertUtils.isNotEmpty(ids)) {
                 List<EamWorkShopDepartTreeModel> productionList = workShopDepartService.queryTreeList(ids);
                 result.setResult(productionList);
             } else {
                 List<EamWorkShopDepartTreeModel> list = workShopDepartService.queryTreeList();
                 result.setResult(list);
             }
             result.setSuccess(true);
         } catch (Exception e) {
             log.error(e.getMessage(), e);
         }
         return result;
     }
     @AutoLog(value = "产线表-查询树形结构所有产线名称")
     @ApiOperation(value = "产线表-查询树形结构所有产线名称", notes = "产线表-查询树形结构所有产线名称")
     @GetMapping(value = "/queryIdTree")
     public Result<List<WorkShopIdModel>> queryIdTree() {
         Result<List<WorkShopIdModel>> result = new Result<>();
         try {
             List<WorkShopIdModel> list = workShopDepartService.queryProductionIdTreeList();
             result.setResult(list);
             result.setSuccess(true);
         } catch (Exception e) {
             log.error(e.getMessage(), e);
         }
         return result;
     }
     /**
      * æ·»åŠ 
      *
      * @param WorkShopDepart
      * @return
      */
     @AutoLog(value = "设备车间管理-添加")
     @ApiOperation(value = "设备车间管理-添加", notes = "设备车间管理-添加")
     @PostMapping(value = "/add")
     @CacheEvict(value = {"eam:cache:workShop:alldata", "eam:cache:workShop:allids"}, allEntries = true)
     public Result<WorkShopDepart> add(@RequestBody WorkShopDepart WorkShopDepart) {
         Result<WorkShopDepart> result = new Result<>();
         try {
             workShopDepartService.saveWorkShopDepartData(WorkShopDepart);
             result.success("添加成功!");
         } catch (Exception e) {
             log.error(e.getMessage(), e);
             result.error500("操作失败");
         }
         return result;
     }
     /**
      * ç¼–辑
      *
      * @param WorkShopDepart
      * @return
      */
     @AutoLog(value = "设备车间管理-编辑")
     @ApiOperation(value = "设备车间管理-编辑", notes = "设备车间管理-编辑")
     @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
     @CacheEvict(value = {"eam:cache:workShop:alldata", "eam:cache:workShop:allids"}, allEntries = true)
     public Result<WorkShopDepart> edit(@RequestBody WorkShopDepart WorkShopDepart) {
         Result<WorkShopDepart> result = new Result<>();
         WorkShopDepart eamProductionEntity = workShopDepartService.getById(WorkShopDepart.getId());
         if (eamProductionEntity == null) {
             result.error500("未找到对应实体");
         } else {
             boolean ok = workShopDepartService.updateWorkShopDepartDataById(WorkShopDepart);
             if (ok) {
                 result.success("修改成功!");
             }
         }
         return result;
     }
     /**
      * é€šè¿‡id删除
      *
      * @param id
      * @return
      */
     @AutoLog(value = "设备车间管理-通过id删除")
     @ApiOperation(value = "设备车间管理-通过id删除", notes = "设备车间管理-通过id删除")
     @DeleteMapping(value = "/delete")
     @CacheEvict(value = {"eam:cache:workShop:alldata", "eam:cache:workShop:allids"}, allEntries = true)
     public Result<WorkShopDepart> delete(@RequestParam(name = "id", required = true) String id) {
         Result<WorkShopDepart> result = new Result<>();
         WorkShopDepart WorkShopDepart = workShopDepartService.getById(id);
         if (WorkShopDepart == null) {
             result.error500("未找到对应实体");
         } else {
             boolean ok = workShopDepartService.delete(id);
             if (ok) {
                 result.success("删除成功!");
             }
         }
         return result;
     }
     /**
      * æ‰¹é‡åˆ é™¤
      *
      * @param ids
      * @return
      */
     @AutoLog(value = "设备车间管理-批量删除")
     @ApiOperation(value = "设备车间管理-批量删除", notes = "设备车间管理-批量删除")
     @DeleteMapping(value = "/deleteBatch")
     @CacheEvict(value = {"eam:cache:workShop:alldata", "eam:cache:workShop:allids"}, allEntries = true)
     public Result<WorkShopDepart> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
         Result<WorkShopDepart> result = new Result<>();
         if (ids == null || "".equals(ids.trim())) {
             result.error500("参数不识别!");
         } else {
             this.workShopDepartService.deleteBatchWithChildren(Arrays.asList(ids.split(",")));
             result.success("删除成功!");
         }
         return result;
     }
    /**
     * é€šè¿‡id查询
     *
     * @param id
     * @return
     */
    //@AutoLog(value = "设备车间管理-通过id查询")
    @ApiOperation(value="设备车间管理-通过id查询", notes="设备车间管理-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<WorkShopDepart> queryById(@RequestParam(name="id",required=true) String id) {
        WorkShopDepart workShopDepart = workShopDepartService.getById(id);
        if(workShopDepart==null) {
            return Result.error("未找到对应数据");
        }
        return Result.OK(workShopDepart);
    }
    /**
    * å¯¼å‡ºexcel
    *
    * @param request
    * @param workShopDepart
    */
    //@RequiresPermissions("org.jeecg.modules.eam:sys_work_shop_depart:exportXls")
    @RequestMapping(value = "/exportXls")
    public ModelAndView exportXls(HttpServletRequest request, WorkShopDepart workShopDepart) {
        return super.exportXls(request, workShopDepart, WorkShopDepart.class, "设备车间管理");
    }
    /**
      * é€šè¿‡excel导入数据
    *
    * @param request
    * @param response
    * @return
    */
    //@RequiresPermissions("sys_work_shop_depart:importExcel")
    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
        return super.importExcel(request, response, WorkShopDepart.class);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/WorkShopDepartUserController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,193 @@
package org.jeecg.modules.eam.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.entity.WorkShopDepartUser;
import org.jeecg.modules.eam.service.IWorkShopDepartUserService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
 /**
 * @Description: è®¾å¤‡è½¦é—´ç®¡ç†ä¸Žç”¨æˆ·
 * @Author: jeecg-boot
 * @Date:   2025-06-30
 * @Version: V1.0
 */
@Api(tags="设备车间管理与用户")
@RestController
@RequestMapping("/eam/workShopDepartUser")
@Slf4j
public class WorkShopDepartUserController extends JeecgController<WorkShopDepartUser, IWorkShopDepartUserService> {
    @Autowired
    private IWorkShopDepartUserService workShopDepartUserService;
    @Autowired
    private ISysUserService sysUserService;
    /**
     * åˆ†é¡µåˆ—表查询
     *
     * @param workShopDepartUser
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    //@AutoLog(value = "设备车间管理与用户-分页列表查询")
    @ApiOperation(value="设备车间管理与用户-分页列表查询", notes="设备车间管理与用户-分页列表查询")
    @GetMapping(value = "/list")
    public Result<IPage<WorkShopDepartUser>> queryPageList(WorkShopDepartUser workShopDepartUser,
                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
        QueryWrapper<WorkShopDepartUser> queryWrapper = QueryGenerator.initQueryWrapper(workShopDepartUser, req.getParameterMap());
        Page<WorkShopDepartUser> page = new Page<WorkShopDepartUser>(pageNo, pageSize);
        IPage<WorkShopDepartUser> pageList = workShopDepartUserService.page(page, queryWrapper);
        return Result.OK(pageList);
    }
     @RequestMapping(value = "/workShopDepartUserList", method = RequestMethod.GET)
     public Result<IPage<SysUser>> userRoleList(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
         Result<IPage<SysUser>> result = new Result<IPage<SysUser>>();
         Page<SysUser> page = new Page<SysUser>(pageNo, pageSize);
         String workShopDepartId = req.getParameter("workShopDepartId");
         IPage<SysUser> pageList = sysUserService.getUserByworkShopDepartId(page, workShopDepartId);
         result.setSuccess(true);
         result.setResult(pageList);
         return result;
     }
    /**
     *   æ·»åŠ 
     *
     * @param workShopDepartUser
     * @return
     */
    @AutoLog(value = "设备车间管理与用户-添加")
    @ApiOperation(value="设备车间管理与用户-添加", notes="设备车间管理与用户-添加")
    //@RequiresPermissions("org.jeecg.modules.mdc:sys_work_shop_depart_user:add")
    @PostMapping(value = "/add")
    public Result<String> add(@RequestBody WorkShopDepartUser workShopDepartUser) {
        workShopDepartUserService.save(workShopDepartUser);
        return Result.OK("添加成功!");
    }
    /**
     *  ç¼–辑
     *
     * @param workShopDepartUser
     * @return
     */
    @AutoLog(value = "设备车间管理与用户-编辑")
    @ApiOperation(value="设备车间管理与用户-编辑", notes="设备车间管理与用户-编辑")
    //@RequiresPermissions("org.jeecg.modules.mdc:sys_work_shop_depart_user:edit")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public Result<String> edit(@RequestBody WorkShopDepartUser workShopDepartUser) {
        workShopDepartUserService.updateById(workShopDepartUser);
        return Result.OK("编辑成功!");
    }
    /**
     *   é€šè¿‡id删除
     *
     * @param id
     * @return
     */
    @AutoLog(value = "设备车间管理与用户-通过id删除")
    @ApiOperation(value="设备车间管理与用户-通过id删除", notes="设备车间管理与用户-通过id删除")
    //@RequiresPermissions("org.jeecg.modules.mdc:sys_work_shop_depart_user:delete")
    @DeleteMapping(value = "/delete")
    public Result<String> delete(@RequestParam(name="id",required=true) String id) {
        workShopDepartUserService.removeById(id);
        return Result.OK("删除成功!");
    }
    /**
     *  æ‰¹é‡åˆ é™¤
     *
     * @param ids
     * @return
     */
    @AutoLog(value = "设备车间管理与用户-批量删除")
    @ApiOperation(value="设备车间管理与用户-批量删除", notes="设备车间管理与用户-批量删除")
    //@RequiresPermissions("org.jeecg.modules.mdc:sys_work_shop_depart_user:deleteBatch")
    @DeleteMapping(value = "/deleteBatch")
    public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
        this.workShopDepartUserService.removeByIds(Arrays.asList(ids.split(",")));
        return Result.OK("批量删除成功!");
    }
    /**
     * é€šè¿‡id查询
     *
     * @param id
     * @return
     */
    //@AutoLog(value = "设备车间管理与用户-通过id查询")
    @ApiOperation(value="设备车间管理与用户-通过id查询", notes="设备车间管理与用户-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<WorkShopDepartUser> queryById(@RequestParam(name="id",required=true) String id) {
        WorkShopDepartUser workShopDepartUser = workShopDepartUserService.getById(id);
        if(workShopDepartUser==null) {
            return Result.error("未找到对应数据");
        }
        return Result.OK(workShopDepartUser);
    }
    /**
    * å¯¼å‡ºexcel
    *
    * @param request
    * @param workShopDepartUser
    */
    //@RequiresPermissions("org.jeecg.modules.mdc:sys_work_shop_depart_user:exportXls")
    @RequestMapping(value = "/exportXls")
    public ModelAndView exportXls(HttpServletRequest request, WorkShopDepartUser workShopDepartUser) {
        return super.exportXls(request, workShopDepartUser, WorkShopDepartUser.class, "设备车间管理与用户");
    }
    /**
      * é€šè¿‡excel导入数据
    *
    * @param request
    * @param response
    * @return
    */
    //@RequiresPermissions("sys_work_shop_depart_user:importExcel")
    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
        return super.importExcel(request, response, WorkShopDepartUser.class);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/WorkShopDepart.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,113 @@
package org.jeecg.modules.eam.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * @Description: è®¾å¤‡è½¦é—´ç®¡ç†
 * @Author: jeecg-boot
 * @Date:   2025-06-30
 * @Version: V1.0
 */
@Data
@TableName("mom_eam_work_shop_depart")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="mom_eam_work_shop_depart", description="设备车间管理")
public class WorkShopDepart implements Serializable {
    private static final long serialVersionUID = 1L;
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**父级id*/
    @Excel(name = "父级id", width = 15)
    @ApiModelProperty(value = "父级id")
    private String parentId;
    /**机构名称*/
    @Excel(name = "机构名称", width = 15)
    @ApiModelProperty(value = "机构名称")
    private String workShopName;
    /**英文名称*/
    @Excel(name = "英文名称", width = 15)
    @ApiModelProperty(value = "英文名称")
    private String workShopNameEn;
    /**排序*/
    @Excel(name = "排序", width = 15)
    @ApiModelProperty(value = "排序")
    private Integer workShopOrder;
    /**描述*/
    @Excel(name = "描述", width = 15)
    @ApiModelProperty(value = "描述")
    private String description;
    /**机构类别 0 å…¬å¸ 1.中心2.工区3.工段*/
    @Excel(name = "机构类别 0 å…¬å¸ 1.中心2.工区3.工段", width = 15)
    @ApiModelProperty(value = "机构类别1.中心2.工区3.工段")
    private String orgCategory;
    /**机构类型 1部门 2子部门*/
    @Excel(name = "机构类型 1部门 2子部门", width = 15)
    @ApiModelProperty(value = "机构类型 1部门 2子部门")
    private String orgType;
    /**机构编码*/
    @Excel(name = "机构编码", width = 15)
    @ApiModelProperty(value = "机构编码")
    private String orgCode;
    /**对应编码*/
    @Excel(name = "对应编码", width = 15)
    @ApiModelProperty(value = "对应编码")
    private String workShopCode;
    /**地址*/
    @Excel(name = "地址", width = 15)
    @ApiModelProperty(value = "地址")
    private String address;
    /**备注*/
    @Excel(name = "备注", width = 20)
    @ApiModelProperty(value = "备注")
    private String memo;
    /**状态(1启用,0不启用)*/
    @Excel(name = "状态(1启用,0不启用)", width = 15)
    @ApiModelProperty(value = "状态(1启用,0不启用)")
    private String status;
    /**删除状态(0,正常,1已删除)*/
    @Excel(name = "删除状态(0,正常,1已删除)", width = 15)
    @ApiModelProperty(value = "删除状态(0,正常,1已删除)")
    @TableLogic
    private String delFlag;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
    /**所属部门*/
    @ApiModelProperty(value = "所属部门")
    private String sysOrgCode;
    /**部门负责人的ids*/
    @TableField(exist = false)
    private String directorUserIds;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/WorkShopDepartUser.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
package org.jeecg.modules.eam.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * @Description: è®¾å¤‡è½¦é—´ç®¡ç†ä¸Žç”¨æˆ·
 * @Author: jeecg-boot
 * @Date:   2025-06-30
 * @Version: V1.0
 */
@Data
@TableName("mom_eam_work_shop_depart_user")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="sys_work_shop_depart_user对象", description="设备车间管理与用户")
public class WorkShopDepartUser implements Serializable {
    private static final long serialVersionUID = 1L;
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**设备车间管理id*/
    @Excel(name = "设备车间管理id", width = 15)
    @ApiModelProperty(value = "设备车间管理id")
    private String workShopDepartId;
    /**用户id*/
    @Excel(name = "用户id", width = 15)
    @ApiModelProperty(value = "用户id")
    private String userId;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/WorkShopDepartMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package org.jeecg.modules.eam.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.entity.WorkShopDepart;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * @Description: è®¾å¤‡è½¦é—´ç®¡ç†
 * @Author: jeecg-boot
 * @Date:   2025-06-30
 * @Version: V1.0
 */
public interface WorkShopDepartMapper extends BaseMapper<WorkShopDepart> {
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/WorkShopDepartUserMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package org.jeecg.modules.eam.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.entity.WorkShopDepartUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * @Description: è®¾å¤‡è½¦é—´ç®¡ç†ä¸Žç”¨æˆ·
 * @Author: jeecg-boot
 * @Date:   2025-06-30
 * @Version: V1.0
 */
public interface WorkShopDepartUserMapper extends BaseMapper<WorkShopDepartUser> {
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/WorkShopDepartMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,5 @@
<?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.mapper.WorkShopDepartMapper">
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/WorkShopDepartUserMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,5 @@
<?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.mapper.WorkShopDepartUserMapper">
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/model/EamWorkShopDepartTreeModel.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,122 @@
package org.jeecg.modules.eam.model;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.modules.eam.entity.WorkShopDepart;
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 EamWorkShopDepartTreeModel implements Serializable {
    private static final long serialVersionUID = -1309711609760828658L;
    /**
     * å¯¹åº”workShopDepart中的id字段,前端数据树中的key
     */
    private String key;
    /**
     * å¯¹åº”workShopDepart中的id字段,前端数据树中的value
     */
    private String value;
    /**
     * å¯¹åº”depart_name字段,前端数据树中的title
     */
    private String title;
    private boolean isLeaf;
    /**
     * ç±»åž‹
     */
    private Integer type;
    //以下所有字段均与workShopDepart相同
    private String id;
    private String parentId;
    private String productionName;
    private String productionNameAbbr;
    private Integer productionOrder;
    private String description;
    private String orgType;
    private String orgCode;
    private String productionCode;
    private String address;
    private String memo;
    private String status;
    private String delFlag;
    private String createBy;
    private Date createTime;
    private String updateBy;
    private Date updateTime;
    private String mdcFlag;
    /**
     * äº§çº¿è´Ÿè´£äººids
     */
    private String directorUserIds;
    private List<EamWorkShopDepartTreeModel> children = new ArrayList<>();
    public EamWorkShopDepartTreeModel() {
    }
    /**
     * å°†workShopDepart对象转换成EamWorkShopDepartTreeModel对象
     *
     * @param workShopDepart
     */
    public EamWorkShopDepartTreeModel(WorkShopDepart workShopDepart) {
        this.key = workShopDepart.getId();
        this.value = workShopDepart.getId();
        this.title = workShopDepart.getWorkShopName();
        this.id = workShopDepart.getId();
        this.parentId = workShopDepart.getParentId();
        this.productionName = workShopDepart.getWorkShopName();
        this.productionNameAbbr = workShopDepart.getWorkShopNameEn();
        this.productionOrder = workShopDepart.getWorkShopOrder();
        this.description = workShopDepart.getDescription();
        this.orgType = workShopDepart.getOrgType();
        this.orgCode = workShopDepart.getOrgCode();
        this.productionCode = workShopDepart.getWorkShopCode();
        this.address = workShopDepart.getAddress();
        this.memo = workShopDepart.getMemo();
        this.status = workShopDepart.getStatus();
        this.delFlag = workShopDepart.getDelFlag();
        this.createBy = workShopDepart.getCreateBy();
        this.createTime = workShopDepart.getCreateTime();
        this.updateBy = workShopDepart.getUpdateBy();
        this.updateTime = workShopDepart.getUpdateTime();
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/model/WorkShopIdModel.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,73 @@
package org.jeecg.modules.eam.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.modules.eam.entity.WorkShopDepart;
import org.jeecg.modules.system.entity.MdcProduction;
import org.jeecg.modules.system.model.MdcProductionTreeModel;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
 * äº§çº¿è¡¨ å°è£…树结构的产线的名称的实体类
 *
 * @author: LiuS
 * @create: 2023-03-23 15:15
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class WorkShopIdModel implements Serializable {
    private static final long serialVersionUID = 6403075134223338239L;
    /**
     * ä¸»é”®ID
     */
    private String key;
    /**
     * ä¸»é”®ID
     */
    private String value;
    /**
     * äº§çº¿åç§°
     */
    private String title;
    /**
     * æ˜¯å¦å¯é€‰
     */
    private Boolean selectable = true;
    List<WorkShopIdModel> children = new ArrayList<>();
    /**
     * å°†EamWorkShopDepartTreeModel的部分数据放在该对象当中
     *
     * @param treeModel
     * @return
     */
    public WorkShopIdModel convert(EamWorkShopDepartTreeModel treeModel) {
        this.key = treeModel.getId();
        this.value = treeModel.getId();
        this.title = treeModel.getProductionName();
        return this;
    }
    /**
     * è¯¥æ–¹æ³•为用户产线的实现类所使用
     *
     * @return
     */
    public WorkShopIdModel convertByUserProduction(WorkShopDepart workShopDepart) {
        this.key = workShopDepart.getId();
        this.value = workShopDepart.getId();
        this.title = workShopDepart.getWorkShopName();
        return this;
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IWorkShopDepartService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
package org.jeecg.modules.eam.service;
import org.jeecg.modules.eam.entity.WorkShopDepart;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.model.EamWorkShopDepartTreeModel;
import org.jeecg.modules.eam.model.WorkShopIdModel;
import org.jeecg.modules.system.model.ProductionIdModel;
import java.util.List;
/**
 * @Description: è®¾å¤‡è½¦é—´ç®¡ç†
 * @Author: jeecg-boot
 * @Date:   2025-06-30
 * @Version: V1.0
 */
public interface IWorkShopDepartService extends IService<WorkShopDepart> {
    /**
     * æŸ¥è¯¢æ‰€æœ‰äº§çº¿ä¿¡æ¯ï¼Œå¹¶åˆ†èŠ‚ç‚¹è¿›è¡Œæ˜¾ç¤º
     */
    List<EamWorkShopDepartTreeModel> queryTreeList();
    /**
     * æŸ¥è¯¢æ‰€æœ‰äº§çº¿ä¿¡æ¯ï¼Œå¹¶åˆ†èŠ‚ç‚¹è¿›è¡Œæ˜¾ç¤º
     */
    List<EamWorkShopDepartTreeModel> queryTreeList(String ids);
    /**
     * æ ¹æ®å…³é”®å­—搜索相关的产线数据
     */
    List<EamWorkShopDepartTreeModel> searchByKeyWord(String keyWord);
    /**
     * ä¿å­˜äº§çº¿æ•°æ®
     */
    void saveWorkShopDepartData(WorkShopDepart workShopDepart);
    /**
     * æŸ¥è¯¢æ‰€æœ‰éƒ¨é—¨DepartId信息,并分节点进行显示
     */
    List<WorkShopIdModel> queryProductionIdTreeList();
    /**
     * æ›´æ–°äº§çº¿æ•°æ®
     */
    boolean updateWorkShopDepartDataById(WorkShopDepart workShopDepart);
    /**
     * æ ¹æ®äº§çº¿id删除并删除其可能存在的子级产线
     */
    boolean delete(String id);
    /**
     * æ ¹æ®äº§çº¿id批量删除并删除其可能存在的子级产线
     */
    void deleteBatchWithChildren(List<String> ids);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IWorkShopDepartUserService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package org.jeecg.modules.eam.service;
import org.jeecg.modules.eam.entity.WorkShopDepartUser;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * @Description: è®¾å¤‡è½¦é—´ç®¡ç†ä¸Žç”¨æˆ·
 * @Author: jeecg-boot
 * @Date:   2025-06-30
 * @Version: V1.0
 */
public interface IWorkShopDepartUserService extends IService<WorkShopDepartUser> {
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/WorkShopDepartServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,230 @@
package org.jeecg.modules.eam.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
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.entity.WorkShopDepart;
import org.jeecg.modules.eam.entity.WorkShopDepartUser;
import org.jeecg.modules.eam.mapper.WorkShopDepartMapper;
import org.jeecg.modules.eam.mapper.WorkShopDepartUserMapper;
import org.jeecg.modules.eam.model.EamWorkShopDepartTreeModel;
import org.jeecg.modules.eam.model.WorkShopIdModel;
import org.jeecg.modules.eam.service.IWorkShopDepartService;
import org.jeecg.modules.eam.util.FindsWorkShopDepartsChildrenUtil;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.mapper.SysUserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
/**
 * @Description: è®¾å¤‡è½¦é—´ç®¡ç†
 * @Author: jeecg-boot
 * @Date:   2025-06-30
 * @Version: V1.0
 */
@Service
public class WorkShopDepartServiceImpl extends ServiceImpl<WorkShopDepartMapper, WorkShopDepart> implements IWorkShopDepartService {
    @Autowired
    private SysUserMapper sysUserMapper;
    @Autowired
    private WorkShopDepartUserMapper workShopDepartUserMapper;
    /**
     * queryTreeList å¯¹åº” queryTreeList æŸ¥è¯¢æ‰€æœ‰çš„设备车间管理数据,以树结构形式响应给前端
     */
    @Override
    public List<EamWorkShopDepartTreeModel> queryTreeList() {
        LambdaQueryWrapper<WorkShopDepart> query = new LambdaQueryWrapper<WorkShopDepart>();
        query.eq(WorkShopDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
        query.orderByAsc(WorkShopDepart::getWorkShopOrder);
        List<WorkShopDepart> list = this.list(query);
        //设置用户id,让前台显示
        this.setUserIdsByProList(list);
        //调用wrapTreeDataToTreeList方法生成树状数据
        return FindsWorkShopDepartsChildrenUtil.wrapTreeDataToTreeList(list);
    }
    /**
     * queryTreeList æ ¹æ®è®¾å¤‡è½¦é—´ç®¡ç†id查询,前端回显调用
     */
    @Override
    public List<EamWorkShopDepartTreeModel> queryTreeList(String ids) {
        List<EamWorkShopDepartTreeModel> listResult = new ArrayList<>();
        LambdaQueryWrapper<WorkShopDepart> query = new LambdaQueryWrapper<WorkShopDepart>();
        query.eq(WorkShopDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
        if (oConvertUtils.isNotEmpty(ids)) {
            query.in(true, WorkShopDepart::getId, ids.split(","));
        }
        query.orderByAsc(WorkShopDepart::getWorkShopOrder);
        List<WorkShopDepart> list = this.list(query);
        for (WorkShopDepart production : list) {
            if (production.getDescription().isEmpty()){
                production.setDescription("");
            }
            listResult.add(new EamWorkShopDepartTreeModel(production));
        }
        return listResult;
    }
    /**
     * æ ¹æ®å…³é”®å­—搜索相关的部门数据
     */
    @Override
    public List<EamWorkShopDepartTreeModel> searchByKeyWord(String keyWord) {
        LambdaQueryWrapper<WorkShopDepart> query = new LambdaQueryWrapper<>();
        List<EamWorkShopDepartTreeModel> newList = new ArrayList<>();
        query.like(WorkShopDepart::getWorkShopName, keyWord);
        EamWorkShopDepartTreeModel model = new EamWorkShopDepartTreeModel();
        List<WorkShopDepart> productionList = this.list(query);
        if (!productionList.isEmpty()) {
            for (WorkShopDepart WorkShopDepart : productionList) {
                model = new EamWorkShopDepartTreeModel(WorkShopDepart);
                model.setChildren(null);
                newList.add(model);
            }
            return newList;
        }
        return Collections.emptyList();
    }
    /**
     * saveProductionData å¯¹åº” add ä¿å­˜ç”¨æˆ·åœ¨é¡µé¢æ·»åŠ çš„æ–°çš„è®¾å¤‡è½¦é—´ç®¡ç†å¯¹è±¡æ•°æ®
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void saveWorkShopDepartData(WorkShopDepart WorkShopDepart) {
        if (WorkShopDepart != null) {
            if (WorkShopDepart.getParentId() == null) {
                WorkShopDepart.setParentId("");
            }
            WorkShopDepart.setId(IdWorker.getIdStr(WorkShopDepart));
            // å…ˆåˆ¤æ–­è¯¥å¯¹è±¡æœ‰æ— çˆ¶çº§ID,有则意味着不是最高级,否则意味着是最高级
            // èŽ·å–çˆ¶çº§ID
            String parentId = WorkShopDepart.getParentId();
            JSONObject formData = new JSONObject();
            formData.put("parentId",parentId);
            String[] codeArray = (String[]) FillRuleUtil.executeRule(FillRuleConstant.PRODUCTION,formData);
            WorkShopDepart.setOrgCode(codeArray[0]);
            String orgType = codeArray[1];
            WorkShopDepart.setOrgType(String.valueOf(orgType));
            WorkShopDepart.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
            this.save(WorkShopDepart);
        }
    }
    @Override
    @Cacheable(value = "eam:cache:workshop:allids")
    public List<WorkShopIdModel> queryProductionIdTreeList() {
        LambdaQueryWrapper<WorkShopDepart> query = new LambdaQueryWrapper<>();
        query.eq(WorkShopDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
        query.orderByAsc(WorkShopDepart::getWorkShopOrder);
        List<WorkShopDepart> list = this.list(query);
        //调用wrapTreeDataToTreeList方法生成树状数据
        return FindsWorkShopDepartsChildrenUtil.wrapTreeDataToProductionIdTreeList(list);
    }
    /**
     * updateProductionDataById å¯¹åº” edit æ ¹æ®è®¾å¤‡è½¦é—´ç®¡ç†ä¸»é”®æ¥æ›´æ–°å¯¹åº”的设备车间管理数据
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean updateWorkShopDepartDataById(WorkShopDepart WorkShopDepart) {
        if (WorkShopDepart != null) {
            this.updateById(WorkShopDepart);
            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删除用户与设备车间管理关系
        workShopDepartUserMapper.delete(new LambdaQueryWrapper<WorkShopDepartUser>().in(WorkShopDepartUser::getWorkShopDepartId, 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删除用户与设备车间管理关系
        workShopDepartUserMapper.delete(new LambdaQueryWrapper<WorkShopDepartUser>().in(WorkShopDepartUser::getWorkShopDepartId, idList));
    }
    /**
     * é€šè¿‡è®¾å¤‡è½¦é—´ç®¡ç†é›†åˆä¸ºè®¾å¤‡è½¦é—´ç®¡ç†è®¾ç½®ç”¨æˆ·id,用于前台展示
     */
    private void setUserIdsByProList(List<WorkShopDepart> productionList) {
        //查询负责部门不为空的情况
        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 productionIds = user.getProductionIds();
            if (StringUtils.isNotBlank(productionIds)) {
                String[] productionIdArray = productionIds.split(",");
                for (String productionId : productionIdArray) {
                    if (map.containsKey(productionId)) {
                        String userIds = map.get(productionId) + "," + user.getId();
                        map.put(productionId, userIds);
                    } else {
                        map.put(productionId, user.getId());
                    }
                }
            }
        }
        //循环设备车间管理集合找到设备车间管理id对应的负责用户
        for (WorkShopDepart WorkShopDepart : productionList) {
            if (map.containsKey(WorkShopDepart.getId())) {
                WorkShopDepart.setDirectorUserIds(map.get(WorkShopDepart.getId()).toString());
            }
        }
    }
    /**
     * delete æ–¹æ³•调用 é€’归查找子集id
     */
    private void checkChildrenExists(String id, List<String> idList) {
        LambdaQueryWrapper<WorkShopDepart> query = new LambdaQueryWrapper<>();
        query.eq(WorkShopDepart::getParentId, id);
        List<WorkShopDepart> workShopDepartList = this.list(query);
        if (workShopDepartList != null && !workShopDepartList.isEmpty()) {
            for (WorkShopDepart workShopDepart : workShopDepartList) {
                idList.add(workShopDepart.getId());
                this.checkChildrenExists(workShopDepart.getId(), idList);
            }
        }
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/WorkShopDepartUserServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package org.jeecg.modules.eam.service.impl;
import org.jeecg.modules.eam.entity.WorkShopDepartUser;
import org.jeecg.modules.eam.mapper.WorkShopDepartUserMapper;
import org.jeecg.modules.eam.service.IWorkShopDepartUserService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
 * @Description: è®¾å¤‡è½¦é—´ç®¡ç†ä¸Žç”¨æˆ·
 * @Author: jeecg-boot
 * @Date:   2025-06-30
 * @Version: V1.0
 */
@Service
public class WorkShopDepartUserServiceImpl extends ServiceImpl<WorkShopDepartUserMapper, WorkShopDepartUser> implements IWorkShopDepartUserService {
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/util/FindsWorkShopDepartsChildrenUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,108 @@
package org.jeecg.modules.eam.util;
import cn.hutool.core.util.StrUtil;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.entity.WorkShopDepart;
import org.jeecg.modules.eam.model.EamWorkShopDepartTreeModel;
import org.jeecg.modules.eam.model.WorkShopIdModel;
import java.util.ArrayList;
import java.util.List;
/**
 * å¯¹åº”产线的表,处理并查找树结构数据
 *
 * @author: LiuS
 * @create: 2023-03-23 14:46
 */
public class FindsWorkShopDepartsChildrenUtil {
    /**
     * queryTreeList的子方法 ====1=====
     * è¯¥æ–¹æ³•是s将WorkShopDepart类型的list集合转换成EamWorkShopDepartTreeModel类型的集合
     */
    public static List<EamWorkShopDepartTreeModel> wrapTreeDataToTreeList(List<WorkShopDepart> recordList) {
        List<WorkShopIdModel> idList = new ArrayList<>();
        List<EamWorkShopDepartTreeModel> records = new ArrayList<>();
        for (int i = 0; i < recordList.size(); i++) {
            WorkShopDepart WorkShopDepart = recordList.get(i);
            if (StrUtil.isEmpty(WorkShopDepart.getDescription())){
                WorkShopDepart.setDescription("");
            }
            records.add(new EamWorkShopDepartTreeModel(WorkShopDepart));
        }
        List<EamWorkShopDepartTreeModel> tree = findChildren(records, idList);
        setEmptyChildrenAsNull(tree);
        return tree;
    }
    /**
     * queryTreeList的子方法 ====1=====
     * è¯¥æ–¹æ³•是找到并封装顶级父类的节点到TreeList集合
     */
    public static List<EamWorkShopDepartTreeModel> findChildren(List<EamWorkShopDepartTreeModel> recordList, List<WorkShopIdModel> workShopIdModelList) {
        List<EamWorkShopDepartTreeModel> treeList = new ArrayList<>();
        for (int i = 0; i < recordList.size(); i++) {
            EamWorkShopDepartTreeModel branch = recordList.get(i);
            if (oConvertUtils.isEmpty(branch.getParentId())) {
                treeList.add(branch);
                WorkShopIdModel WorkShopIdModel = new WorkShopIdModel().convert(branch);
                workShopIdModelList.add(WorkShopIdModel);
            }
        }
        getGrandChildren(treeList, recordList, workShopIdModelList);
        return treeList;
    }
    /**
     * queryTreeList的子方法====3====
     *该方法是找到顶级父类下的所有子节点集合并封装到TreeList集合
     */
    private static void getGrandChildren(List<EamWorkShopDepartTreeModel> treeList, List<EamWorkShopDepartTreeModel> recordList, List<WorkShopIdModel> idList) {
        for (int i = 0; i < treeList.size(); i++) {
            EamWorkShopDepartTreeModel model = treeList.get(i);
            WorkShopIdModel idModel = idList.get(i);
            for (int i1 = 0; i1 < recordList.size(); i1++) {
                EamWorkShopDepartTreeModel m = recordList.get(i1);
                if (m.getParentId() != null && m.getParentId().equals(model.getId())) {
                    model.getChildren().add(m);
                    WorkShopIdModel pim = new WorkShopIdModel().convert(m);
                    idModel.setSelectable(false);
                    idModel.getChildren().add(pim);
                }
            }
            getGrandChildren(treeList.get(i).getChildren(), recordList, idList.get(i).getChildren());
        }
    }
    /**
     * queryTreeList的子方法 ====4====
     * è¯¥æ–¹æ³•是将子节点为空的List集合设置为Null值
     */
    private static void setEmptyChildrenAsNull(List<EamWorkShopDepartTreeModel> treeList) {
        for (int i = 0; i < treeList.size(); i++) {
            EamWorkShopDepartTreeModel 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<WorkShopIdModel> wrapTreeDataToProductionIdTreeList(List<WorkShopDepart> recordList) {
        List<WorkShopIdModel> idList = new ArrayList<>();
        List<EamWorkShopDepartTreeModel> records = new ArrayList<>();
        for (int i = 0; i < recordList.size(); i++) {
            WorkShopDepart WorkShopDepart = recordList.get(i);
            records.add(new EamWorkShopDepartTreeModel(WorkShopDepart));
        }
        findChildren(records, idList);
        return idList;
    }
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java
@@ -62,22 +62,30 @@
     * @return
     */
    IPage<SysUser> getUserByRoleId(Page page, @Param("roleId") String roleId, @Param("username") String username);
    /**
     * æ ¹æ®è®¾å¤‡è½¦é—´ç®¡ç†Id查询
     * @param page
     * @param workShopDepartId è®¾å¤‡è½¦é—´ç®¡ç†Id
     * @return
     */
    IPage<SysUser> getUserByWorkShopDepartId(Page page, @Param("workShopDepartId") String workShopDepartId);
    /**
     * æ ¹æ®ç”¨æˆ·åè®¾ç½®éƒ¨é—¨ID
     * @param username
     * @param orgCode
     */
    void updateUserDepart(@Param("username") String username,@Param("orgCode") String orgCode);
    /**
     * æ ¹æ®æ‰‹æœºå·æŸ¥è¯¢ç”¨æˆ·ä¿¡æ¯
     * @param phone
     * @return
     */
    public SysUser getUserByPhone(@Param("phone") String phone);
    /**
     * æ ¹æ®é‚®ç®±æŸ¥è¯¢ç”¨æˆ·ä¿¡æ¯
     * @param email
@@ -150,7 +158,7 @@
     */
    @Deprecated
    int updateNullByEmptyString(@Param("fieldName") String fieldName);
    /**
     *  æ ¹æ®éƒ¨é—¨Ids,查询部门下用户信息
     * @param departIds
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml
@@ -45,7 +45,7 @@
            and username = #{username}
        </if>
    </select>
    <!--  ä¿®æ”¹ç”¨æˆ·éƒ¨é—¨code -->
    <update id="updateUserDepart">
        UPDATE sys_user SET org_code = #{orgCode} where username = #{username}
@@ -55,7 +55,7 @@
    <select id="getUserByPhone"  resultType="org.jeecg.modules.system.entity.SysUser">
        select * from  sys_user  where phone = #{phone} and del_flag = 0
    </select>
    <!-- æ ¹æ®é‚®ç®±æŸ¥è¯¢ç”¨æˆ·ä¿¡æ¯ -->
    <select id="getUserByEmail" resultType="org.jeecg.modules.system.entity.SysUser">
    select * from  sys_user  where email = #{email} and del_flag = 0
@@ -230,4 +230,7 @@
            #{roleCode}
        </foreach>
    </select>
</mapper>
    <select id="getUserByWorkShopDepartId" resultType="org.jeecg.modules.system.entity.SysUser">
        select * from sys_user where del_flag = 0 and id in (select user_id from mom_eam_work_shop_depart_user where work_shop_depart_id = #{workShopDepartId})
    </select>
</mapper>
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java
@@ -66,15 +66,15 @@
     * @return SysUser
     */
    public SysUser getUserByName(String username);
    /**
     * æ·»åŠ ç”¨æˆ·å’Œç”¨æˆ·è§’è‰²å…³ç³»
     * @param user
     * @param roles
     */
    public void addUserWithRole(SysUser user,String roles);
    /**
     * ä¿®æ”¹ç”¨æˆ·å’Œç”¨æˆ·è§’色关系
     * @param user
@@ -97,7 +97,7 @@
     * @return
     */
    public SysRoleIndex getDynamicIndexByUserRole(String username,String version);
    /**
      * æŸ¥è¯¢ç”¨æˆ·ä¿¡æ¯åŒ…括 éƒ¨é—¨ä¿¡æ¯
     * @param username
@@ -162,6 +162,16 @@
     */
    public IPage<SysUser> getUserByRoleId(Page<SysUser> page,String roleId, String username);
    /**
     * æ ¹æ®è®¾å¤‡è½¦é—´ç®¡ç†Id查询
     * @param page
     * @param workShopDepartId è®¾å¤‡è½¦é—´ç®¡ç†Id
     * @return
     */
    public IPage<SysUser> getUserByworkShopDepartId(Page<SysUser> page,String workShopDepartId);
    /**
     * é€šè¿‡ç”¨æˆ·åèŽ·å–ç”¨æˆ·è§’è‰²é›†åˆ
     *
@@ -177,14 +187,14 @@
     * @return æƒé™é›†åˆ
     */
    Set<String> getUserPermissionsSet(String username);
    /**
     * æ ¹æ®ç”¨æˆ·åè®¾ç½®éƒ¨é—¨ID
     * @param username
     * @param orgCode
     */
    void updateUserDepart(String username,String orgCode);
    /**
     * æ ¹æ®æ‰‹æœºå·èŽ·å–ç”¨æˆ·åå’Œå¯†ç 
     * @param phone æ‰‹æœºå·
@@ -214,7 +224,7 @@
     * @param departs
     */
    void editUserWithDepart(SysUser user, String departs);
    /**
       * æ ¡éªŒç”¨æˆ·æ˜¯å¦æœ‰æ•ˆ
     * @param sysUser
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
@@ -48,7 +48,7 @@
@Service
@Slf4j
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService {
    @Autowired
    private SysUserMapper userMapper;
    @Autowired
@@ -141,8 +141,8 @@
    public SysUser getUserByName(String username) {
        return userMapper.getUserByName(username);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void addUserWithRole(SysUser user, String roles) {
@@ -203,7 +203,7 @@
                roleIndex = list.get(0);
            }
        }
        //如果componentUrl为空,则返回空
        if(oConvertUtils.isEmpty(roleIndex.getComponent())){
            return null;
@@ -269,7 +269,7 @@
            info.setSysUserName(sysUser.getRealname());
            info.setSysOrgCode(sysUser.getOrgCode());
        }
        //多部门支持in查询
        List<SysDepart> list = sysDepartMapper.queryUserDeparts(sysUser.getId());
        List<String> sysMultiOrgCode = new ArrayList<String>();
@@ -285,7 +285,7 @@
            }
        }
        info.setSysMultiOrgCode(sysMultiOrgCode);
        return info;
    }
@@ -357,6 +357,16 @@
        return userMapper.getUserByRoleId(page,roleId,username);
    }
    /**
     * æ ¹æ®è®¾å¤‡è½¦é—´ç®¡ç†Id查询
     * @param page
     * @param workShopDepartId è®¾å¤‡è½¦é—´ç®¡ç†Id
     * @return
     */
    public IPage<SysUser> getUserByworkShopDepartId(Page<SysUser> page,String workShopDepartId){
        return userMapper.getUserByWorkShopDepartId(page,workShopDepartId);
    }
    @Override
    @CacheEvict(value= {CacheConstant.SYS_USERS_CACHE}, key="#username")