From e3a037adf3861fee78ad5478784f24e59cc598a2 Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期一, 30 六月 2025 14:55:40 +0800 Subject: [PATCH] 设备车间管理与用户 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/WorkShopDepartUserMapper.xml | 5 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/WorkShopDepartController.java | 215 ++++++++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/WorkShopDepart.java | 113 +++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/WorkShopDepartUserController.java | 177 ++++++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/WorkShopDepartUser.java | 47 ++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/WorkShopDepartServiceImpl.java | 219 ++++++++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/WorkShopDepartUserServiceImpl.java | 19 lxzn-boot-base-core/src/main/java/org/jeecg/config/Swagger2Config.java | 23 + lxzn-module-eam/src/main/java/org/jeecg/modules/eam/util/FindsWorkShopDepartsChildrenUtil.java | 108 +++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/WorkShopDepartMapper.java | 17 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IWorkShopDepartUserService.java | 14 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/WorkShopDepartUserMapper.java | 17 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IWorkShopDepartService.java | 53 ++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/model/EamWorkShopDepartTreeModel.java | 122 +++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/WorkShopDepartMapper.xml | 5 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/model/WorkShopIdModel.java | 73 +++ 16 files changed, 1,227 insertions(+), 0 deletions(-) diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/config/Swagger2Config.java b/lxzn-boot-base-core/src/main/java/org/jeecg/config/Swagger2Config.java index 87c7bf5..54174c2 100644 --- a/lxzn-boot-base-core/src/main/java/org/jeecg/config/Swagger2Config.java +++ b/lxzn-boot-base-core/src/main/java/org/jeecg/config/Swagger2Config.java @@ -103,6 +103,29 @@ .groupName("MDC"); } + /** + * swagger2鐨勯厤缃枃浠讹紝杩欓噷鍙互閰嶇疆swagger2鐨勪竴浜涘熀鏈殑鍐呭锛屾瘮濡傛壂鎻忕殑鍖呯瓑绛� 锛圡DC锛� + * + * @return Docket + */ + @Bean(value = "defaultApi1") + public Docket defaultApi1() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + //姝ゅ寘璺緞涓嬬殑绫伙紝鎵嶇敓鎴愭帴鍙f枃妗� + .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閰嶇疆 * 闇�瑕佸鍔爏wagger鎺堟潈鍥炶皟鍦板潃 diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/WorkShopDepartController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/WorkShopDepartController.java new file mode 100644 index 0000000..fc1b34c --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/WorkShopDepartController.java @@ -0,0 +1,215 @@ +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.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; + } + + /** + * 娣诲姞 + * + * @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); + } + +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/WorkShopDepartUserController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/WorkShopDepartUserController.java new file mode 100644 index 0000000..6627a9b --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/WorkShopDepartUserController.java @@ -0,0 +1,177 @@ +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.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; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @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); + } + + /** + * 娣诲姞 + * + * @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); + } + +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/WorkShopDepart.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/WorkShopDepart.java new file mode 100644 index 0000000..748b50f --- /dev/null +++ b/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; +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/WorkShopDepartUser.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/WorkShopDepartUser.java new file mode 100644 index 0000000..c7aa177 --- /dev/null +++ b/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; +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/WorkShopDepartMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/WorkShopDepartMapper.java new file mode 100644 index 0000000..6a90fd3 --- /dev/null +++ b/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> { + +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/WorkShopDepartUserMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/WorkShopDepartUserMapper.java new file mode 100644 index 0000000..9cfcdbc --- /dev/null +++ b/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> { + +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/WorkShopDepartMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/WorkShopDepartMapper.xml new file mode 100644 index 0000000..b6e65be --- /dev/null +++ b/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> diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/WorkShopDepartUserMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/WorkShopDepartUserMapper.xml new file mode 100644 index 0000000..200a841 --- /dev/null +++ b/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> diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/model/EamWorkShopDepartTreeModel.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/model/EamWorkShopDepartTreeModel.java new file mode 100644 index 0000000..ad09bc1 --- /dev/null +++ b/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瀛楁,鍓嶇鏁版嵁鏍戜腑鐨刱ey + */ + private String key; + + /** + * 瀵瑰簲workShopDepart涓殑id瀛楁,鍓嶇鏁版嵁鏍戜腑鐨剉alue + */ + private String value; + + /** + * 瀵瑰簲depart_name瀛楁,鍓嶇鏁版嵁鏍戜腑鐨則itle + */ + private String title; + + private boolean isLeaf; + + /** + * 绫诲瀷 + */ + private Integer type; + //浠ヤ笅鎵�鏈夊瓧娈靛潎涓巜orkShopDepart鐩稿悓 + + 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; + + /** + * 浜х嚎璐熻矗浜篿ds + */ + private String directorUserIds; + + private List<EamWorkShopDepartTreeModel> children = new ArrayList<>(); + + public EamWorkShopDepartTreeModel() { + + } + + /** + * 灏唚orkShopDepart瀵硅薄杞崲鎴怑amWorkShopDepartTreeModel瀵硅薄 + * + * @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(); + } +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/model/WorkShopIdModel.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/model/WorkShopIdModel.java new file mode 100644 index 0000000..ed8d869 --- /dev/null +++ b/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<>(); + + /** + * 灏咵amWorkShopDepartTreeModel鐨勯儴鍒嗘暟鎹斁鍦ㄨ瀵硅薄褰撲腑 + * + * @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; + } +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IWorkShopDepartService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IWorkShopDepartService.java new file mode 100644 index 0000000..c7da5cf --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IWorkShopDepartService.java @@ -0,0 +1,53 @@ +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 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); + + /** + * 鏇存柊浜х嚎鏁版嵁 + */ + boolean updateWorkShopDepartDataById(WorkShopDepart workShopDepart); + + /** + * 鏍规嵁浜х嚎id鍒犻櫎骞跺垹闄ゅ叾鍙兘瀛樺湪鐨勫瓙绾т骇绾� + */ + boolean delete(String id); + + /** + * 鏍规嵁浜х嚎id鎵归噺鍒犻櫎骞跺垹闄ゅ叾鍙兘瀛樺湪鐨勫瓙绾т骇绾� + */ + void deleteBatchWithChildren(List<String> ids); +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IWorkShopDepartUserService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IWorkShopDepartUserService.java new file mode 100644 index 0000000..c464f10 --- /dev/null +++ b/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> { + +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/WorkShopDepartServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/WorkShopDepartServiceImpl.java new file mode 100644 index 0000000..6df5ebc --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/WorkShopDepartServiceImpl.java @@ -0,0 +1,219 @@ +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.service.IWorkShopDepartService; +import org.jeecg.modules.eam.util.FindsWorkShopDepartsChildrenUtil; +import org.jeecg.modules.system.entity.MdcUserProduction; +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 + @Cacheable(value = "eam:cache:workShopDepart:alldata") + 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); + } + } + + /** + * 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)); + } + + /** + * 閫氳繃璁惧杞﹂棿绠$悊闆嗗悎涓鸿澶囪溅闂寸鐞嗚缃敤鎴穒d锛岀敤浜庡墠鍙板睍绀� + */ + 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瀵瑰簲鐨勮礋璐g敤鎴� + 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); + } + } + } +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/WorkShopDepartUserServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/WorkShopDepartUserServiceImpl.java new file mode 100644 index 0000000..324b6e6 --- /dev/null +++ b/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 { + +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/util/FindsWorkShopDepartsChildrenUtil.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/util/FindsWorkShopDepartsChildrenUtil.java new file mode 100644 index 0000000..576b4ff --- /dev/null +++ b/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灏哤orkShopDepart绫诲瀷鐨刲ist闆嗗悎杞崲鎴怑amWorkShopDepartTreeModel绫诲瀷鐨勯泦鍚� + */ + 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===== + * 璇ユ柟娉曟槸鎵惧埌骞跺皝瑁呴《绾х埗绫荤殑鑺傜偣鍒癟reeList闆嗗悎 + */ + 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==== + * 璇ユ柟娉曟槸灏嗗瓙鑺傜偣涓虹┖鐨凩ist闆嗗悎璁剧疆涓篘ull鍊� + */ + 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; + } +} -- Gitblit v1.9.3