From a0e29a74fcaceb52b02bfe559409611132462947 Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期二, 14 一月 2025 17:53:30 +0800 Subject: [PATCH] DNC平移航宇救生 > 树结构新增工序、工步,去除默认新增工序,新增工步 --- lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/WorkStepServiceImpl.java | 149 +++++++++++++ lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/WorkStep.java | 65 +++++ lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java | 58 +++++ lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/support/ProductTreeWrapper.java | 60 +++++ lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/PermissionStream.java | 13 + lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/WorkStepMapper.xml | 26 ++ lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/response/ProcessInfoCode.java | 5 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/DncPassLogMapper.xml | 0 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IWorkStepService.java | 56 +++++ lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/ProcessStreamMapper.java | 8 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/WorkStepMapper.java | 16 + lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessStreamServiceImpl.java | 57 ++++ lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/WorkStepController.java | 45 ++++ lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/ProcessStreamMapper.xml | 29 ++ lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ComponentInfoSeServiceImpl.java | 5 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PartsInfoServiceImpl.java | 29 +- lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IProcessStreamService.java | 15 + lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/ProcessStream.java | 4 18 files changed, 603 insertions(+), 37 deletions(-) diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/WorkStepController.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/WorkStepController.java new file mode 100644 index 0000000..f8e3431 --- /dev/null +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/WorkStepController.java @@ -0,0 +1,45 @@ +package org.jeecg.modules.dnc.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.modules.dnc.entity.WorkStep; +import org.jeecg.modules.dnc.response.CommonCode; +import org.jeecg.modules.dnc.response.ResponseResult; +import org.jeecg.modules.dnc.service.IWorkStepService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@Slf4j +@Api(tags = "宸ユ琛�") +@RestController +@RequestMapping("/nc/workStep") +public class WorkStepController extends JeecgController<WorkStep, IWorkStepService> { + @Autowired + private IWorkStepService iWorkStepService; + + @AutoLog(value = "宸ユ琛�-鏂板宸ユ淇℃伅") + @ApiOperation(value = "宸ユ琛�-鏂板宸ユ淇℃伅", notes = "宸ユ琛�-鏂板宸ユ淇℃伅") + @PostMapping("/add") + public ResponseResult addWorkStep(@RequestBody WorkStep workStep) { + boolean b = iWorkStepService.addWorkStep(workStep); + if(b) { + return new ResponseResult(CommonCode.SUCCESS); + } + return new ResponseResult(CommonCode.FAIL); + } + + @AutoLog(value = "宸ユ琛�-缂栬緫宸ユ淇℃伅") + @ApiOperation(value = "宸ユ琛�-缂栬緫宸ユ淇℃伅", notes = "宸ユ琛�-缂栬緫宸ユ淇℃伅") + @PutMapping("/edit/{id}") + public ResponseResult editWorkStep(@PathVariable("id") String id,@RequestBody WorkStep workStep) { + boolean b = iWorkStepService.editWorkStep(id, workStep); + if(b) { + return new ResponseResult(CommonCode.SUCCESS); + } + return new ResponseResult(CommonCode.FAIL); + } + +} diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/PermissionStream.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/PermissionStream.java index 01a498e..83a5724 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/PermissionStream.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/PermissionStream.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.annotations.Api; import lombok.Data; import lombok.NoArgsConstructor; @@ -10,17 +11,29 @@ @Data @NoArgsConstructor @TableName(value = "nc_permission_stream") +@Api(value = "鐢ㄦ埛鏉冮檺") public class PermissionStream { @TableId(value = "stream_id") private String streamId; + //浜у搧id @TableField(value = "product_id") private String productId; + //閮ㄤ欢id @TableField(value = "component_id") private String componentId; + //闆朵欢id @TableField(value = "parts_id") private String partsId; + //宸ュ簭id + @TableField(value = "process_id") + private String processId; + //宸ユid + @TableField(value = "step_id") + private String stepId; + //鐢ㄦ埛id @TableField(value = "user_id") private String userId; + //DNC閮ㄩ棬id @TableField(value = "depart_id") private String departId; @JsonIgnore diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/ProcessStream.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/ProcessStream.java index fe17a8f..3f32041 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/ProcessStream.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/ProcessStream.java @@ -1,15 +1,15 @@ package org.jeecg.modules.dnc.entity; - import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.annotations.Api; import lombok.Data; import lombok.NoArgsConstructor; - import java.util.Date; @Data @NoArgsConstructor @TableName(value = "nc_process_stream") +@Api(value = "鍏ㄩ儴宸ュ簭琛�") public class ProcessStream { @TableId(value = "process_id") private String processId; diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/WorkStep.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/WorkStep.java new file mode 100644 index 0000000..6bb633f --- /dev/null +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/WorkStep.java @@ -0,0 +1,65 @@ +package org.jeecg.modules.dnc.entity; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.annotations.Api; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@NoArgsConstructor +@TableName(value = "nc_work_step") +@Api(value = "宸ユ") +public class WorkStep { + //宸ユid + @TableField(value = "step_id") + private String stepId; + //浜у搧id + @TableField(value = "product_id") + private String productId; + //閮ㄤ欢id + @TableField(value = "component_id") + private String componentId; + //闆朵欢id + @TableField(value = "parts_id") + private String partsId; + //宸ュ簭id + @TableField(value = "process_id") + private String processId; + //宸ユ鍚嶇О + @TableField(value = "step_name") + private String stepName; + //宸ユ鍙� + @TableField(value = "step_code") + private String stepCode; + //宸ヨ壓缂栧彿 + @TableField(value = "craft_no") + private String craftNo; + //宸ヨ壓瑙勭▼鐗堟湰 + @TableField(value = "craft_version") + private String craftVersion; + //宸ユ绫诲瀷 + @TableField(value = "step_type") + private Integer stepType; + @JsonIgnore + @TableField(value = "create_time", select = false, fill = FieldFill.INSERT) + private Date createTime; + @JsonIgnore + @TableField(value = "update_time", select = false, fill = FieldFill.UPDATE) + private Date updateTime; + @JsonIgnore + @TableField(value = "create_user", select = false, fill = FieldFill.INSERT) + private String createUser; + @JsonIgnore + @TableField(value = "update_user", select = false, fill = FieldFill.UPDATE) + private String updateUser; + @JsonIgnore + @TableLogic + @TableField(value = "delete_flag", select = false) + private Integer deleteFlag = 0; +} diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/ProcessStreamMapper.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/ProcessStreamMapper.java index b89ef08..bd9945a 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/ProcessStreamMapper.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/ProcessStreamMapper.java @@ -3,5 +3,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.jeecg.modules.dnc.entity.ProcessStream; +import java.util.List; + public interface ProcessStreamMapper extends BaseMapper<ProcessStream> { + /** + * 鏌ヨ宸ュ簭淇℃伅 + * @param userId + * @return + */ + List<ProcessStream> getByUserPerms(String userId); } diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/WorkStepMapper.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/WorkStepMapper.java new file mode 100644 index 0000000..06ba661 --- /dev/null +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/WorkStepMapper.java @@ -0,0 +1,16 @@ +package org.jeecg.modules.dnc.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.dnc.entity.SynchronizedFlag; +import org.jeecg.modules.dnc.entity.WorkStep; + +import java.util.List; + +public interface WorkStepMapper extends BaseMapper<WorkStep> { + /** + * 鏌ヨ宸ユ淇℃伅 + * @param userId + * @return + */ + List<WorkStep> getByUserPerms(String userId); +} diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/MdcPassLogMapper.xml b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/DncPassLogMapper.xml similarity index 100% rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/MdcPassLogMapper.xml rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/DncPassLogMapper.xml diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/ProcessStreamMapper.xml b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/ProcessStreamMapper.xml new file mode 100644 index 0000000..6b345e2 --- /dev/null +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/ProcessStreamMapper.xml @@ -0,0 +1,29 @@ +<?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.dnc.mapper.ProcessStreamMapper"> + <select id="getByUserPerms" resultType="org.jeecg.modules.dnc.entity.ProcessStream"> + select + p.PROCESS_ID + , p.product_id + , p.component_id + , p.parts_id + , p.PROCESS_NAME + , p.PROCESS_CODE + , p.CRAFT_NO + , p.PROCESS_TYPE + , p.PROCESSING_EQUIPMENT_MODEL + , p.PROCESSING_EQUIPMENT_CODE + , p.ASSEMBLE_STEP + , p.ASSEMBLE_NAME + , p.DESCRIPTION + , p.CREATE_TIME + , p.CREATE_USER + , p.UPDATE_TIME + , p.UPDATE_USER + from nc_process_stream p + inner join + (select distinct PROCESS_ID from nc_permission_stream where delete_flag = 0 and user_id=#{userId}) s + on p.PROCESS_ID = s.PROCESS_ID + where p.delete_flag = 0 + </select> +</mapper> diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/WorkStepMapper.xml b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/WorkStepMapper.xml new file mode 100644 index 0000000..0b19b27 --- /dev/null +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/WorkStepMapper.xml @@ -0,0 +1,26 @@ +<?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.dnc.mapper.WorkStepMapper"> + <select id="getByUserPerms" resultType="org.jeecg.modules.dnc.entity.WorkStep"> + select + p.step_id + , p.product_id + , p.component_id + , p.parts_id + , p.PROCESS_ID + , p.step_name + , p.step_code + , p.CRAFT_NO + , p.craft_version + , p.step_type + , p.CREATE_TIME + , p.create_by + , p.UPDATE_TIME + , p.update_by + from nc_work_step p + inner join + (select distinct step_id from nc_permission_stream where delete_flag = 0 and user_id=#{userId}) s + on p.step_id = s.step_id + where p.delete_flag = 0 + </select> +</mapper> diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/response/ProcessInfoCode.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/response/ProcessInfoCode.java index e8323e5..30a36f8 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/response/ProcessInfoCode.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/response/ProcessInfoCode.java @@ -13,7 +13,10 @@ PROCESS_NOT_EXIST(false,25405,"鏃犳晥鐨勯浂浠讹紒"), PROCESS_HAS_DOC(false,25406,"宸ュ簭涓嬫湁鍏宠仈鐨勬枃妗o紝鏃犳硶鍒犻櫎锛�"), PROCESS_CODE_NONE(false,25407,"璇疯緭鍏ュ伐搴忓彿锛�"), - PROCESS_IS_EXIST(false,25408,"璇ュ伐搴忓凡瀛樺湪锛�"); + PROCESS_IS_EXIST(false,25408,"璇ュ伐搴忓凡瀛樺湪锛�"), + WORKSTEP_NAME_NONE(false,25409,"璇疯緭鍏ュ伐姝ュ悕绉帮紒"), + WORKSTEP_NOT_EXIST(false,25410,"鏃犳晥鐨勫伐姝ワ紒"), + WORKSTEP_IS_EXIST(false,25411,"璇ュ伐姝ュ凡瀛樺湪锛�"); //鎿嶄綔浠g爜 @ApiModelProperty(value = "鎿嶄綔鏄惁鎴愬姛", example = "true", required = true) diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IProcessStreamService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IProcessStreamService.java index cd8f86a..004c9e8 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IProcessStreamService.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IProcessStreamService.java @@ -79,4 +79,19 @@ * @return */ List<ProcessStream> validateDeviceProcessInfo(String pnCode, String deviceNo); + + /** + * 鏍规嵁鐢ㄦ埛id鑾峰彇鎺堟潈鐨勫伐搴忎俊鎭� + * @param userId + * @return + */ + List<ProcessStream> getByuserPerms(String userId); + + /** + * 鏍规嵁鐢ㄦ埛id鑾峰彇鎺堟潈鐨勫伐搴忎俊鎭� + * @param userId + * @param queryParam 鏌ヨ鏉′欢 + * @return + */ + List<ProcessStream> getByuserPerms(String userId,String queryParam); } diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IWorkStepService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IWorkStepService.java new file mode 100644 index 0000000..c3bafde --- /dev/null +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IWorkStepService.java @@ -0,0 +1,56 @@ +package org.jeecg.modules.dnc.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.dnc.entity.ProcessStream; +import org.jeecg.modules.dnc.entity.ProductInfo; +import org.jeecg.modules.dnc.entity.SynchronizedFlag; +import org.jeecg.modules.dnc.entity.WorkStep; + +import java.util.List; + +/** + * @Description: 宸ユ + * @Author: server-boot + * @Date: 2025-01-14 + * @Version: V1.0 + */ +public interface IWorkStepService extends IService<WorkStep> { + + /** + * 鏍规嵁鐢ㄦ埛id鑾峰彇鎺堟潈鐨勫伐姝ヤ俊鎭� + * @param userId + * @return + */ + List<WorkStep> getByUserPerms(String userId); + + /** + * 鏍规嵁鐢ㄦ埛id鑾峰彇鎺堟潈鐨勫伐姝ヤ俊鎭� + * @param userId + * @param queryParam 鏌ヨ鏉′欢 + * @return + */ + List<WorkStep> getByUserPerms(String userId,String queryParam); + + /** + * 鏂板浜у搧淇℃伅 + * @param workStep + * @return + */ + boolean addWorkStep(WorkStep workStep); + + /** + * 缂栬緫浜у搧淇℃伅 + * @param id + * @param workStep + * @return + */ + boolean editWorkStep(String id ,WorkStep workStep); + + /** + * 鑾峰彇宸ュ簭涓嬬殑宸ユ鍙� + * @param processId + * @return + */ + WorkStep getByWorkStepNo(String processId,String craftNo); + +} diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ComponentInfoSeServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ComponentInfoSeServiceImpl.java index 3856ff5..b2460cd 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ComponentInfoSeServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ComponentInfoSeServiceImpl.java @@ -133,7 +133,8 @@ b = componentPermissionService.save(permission); if(!b) ExceptionCast.cast(CommonCode.FAIL); - //娣诲姞榛樿宸ュ簭 + //鍘婚櫎榛樿鏂板宸ュ簭锛岃浆涓烘墜鍔ㄦ坊鍔� + /*/娣诲姞榛樿宸ュ簭 ProcessStream processStream = new ProcessStream(); processStream.setProductId(componentInfo.getProductId()); processStream.setComponentId(componentInfo.getComponentId()); @@ -149,7 +150,7 @@ iNcLogInfoService.saveLogNcInfos(ncLogInfogx); b = processStreamService.save(processStream); if(!b) - ExceptionCast.cast(CommonCode.FAIL); + ExceptionCast.cast(CommonCode.FAIL);*/ //娣诲姞鏉冮檺 PermissionStream stream = new PermissionStream(); stream.setUserId(userId); diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PartsInfoServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PartsInfoServiceImpl.java index bd53894..0921b54 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PartsInfoServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PartsInfoServiceImpl.java @@ -125,30 +125,23 @@ b = partsPermissionService.save(permission); if(!b) ExceptionCast.cast(CommonCode.FAIL); - //娣诲姞榛樿宸ュ簭 - ProcessStream processStream = new ProcessStream(); - processStream.setProductId(partsInfo.getProductId()); - processStream.setComponentId(partsInfo.getComponentId()); - processStream.setPartsId(partsInfo.getPartsId()); - processStream.setProcessCode("1"); - b = processStreamService.save(processStream); - if(!b) - ExceptionCast.cast(CommonCode.FAIL); +// if(!b) +// ExceptionCast.cast(CommonCode.FAIL); //娣诲姞鐢ㄦ埛鏉冮檺 PermissionStream stream = new PermissionStream(); stream.setProductId(partsInfo.getProductId()); stream.setComponentId(partsInfo.getComponentId()); stream.setPartsId(partsInfo.getPartsId()); stream.setUserId(userId); - //娣诲姞鏃ュ織 - NcLogInfo ncLogInfogx = new NcLogInfo(); - //妯″潡 - ncLogInfogx.setModuleInfo("浜у搧缁撴瀯鏍�"); - //绫诲瀷 - ncLogInfogx.setOperateType(2); - //鏃ュ織鍐呭 - ncLogInfogx.setLogContent("闆朵欢鍚嶇О锛�"+partsInfo.getPartsName()+"鐢熸垚榛樿宸ュ簭锛屽伐搴忓彿锛�"+processStream.getProcessCode()); - iNcLogInfoService.saveLogNcInfos(ncLogInfogx); +// //娣诲姞鏃ュ織 +// NcLogInfo ncLogInfogx = new NcLogInfo(); +// //妯″潡 +// ncLogInfogx.setModuleInfo("浜у搧缁撴瀯鏍�"); +// //绫诲瀷 +// ncLogInfogx.setOperateType(2); +// //鏃ュ織鍐呭 +// ncLogInfogx.setLogContent("闆朵欢鍚嶇О锛�"+partsInfo.getPartsName()+"鐢熸垚榛樿宸ュ簭锛屽伐搴忓彿锛�"+processStream.getProcessCode()); +// iNcLogInfoService.saveLogNcInfos(ncLogInfogx); return permissionStreamService.save(stream); } diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessStreamServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessStreamServiceImpl.java index 813f313..e22d52e 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessStreamServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessStreamServiceImpl.java @@ -1,17 +1,17 @@ package org.jeecg.modules.dnc.service.impl; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.dnc.exception.ExceptionCast; import org.jeecg.modules.dnc.mapper.ProcessStreamMapper; -import org.jeecg.modules.dnc.response.CommonCode; -import org.jeecg.modules.dnc.response.ComponentInfoCode; -import org.jeecg.modules.dnc.response.DeviceCode; -import org.jeecg.modules.dnc.response.ProcessInfoCode; +import org.jeecg.modules.dnc.response.*; import org.jeecg.modules.dnc.service.*; import org.jeecg.modules.dnc.utils.ValidateUtil; @@ -43,6 +43,8 @@ private IDeviceInfoService deviceInfoService; @Autowired private INcLogInfoService iNcLogInfoService; + @Autowired + private IPermissionStreamService permissionStreamService; @Override @Transactional(rollbackFor = {Exception.class}) @@ -57,6 +59,10 @@ ExceptionCast.cast(ProcessInfoCode.PROCESS_NAME_NONE); if(!ValidateUtil.validateString(stream.getProcessCode())) ExceptionCast.cast(ProcessInfoCode.PROCESS_CODE_NONE); + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String userId = user.getId(); + if(!ValidateUtil.validateString(userId)) + ExceptionCast.cast(UcenterCode.UCENTER_ACCOUNT_NOT_EXIST); if(ValidateUtil.validateString(stream.getPartsId())) { PartsInfo partsInfo = partsInfoService.getById(stream.getPartsId()); if(partsInfo == null) @@ -93,10 +99,22 @@ boolean b = super.save(stream); if(!b) ExceptionCast.cast(CommonCode.FAIL); - ProcessInfo processInfo = new ProcessInfo(); - processInfo.setProcessName(stream.getProcessName()); - processInfo.setDescription(stream.getDescription()); - return processInfoService.addOrEdit(processInfo); +// ProcessInfo processInfo = new ProcessInfo(); +// processInfo.setProcessName(stream.getProcessName()); +// processInfo.setDescription(stream.getDescription()); +// boolean processInfoB= processInfoService.addOrEdit(processInfo); +// if(!processInfoB) +// ExceptionCast.cast(CommonCode.FAIL); + //娣诲姞鏉冮檺楠岃瘉 + PermissionStream permissionStream = new PermissionStream(); + permissionStream.setUserId(userId); + permissionStream.setProductId(stream.getProductId()); + permissionStream.setComponentId(stream.getComponentId()); + if (StrUtil.isNotEmpty(stream.getPartsId())){ + permissionStream.setPartsId(stream.getPartsId()); + } + permissionStream.setProcessId(stream.getProcessId()); + return permissionStreamService.save(permissionStream); } @Override @@ -223,4 +241,27 @@ ExceptionCast.cast(ProcessInfoCode.PROCESS_NOT_EXIST); return list; } + + @Override + public List<ProcessStream> getByuserPerms(String userId){ + if(!ValidateUtil.validateString(userId)) + return Collections.emptyList(); + return super.getBaseMapper().getByUserPerms(userId); + } + + @Override + public List<ProcessStream> getByuserPerms(String userId,String queryParam){ + if(!ValidateUtil.validateString(userId)) + return Collections.emptyList(); + if(!ValidateUtil.validateString(queryParam)) + return Collections.emptyList(); + LambdaQueryWrapper<ProcessStream> queryWrapper = Wrappers.lambdaQuery(); + if(ValidateUtil.validateString(queryParam)) { + queryWrapper.and(wrapper->wrapper.like(ProcessStream::getProcessName, queryParam) + .or() + .like(ProcessStream::getProcessName, queryParam)); + } + queryWrapper.orderByAsc(ProcessStream::getCreateTime); + return super.list(queryWrapper); + } } diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java index 9d079ff..ca7177f 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java @@ -66,6 +66,8 @@ @Lazy private IProcessStreamService processStreamService; @Autowired + private IWorkStepService workStepService; + @Autowired private IDocInfoService docInfoService; @Autowired private INcLogInfoService iNcLogInfoService; @@ -163,16 +165,27 @@ @Override public List<CommonGenericTree> loadProductTree(String userId) { + //浜у搧 List<ProductInfo> productInfoList = getByUserPerms(userId); if(productInfoList == null || productInfoList.isEmpty()) return Collections.emptyList(); + //閮ㄤ欢 List<ComponentExt> componentInfoList = componentInfoService.getByUserPermsAs(userId); if(componentInfoList == null) componentInfoList = Collections.emptyList(); + //闆朵欢 List<PartsInfo> partsInfos = partsInfoService.getByUserPerms(userId); if(partsInfos == null) partsInfos = Collections.emptyList(); - return ProductTreeWrapper.loadTree(productInfoList, componentInfoList, partsInfos); + //宸ュ簭 + List<ProcessStream> processStreams=processStreamService.getByuserPerms(userId); + if(processStreams==null) + processStreams = Collections.emptyList(); + //宸ユ + List<WorkStep> workStepList=workStepService.getByUserPerms(userId); + if(workStepList==null) + workStepList = Collections.emptyList(); + return ProductTreeWrapper.loadTree(productInfoList, componentInfoList, partsInfos,processStreams,workStepList); } @Override @@ -1427,7 +1440,8 @@ List<ProductInfo> productInfos = this.getByUserPerms(userId, queryParam); List<ComponentInfo> componentInfos = componentInfoService.getByUserPerms(userId, queryParam); List<PartsInfo> partsInfos = partsInfoService.getByUserPerms(userId, null, queryParam); - + List<ProcessStream> processStreams=processStreamService.getByuserPerms(userId, queryParam); + List<WorkStep> workSteps=workStepService.getByUserPerms(userId, queryParam); List<ComponentInfo> componentInfoList = new ArrayList<>(); List<ProductInfo> productInfoList = new ArrayList<>(); @@ -1462,6 +1476,44 @@ if(!componentInfoMap.containsKey(p.getComponentId())) { component = componentInfoService.getById(p.getComponentId()); + if(component != null) { + componentInfoMap.put(component.getComponentId(), component); + componentInfoList.add(component); + } + + } + } + + for (ProcessStream processStream : processStreams) { + if (!productInfoMap.containsKey(processStream.getProductId())) { + product = super.getById(processStream.getProductId()); + if(product != null) { + productInfoMap.put(product.getProductId(), product); + productInfoList.add(product); + } + } + + if(!componentInfoMap.containsKey(processStream.getComponentId())) { + component = componentInfoService.getById(processStream.getComponentId()); + if(component != null) { + componentInfoMap.put(component.getComponentId(), component); + componentInfoList.add(component); + } + + } + } + + for (WorkStep workStep :workSteps){ + if (!productInfoMap.containsKey(workStep.getProductId())) { + product = super.getById(workStep.getProductId()); + if(product != null) { + productInfoMap.put(product.getProductId(), product); + productInfoList.add(product); + } + } + + if(!componentInfoMap.containsKey(workStep.getComponentId())) { + component = componentInfoService.getById(workStep.getComponentId()); if(component != null) { componentInfoMap.put(component.getComponentId(), component); componentInfoList.add(component); @@ -1515,6 +1567,6 @@ //杞崲鏁版嵁 List<ComponentExt> componentExtList = ComponentExt.convertToExtList(componentInfoList); - return ProductTreeWrapper.loadTree(productInfoList, componentExtList, partsInfos); + return ProductTreeWrapper.loadTree(productInfoList, componentExtList, partsInfos,processStreams,workSteps); } } diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/WorkStepServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/WorkStepServiceImpl.java new file mode 100644 index 0000000..ddbf531 --- /dev/null +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/WorkStepServiceImpl.java @@ -0,0 +1,149 @@ +package org.jeecg.modules.dnc.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.dnc.entity.*; +import org.jeecg.modules.dnc.exception.ExceptionCast; +import org.jeecg.modules.dnc.mapper.PartsInfoMapper; +import org.jeecg.modules.dnc.mapper.WorkStepMapper; +import org.jeecg.modules.dnc.response.CommonCode; +import org.jeecg.modules.dnc.response.ProcessInfoCode; +import org.jeecg.modules.dnc.response.ProductInfoCode; +import org.jeecg.modules.dnc.response.UcenterCode; +import org.jeecg.modules.dnc.service.IPartsInfoService; +import org.jeecg.modules.dnc.service.IPermissionStreamService; +import org.jeecg.modules.dnc.service.IWorkStepService; +import org.jeecg.modules.dnc.utils.ValidateUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; + +/** + * @Description: TODO + * @Author: zhangherong + * @Date: Created in 2020/9/20 9:19 + * @Version: 1.0 + * @Modified By: + */ +@Service +public class WorkStepServiceImpl extends ServiceImpl<WorkStepMapper, WorkStep> implements IWorkStepService { + + @Autowired + private IPermissionStreamService permissionStreamService; + + @Override + public List<WorkStep> getByUserPerms(String userId) { + if(!ValidateUtil.validateString(userId)) + return Collections.emptyList(); + return super.getBaseMapper().getByUserPerms(userId); + } + + /** + * 鏍规嵁鐢ㄦ埛id鑾峰彇鎺堟潈鐨勫伐姝ヤ俊鎭� + * @param userId + * @param queryParam 鏌ヨ鏉′欢 + * @return + */ + @Override + public List<WorkStep> getByUserPerms(String userId,String queryParam){ + if(!ValidateUtil.validateString(userId)) + return Collections.emptyList(); + if(!ValidateUtil.validateString(queryParam)) + return Collections.emptyList(); + LambdaQueryWrapper<WorkStep> queryWrapper = Wrappers.lambdaQuery(); + if(ValidateUtil.validateString(queryParam)) { + queryWrapper.and(wrapper->wrapper.like(WorkStep::getStepName, queryParam) + .or() + .like(WorkStep::getStepName, queryParam)); + } + queryWrapper.orderByAsc(WorkStep::getCreateTime); + return super.list(queryWrapper); + } + + /** + * 鏂板浜у搧淇℃伅 + * @param workStep + * @return + */ + @Override + public boolean addWorkStep(WorkStep workStep){ + if(workStep == null) + ExceptionCast.cast(CommonCode.INVALID_PARAM); + if(!ValidateUtil.validateString(workStep.getProductId())) + ExceptionCast.cast(ProcessInfoCode.PROCESS_PRODUCT_NONE); + if(!ValidateUtil.validateString(workStep.getComponentId())) + ExceptionCast.cast(ProcessInfoCode.PROCESS_COMPONENT_NONE); + if(!ValidateUtil.validateString(workStep.getStepName())) + ExceptionCast.cast(ProcessInfoCode.PROCESS_NAME_NONE); + if(!ValidateUtil.validateString(workStep.getStepCode())) + ExceptionCast.cast(ProcessInfoCode.PROCESS_CODE_NONE); + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String userId = user.getId(); + if(!ValidateUtil.validateString(userId)) + ExceptionCast.cast(UcenterCode.UCENTER_ACCOUNT_NOT_EXIST); + WorkStep en =getByWorkStepNo(workStep.getProcessId(), workStep.getCraftNo()); + if(en != null) { + ExceptionCast.cast(ProcessInfoCode.WORKSTEP_NOT_EXIST); + } + boolean b =super.save(workStep); + if(!b) + ExceptionCast.cast(CommonCode.FAIL); + //娣诲姞鏉冮檺楠岃瘉 + PermissionStream permissionStream = new PermissionStream(); + permissionStream.setUserId(userId); + permissionStream.setProductId(workStep.getProductId()); + permissionStream.setComponentId(workStep.getComponentId()); + if (StrUtil.isNotEmpty(workStep.getPartsId())){ + permissionStream.setPartsId(workStep.getPartsId()); + } + permissionStream.setProcessId(workStep.getProcessId()); + permissionStream.setStepId(workStep.getStepId()); + return permissionStreamService.save(permissionStream); + } + + /** + * 缂栬緫浜у搧淇℃伅 + * @param id + * @param workStep + * @return + */ + @Override + public boolean editWorkStep(String id ,WorkStep workStep){ + if(!ValidateUtil.validateString(id) || workStep == null) + ExceptionCast.cast(CommonCode.INVALID_PARAM); + if(!ValidateUtil.validateString(workStep.getStepName())) + ExceptionCast.cast(ProcessInfoCode.PROCESS_NAME_NONE); + WorkStep en = super.getById(id); + if(en == null) + ExceptionCast.cast(ProcessInfoCode.WORKSTEP_NOT_EXIST); +// workStep.setStepId(id); +// workStep.setProductId(null); +// workStep.setComponentId(null); +// workStep.setPartsId(null); +// workStep.setProcessId(null); +// workStep.setStepName(workStep.getStepName().toUpperCase()); +// workStep.setStepCode(null); + return super.updateById(workStep); + } + + @Override + public WorkStep getByWorkStepNo(String processId,String craftNo){ + if(ValidateUtil.validateString(processId)) { + List<WorkStep> list = super.lambdaQuery().eq(WorkStep::getProcessId, processId).eq(WorkStep::getCraftNo,craftNo).list(); + if(list == null || list.isEmpty()) + return null; + return list.get(0); + } + return null; + + } + +} diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/support/ProductTreeWrapper.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/support/ProductTreeWrapper.java index 9e03bdd..c07d48b 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/support/ProductTreeWrapper.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/support/ProductTreeWrapper.java @@ -1,7 +1,7 @@ package org.jeecg.modules.dnc.service.support; -import org.jeecg.modules.dnc.entity.PartsInfo; -import org.jeecg.modules.dnc.entity.ProductInfo; +import cn.hutool.core.util.StrUtil; +import org.jeecg.modules.dnc.entity.*; import org.jeecg.modules.dnc.response.CommonGenericTree; import org.jeecg.modules.dnc.entity.ComponentInfo; import org.jeecg.modules.dnc.dto.ComponentExt; @@ -13,13 +13,18 @@ public class ProductTreeWrapper { - public static List<CommonGenericTree> loadTree(List<ProductInfo> productInfoList, List<ComponentExt> componentInfoList, List<PartsInfo> partsInfoList) { + public static List<CommonGenericTree> loadTree(List<ProductInfo> productInfoList, List<ComponentExt> componentInfoList, + List<PartsInfo> partsInfoList,List<ProcessStream> processStreams, List<WorkStep> workStepList) { List<CommonGenericTree> tree = new ArrayList<CommonGenericTree>();// TreeNode闆嗗悎锛屽瓨鏀炬墍鏈夋爲瀵硅薄銆� Map<String, CommonGenericTree> productMap = new HashMap<>(); Map<String, CommonGenericTree> componentMap = new HashMap<>(); + Map<String, CommonGenericTree> partsMap = new HashMap<>(); + Map<String, CommonGenericTree> processMap = new HashMap<>(); CommonGenericTree<ProductInfo> node; CommonGenericTree<ComponentInfo> componentNode; CommonGenericTree<PartsInfo> partsNode; + CommonGenericTree<ProcessStream> processNode; + CommonGenericTree<WorkStep> workStepNode; for(ProductInfo productInfo : productInfoList) { node = new CommonGenericTree(); node.setId(productInfo.getProductId()); @@ -56,7 +61,56 @@ partsNode.setParentId(componentNode.getId()); componentNode.addChildren(partsNode); } + partsMap.put(parts.getPartsId(), partsNode); } + + //宸ュ簭瀛樺湪閮ㄤ欢鎴栬�呴浂浠朵笅 + for(ProcessStream processStream : processStreams) { + processNode = new CommonGenericTree(); + processNode.setId(processStream.getProcessId()); + processNode.setLabel("[" + processStream.getProcessCode()+ "]" + processStream.getProcessName()); + processNode.setParentId(null); + processNode.setIconClass(""); + processNode.setType(4); + if (StrUtil.isEmpty(processStream.getPartsId())) { + //娌℃湁partsId锛岄儴浠朵笅鐨勫伐搴� + processNode.setRField(processStream.getComponentId()); + processNode.setEntity(processStream); + if(componentMap.containsKey(processNode.getRField())) { + componentNode = componentMap.get(processNode.getRField()); + processNode.setParentId(componentNode.getId()); + componentNode.addChildren(processNode); + } + }else { + //鏈塸artsId锛岄浂浠朵笅鐨勫伐搴� + processNode.setRField(processStream.getPartsId()); + processNode.setEntity(processStream); + if(partsMap.containsKey(processNode.getRField())) { + partsNode = partsMap.get(processNode.getRField()); + processNode.setParentId(partsNode.getId()); + partsNode.addChildren(processNode); + } + } + processMap.put(processStream.getProcessId(),processNode); + } + + //宸ユ瀛樺湪宸ュ簭涓� + for (WorkStep workStep : workStepList) { + workStepNode = new CommonGenericTree(); + workStepNode.setId(workStep.getStepId()); + workStepNode.setLabel("[" + workStep.getStepCode() + "]" + workStep.getStepName()); + workStepNode.setParentId(null); + workStepNode.setIconClass(""); + workStepNode.setType(5); + workStepNode.setRField(workStep.getProcessId()); + workStepNode.setEntity(workStep); + if (processMap.containsKey(workStepNode.getRField())) { + processNode = processMap.get(workStepNode.getRField()); + workStepNode.setParentId(processNode.getId()); + processNode.addChildren(workStepNode); + } + } + return tree; } -- Gitblit v1.9.3