zhangherong
2025-07-01 5aae43c2d47e8c7c5ea6457fbb2db99fa9357642
Merge remote-tracking branch 'origin/master'
已添加16个文件
已修改6个文件
1381 ■■■■■ 文件已修改
db/设备管理数据库设计.pdma.json 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/FillRuleConstant.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/controller/BaseFactoryController.java 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/controller/BaseFactoryUserController.java 198 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/controller/util/FindsBaseFactorysChildrenUtil.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/controller/util/WorkShopOrgCodeProRule.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/entity/BaseFactory.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/entity/BaseFactoryUser.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/mapper/BaseFactoryMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/mapper/BaseFactoryUserMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/mapper/xml/BaseFactoryMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/mapper/xml/BaseFactoryUserMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/model/EamBaseFactoryTreeModel.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/model/WorkShopIdModel.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/service/IBaseFactoryService.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/service/IBaseFactoryUserService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/service/impl/BaseFactoryServiceImpl.java 222 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/service/impl/BaseFactoryUserServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
db/É豸¹ÜÀíÊý¾Ý¿âÉè¼Æ.pdma.json
@@ -2,9 +2,9 @@
  "name": "数据库产品化设计",
  "describe": "描述设备管理数据库设计文档",
  "avatar": "",
  "version": "4.9.2",
  "version": "4.9.4",
  "createdTime": "2025-3-10 16:38:19",
  "updatedTime": "2025-7-1 10:45:42",
  "updatedTime": "2025-7-1 11:43:12",
  "dbConns": [],
  "profile": {
    "default": {
@@ -632,7 +632,7 @@
      "#DDE5FF"
    ],
    "DDLToggleCase": "L",
    "menuWidth": "389px"
    "menuWidth": "246px"
  },
  "entities": [
    {
@@ -20685,6 +20685,42 @@
          "extProps": {},
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "C1CE4BAB-DB43-4D6F-A0FA-24275F01F7B2"
        },
        {
          "defKey": "org_type",
          "defName": "机构类型",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "B5B65363-D1D6-497E-ACE7-8DA9CDA8AA75"
        },
        {
          "defKey": "org_code",
          "defName": "机构编码",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "7ECD6490-CFCE-4613-BC8C-A51FD324FF44"
        }
      ],
      "correlations": [],
lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/FillRuleConstant.java
@@ -23,6 +23,10 @@
    public static final String PRODUCTION = "org_num_rule";
    /**
     * è®¾å¤‡è½¦é—´ç¼–码
     */
    public static final String WORKSHOP = "work_shop_code_rule";
    /**
     * åˆ†ç±»å­—典编码
     */
    public static final String CATEGORY = "category_code_rule";
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/controller/BaseFactoryController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,226 @@
package org.jeecg.modules.eam.base.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.base.entity.BaseFactory;
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 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.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/BaseFactory")
@Slf4j
public class BaseFactoryController extends JeecgController<BaseFactory, IBaseFactoryService> {
    @Autowired
    private IBaseFactoryService BaseFactoryService;
    /**
     * åˆ†é¡µåˆ—表查询
     *
     * @param BaseFactory
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    //@AutoLog(value = "设备车间管理-分页列表查询")
    @ApiOperation(value="设备车间管理-分页列表查询", notes="设备车间管理-分页列表查询")
    @GetMapping(value = "/list")
    public Result<IPage<BaseFactory>> queryPageList(BaseFactory BaseFactory,
                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
        QueryWrapper<BaseFactory> queryWrapper = QueryGenerator.initQueryWrapper(BaseFactory, req.getParameterMap());
        Page<BaseFactory> page = new Page<BaseFactory>(pageNo, pageSize);
        IPage<BaseFactory> pageList = BaseFactoryService.page(page, queryWrapper);
        return Result.OK(pageList);
    }
     @AutoLog(value = "设备车间管理-树形列表")
     @ApiOperation(value = "设备车间管理-树形列表", notes = "设备车间管理-树形列表")
     @GetMapping(value = "/queryTreeList")
     public Result<List<EamBaseFactoryTreeModel>> queryTreeList(@RequestParam(name = "ids", required = false) String ids) {
         Result<List<EamBaseFactoryTreeModel>> result = new Result<>();
         try {
             if (oConvertUtils.isNotEmpty(ids)) {
                 List<EamBaseFactoryTreeModel> productionList = BaseFactoryService.queryTreeList(ids);
                 result.setResult(productionList);
             } else {
                 List<EamBaseFactoryTreeModel> list = BaseFactoryService.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 = BaseFactoryService.queryProductionIdTreeList();
             result.setResult(list);
             result.setSuccess(true);
         } catch (Exception e) {
             log.error(e.getMessage(), e);
         }
         return result;
     }
     /**
      * æ·»åŠ 
      *
      * @param BaseFactory
      * @return
      */
     @AutoLog(value = "设备车间管理-添加")
     @ApiOperation(value = "设备车间管理-添加", notes = "设备车间管理-添加")
     @PostMapping(value = "/add")
     public Result<BaseFactory> add(@RequestBody BaseFactory BaseFactory) {
         Result<BaseFactory> result = new Result<>();
         try {
             BaseFactoryService.saveBaseFactoryData(BaseFactory);
             result.success("添加成功!");
         } catch (Exception e) {
             log.error(e.getMessage(), e);
             result.error500("操作失败");
         }
         return result;
     }
     /**
      * ç¼–辑
      *
      * @param BaseFactory
      * @return
      */
     @AutoLog(value = "设备车间管理-编辑")
     @ApiOperation(value = "设备车间管理-编辑", notes = "设备车间管理-编辑")
     @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
     public Result<BaseFactory> edit(@RequestBody BaseFactory BaseFactory) {
         Result<BaseFactory> result = new Result<>();
         BaseFactory eamProductionEntity = BaseFactoryService.getById(BaseFactory.getId());
         if (eamProductionEntity == null) {
             result.error500("未找到对应实体");
         } else {
             boolean ok = BaseFactoryService.updateBaseFactoryDataById(BaseFactory);
             if (ok) {
                 result.success("修改成功!");
             }
         }
         return result;
     }
     /**
      * é€šè¿‡id删除
      *
      * @param id
      * @return
      */
     @AutoLog(value = "设备车间管理-通过id删除")
     @ApiOperation(value = "设备车间管理-通过id删除", notes = "设备车间管理-通过id删除")
     @DeleteMapping(value = "/delete")
     public Result<BaseFactory> delete(@RequestParam(name = "id", required = true) String id) {
         Result<BaseFactory> result = new Result<>();
         BaseFactory BaseFactory = BaseFactoryService.getById(id);
         if (BaseFactory == null) {
             result.error500("未找到对应实体");
         } else {
             boolean ok = BaseFactoryService.delete(id);
             if (ok) {
                 result.success("删除成功!");
             }
         }
         return result;
     }
     /**
      * æ‰¹é‡åˆ é™¤
      *
      * @param ids
      * @return
      */
     @AutoLog(value = "设备车间管理-批量删除")
     @ApiOperation(value = "设备车间管理-批量删除", notes = "设备车间管理-批量删除")
     @DeleteMapping(value = "/deleteBatch")
     public Result<BaseFactory> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
         Result<BaseFactory> result = new Result<>();
         if (ids == null || "".equals(ids.trim())) {
             result.error500("参数不识别!");
         } else {
             this.BaseFactoryService.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<BaseFactory> queryById(@RequestParam(name="id",required=true) String id) {
        BaseFactory BaseFactory = BaseFactoryService.getById(id);
        if(BaseFactory==null) {
            return Result.error("未找到对应数据");
        }
        return Result.OK(BaseFactory);
    }
    /**
    * å¯¼å‡ºexcel
    *
    * @param request
    * @param BaseFactory
    */
    //@RequiresPermissions("org.jeecg.modules.eam:sys_work_shop_depart:exportXls")
    @RequestMapping(value = "/exportXls")
    public ModelAndView exportXls(HttpServletRequest request, BaseFactory BaseFactory) {
        return super.exportXls(request, BaseFactory, BaseFactory.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, BaseFactory.class);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/controller/BaseFactoryUserController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,198 @@
package org.jeecg.modules.eam.base.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.modules.eam.base.entity.BaseFactoryUser;
import org.jeecg.modules.eam.base.service.IBaseFactoryUserService;
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.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
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/BaseFactoryUser")
@Slf4j
public class BaseFactoryUserController extends JeecgController<BaseFactoryUser, IBaseFactoryUserService> {
    @Autowired
    private IBaseFactoryUserService BaseFactoryUserService;
    @Autowired
    private ISysUserService sysUserService;
    /**
     * åˆ†é¡µåˆ—表查询
     *
     * @param BaseFactoryUser
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    //@AutoLog(value = "设备车间管理与用户-分页列表查询")
    @ApiOperation(value="设备车间管理与用户-分页列表查询", notes="设备车间管理与用户-分页列表查询")
    @GetMapping(value = "/list")
    public Result<IPage<BaseFactoryUser>> queryPageList(BaseFactoryUser BaseFactoryUser,
                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
        QueryWrapper<BaseFactoryUser> queryWrapper = QueryGenerator.initQueryWrapper(BaseFactoryUser, req.getParameterMap());
        Page<BaseFactoryUser> page = new Page<BaseFactoryUser>(pageNo, pageSize);
        IPage<BaseFactoryUser> pageList = BaseFactoryUserService.page(page, queryWrapper);
        return Result.OK(pageList);
    }
     @RequestMapping(value = "/BaseFactoryUserList", 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 BaseFactoryId = req.getParameter("BaseFactoryId");
         String username=req.getParameter("username");
         IPage<SysUser> pageList = sysUserService.getUserByworkShopDepartId(page, BaseFactoryId,username);
         result.setSuccess(true);
         result.setResult(pageList);
         return result;
     }
    /**
     *   æ·»åŠ 
     *
     * @param BaseFactoryUser
     * @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 BaseFactoryUser BaseFactoryUser) {
        if (BaseFactoryUser.getUserId().contains(",")){
            String[] userIds = BaseFactoryUser.getUserId().split(",");
            List<String> userIdList = Arrays.asList(userIds);
            userIdList.forEach(userId -> {
                BaseFactoryUser BaseFactoryUser1 = new BaseFactoryUser();
                BaseFactoryUser1.setUserId(userId);
                BaseFactoryUser1.setFactoryId(BaseFactoryUser.getFactoryId());
                BaseFactoryUserService.save(BaseFactoryUser1);
            });
        }else {
            BaseFactoryUserService.save(BaseFactoryUser);
        }
        return Result.OK("添加成功!");
    }
    /**
     *  ç¼–辑
     *
     * @param BaseFactoryUser
     * @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 BaseFactoryUser BaseFactoryUser) {
        BaseFactoryUserService.updateById(BaseFactoryUser);
        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(String id, String BaseFactoryId) {
        QueryWrapper<BaseFactoryUser> queryWrapper = new QueryWrapper<BaseFactoryUser>();
        queryWrapper.eq("work_shop_depart_id", BaseFactoryId)
                .eq("user_id", id);
        BaseFactoryUserService.remove(queryWrapper);
        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(String ids,String BaseFactoryId) {
        QueryWrapper<BaseFactoryUser> queryWrapper = new QueryWrapper<BaseFactoryUser>();
        queryWrapper.eq("work_shop_depart_id", BaseFactoryId)
                .in("user_id", Arrays.asList(ids.split(",")));
        BaseFactoryUserService.remove(queryWrapper);
        return Result.OK("批量删除成功!");
    }
    /**
     * é€šè¿‡id查询
     *
     * @param id
     * @return
     */
    //@AutoLog(value = "设备车间管理与用户-通过id查询")
    @ApiOperation(value="设备车间管理与用户-通过id查询", notes="设备车间管理与用户-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<BaseFactoryUser> queryById(@RequestParam(name="id",required=true) String id) {
        BaseFactoryUser BaseFactoryUser = BaseFactoryUserService.getById(id);
        if(BaseFactoryUser==null) {
            return Result.error("未找到对应数据");
        }
        return Result.OK(BaseFactoryUser);
    }
    /**
    * å¯¼å‡ºexcel
    *
    * @param request
    * @param BaseFactoryUser
    */
    //@RequiresPermissions("org.jeecg.modules.mdc:sys_work_shop_depart_user:exportXls")
    @RequestMapping(value = "/exportXls")
    public ModelAndView exportXls(HttpServletRequest request, BaseFactoryUser BaseFactoryUser) {
        return super.exportXls(request, BaseFactoryUser, BaseFactoryUser.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, BaseFactoryUser.class);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/controller/util/FindsBaseFactorysChildrenUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,108 @@
package org.jeecg.modules.eam.base.controller.util;
import cn.hutool.core.util.StrUtil;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.base.entity.BaseFactory;
import org.jeecg.modules.eam.base.model.EamBaseFactoryTreeModel;
import org.jeecg.modules.eam.base.model.WorkShopIdModel;
import java.util.ArrayList;
import java.util.List;
/**
 * å¯¹åº”产线的表,处理并查找树结构数据
 *
 * @author: LiuS
 * @create: 2023-03-23 14:46
 */
public class FindsBaseFactorysChildrenUtil {
    /**
     * queryTreeList的子方法 ====1=====
     * è¯¥æ–¹æ³•是s将BaseFactory类型的list集合转换成EamBaseFactoryTreeModel类型的集合
     */
    public static List<EamBaseFactoryTreeModel> wrapTreeDataToTreeList(List<BaseFactory> recordList) {
        List<WorkShopIdModel> idList = new ArrayList<>();
        List<EamBaseFactoryTreeModel> records = new ArrayList<>();
        for (int i = 0; i < recordList.size(); i++) {
            BaseFactory BaseFactory = recordList.get(i);
            if (StrUtil.isEmpty(BaseFactory.getRemark())){
                BaseFactory.setRemark("");
            }
            records.add(new EamBaseFactoryTreeModel(BaseFactory));
        }
        List<EamBaseFactoryTreeModel> tree = findChildren(records, idList);
        setEmptyChildrenAsNull(tree);
        return tree;
    }
    /**
     * queryTreeList的子方法 ====1=====
     * è¯¥æ–¹æ³•是找到并封装顶级父类的节点到TreeList集合
     */
    public static List<EamBaseFactoryTreeModel> findChildren(List<EamBaseFactoryTreeModel> recordList, List<WorkShopIdModel> workShopIdModelList) {
        List<EamBaseFactoryTreeModel> treeList = new ArrayList<>();
        for (int i = 0; i < recordList.size(); i++) {
            EamBaseFactoryTreeModel 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<EamBaseFactoryTreeModel> treeList, List<EamBaseFactoryTreeModel> recordList, List<WorkShopIdModel> idList) {
        for (int i = 0; i < treeList.size(); i++) {
            EamBaseFactoryTreeModel model = treeList.get(i);
            WorkShopIdModel idModel = idList.get(i);
            for (int i1 = 0; i1 < recordList.size(); i1++) {
                EamBaseFactoryTreeModel 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<EamBaseFactoryTreeModel> treeList) {
        for (int i = 0; i < treeList.size(); i++) {
            EamBaseFactoryTreeModel 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<BaseFactory> recordList) {
        List<WorkShopIdModel> idList = new ArrayList<>();
        List<EamBaseFactoryTreeModel> records = new ArrayList<>();
        for (int i = 0; i < recordList.size(); i++) {
            BaseFactory BaseFactory = recordList.get(i);
            records.add(new EamBaseFactoryTreeModel(BaseFactory));
        }
        findChildren(records, idList);
        return idList;
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/controller/util/WorkShopOrgCodeProRule.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
package org.jeecg.modules.eam.base.controller.util;
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.BaseFactory;
import org.jeecg.modules.eam.base.service.IBaseFactoryService;
import java.util.ArrayList;
import java.util.List;
/**
 * @author: LiuS
 * @create: 2023-07-04 16:15
 * @Description: è½¦é—´æœºæž„编码生成规则
 */
public class WorkShopOrgCodeProRule implements IFillRuleHandler {
    @Override
    public Object execute(JSONObject params, JSONObject formData) {
        IBaseFactoryService BaseFactoryService = (IBaseFactoryService) SpringContextUtils.getBean("BaseFactoryServiceImpl");
        LambdaQueryWrapper<BaseFactory> query = new LambdaQueryWrapper<BaseFactory>();
        LambdaQueryWrapper<BaseFactory> query1 = new LambdaQueryWrapper<BaseFactory>();
        // åˆ›å»ºä¸€ä¸ªList集合,存储查询返回的所有BaseFactory对象
        List<BaseFactory> BaseFactoryList = 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(BaseFactory::getParentId, "").or().isNull(BaseFactory::getParentId);
            query1.orderByDesc(BaseFactory::getOrgCode);
            BaseFactoryList = BaseFactoryService.list(query1);
            if (BaseFactoryList == null || BaseFactoryList.size() == 0) {
                strArray[0] = YouBianCodeUtil.getNextYouBianCode(null);
                strArray[1] = "1";
                return strArray;
            } else {
                BaseFactory BaseFactory = BaseFactoryList.get(0);
                oldOrgCode = BaseFactory.getOrgCode();
                orgType = BaseFactory.getOrgType();
                newOrgCode = YouBianCodeUtil.getNextYouBianCode(oldOrgCode);
            }
        } else {//反之则查询出所有同级的车间,获取结果后有两种情况,有同级和没有同级
            // å°è£…查询同级的条件
            query.eq(BaseFactory::getParentId, parentId);
            // é™åºæŽ’序
            query.orderByDesc(BaseFactory::getOrgCode);
            // æŸ¥è¯¢å‡ºåŒçº§äº§çº¿çš„集合
            List<BaseFactory> parentList = BaseFactoryService.list(query);
            // æŸ¥è¯¢å‡ºçˆ¶çº§äº§çº¿
            BaseFactory production = BaseFactoryService.getById(parentId);
            // èŽ·å–çˆ¶çº§äº§çº¿çš„code
            String parentCode = production.getOrgCode();
            // æ ¹æ®çˆ¶çº§äº§çº¿ç±»åž‹ç®—出当前产线的类型
            orgType = String.valueOf(Integer.valueOf(production.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/entity/BaseFactory.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
package org.jeecg.modules.eam.base.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("eam_base_factory")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="eam_base_factory", description="工厂建模")
public class BaseFactory 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 factoryName;
    /**简称*/
    @Excel(name = "简称", width = 15)
    @ApiModelProperty(value = "简称")
    private String shortName;
    /**公司/中心/工区/工段编码*/
    @Excel(name = "公司/中心/工区/工段编码", width = 15)
    @ApiModelProperty(value = "公司/中心/工区/工段编码")
    private String factoryCode;
    /**机构类型 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 factoryCategory;
    /**工厂分类*/
    @Excel(name = "工厂状态", width = 15)
    @ApiModelProperty(value = "工厂状态")
    private String factoryStatus;
    /**排序*/
    @Excel(name = "排序", width = 15)
    @ApiModelProperty(value = "排序")
    private Integer sorter;
    /**备注*/
    @Excel(name = "备注", width = 20)
    @ApiModelProperty(value = "备注")
    private String remark;
    /**删除状态(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;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/entity/BaseFactoryUser.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
package org.jeecg.modules.eam.base.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("eam_base_factory_user")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="eam_base_factory_user对象", description="工厂建模与用户")
public class BaseFactoryUser 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 factoryId;
    /**用户id*/
    @Excel(name = "用户id", width = 15)
    @ApiModelProperty(value = "用户id")
    private String userId;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/mapper/BaseFactoryMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package org.jeecg.modules.eam.base.mapper;
import org.jeecg.modules.eam.base.entity.BaseFactory;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * @Description: è®¾å¤‡è½¦é—´ç®¡ç†
 * @Author: jeecg-boot
 * @Date:   2025-06-30
 * @Version: V1.0
 */
public interface BaseFactoryMapper extends BaseMapper<BaseFactory> {
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/mapper/BaseFactoryUserMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package org.jeecg.modules.eam.base.mapper;
import org.jeecg.modules.eam.base.entity.BaseFactoryUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * @Description: è®¾å¤‡è½¦é—´ç®¡ç†ä¸Žç”¨æˆ·
 * @Author: jeecg-boot
 * @Date:   2025-06-30
 * @Version: V1.0
 */
public interface BaseFactoryUserMapper extends BaseMapper<BaseFactoryUser> {
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/mapper/xml/BaseFactoryMapper.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.base.mapper.BaseFactoryMapper">
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/mapper/xml/BaseFactoryUserMapper.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.base.mapper.BaseFactoryUserMapper">
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/model/EamBaseFactoryTreeModel.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,126 @@
package org.jeecg.modules.eam.base.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.modules.eam.base.entity.BaseFactory;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
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 EamBaseFactoryTreeModel implements Serializable {
    private static final long serialVersionUID = -1309711609760828658L;
    /**
     * å¯¹åº”BaseFactory中的id字段,前端数据树中的key
     */
    private String key;
    /**
     * å¯¹åº”BaseFactory中的id字段,前端数据树中的value
     */
    private String value;
    /**
     * å¯¹åº”depart_name字段,前端数据树中的title
     */
    private String title;
    private boolean isLeaf;
    /**
     * ç±»åž‹
     */
    private Integer type;
    //以下所有字段均与BaseFactory相同
    /**主键*/
    private String id;
    /**父级id*/
    private String parentId;
    /**机构名称*/
    private String factoryName;
    /**简称*/
    private String shortName;
    /**公司/中心/工区/工段编码*/
    private String factoryCode;
    /**机构类型 1部门 2子部门*/
    private String orgType;
    /**机构编码*/
    private String orgCode;
    /**工厂分类*/
    private String factoryCategory;
    /**工厂分类*/
    private String factoryStatus;
    /**排序*/
    private Integer sorter;
    /**备注*/
    private String remark;
    /**删除状态(0,正常,1已删除)*/
    private String delFlag;
    /**创建人*/
    private String createBy;
    /**创建日期*/
    private Date createTime;
    /**更新人*/
    private String updateBy;
    /**更新日期*/
    private Date updateTime;
    /**
     * äº§çº¿è´Ÿè´£äººids
     */
    private String directorUserIds;
    private List<EamBaseFactoryTreeModel> children = new ArrayList<>();
    public EamBaseFactoryTreeModel() {
    }
    /**
     * å°†BaseFactory对象转换成EamBaseFactoryTreeModel对象
     *
     * @param BaseFactory
     */
    public EamBaseFactoryTreeModel(BaseFactory BaseFactory) {
        this.key = BaseFactory.getId();
        this.value = BaseFactory.getId();
        this.title= BaseFactory.getFactoryName();
        this.factoryName = BaseFactory.getFactoryName();
        this.id = BaseFactory.getId();
        this.parentId = BaseFactory.getParentId();
        this.shortName = BaseFactory.getShortName();
        this.orgType = BaseFactory.getOrgType();
        this.orgCode = BaseFactory.getOrgCode();
        this.sorter=BaseFactory.getSorter();
        this.factoryCode=BaseFactory.getFactoryCode();
        this.factoryStatus=BaseFactory.getFactoryStatus();
        this.factoryCategory=BaseFactory.getFactoryCategory();
        this.remark = BaseFactory.getRemark();
        this.delFlag = BaseFactory.getDelFlag();
        this.createBy = BaseFactory.getCreateBy();
        this.createTime = BaseFactory.getCreateTime();
        this.updateBy = BaseFactory.getUpdateBy();
        this.updateTime = BaseFactory.getUpdateTime();
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/model/WorkShopIdModel.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@
package org.jeecg.modules.eam.base.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.modules.eam.base.entity.BaseFactory;
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<>();
    /**
     * å°†EamBaseFactoryTreeModel的部分数据放在该对象当中
     *
     * @param treeModel
     * @return
     */
    public WorkShopIdModel convert(EamBaseFactoryTreeModel treeModel) {
        this.key = treeModel.getId();
        this.value = treeModel.getId();
        this.title = treeModel.getFactoryName();
        return this;
    }
    /**
     * è¯¥æ–¹æ³•为用户产线的实现类所使用
     *
     * @return
     */
    public WorkShopIdModel convertByUserProduction(BaseFactory BaseFactory) {
        this.key = BaseFactory.getId();
        this.value = BaseFactory.getId();
        this.title = BaseFactory.getFactoryName();
        return this;
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/service/IBaseFactoryService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
package org.jeecg.modules.eam.base.service;
import org.jeecg.modules.eam.base.entity.BaseFactory;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.base.model.EamBaseFactoryTreeModel;
import org.jeecg.modules.eam.base.model.WorkShopIdModel;
import java.util.List;
/**
 * @Description: è®¾å¤‡è½¦é—´ç®¡ç†
 * @Author: jeecg-boot
 * @Date:   2025-06-30
 * @Version: V1.0
 */
public interface IBaseFactoryService extends IService<BaseFactory> {
    /**
     * æŸ¥è¯¢æ‰€æœ‰äº§çº¿ä¿¡æ¯ï¼Œå¹¶åˆ†èŠ‚ç‚¹è¿›è¡Œæ˜¾ç¤º
     */
    List<EamBaseFactoryTreeModel> queryTreeList();
    /**
     * æŸ¥è¯¢æ‰€æœ‰äº§çº¿ä¿¡æ¯ï¼Œå¹¶åˆ†èŠ‚ç‚¹è¿›è¡Œæ˜¾ç¤º
     */
    List<EamBaseFactoryTreeModel> queryTreeList(String ids);
    /**
     * æ ¹æ®å…³é”®å­—搜索相关的产线数据
     */
    List<EamBaseFactoryTreeModel> searchByKeyWord(String keyWord);
    /**
     * ä¿å­˜äº§çº¿æ•°æ®
     */
    void saveBaseFactoryData(BaseFactory BaseFactory);
    /**
     * æŸ¥è¯¢æ‰€æœ‰éƒ¨é—¨DepartId信息,并分节点进行显示
     */
    List<WorkShopIdModel> queryProductionIdTreeList();
    /**
     * æ›´æ–°äº§çº¿æ•°æ®
     */
    boolean updateBaseFactoryDataById(BaseFactory BaseFactory);
    /**
     * æ ¹æ®äº§çº¿id删除并删除其可能存在的子级产线
     */
    boolean delete(String id);
    /**
     * æ ¹æ®äº§çº¿id批量删除并删除其可能存在的子级产线
     */
    void deleteBatchWithChildren(List<String> ids);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/service/IBaseFactoryUserService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package org.jeecg.modules.eam.base.service;
import org.jeecg.modules.eam.base.entity.BaseFactoryUser;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * @Description: è®¾å¤‡è½¦é—´ç®¡ç†ä¸Žç”¨æˆ·
 * @Author: jeecg-boot
 * @Date:   2025-06-30
 * @Version: V1.0
 */
public interface IBaseFactoryUserService extends IService<BaseFactoryUser> {
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/service/impl/BaseFactoryServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,222 @@
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 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.BaseFactory;
import org.jeecg.modules.eam.base.entity.BaseFactoryUser;
import org.jeecg.modules.eam.base.mapper.BaseFactoryMapper;
import org.jeecg.modules.eam.base.mapper.BaseFactoryUserMapper;
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.system.entity.SysUser;
import org.jeecg.modules.system.mapper.SysUserMapper;
import org.springframework.beans.factory.annotation.Autowired;
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("BaseFactoryServiceImpl")
public class BaseFactoryServiceImpl extends ServiceImpl<BaseFactoryMapper, BaseFactory> implements IBaseFactoryService {
    @Autowired
    private SysUserMapper sysUserMapper;
    @Autowired
    private BaseFactoryUserMapper BaseFactoryUserMapper;
    /**
     * queryTreeList å¯¹åº” queryTreeList æŸ¥è¯¢æ‰€æœ‰çš„设备车间管理数据,以树结构形式响应给前端
     */
    @Override
    public List<EamBaseFactoryTreeModel> queryTreeList() {
        LambdaQueryWrapper<BaseFactory> query = new LambdaQueryWrapper<BaseFactory>();
        query.eq(BaseFactory::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
        query.orderByAsc(BaseFactory::getSorter);
        List<BaseFactory> list = this.list(query);
        //设置用户id,让前台显示
        this.setUserIdsByProList(list);
        //调用wrapTreeDataToTreeList方法生成树状数据
        return FindsBaseFactorysChildrenUtil.wrapTreeDataToTreeList(list);
    }
    /**
     * queryTreeList æ ¹æ®è®¾å¤‡è½¦é—´ç®¡ç†id查询,前端回显调用
     */
    @Override
    public List<EamBaseFactoryTreeModel> queryTreeList(String ids) {
        List<EamBaseFactoryTreeModel> listResult = new ArrayList<>();
        LambdaQueryWrapper<BaseFactory> query = new LambdaQueryWrapper<BaseFactory>();
        query.eq(BaseFactory::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
        if (oConvertUtils.isNotEmpty(ids)) {
            query.in(true, BaseFactory::getId, ids.split(","));
        }
        query.orderByAsc(BaseFactory::getSorter);
        List<BaseFactory> list = this.list(query);
        for (BaseFactory production : list) {
            if (production.getRemark().isEmpty()){
                production.setRemark("");
            }
            listResult.add(new EamBaseFactoryTreeModel(production));
        }
        return listResult;
    }
    /**
     * æ ¹æ®å…³é”®å­—搜索相关的部门数据
     */
    @Override
    public List<EamBaseFactoryTreeModel> searchByKeyWord(String keyWord) {
        LambdaQueryWrapper<BaseFactory> query = new LambdaQueryWrapper<>();
        List<EamBaseFactoryTreeModel> newList = new ArrayList<>();
        query.like(BaseFactory::getFactoryName, keyWord);
        EamBaseFactoryTreeModel model = new EamBaseFactoryTreeModel();
        List<BaseFactory> productionList = this.list(query);
        if (!productionList.isEmpty()) {
            for (BaseFactory BaseFactory : productionList) {
                model = new EamBaseFactoryTreeModel(BaseFactory);
                model.setChildren(null);
                newList.add(model);
            }
            return newList;
        }
        return Collections.emptyList();
    }
    /**
     * saveProductionData å¯¹åº” add ä¿å­˜ç”¨æˆ·åœ¨é¡µé¢æ·»åŠ çš„æ–°çš„è®¾å¤‡è½¦é—´ç®¡ç†å¯¹è±¡æ•°æ®
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void saveBaseFactoryData(BaseFactory BaseFactory) {
        if (BaseFactory != null) {
            if (BaseFactory.getParentId() == null) {
                BaseFactory.setParentId("");
            }
            BaseFactory.setId(IdWorker.getIdStr(BaseFactory));
            // å…ˆåˆ¤æ–­è¯¥å¯¹è±¡æœ‰æ— çˆ¶çº§ID,有则意味着不是最高级,否则意味着是最高级
            // èŽ·å–çˆ¶çº§ID
            String parentId = BaseFactory.getParentId();
            JSONObject formData = new JSONObject();
            formData.put("parentId",parentId);
            String[] codeArray = (String[]) FillRuleUtil.executeRule(FillRuleConstant.WORKSHOP,formData);
            BaseFactory.setOrgCode(codeArray[0]);
            String orgType = codeArray[1];
            BaseFactory.setOrgType(String.valueOf(orgType));
            BaseFactory.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
            this.save(BaseFactory);
        }
    }
    @Override
    public List<WorkShopIdModel> queryProductionIdTreeList() {
        LambdaQueryWrapper<BaseFactory> query = new LambdaQueryWrapper<>();
        query.eq(BaseFactory::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
        query.orderByAsc(BaseFactory::getSorter);
        List<BaseFactory> list = this.list(query);
        //调用wrapTreeDataToTreeList方法生成树状数据
        return FindsBaseFactorysChildrenUtil.wrapTreeDataToProductionIdTreeList(list);
    }
    /**
     * updateProductionDataById å¯¹åº” edit æ ¹æ®è®¾å¤‡è½¦é—´ç®¡ç†ä¸»é”®æ¥æ›´æ–°å¯¹åº”的设备车间管理数据
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean updateBaseFactoryDataById(BaseFactory BaseFactory) {
        if (BaseFactory != null) {
            this.updateById(BaseFactory);
            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删除用户与设备车间管理关系
        BaseFactoryUserMapper.delete(new LambdaQueryWrapper<BaseFactoryUser>().in(BaseFactoryUser::getFactoryId, 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删除用户与设备车间管理关系
        BaseFactoryUserMapper.delete(new LambdaQueryWrapper<BaseFactoryUser>().in(BaseFactoryUser::getFactoryId, idList));
    }
    /**
     * é€šè¿‡è®¾å¤‡è½¦é—´ç®¡ç†é›†åˆä¸ºè®¾å¤‡è½¦é—´ç®¡ç†è®¾ç½®ç”¨æˆ·id,用于前台展示
     */
    private void setUserIdsByProList(List<BaseFactory> 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());
                    }
                }
            }
        }
    }
    /**
     * delete æ–¹æ³•调用 é€’归查找子集id
     */
    private void checkChildrenExists(String id, List<String> idList) {
        LambdaQueryWrapper<BaseFactory> query = new LambdaQueryWrapper<>();
        query.eq(BaseFactory::getParentId, id);
        List<BaseFactory> BaseFactoryList = this.list(query);
        if (BaseFactoryList != null && !BaseFactoryList.isEmpty()) {
            for (BaseFactory BaseFactory : BaseFactoryList) {
                idList.add(BaseFactory.getId());
                this.checkChildrenExists(BaseFactory.getId(), idList);
            }
        }
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/service/impl/BaseFactoryUserServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package org.jeecg.modules.eam.base.service.impl;
import org.jeecg.modules.eam.base.entity.BaseFactoryUser;
import org.jeecg.modules.eam.base.mapper.BaseFactoryUserMapper;
import org.jeecg.modules.eam.base.service.IBaseFactoryUserService;
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 BaseFactoryUserServiceImpl extends ServiceImpl<BaseFactoryUserMapper, BaseFactoryUser> implements IBaseFactoryUserService {
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java
@@ -69,7 +69,7 @@
     * @param workShopDepartId è®¾å¤‡è½¦é—´ç®¡ç†Id
     * @return
     */
    IPage<SysUser> getUserByWorkShopDepartId(Page page, @Param("workShopDepartId") String workShopDepartId);
    IPage<SysUser> getUserByWorkShopDepartId(Page page, @Param("workShopDepartId") String workShopDepartId, @Param("username") String username);
    /**
     * æ ¹æ®ç”¨æˆ·åè®¾ç½®éƒ¨é—¨ID
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml
@@ -232,5 +232,8 @@
    </select>
    <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})
        <if test="username!=null and username!=''">
            and username = #{username}
        </if>
    </select>
</mapper>
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java
@@ -170,7 +170,7 @@
     * @param workShopDepartId è®¾å¤‡è½¦é—´ç®¡ç†Id
     * @return
     */
    public IPage<SysUser> getUserByworkShopDepartId(Page<SysUser> page,String workShopDepartId);
    public IPage<SysUser> getUserByworkShopDepartId(Page<SysUser> page,String workShopDepartId,String username);
    /**
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
@@ -365,8 +365,8 @@
     * @param workShopDepartId è®¾å¤‡è½¦é—´ç®¡ç†Id
     * @return
     */
    public IPage<SysUser> getUserByworkShopDepartId(Page<SysUser> page,String workShopDepartId){
        return userMapper.getUserByWorkShopDepartId(page,workShopDepartId);
    public IPage<SysUser> getUserByworkShopDepartId(Page<SysUser> page,String workShopDepartId,String username){
        return userMapper.getUserByWorkShopDepartId(page,workShopDepartId,username);
    }