From a7ad8c17aa069e723aa0a813cf198d07e67b5fb5 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期五, 14 三月 2025 14:19:08 +0800
Subject: [PATCH] 新增刀具、设备类信息管理,新增结构树优化,优化权限分配,新增双控设备结构书 修改flow模块 删除部分废弃yml配置

---
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamFlowController.java                      |   26 
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/dncFlow/FlowThirdServiceImpl.java                        |    2 
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java |    7 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/ProductMix.java                                                  |   25 
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/FlowMyBusinessMapper.java            |    3 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/CutterServiceImpl.java                                     |   71 +-
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/ApproveBatchRequest.java                                    |    2 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/AssignFileRequest.java                                      |    2 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DeviceManagementController.java                              |  128 ++++
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/AssignFileStreamQueryRequest.java                           |    2 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceManagementServiceImpl.java                           |  221 +++++++
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocRelativeServiceImpl.java                                |   45 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IWorkTaskServiceVo.java                                     |    8 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/WorkTaskData.java                                            |    2 
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java         |    5 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/UserRole.java                                                |    2 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/PlmCommonUtilsMapper.xml                                 |    4 
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/IFlowTaskService.java                                 |    1 
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcProductionService.java                |    5 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/DeviceManagement.java                                            |   63 ++
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/TaskRequest.java                                            |    2 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/PlmCommonUtilsServiceImpl.java                         |    8 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/AssignFileStream.java                                        |    2 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/WorkStepServiceImpl.java                                   |   12 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/HisWorkTask.java                                             |    2 
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/service/FlowCommonService.java                       |    1 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/AssignFileStreamMapper.xml                               |    6 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IPlmCommonUtilsService.java                                 |    4 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IWorkTaskService.java                                       |    4 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java                                |   89 ++
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/ProductMixMapper.java                                            |    2 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/HisWorkTaskMapper.xml                                    |   12 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IPermissionStreamNewService.java                                |    9 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceTypeServiceImpl.java                                 |   85 +-
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/IWorkTaskVoMapper.java                                       |    6 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/utils/TreeBuilder.java                                                  |   16 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/ProductMixController.java                                    |   20 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/IWorkTaskMapper.java                                         |    4 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/Cutter.java                                                      |   23 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/ToEquipmentTask.java                                         |    2 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/ProcessStream.java                                               |    6 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessSpecVersionServiceImpl.java                         |   18 
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/config/FlowableConfig.java                                    |    7 
 lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml                                                 |   14 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/WorkTaskMapper.xml                                       |    4 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/CutterController.java                                        |   61 +
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/DncDevicePermission.java                   |    2 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/DeviceManagementMapper.java                                      |    7 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/WorkTaskServiceImplVo.java                             |   11 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/ToEquipmentTaskMapper.java                                   |    7 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/WorkTaskServiceImpl.java                               |    8 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/vo/AssignFlowTaskVo.java                                            |    2 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/model/MdcEquipmentTree.java                                             |    9 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/DeviceManagementMapper.xml                                   |    4 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/vo/FlowMy.java                                                      |    2 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/WorkTaskDataVo.java                                          |    2 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DeviceTypeController.java                                    |   31 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/AssignFileStreamMapper.java                                  |    6 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamController.java                          |   22 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IHisWorkTaskService.java                                    |    4 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ComponentInfoSeServiceImpl.java                            |    7 
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowDefinitionServiceImpl.java                   |   12 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/AssignFileStreamServiceImpl.java                       |   44 -
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/WorkTaskVoMapper.xml                                     |    6 
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/listener/UserTaskListener.java                                |    1 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/DeviceType.java                                                  |   23 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/IHisWorkTaskMapper.java                                      |    4 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductMixServiceImpl.java                                 |   18 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IToEquipmentTaskService.java                                |    7 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/WorkStep.java                                                    |    6 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/PermissionStreamNewMapper.java                                   |   11 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/PermissionStreamNewMapper.xml                                |   46 +
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IProcessSpecVersionService.java                                 |    7 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IProductInfoService.java                                        |    9 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/ToEquipmentTaskServiceImpl.java                        |   11 
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/MdcProductionController.java           |   21 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/PlmCommonUtilsMapper.java                                    |    4 
 /dev/null                                                                                                                   |   11 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDeviceManagementService.java                                   |   69 ++
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/HisWorkTaskServiceImpl.java                            |    8 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IAssignFileStreamService.java                               |   15 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PermissionStreamNewServiceImpl.java                        |   24 
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml         |   13 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessStreamServiceImpl.java                              |   20 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/ext/AssignFileStreamExt.java                                        |    4 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PartsInfoServiceImpl.java                                  |    7 
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java        |   49 +
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/DncDevicePermissionServiceImpl.java  |    8 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/ActivitiDefinitionRequest.java                              |    2 
 89 files changed, 1,230 insertions(+), 397 deletions(-)

diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/CutterController.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/CutterController.java
index d1a3a2b..186190a 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/CutterController.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/CutterController.java
@@ -9,6 +9,10 @@
 import org.jeecg.modules.dnc.entity.Cutter;
 import org.jeecg.modules.dnc.service.ICutterService;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 
 @Slf4j
 @Api(tags = "鍒�鍏蜂俊鎭�")
@@ -16,17 +20,19 @@
 @RequestMapping("/nc/cutter")
 public class CutterController extends JeecgController<Cutter, ICutterService> {
 
-//    /**
-//     * 鏍规嵁涓氬姟id鏌ヨ鍒�鍏峰垪琛�
-//     * @param businessId
-//     * @param pageNo
-//     * @param pageSize
-//     * @return
-//     */
-//    @GetMapping("/getByBusinessId")
-//    public Result<?> getByBusinessId(String businessId,Integer pageNo,Integer pageSize){
-//        return Result.OK(service.getByBusinessId(businessId,pageNo,pageSize));
-//    }
+    /**
+     * 鏌ヨ鍒�鍏峰垪琛�
+     * @param cutter
+     * @param pageNo
+     * @param pageSize
+     * @return
+     */
+    @AutoLog(value = "鍒�鍏蜂俊鎭�-鏌ヨ鍒�鍏峰垪琛�")
+    @ApiOperation(value = "鍒�鍏蜂俊鎭�-鏌ヨ鍒�鍏峰垪琛�", notes = "鍒�鍏蜂俊鎭�-鏌ヨ鍒�鍏峰垪琛�")
+    @GetMapping("/getByBusinessId")
+    public Result<?> getByBusinessId( Cutter cutter,Integer pageNo,Integer pageSize){
+        return service.query(cutter,pageNo,pageSize);
+    }
 
     /**
      * 鏂板鍒�鍏蜂俊鎭�
@@ -37,7 +43,7 @@
     @ApiOperation(value = "鍒�鍏蜂俊鎭�-鏂板鍒�鍏蜂俊鎭�", notes = "鍒�鍏蜂俊鎭�-鏂板鍒�鍏蜂俊鎭�")
     @PostMapping("/add")
     public Result<?> add(@RequestBody Cutter cutter){
-        return Result.OK(service.add(cutter));
+        return service.add(cutter);
     }
 
     /**
@@ -49,7 +55,7 @@
     @ApiOperation(value = "鍒�鍏蜂俊鎭�-缂栬緫鍒�鍏蜂俊鎭�", notes = "鍒�鍏蜂俊鎭�-缂栬緫鍒�鍏蜂俊鎭�")
     @PutMapping("/edit")
     public Result<?> edit(@RequestBody Cutter cutter){
-        return Result.OK(service.edit(cutter));
+        return service.edit(cutter);
     }
 
     /**
@@ -60,8 +66,33 @@
     @AutoLog(value = "鍒�鍏蜂俊鎭�-鏍规嵁id鍒犻櫎鍒�鍏蜂俊鎭�")
     @ApiOperation(value = "鍒�鍏蜂俊鎭�-鏍规嵁id鍒犻櫎鍒�鍏蜂俊鎭�", notes = "鍒�鍏蜂俊鎭�-鏍规嵁id鍒犻櫎鍒�鍏蜂俊鎭�")
     @DeleteMapping("/delete")
-    public Result<?> delete(@RequestBody String id){
-        return Result.OK(service.delete(id));
+    public Result<?> delete(String id){
+        return service.delete(id);
     }
 
+    /**
+     * 瀵煎嚭excel
+     * @param request
+     * @param cutter
+     * @return
+     */
+    @AutoLog(value = "鍒�鍏蜂俊鎭�-瀵煎嚭excel")
+    @ApiOperation(value = "鍒�鍏蜂俊鎭�-瀵煎嚭excel", notes = "鍒�鍏蜂俊鎭�-瀵煎嚭excel")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, Cutter cutter) {
+        return super.exportXls(request, cutter, Cutter.class, "鍒�鍏蜂俊鎭�");
+    }
+
+    /**
+     * 瀵煎叆excel
+     * @param request
+     * @param response
+     * @return
+     */
+    @AutoLog(value = "鍒�鍏蜂俊鎭�-瀵煎叆excel")
+    @ApiOperation(value = "鍒�鍏蜂俊鎭�-瀵煎叆excel", notes = "鍒�鍏蜂俊鎭�-瀵煎叆excel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, Cutter.class);
+    }
 }
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DeviceManagementController.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DeviceManagementController.java
new file mode 100644
index 0000000..4064ff9
--- /dev/null
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DeviceManagementController.java
@@ -0,0 +1,128 @@
+package org.jeecg.modules.dnc.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.modules.dnc.entity.DeviceManagement;
+import org.jeecg.modules.dnc.service.IDeviceManagementService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+
+@Slf4j
+@Api(tags = "璁惧绫荤鐞嗕俊鎭�")
+@RestController
+@RequestMapping("/nc/deviceManagement")
+public class DeviceManagementController extends JeecgController<DeviceManagement, IDeviceManagementService> {
+
+    @Autowired
+    private IDeviceManagementService deviceManagementService;
+
+    /**
+     * 璁惧绫讳俊鎭垎椤垫煡璇�
+     * @param deviceManagement
+     * @param pageNo
+     * @param pageSize
+     * @return
+     */
+    @AutoLog(value = "璁惧绫荤鐞嗕俊鎭�-鍒嗛〉鍒楄〃鏌ヨ")
+    @ApiOperation(value = "璁惧绫荤鐞嗕俊鎭�-鍒嗛〉鍒楄〃鏌ヨ", notes = "璁惧绫荤鐞嗕俊鎭�-鍒嗛〉鍒楄〃鏌ヨ")
+    @GetMapping("/query")
+    public Result<?> query(DeviceManagement deviceManagement, Integer pageNo, Integer pageSize){
+        return deviceManagementService.query(deviceManagement, pageNo, pageSize);
+    }
+
+
+    /**
+     * 鏂板璁惧绫�
+     * @param deviceManagement
+     * @return
+     */
+    @AutoLog(value = "璁惧绫荤鐞嗕俊鎭�-鏂板璁惧绫讳俊鎭�")
+    @ApiOperation(value = "璁惧绫荤鐞嗕俊鎭�-鏂板璁惧绫讳俊鎭�", notes = "璁惧绫荤鐞嗕俊鎭�-鏂板璁惧绫讳俊鎭�")
+    @PostMapping("/add")
+    public Result<?> add(@RequestBody DeviceManagement deviceManagement){
+        return deviceManagementService.add(deviceManagement);
+    }
+
+    /**
+     * 缂栬緫璁惧绫�
+     * @param deviceManagement
+     * @return
+     */
+    @AutoLog(value = "璁惧绫荤鐞嗕俊鎭�-缂栬緫璁惧绫讳俊鎭�")
+    @ApiOperation(value = "璁惧绫荤鐞嗕俊鎭�-缂栬緫璁惧绫讳俊鎭�", notes = "璁惧绫荤鐞嗕俊鎭�-缂栬緫璁惧绫讳俊鎭�")
+    @PutMapping("/edit")
+    public Result<?> edit(@RequestBody DeviceManagement deviceManagement){
+        return deviceManagementService.edit(deviceManagement);
+    }
+
+    /**
+     * 鏍规嵁id鍒犻櫎璁惧绫�
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "璁惧绫荤鐞嗕俊鎭�-鏍规嵁id鍒犻櫎璁惧绫讳俊鎭�")
+    @ApiOperation(value = "璁惧绫荤鐞嗕俊鎭�-鏍规嵁id鍒犻櫎璁惧绫讳俊鎭�", notes = "璁惧绫荤鐞嗕俊鎭�-鏍规嵁id鍒犻櫎璁惧绫讳俊鎭�")
+    @DeleteMapping("/delete")
+    public Result<?> delete(String id){
+        return deviceManagementService.delete(id);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎璁惧绫�
+     * @param ids
+     * @return
+     */
+    @AutoLog(value = "璁惧绫荤鐞嗕俊鎭�-鎵归噺鍒犻櫎璁惧绫讳俊鎭�")
+    @ApiOperation(value = "璁惧绫荤鐞嗕俊鎭�-鎵归噺鍒犻櫎璁惧绫讳俊鎭�", notes = "璁惧绫荤鐞嗕俊鎭�-鎵归噺鍒犻櫎璁惧绫讳俊鎭�")
+    @DeleteMapping("/deleteBatch")
+    public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
+        return this.deviceManagementService.deleteBatch(Arrays.asList(ids.split(",")));
+    }
+
+    /**
+     * 鑾峰彇鐢ㄦ埛鏉冮檺鎷ユ湁鐨勮溅闂翠俊鎭�
+     * @return
+     */
+    @AutoLog(value = "璁惧绫荤鐞嗕俊鎭�-鑾峰彇鐢ㄦ埛鏉冮檺鎷ユ湁鐨勮溅闂翠俊鎭�")
+    @ApiOperation(value = "璁惧绫荤鐞嗕俊鎭�-鑾峰彇鐢ㄦ埛鏉冮檺鎷ユ湁鐨勮溅闂翠俊鎭�", notes = "璁惧绫荤鐞嗕俊鎭�-鑾峰彇鐢ㄦ埛鏉冮檺鎷ユ湁鐨勮溅闂翠俊鎭�")
+    @GetMapping("/getProductionIdsByUserId")
+    public Result<?> getProductionIdsByUserId(){
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        return Result.OK(deviceManagementService.getProductionIdsByUserId(user.getId()));
+    }
+
+    /**
+     * 閫氳繃杞﹂棿id鏌ヨ璁惧鍒楄〃淇℃伅
+     * @param productionId
+     * @param equipmentId
+     * @param equipmentName
+     * @return
+     */
+    @AutoLog(value = "璁惧绫荤鐞嗕俊鎭�-閫氳繃杞﹂棿id鏌ヨ璁惧鍒楄〃淇℃伅")
+    @ApiOperation(value = "璁惧绫荤鐞嗕俊鎭�-閫氳繃杞﹂棿id鏌ヨ璁惧鍒楄〃淇℃伅", notes = "璁惧绫荤鐞嗕俊鎭�-閫氳繃杞﹂棿id鏌ヨ璁惧鍒楄〃淇℃伅")
+    @GetMapping("/getEquipmentListByProductionId")
+    public Result<?> getEquipmentListByProductionId(String productionId,String equipmentId,String equipmentName,Integer pageNo,Integer pageSize){
+        return Result.OK(deviceManagementService.getEquipmentListByProductionId(productionId,equipmentId,equipmentName,pageNo,pageSize));
+    }
+
+    /**
+     * 閫氳繃杞﹂棿id鏌ヨ璁惧绫荤鐞嗗垪琛ㄤ俊鎭�
+     * @param productionId
+     * @return
+     */
+    @AutoLog(value = "璁惧绫荤鐞嗕俊鎭�-閫氳繃杞﹂棿id鏌ヨ璁惧绫荤鐞嗗垪琛ㄤ俊鎭�")
+    @ApiOperation(value = "璁惧绫荤鐞嗕俊鎭�-閫氳繃杞﹂棿id鏌ヨ璁惧绫荤鐞嗗垪琛ㄤ俊鎭�", notes = "璁惧绫荤鐞嗕俊鎭�-閫氳繃杞﹂棿id鏌ヨ璁惧绫荤鐞嗗垪琛ㄤ俊鎭�")
+    @GetMapping("/getDeviceManagementListByProductionId")
+    public Result<?> getDeviceManagementListByProductionId(String productionId){
+        return Result.OK(deviceManagementService.getDeviceManagementListByProductionId(productionId));
+    }
+
+}
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DeviceTypeController.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DeviceTypeController.java
index b4c02ac..d7e3e7b 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DeviceTypeController.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DeviceTypeController.java
@@ -9,10 +9,7 @@
 import org.jeecg.modules.dnc.entity.DeviceType;
 import org.jeecg.modules.dnc.service.IDeviceTypeService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 @Slf4j
 @Api(tags = "璁惧绫讳俊鎭�")
@@ -24,15 +21,15 @@
 
     /**
      * 鏍规嵁涓氬姟id鏌ヨ璁惧绫诲垪琛�
-     * @param businessId
-     * @param type
+     * @param attributionId
+     * @param attributionType
      * @return
      */
     @AutoLog(value = "璁惧绫讳俊鎭�-鏍规嵁涓氬姟id鏌ヨ璁惧绫诲垪琛�")
     @ApiOperation(value = "璁惧绫讳俊鎭�-鏍规嵁涓氬姟id鏌ヨ璁惧绫诲垪琛�", notes = "璁惧绫讳俊鎭�-鏍规嵁涓氬姟id鏌ヨ璁惧绫诲垪琛�")
     @GetMapping("/getByBusinessId")
-    public Result<?> getByBusinessId(String businessId,String type){
-        return deviceTypeService.getByBusinessId(businessId,type);
+    public Result<?> getByBusinessId(String attributionId,String attributionType){
+        return deviceTypeService.getByBusinessId(attributionId,attributionType);
     }
 
     /**
@@ -42,9 +39,9 @@
      */
     @AutoLog(value = "璁惧绫讳俊鎭�-鏂板璁惧绫�")
     @ApiOperation(value = "璁惧绫讳俊鎭�-鏂板璁惧绫�", notes = "璁惧绫讳俊鎭�-鏂板璁惧绫�")
-    @GetMapping("/add")
-    public Result<?> add(DeviceType deviceType){
-        return Result.OK(deviceTypeService.add(deviceType));
+    @PostMapping("/add")
+    public Result<?> add(@RequestBody  DeviceType deviceType){
+        return deviceTypeService.add(deviceType);
     }
 
     /**
@@ -54,9 +51,9 @@
      */
     @AutoLog(value = "璁惧绫讳俊鎭�-缂栬緫璁惧绫�")
     @ApiOperation(value = "璁惧绫讳俊鎭�-缂栬緫璁惧绫�", notes = "璁惧绫讳俊鎭�-缂栬緫璁惧绫�")
-    @GetMapping("/edit")
-    public Result<?> edit(DeviceType deviceType){
-        return Result.OK(deviceTypeService.edit(deviceType));
+    @PutMapping("/edit")
+    public Result<?> edit(@RequestBody DeviceType deviceType){
+        return deviceTypeService.edit(deviceType);
     }
 
     /**
@@ -66,8 +63,8 @@
      */
     @AutoLog(value = "璁惧绫讳俊鎭�-鏍规嵁id鍒犻櫎璁惧绫�")
     @ApiOperation(value = "璁惧绫讳俊鎭�-鏍规嵁id鍒犻櫎璁惧绫�", notes = "璁惧绫讳俊鎭�-鏍规嵁id鍒犻櫎璁惧绫�")
-    @GetMapping("/delete")
-    public Result<?> delete(@RequestBody String id){
-        return Result.OK(deviceTypeService.delete(id));
+    @DeleteMapping("/delete")
+    public Result<?> delete(String id){
+        return deviceTypeService.delete(id);
     }
 }
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/ProductMixController.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/ProductMixController.java
index 91fdd0a..c91e823 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/ProductMixController.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/ProductMixController.java
@@ -1,11 +1,12 @@
 package org.jeecg.modules.dnc.controller;
 
-import cn.hutool.core.lang.tree.Tree;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.modules.dnc.entity.ProductMix;
+import org.jeecg.modules.dnc.service.IProductInfoService;
 import org.jeecg.modules.dnc.service.IProductMixService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -22,6 +23,8 @@
     @Autowired
     private IProductMixService iProductMixService;
 
+    @Autowired
+    private IProductInfoService iProductInfoService;
     /**
      * 鑾峰彇浜у搧缁撴瀯鏍�
      * @return
@@ -30,6 +33,19 @@
     @ApiOperation(value = "鑾峰彇浜у搧缁撴瀯鏍�", notes = "鑾峰彇浜у搧缁撴瀯鏍�")
     @GetMapping(value = "/getTree")
     public Result<?> getTree() {
-        return Result.OK(iProductMixService.getTree());
+        List<ProductMix> productMixList = iProductMixService.getTree();
+        return Result.OK(productMixList);
+    }
+
+    /**
+     * 鑾峰彇鍏蜂綋灞傜骇瀹炰綋
+     * @param id,type
+     * @return
+     */
+    @AutoLog(value = "鑾峰彇鍏蜂綋灞傜骇瀹炰綋")
+    @ApiOperation(value = "鑾峰彇鍏蜂綋灞傜骇瀹炰綋", notes = "鑾峰彇鍏蜂綋灞傜骇瀹炰綋")
+    @GetMapping(value = "/getTreeById")
+    public Result<?> getTreeById(String id, Integer type) {
+        return iProductInfoService.getTreeById(id, type);
     }
 }
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/Cutter.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/Cutter.java
index cb03de4..4e95a6a 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/Cutter.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/Cutter.java
@@ -9,6 +9,7 @@
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -23,38 +24,48 @@
     private String id;
 
     //宸ュ簭鎴栧伐姝d
-    @TableField(value = "process_step_id")
-    private String processStepId;
+    @Excel(name = "鎵�灞炰笟鍔d", width = 15)
+    @TableField(value = "attribution_id")
+    private String attributionId;
 
-    //宸ュ簭/宸ユ  1宸ュ簭 2宸ユ
-    @TableField(value = "type")
-    private Integer type;
+    //宸ュ簭/宸ユ  5宸ュ簭 6宸ユ
+    @Excel(name = "鎵�灞炵被鍨�", width = 15)
+    @TableField(value = "attribution_type")
+    private Integer attributionType;
 
     //鍒�鍏峰悕绉�
+    @Excel(name = "鍒�鍏峰悕绉�", width = 15)
     @TableField(value = "cutter_name")
     private String cutterName;
 
     //鍒�鍏风紪鍙�
+    @Excel(name = "鍒�鍏风紪鍙�", width = 15)
     @TableField(value = "cutter_code")
     private String cutterCode;
 
     //鍒�鍏风被鍨�
+    @Excel(name = "鍒�鍏风被鍨�", width = 15,dicCode = "cutter_type")
     @TableField(value = "cutter_type")
+    @Dict(dicCode = "cutter_type")
     private String cutterType;
 
     //棰濆畾瀵垮懡
+    @Excel(name = "棰濆畾瀵垮懡", width = 15)
     @TableField(value = "lifetime")
     private String lifetime;
 
     //鍒�浣�
-    @TableField(value = "cutter_position")
+    @Excel(name = "鍒�浣�", width = 15)
+    @TableField(value = "cutter_spacing")
     private String cutterSpacing;
 
     //鏁伴噺
+    @Excel(name = "鏁伴噺", width = 15)
     @TableField(value = "quantity")
     private Integer quantity;
 
     //鎻忚堪
+    @Excel(name = "鎻忚堪", width = 15)
     @TableField(value = "description")
     private String description;
 
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/DeviceManagement.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/DeviceManagement.java
new file mode 100644
index 0000000..bebfb23
--- /dev/null
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/DeviceManagement.java
@@ -0,0 +1,63 @@
+package org.jeecg.modules.dnc.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.jeecg.common.aspect.annotation.Dict;
+
+import java.io.Serializable;
+import java.util.Date;
+@Data
+@NoArgsConstructor
+@TableName(value = "nc_device_management")
+public class DeviceManagement implements Serializable {
+    private static final long serialVersionUID = 1529244980533421687L;
+
+    private String id;
+
+    //杞﹂棿id
+    @TableField(value = "production_id")
+    @Dict(dictTable = "mdc_production", dicCode = "id", dicText = "production_name")
+    private String productionId;
+
+    //璁惧绫诲悕绉�
+    @TableField(value = "device_management_name")
+    private String deviceManagementName;
+
+    //璁惧绫荤紪鍙�
+    @TableField(value = "device_management_code")
+    private String deviceManagementCode;
+
+    //璁惧缂栧彿
+    @TableField(value = "equipment_ids")
+    @Dict(dictTable = "mdc_equipment", dicCode = "id", dicText = "equipment_id")
+    private String equipmentIds;
+
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(value = "create_time", fill = FieldFill.INSERT)
+    private Date createTime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(value = "update_time", fill = FieldFill.INSERT)
+    private Date updateTime;
+
+    @JsonIgnore
+    @TableField(value = "create_by", select = false, fill = FieldFill.INSERT)
+    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
+    private String createBy;
+
+    @JsonIgnore
+    @TableField(value = "update_by", select = false, fill = FieldFill.UPDATE)
+    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
+    private String updateBy;
+
+    @JsonIgnore
+    @TableField(value = "delete_flag", select = false)
+    private Integer deleteFlag = 0;
+
+}
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/DeviceType.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/DeviceType.java
index a0a3ed5..e200f5b 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/DeviceType.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/DeviceType.java
@@ -8,11 +8,9 @@
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.jeecg.common.aspect.annotation.Dict;
-import org.jeecg.modules.mdc.entity.MdcEquipment;
 
 import java.io.Serializable;
 import java.util.Date;
-import java.util.List;
 
 @Data
 @NoArgsConstructor
@@ -23,20 +21,22 @@
     private String id;
 
     //宸ュ簭鎴栧伐姝d
-    @TableField(value = "process_step_id")
-    private String processStepId;
+    @TableField(value = "attribution_id")
+    private String attributionId;
 
-    //宸ュ簭/宸ユ  1宸ュ簭 2宸ユ
-    @TableField(value = "type")
-    private Integer type;
+    //宸ュ簭/宸ユ  5宸ュ簭 6宸ユ
+    @TableField(value = "attribution_type")
+    private Integer attributionType;
 
     //杞﹂棿id
     @TableField(value = "production_id")
+    @Dict(dictTable = "mdc_production", dicCode = "id", dicText = "production_name")
     private String productionId;
 
-    //璁惧绫诲瀷
-    @TableField(value = "device_type")
-    private Integer deviceType;
+    //璁惧绫�
+    @TableField(value = "device_management_id")
+    @Dict(dictTable = "nc_device_management", dicCode = "id", dicText = "device_management_name")
+    private String deviceManagementId;
 
     @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     @TableField(value = "create_time", fill = FieldFill.INSERT)
@@ -60,6 +60,7 @@
     @TableField(value = "delete_flag", select = false)
     private Integer deleteFlag = 0;
 
-    private transient List<MdcEquipment> equipmentList;
+    @Dict(dictTable = "nc_device_management", dicCode = "id", dicText = "device_management_code")
+    private transient String deviceManagementCode;
 
 }
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 df056cc..543e317 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
@@ -52,12 +52,10 @@
     @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     @TableField(value = "update_time", fill = FieldFill.INSERT)
     private Date updateTime;
-    @JsonIgnore
-    @TableField(value = "create_by", select = false, fill = FieldFill.INSERT)
+    @TableField(value = "create_by",fill = FieldFill.INSERT)
     @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
     private String createBy;
-    @JsonIgnore
-    @TableField(value = "update_by", select = false, fill = FieldFill.UPDATE)
+    @TableField(value = "update_by", fill = FieldFill.UPDATE)
     @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
     private String updateBy;
     @JsonIgnore
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/ProductMix.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/ProductMix.java
index d205a13..d49a1f1 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/ProductMix.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/ProductMix.java
@@ -2,10 +2,13 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import lombok.Data;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -13,31 +16,39 @@
 @Data
 @NoArgsConstructor
 @TableName(value = "nc_product_mix")
-public class ProductMix {
+public class ProductMix implements Serializable {
+    private static final long serialVersionUID = 1529244980533421687L;
     // id
-    private long id;
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
     // 鐖剁骇 id
+    @JsonSerialize(using = ToStringSerializer.class)
     @TableField(value = "parent_id")
-    private long parentId;
+    private Long parentId;
     // 鍚嶇О
     @TableField(value = "name")
     private String name;
     // code
-    @TableField(value = "code")
+    @TableField(value = "tree_code")
     private String code;
     // 绫诲瀷
-    @TableField(value = "type")
-    private String type;
+    @TableField(value = "tree_type")
+    private Integer type;
+
+    //灞曠ず鍚嶇О
+    private transient String label;
+
 
     private transient List<ProductMix> children = new ArrayList<>();
 
-    public ProductMix(long id, long parentId, String name, String code, String type) {
+    public ProductMix(Long id, Long parentId, String name, String code, Integer type) {
         this.id = id;
         this.parentId = parentId;
         this.name = name;
         this.code = code;
         this.type = type;
         this.children = new ArrayList<>();
+        this.label="["+code+"]"+name;
     }
 
     public void addChild(ProductMix child) {
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
index b688b0e..eb70788 100644
--- 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
@@ -75,12 +75,10 @@
     @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     @TableField(value = "update_time", fill = FieldFill.INSERT)
     private Date updateTime;
-    @JsonIgnore
-    @TableField(value = "create_by", select = false, fill = FieldFill.INSERT)
+    @TableField(value = "create_by",fill = FieldFill.INSERT)
     @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
     private String createBy;
-    @JsonIgnore
-    @TableField(value = "update_by", select = false, fill = FieldFill.UPDATE)
+    @TableField(value = "update_by", fill = FieldFill.UPDATE)
     @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
     private String updateBy;
     @JsonIgnore
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/DeviceManagementMapper.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/DeviceManagementMapper.java
new file mode 100644
index 0000000..7811039
--- /dev/null
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/DeviceManagementMapper.java
@@ -0,0 +1,7 @@
+package org.jeecg.modules.dnc.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.dnc.entity.DeviceManagement;
+
+public interface DeviceManagementMapper extends BaseMapper<DeviceManagement> {
+}
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/PermissionStreamNewMapper.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/PermissionStreamNewMapper.java
index f377469..4d52b15 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/PermissionStreamNewMapper.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/PermissionStreamNewMapper.java
@@ -1,6 +1,7 @@
 package org.jeecg.modules.dnc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.dnc.entity.PermissionStreamNew;
 import org.jeecg.modules.dnc.entity.ProductMix;
 
@@ -9,9 +10,15 @@
 public interface PermissionStreamNewMapper extends BaseMapper<PermissionStreamNew> {
 
     /**
-     * 鏍规嵁鐢ㄦ埛id鑾峰彇缁撴瀯鏍戞潈闄�
+     * 鏍规嵁鐢ㄦ埛id涓庨儴闂ㄥ垪琛ㄨ幏鍙栫粨鏋勬爲鏉冮檺
      * @param userId
      * @return
      */
-    List<ProductMix> loadProductMix(String userId);
+    List<ProductMix> loadProductMix(@Param("userId") String userId,@Param("productIdList")List<String> productIdList);
+
+    /**
+     * 绠$悊鍛樿幏鍙栨墍鏈夋潈闄�
+     * @return
+     */
+    List<ProductMix> loadProductMixAll(String userId);
 }
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/ProductMixMapper.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/ProductMixMapper.java
index d22845e..b0c0b32 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/ProductMixMapper.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/ProductMixMapper.java
@@ -3,5 +3,5 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.jeecg.modules.dnc.entity.ProductMix;
 
-public interface ProductMixMapper  extends BaseMapper<ProductMix> {
+public interface ProductMixMapper extends BaseMapper<ProductMix> {
 }
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/DeviceManagementMapper.xml b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/DeviceManagementMapper.xml
new file mode 100644
index 0000000..a411dcb
--- /dev/null
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/DeviceManagementMapper.xml
@@ -0,0 +1,4 @@
+<?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.DeviceManagementMapper">
+</mapper>
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/PermissionStreamNewMapper.xml b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/PermissionStreamNewMapper.xml
index 45a8357..de844de 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/PermissionStreamNewMapper.xml
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/PermissionStreamNewMapper.xml
@@ -2,15 +2,45 @@
 <!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.PermissionStreamNewMapper">
     <select id="loadProductMix" resultType="org.jeecg.modules.dnc.entity.ProductMix">
-        SELECT
-            mix.*
+        SELECT DISTINCT
+            mix.id,
+            mix.tree_code 'code',
+                mix.name,
+            mix.parent_id,
+            mix.tree_type AS 'type',
+                mix.extend
         FROM
-            nc_product_mix mix
-                LEFT JOIN nc_permission_stream_new nps ON mix.id = nps.business_id
-                AND nps.user_id = #{userId}
-                AND nps.delete_flag = '0'
+            nc_product_mix mix -- 杩炴帴鏉冮檺琛紝绛涢�夐儴闂ㄧ浉鍏宠褰�
+                LEFT JOIN nc_permission_stream_new nps_depart ON mix.id = nps_depart.business_id
+                AND nps_depart.delete_flag = '0'
+                        <if test="productIdList != null and productIdList.size() > 0">
+                            AND nps_depart.depart_id IN
+                            <foreach collection="productIdList" item="productId" index="index" open="(" close=")" separator=",">
+                                #{productId}
+                            </foreach>
+                        </if>
+                AND nps_depart.user_id IS NULL -- 杩炴帴鏉冮檺琛紝绛涢�夌敤鎴风浉鍏宠褰�
+                LEFT JOIN nc_permission_stream_new nps_user ON mix.id = nps_user.business_id
+                AND nps_user.user_id = #{userId}
+                AND nps_user.delete_flag = '0'
         WHERE
-            nps.business_id IS NOT NULL
-           OR nps.business_id IS NULL
+            nps_depart.business_id IS NOT NULL
+          AND nps_user.business_id IS NOT NULL;
+    </select>
+    <select id="loadProductMixAll" resultType="org.jeecg.modules.dnc.entity.ProductMix">
+        SELECT DISTINCT
+        mix.id,
+        mix.tree_code 'code',
+        mix.name,
+        mix.parent_id,
+        mix.tree_type AS 'type',
+        mix.extend
+        FROM
+        nc_product_mix mix -- 杩炴帴鏉冮檺琛紝绛涢�夐儴闂ㄧ浉鍏宠褰�
+        LEFT JOIN nc_permission_stream_new nps_user ON mix.id = nps_user.business_id
+        AND nps_user.user_id = #{userId}
+        AND nps_user.delete_flag = '0'
+        WHERE
+         nps_user.business_id IS NOT NULL;
     </select>
 </mapper>
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDeviceManagementService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDeviceManagementService.java
new file mode 100644
index 0000000..fa35400
--- /dev/null
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDeviceManagementService.java
@@ -0,0 +1,69 @@
+package org.jeecg.modules.dnc.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.dnc.entity.DeviceManagement;
+import org.jeecg.modules.mdc.entity.MdcEquipment;
+import org.jeecg.modules.system.entity.MdcProduction;
+
+import java.util.List;
+
+public interface IDeviceManagementService extends IService<DeviceManagement> {
+
+    /**
+     * 鏂板璁惧绫讳俊鎭�
+     * @param deviceManagement
+     * @return
+     */
+    Result<?> add(DeviceManagement deviceManagement);
+    /**
+     * 缂栬緫璁惧绫讳俊鎭�
+     * @param deviceManagement
+     * @return
+     */
+    Result<?> edit(DeviceManagement deviceManagement);
+    /**
+     * 鏍规嵁id鍒犻櫎璁惧绫讳俊鎭�
+     * @param id
+     * @return
+     */
+    Result<?> delete(String id);
+
+    /**
+     * 鎵归噺鍒犻櫎璁惧绫�
+     * @param ids
+     * @return
+     */
+    Result<?> deleteBatch(List<String> ids);
+
+    /**
+     * 璁惧绫讳俊鎭垎椤垫煡璇�
+     * @param deviceManagement
+     * @param pageNo
+     * @param pageSize
+     * @return
+     */
+    Result<?> query(DeviceManagement deviceManagement, Integer pageNo, Integer pageSize);
+
+    /**
+     * 鑾峰彇鐢ㄦ埛鏉冮檺鎷ユ湁鐨勮溅闂翠俊鎭�
+     * @param userId
+     * @return
+     */
+    List<MdcProduction> getProductionIdsByUserId(String userId);
+
+    /**
+     * 閫氳繃杞﹂棿id鏌ヨ璁惧鍒楄〃淇℃伅
+     * @param productionId
+     * @return
+     */
+    IPage<MdcEquipment> getEquipmentListByProductionId(String productionId, String equipmentId, String equipmentName, Integer pageNo, Integer pageSize);
+
+    /**
+     * 閫氳繃杞﹂棿id鏌ヨ璁惧绫荤鐞嗗垪琛ㄤ俊鎭�
+     * @param productionId
+     * @return
+     */
+    List<DeviceManagement> getDeviceManagementListByProductionId(String productionId);
+}
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IPermissionStreamNewService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IPermissionStreamNewService.java
index d43bc80..15b4436 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IPermissionStreamNewService.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IPermissionStreamNewService.java
@@ -13,7 +13,14 @@
      * @param userId
      * @return
      */
-    List<ProductMix> loadProductMix(String userId);
+    List<ProductMix> loadProductMix(String userId,List<String> productIdList);
+
+
+    /**
+     * 绠$悊鍛樿幏鍙栨墍鏈夋潈闄�
+     * @return
+     */
+    List<ProductMix> loadProductMixAll(String userId);
 
     /**
      * 閫氳繃涓氬姟id鍜屼笟鍔$被鍨嬭幏鍙栨潈闄�
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IProcessSpecVersionService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IProcessSpecVersionService.java
index 070804f..e2d0c4e 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IProcessSpecVersionService.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IProcessSpecVersionService.java
@@ -108,4 +108,11 @@
      * @return
      */
     Result<?> getProcessSpecVersionCount(String processSpecId);
+
+    /**
+     * 鏌ヨ宸ヨ壓瑙勭▼鐗堟湰涓嬬殑宸ュ簭涓庡伐姝�
+     * @param processSpecVersionId
+     * @return
+     */
+
 }
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IProductInfoService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IProductInfoService.java
index 79ffe3e..9c059e7 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IProductInfoService.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IProductInfoService.java
@@ -1,9 +1,9 @@
 package org.jeecg.modules.dnc.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.dnc.entity.ProductInfo;
 import org.jeecg.modules.dnc.response.CommonGenericTree;
-import org.jeecg.modules.dnc.ucenter.Department;
 import org.jeecg.modules.dnc.ucenter.UserDepartExt;
 import org.jeecg.modules.system.entity.MdcProduction;
 import org.jeecg.modules.system.entity.SysUser;
@@ -216,5 +216,12 @@
      * @return
      */
     boolean deleteProductTree(String id, Integer type);
+
+    /**
+     * 鑾峰彇鍏蜂綋灞傜骇瀹炰綋
+     * @param id,type
+     * @return
+     */
+    Result<?> getTreeById(String id, Integer type);
 }
 
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 4dffb5e..c8a6245 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
@@ -122,7 +122,7 @@
         }
         //娣诲姞缁撴瀯鏍�
         ProductMix productMix = new ProductMix(Long.parseLong(componentInfo.getComponentId()),Long.parseLong(productInfo.getProductId())
-                ,componentInfo.getComponentName(),componentInfo.getComponentCode(),"2");
+                ,componentInfo.getComponentName(),componentInfo.getComponentCode(),2);
         productMixService.save(productMix);
         //娣诲姞鏉冮檺
         PermissionStreamNew stream = new PermissionStreamNew();
@@ -152,6 +152,11 @@
         componentInfo.setRankLevel(null);
         componentInfo.setProductId(null);
         boolean b = super.updateById(componentInfo);
+        //鍚屾淇敼缁撴瀯鏍�
+        ProductMix productMix = productMixService.getById(Long.parseLong(id));
+        productMix.setName(componentInfo.getComponentName());
+        productMix.setCode(componentInfo.getComponentCode());
+        productMixService.updateById(productMix);
         if(!b)
             return false;
         ComponentPermission permission = componentPermissionService.getByComponentIdAndUserId(id, userId);
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/CutterServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/CutterServiceImpl.java
index d29c8c5..8422256 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/CutterServiceImpl.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/CutterServiceImpl.java
@@ -10,12 +10,12 @@
 import org.jeecg.modules.dnc.exception.ExceptionCast;
 import org.jeecg.modules.dnc.mapper.CutterMapper;
 import org.jeecg.modules.dnc.response.CommonCode;
-import org.jeecg.modules.dnc.response.ProcessInfoCode;
 import org.jeecg.modules.dnc.service.ICutterService;
 import org.jeecg.modules.dnc.utils.ValidateUtil;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
 public class CutterServiceImpl extends ServiceImpl<CutterMapper, Cutter> implements ICutterService {
@@ -29,11 +29,12 @@
     public Result<?> add(Cutter cutter){
         if(cutter == null)
             ExceptionCast.cast(CommonCode.INVALID_PARAM);
-        if(!ValidateUtil.validateString(cutter.getProcessStepId()))
+        if(!ValidateUtil.validateString(cutter.getAttributionId()))
             Result.error("鏃犳晥鐨勫垁鍏�");
-        boolean b =this.checkCutterNo(cutter);
-        if(!b)
+        List<Cutter> cutterList =this.checkCutterNo(cutter);
+        if (cutterList != null && !cutterList.isEmpty()) {
             return Result.error("宸插瓨鍦ㄧ浉鍚岀殑鍒�鍏风紪鍙�");
+        }
         boolean save = this.save(cutter);
         if(save){
             return Result.OK("娣诲姞鍒�鍏锋垚鍔�");
@@ -48,21 +49,34 @@
      */
     @Override
     public Result<?> edit(Cutter cutter){
-        if(cutter == null)
-            ExceptionCast.cast(CommonCode.INVALID_PARAM);
-        if(!ValidateUtil.validateString(cutter.getCutterName()))
-            ExceptionCast.cast(ProcessInfoCode.PROCESS_NAME_NONE);
-        Cutter en = super.getById(cutter.getId());
-        if(en == null)
-            ExceptionCast.cast(ProcessInfoCode.WORKSTEP_NOT_EXIST);
-        boolean b =this.checkCutterNo(cutter);
-        if(!b)
-            return Result.error("宸插瓨鍦ㄧ浉鍚岀殑鍒�鍏风紪鍙�");
-        boolean save = this.updateById(cutter);
-        if(save){
-            return Result.OK("鍒�鍏蜂俊鎭紪杈戞垚鍔�");
+        // 妫�鏌ヤ紶鍏ョ殑鍒�鍏峰璞℃槸鍚︿负绌�
+        if (cutter == null) {
+           return Result.OK("鍒�鍏峰璞′笉鑳戒负绌�");
         }
-        return Result.OK("鍒�鍏蜂俊鎭紪杈戝け璐�");
+        // 妫�鏌ュ垁鍏峰悕绉版槸鍚︽湁鏁�
+        if (!ValidateUtil.validateString(cutter.getCutterName())) {
+            return Result.OK("鍒�鍏峰悕绉版棤鏁�");
+        }
+        // 鏍规嵁鍒�鍏� ID 鑾峰彇鍒�鍏蜂俊鎭�
+        Cutter existingCutter = super.getById(cutter.getId());
+        if (existingCutter == null) {
+            return Result.OK("鍒�鍏蜂笉瀛樺湪");
+        }
+        // 杩囨护鎺夊綋鍓嶈缂栬緫鐨勫垁鍏凤紝妫�鏌ユ槸鍚︽湁鍏朵粬鍒�鍏峰瓨鍦ㄧ浉鍚岀紪鍙�
+        List<Cutter> otherCuttersWithSameNo = this.checkCutterNo(cutter).stream()
+                .filter(cut -> !cut.getId().equals(cutter.getId()))
+                .collect(Collectors.toList());
+        if (!otherCuttersWithSameNo.isEmpty()) {
+            // 濡傛灉瀛樺湪闄ゅ綋鍓嶅垁鍏峰鐨勫叾浠栧垁鍏风紪鍙烽噸澶�
+            return Result.error("宸插瓨鍦ㄧ浉鍚岀殑鍒�鍏风紪鍙�");
+        }
+        // 灏濊瘯鏇存柊鍒�鍏蜂俊鎭�
+        boolean updated = this.updateById(cutter);
+        if (updated) {
+            return Result.OK("鍒�鍏蜂俊鎭紪杈戞垚鍔�");
+        } else {
+            return Result.error("鍒�鍏蜂俊鎭紪杈戝け璐�");
+        }
     }
 
     /**
@@ -89,13 +103,12 @@
      * @param cutter
      * @return
      */
-    public boolean checkCutterNo(Cutter cutter){
+    public List<Cutter> checkCutterNo(Cutter cutter){
         QueryWrapper<Cutter> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq(StrUtil.isNotEmpty(cutter.getProcessStepId()),"process_step_id",cutter.getProcessStepId());
-        queryWrapper.eq("type",cutter.getType());
-        queryWrapper.eq(StrUtil.isNotEmpty(cutter.getCutterCode()),"craft_code",cutter.getCutterCode());
-        List<Cutter> list = baseMapper.selectList(queryWrapper);
-        return list.isEmpty();
+        queryWrapper.eq(StrUtil.isNotEmpty(cutter.getAttributionId()),"attribution_id",cutter.getAttributionId());
+        queryWrapper.eq("attribution_type",cutter.getAttributionType());
+        queryWrapper.eq(StrUtil.isNotEmpty(cutter.getCutterCode()),"cutter_code",cutter.getCutterCode());
+        return baseMapper.selectList(queryWrapper);
     }
 
     /**
@@ -106,12 +119,12 @@
     @Override
     public Result<?> query(Cutter cutter, Integer pageNo, Integer pageSize){
         QueryWrapper<Cutter> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq(StrUtil.isNotEmpty(cutter.getProcessStepId()),"process_step_id",cutter.getProcessStepId());
-        if (cutter.getType() != null){
-            queryWrapper.eq("type",cutter.getType());
+        queryWrapper.eq(StrUtil.isNotEmpty(cutter.getAttributionId()),"attribution_id",cutter.getAttributionId());
+        if (cutter.getAttributionType() != null){
+            queryWrapper.eq("attribution_type",cutter.getAttributionType());
         }
-        queryWrapper.like(StrUtil.isNotEmpty(cutter.getCutterName()),"craft_code",cutter.getCutterCode());
-        queryWrapper.like(StrUtil.isNotEmpty(cutter.getCutterName()),"craft_name",cutter.getCutterName());
+        queryWrapper.like(StrUtil.isNotEmpty(cutter.getCutterCode()),"cutter_code",cutter.getCutterCode());
+        queryWrapper.like(StrUtil.isNotEmpty(cutter.getCutterName()),"cutter_name",cutter.getCutterName());
         queryWrapper.orderByDesc("create_time");
         Page<Cutter> page = new Page<>(pageNo,pageSize);
         IPage<Cutter> cutterIPage = baseMapper.selectPage(page, queryWrapper);
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceManagementServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceManagementServiceImpl.java
new file mode 100644
index 0000000..4a56a91
--- /dev/null
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceManagementServiceImpl.java
@@ -0,0 +1,221 @@
+package org.jeecg.modules.dnc.service.impl;
+
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.dnc.entity.DeviceManagement;
+import org.jeecg.modules.dnc.entity.DeviceType;
+import org.jeecg.modules.dnc.exception.ExceptionCast;
+import org.jeecg.modules.dnc.mapper.DeviceManagementMapper;
+import org.jeecg.modules.dnc.response.CommonCode;
+import org.jeecg.modules.dnc.service.IDeviceManagementService;
+import org.jeecg.modules.dnc.service.IDeviceTypeService;
+import org.jeecg.modules.dnc.utils.ValidateUtil;
+import org.jeecg.modules.mdc.entity.MdcEquipment;
+import org.jeecg.modules.mdc.service.IMdcEquipmentService;
+import org.jeecg.modules.mdc.service.IMdcProductionEquipmentService;
+import org.jeecg.modules.system.entity.MdcProduction;
+import org.jeecg.modules.system.entity.MdcProductionEquipment;
+import org.jeecg.modules.system.entity.MdcUserProduction;
+import org.jeecg.modules.system.service.IMdcProductionService;
+import org.jeecg.modules.system.service.IMdcUserProductionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+public class DeviceManagementServiceImpl  extends ServiceImpl<DeviceManagementMapper, DeviceManagement> implements IDeviceManagementService {
+
+    @Autowired
+    private IMdcProductionService productionService;
+    @Autowired
+    private IMdcUserProductionService userProductionService;
+    @Autowired
+    private IMdcProductionEquipmentService productionEquipmentService;
+    @Autowired
+    private IMdcEquipmentService equipmentService;
+    @Autowired
+    private IDeviceTypeService deviceTypeService;
+    /**
+     * 鏂板璁惧绫讳俊鎭�
+     * @param deviceManagement
+     * @return
+     */
+    @Override
+    public Result<?> add(DeviceManagement deviceManagement){
+        if(deviceManagement == null)
+            ExceptionCast.cast(CommonCode.INVALID_PARAM);
+        if(!ValidateUtil.validateString(deviceManagement.getEquipmentIds()))
+            Result.error("鏃犳晥鐨勮澶囩被");
+        List<DeviceManagement> deviceManagementList =this.getDeviceManagementList(deviceManagement.getProductionId(),deviceManagement.getDeviceManagementName(),deviceManagement.getDeviceManagementCode());
+        if (deviceManagementList != null && !deviceManagementList.isEmpty()) {
+            return Result.error("宸插瓨鍦ㄧ浉鍚岀殑璁惧绫�");
+        }
+        boolean save = this.save(deviceManagement);
+        if(save){
+            return Result.OK("娣诲姞璁惧绫绘垚鍔�");
+        }
+        return Result.error("鏂板璁惧绫诲け璐�");
+    }
+    /**
+     * 缂栬緫璁惧绫讳俊鎭�
+     * @param deviceManagement
+     * @return
+     */
+    @Override
+    public Result<?> edit(DeviceManagement deviceManagement){
+        // 妫�鏌ヤ紶鍏ョ殑璁惧绫诲璞℃槸鍚︿负绌�
+        if (deviceManagement == null) {
+            return Result.OK("璁惧绫诲璞′笉鑳戒负绌�");
+        }
+        // 妫�鏌ヨ澶囩被鍚嶇О鏄惁鏈夋晥
+        if (!ValidateUtil.validateString(deviceManagement.getDeviceManagementName())) {
+            return Result.OK("璁惧绫诲悕绉版棤鏁�");
+        }
+        // 鏍规嵁璁惧绫� ID 鑾峰彇璁惧绫讳俊鎭�
+        DeviceManagement existingCutter = super.getById(deviceManagement.getId());
+        if (existingCutter == null) {
+            return Result.OK("璁惧绫讳笉瀛樺湪");
+        }
+        // 杩囨护鎺夊綋鍓嶈缂栬緫鐨勮澶囩被锛屾鏌ユ槸鍚︽湁鍏朵粬璁惧绫诲瓨鍦ㄧ浉鍚岀紪鍙�
+        List<DeviceManagement> otherCuttersWithSameNo =this.getDeviceManagementList(deviceManagement.getProductionId(),deviceManagement.getDeviceManagementName(),deviceManagement.getDeviceManagementCode()).stream()
+                .filter(cut -> !cut.getId().equals(deviceManagement.getId()))
+                .collect(Collectors.toList());
+        if (!otherCuttersWithSameNo.isEmpty()) {
+            // 濡傛灉瀛樺湪闄ゅ綋鍓嶈澶囩被澶栫殑鍏朵粬璁惧绫荤紪鍙烽噸澶�
+            return Result.error("宸插瓨鍦ㄧ浉鍚岀殑璁惧绫荤紪鍙�");
+        }
+        // 灏濊瘯鏇存柊璁惧绫讳俊鎭�
+        boolean updated = this.updateById(deviceManagement);
+        if (updated) {
+            return Result.OK("璁惧绫讳俊鎭紪杈戞垚鍔�");
+        } else {
+            return Result.error("璁惧绫讳俊鎭紪杈戝け璐�");
+        }
+    }
+    /**
+     * 鏍规嵁id鍒犻櫎璁惧绫讳俊鎭�
+     * @param id
+     * @return
+     */
+    @Override
+    public Result<?> delete(String id){
+        if(!ValidateUtil.validateString(id))
+            ExceptionCast.cast(CommonCode.INVALID_PARAM);
+        DeviceManagement en = super.getById(id);
+        if(en == null)
+            return Result.error("鏃犳晥鐨勮澶囩被");
+        List<DeviceType> deviceTypes=deviceTypeService.list(new QueryWrapper<DeviceType>().eq("device_management_id",id));
+        if(deviceTypes != null && !deviceTypes.isEmpty()){
+            return Result.error("璇ヨ澶囩被宸茶浣跨敤锛屼笉鑳藉垹闄�");
+        }
+        boolean b=super.removeById(id);
+        if(!b) {
+            return Result.error("鍒犻櫎璁惧绫诲け璐�");
+        }
+        return Result.OK("鍒犻櫎璁惧绫绘垚鍔�");
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎璁惧绫�
+     * @param ids
+     * @return
+     */
+    @Override
+    public Result<?> deleteBatch(List<String> ids){
+        if(ids == null || ids.isEmpty())
+            ExceptionCast.cast(CommonCode.INVALID_PARAM);
+        return super.removeByIds(ids) ? Result.OK("鎵归噺鍒犻櫎璁惧绫绘垚鍔�") : Result.error("鎵归噺鍒犻櫎璁惧绫诲け璐�");
+    }
+
+    /**
+     * 璁惧绫讳俊鎭垎椤垫煡璇�
+     * @param deviceManagement
+     * @param pageNo
+     * @param pageSize
+     * @return
+     */
+    @Override
+    public Result<?> query(DeviceManagement deviceManagement, Integer pageNo, Integer pageSize){
+        QueryWrapper<DeviceManagement> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(StrUtil.isNotEmpty(deviceManagement.getProductionId()),"production_id",deviceManagement.getProductionId());
+        queryWrapper.like(StrUtil.isNotEmpty(deviceManagement.getDeviceManagementName()),"device_management_name",deviceManagement.getDeviceManagementName());
+        queryWrapper.like(StrUtil.isNotEmpty(deviceManagement.getDeviceManagementCode()),"device_management_code",deviceManagement.getDeviceManagementCode());
+        queryWrapper.orderByDesc("create_time");
+        Page<DeviceManagement> page = new Page<>(pageNo, pageSize);
+        IPage<DeviceManagement> pageList = super.page(page, queryWrapper);
+        return Result.OK(pageList);
+    }
+
+    /**
+     * 閫氳繃杞﹂棿id鍜岃澶囩被鍚嶇О鏌ヨ璁惧绫讳俊鎭�
+     * @param productionId
+     * @parame deviceManagementName
+     * @return
+     */
+    public List<DeviceManagement> getDeviceManagementList(String productionId,String deviceManagementName,String deviceManagementCode){
+        return super.list(new QueryWrapper<DeviceManagement>()
+                .eq(StrUtil.isNotEmpty(productionId),"production_id", productionId)
+                .eq(StrUtil.isNotEmpty(deviceManagementName),"device_management_name", deviceManagementName)
+                .eq(StrUtil.isNotEmpty(deviceManagementCode),"device_management_code", deviceManagementCode));
+    }
+
+    /**
+     * 鑾峰彇鐢ㄦ埛鏉冮檺鎷ユ湁鐨勮溅闂翠俊鎭�
+     * @param userId
+     * @return
+     */
+    @Override
+    public List<MdcProduction> getProductionIdsByUserId(String userId){
+        //鏉冮檺淇℃伅锛屾敼涓虹粨鏋勬爲鏉冮檺
+        List<MdcUserProduction> productionList = userProductionService.list(new QueryWrapper<MdcUserProduction>().eq("user_id", userId));
+        List<String> productionIds = productionList.stream().map(MdcUserProduction::getProId).collect(Collectors.toList());
+        return productionService.list(new QueryWrapper<MdcProduction>().in("id", productionIds)
+                .eq("org_type","2"));
+    }
+
+    /**
+     * 閫氳繃杞﹂棿id鏌ヨ璁惧鍒楄〃淇℃伅
+     * @param productionId
+     * @return
+     */
+    @Override
+    public IPage<MdcEquipment> getEquipmentListByProductionId(String productionId,String equipmentId,String equipmentName,Integer pageNo,Integer pageSize){
+        //鏌ヨ瀛愯妭鐐�
+        List<String> productionIds = productionService.recursionChildren(productionId);
+        if (productionIds == null) {
+            return null;
+        }
+        List<String> equipmentIds = productionEquipmentService.list(new QueryWrapper<MdcProductionEquipment>()
+               .in("production_id", productionIds))
+               .stream().map(MdcProductionEquipment::getEquipmentId).collect(Collectors.toList());
+        if (!equipmentIds.isEmpty()) {
+            QueryWrapper<MdcEquipment> queryWrapper = new QueryWrapper<MdcEquipment>()
+                    .in("id", equipmentIds)
+                    .like(StrUtil.isNotEmpty(equipmentName),"equipment_name", equipmentName)
+                    .eq(StrUtil.isNotEmpty(equipmentId),"equipment_id", equipmentId);
+            queryWrapper.orderByDesc("create_time");
+            Page<MdcEquipment> page = new Page<>(pageNo, pageSize);
+            return equipmentService.page(page, queryWrapper);
+        }
+        return null;
+    }
+
+    /**
+     * 閫氳繃杞﹂棿id鏌ヨ璁惧绫荤鐞嗗垪琛ㄤ俊鎭�
+     * @param productionId
+     * @return
+     */
+    @Override
+    public List<DeviceManagement> getDeviceManagementListByProductionId(String productionId){
+        QueryWrapper<DeviceManagement> queryWrapper = new QueryWrapper<DeviceManagement>()
+                .eq(StrUtil.isNotEmpty(productionId),"production_id", productionId);
+        queryWrapper.orderByDesc("create_time");
+        return super.list(queryWrapper);
+    }
+}
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceTypeServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceTypeServiceImpl.java
index e00d918..fa5d47b 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceTypeServiceImpl.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceTypeServiceImpl.java
@@ -10,17 +10,12 @@
 import org.jeecg.modules.dnc.response.ProcessInfoCode;
 import org.jeecg.modules.dnc.service.IDeviceTypeService;
 import org.jeecg.modules.dnc.utils.ValidateUtil;
-import org.jeecg.modules.mdc.entity.MdcEquipment;
-import org.jeecg.modules.mdc.service.IMdcEquipmentService;
-import org.jeecg.modules.mdc.service.IMdcProductionEquipmentService;
-import org.jeecg.modules.system.entity.MdcProductionEquipment;
 import org.jeecg.modules.system.entity.SysParams;
 import org.jeecg.modules.system.service.ISysParamsService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
-import java.util.stream.Collectors;
 
 @Service
 public class DeviceTypeServiceImpl extends ServiceImpl<DeviceTypeMapper, DeviceType> implements IDeviceTypeService {
@@ -28,28 +23,32 @@
     @Autowired
     private ISysParamsService sysParamsService;
 
-    @Autowired
-    private IMdcEquipmentService mdcEquipmentService;
-
-    @Autowired
-    private IMdcProductionEquipmentService mdcProductionEquipmentService;
-
     /**
      * 鏂板璁惧绫�
      * @param deviceType
      * @return
      */
+    @Override
     public Result<?> add(DeviceType deviceType){
-        SysParams sysParams = sysParamsService.getSysPramBySettingKey("dnc_nc_device_type");
-        if ("-1".equals(sysParams.getSettingValue())){
+        SysParams sysParams;
+        if (deviceType.getAttributionType()==5){
+            //宸ュ簭璁惧绫�
+            sysParams = sysParamsService.getSysPramBySettingKey("dnc_device_type_process");
+        }else {
+            //宸ユ璁惧绫�
+            sysParams = sysParamsService.getSysPramBySettingKey("dnc_device_type_step");
+        }
+        if ("0".equals(sysParams.getSettingValue())){
             //鏈惎鍔ㄨ澶囩被
             return Result.error("璁惧绫绘湭鍚姩,璇疯仈绯荤鐞嗗憳");
         }else {
             //宸插惎鍔ㄨ澶囩被
-            if(deviceType == null)
-                ExceptionCast.cast(CommonCode.INVALID_PARAM);
-            if(!ValidateUtil.validateString(deviceType.getProcessStepId()))
+            if(!ValidateUtil.validateString(deviceType.getAttributionId()))
                 Result.error("鏃犳晥鐨勮澶囩被");
+            List<DeviceType> deviceTypes=this.getByProductionIdAndDeviceManagementId(deviceType);
+            if(!deviceTypes.isEmpty()){
+                return Result.error("璁惧绫诲悕绉板凡瀛樺湪");
+            }
             boolean save = this.save(deviceType);
             if(save){
                 return Result.OK("娣诲姞璁惧绫绘垚鍔�");
@@ -62,14 +61,27 @@
      * @param deviceType
      * @return
      */
+    @Override
     public Result<?> edit(DeviceType deviceType){
         if(deviceType == null)
             ExceptionCast.cast(CommonCode.INVALID_PARAM);
-        if(deviceType.getDeviceType()==null)
+        if(deviceType.getDeviceManagementId()==null)
             ExceptionCast.cast(ProcessInfoCode.PROCESS_NAME_NONE);
         DeviceType en = super.getById(deviceType.getId());
         if(en == null)
             ExceptionCast.cast(ProcessInfoCode.WORKSTEP_NOT_EXIST);
+        //鍒ゆ柇璁惧绫绘槸鍚︿负鏈韩
+        if(en.getDeviceManagementId().equals(deviceType.getDeviceManagementId())
+                &&en.getProductionId().equals(deviceType.getProductionId())
+                &&en.getAttributionId().equals(deviceType.getAttributionId())
+                &&en.getAttributionType().equals(deviceType.getAttributionType())){
+            return Result.OK("璁惧绫荤紪杈戞垚鍔�");
+        }
+        //鍒ゆ柇璁惧绫绘槸鍚﹁浣跨敤
+        List<DeviceType> deviceTypeList=this.getByProductionIdAndDeviceManagementId(deviceType);
+        if(!deviceTypeList.isEmpty()){
+            return Result.error("璁惧绫诲凡瀛樺湪");
+        }
         boolean save = this.updateById(deviceType);
         if(save){
             return Result.OK("璁惧绫荤紪杈戞垚鍔�");
@@ -81,6 +93,7 @@
      * @param id
      * @return
      */
+    @Override
     public Result<?> delete(String id){
         if(!ValidateUtil.validateString(id))
             ExceptionCast.cast(CommonCode.INVALID_PARAM);
@@ -99,15 +112,24 @@
      * @param deviceTypes
      * @return
      */
+    @Override
     public Result<?> getByDeviceType(List<DeviceType> deviceTypes){
-        if (deviceTypes == null || deviceTypes.isEmpty()) {
-            return Result.error("璁惧绫讳俊鎭负绌�");
-        }
-        List<Integer> deviceTypeIds = deviceTypes.stream().map(DeviceType::getDeviceType).collect(Collectors.toList());
-        QueryWrapper<MdcEquipment> queryWrapper = new QueryWrapper<>();
-        queryWrapper.in("device_type", deviceTypeIds);
-        List<MdcEquipment> mdcEquipmentList = mdcEquipmentService.list(queryWrapper);
-        return Result.OK(mdcEquipmentList);
+        return Result.OK(null);
+    }
+
+    /**
+     * 閫氳繃杞﹂棿id涓庤澶囩被id鏌ヨ璁惧淇℃伅
+     * @param deviceType
+     * @return
+     */
+    public List<DeviceType> getByProductionIdAndDeviceManagementId(DeviceType deviceType) {
+        List<DeviceType> list = this.list(new QueryWrapper<DeviceType>().eq("attribution_id", deviceType.getAttributionId())
+               .eq("attribution_type", deviceType.getAttributionType())
+           .eq("device_management_id", deviceType.getDeviceManagementId()));
+        list.forEach(item->{
+            item.setDeviceManagementCode(item.getDeviceManagementId());
+        });
+        return list;
     }
 
     /**
@@ -116,18 +138,11 @@
      * @param type
      * @return
      */
+    @Override
     public Result<?> getByBusinessId(String businessId,String type){
-        List<DeviceType> list = this.list(new QueryWrapper<DeviceType>().eq("production_id", businessId).eq("type", type));
-        if (list == null || list.isEmpty()) {
-            return Result.error("璁惧绫讳俊鎭负绌�");
-        }
-        List<Integer> deviceTypeIds = list.stream().map(DeviceType::getDeviceType).collect(Collectors.toList());
-        List<String> equipmentIds=mdcProductionEquipmentService.list(new QueryWrapper<MdcProductionEquipment>().in("production_id",deviceTypeIds))
-                .stream().map(MdcProductionEquipment::getEquipmentId).collect(Collectors.toList());
+        List<DeviceType> list = this.list(new QueryWrapper<DeviceType>().eq("attribution_id", businessId).eq("attribution_type", type));
         list.forEach(item->{
-            List<MdcEquipment> mdcEquipmentList = mdcEquipmentService.list(new QueryWrapper<MdcEquipment>()
-                    .eq("device_type", item.getDeviceType()).in("id", equipmentIds));
-            item.setEquipmentList(mdcEquipmentList);
+            item.setDeviceManagementCode(item.getDeviceManagementId());
         });
         return Result.OK(list);
     }
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocRelativeServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocRelativeServiceImpl.java
index b53fc4a..0661d61 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocRelativeServiceImpl.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocRelativeServiceImpl.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang3.StringUtils;
 import org.jeecg.modules.dnc.entity.DocInfo;
 import org.jeecg.modules.dnc.entity.DocRelative;
 import org.jeecg.modules.dnc.exception.ExceptionCast;
@@ -10,18 +11,16 @@
 import org.jeecg.modules.dnc.mapper.DocInfoMapper;
 import org.jeecg.modules.dnc.mapper.DocRelativeMapper;
 import org.jeecg.modules.dnc.response.CommonCode;
-
-import org.jeecg.modules.dnc.service.*;
+import org.jeecg.modules.dnc.service.IDeviceGroupService;
+import org.jeecg.modules.dnc.service.IDeviceInfoService;
+import org.jeecg.modules.dnc.service.IDocRelativeService;
 import org.jeecg.modules.dnc.utils.ValidateUtil;
 import org.jeecg.modules.dnc.utils.date.DateUtil;
-
 import org.jeecg.modules.dnc.utils.file.FileUtilS;
-import org.apache.commons.lang3.StringUtils;
 import org.jeecg.modules.mdc.entity.MdcEquipment;
 import org.jeecg.modules.mdc.service.IMdcEquipmentService;
 import org.jeecg.modules.system.service.IMdcProductionService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -36,8 +35,8 @@
     private IDeviceInfoService deviceInfoService;
     @Autowired
     private IDeviceGroupService deviceGroupService;
-    @Value("${securedoc.localFilePath}")
-    private String localFilePath;
+//    @Value("${securedoc.localFilePath}")
+//    private String localFilePath;
     @Autowired
     private IMdcEquipmentService iMdcEquipmentService;
     @Autowired
@@ -102,22 +101,22 @@
                 ncTxt.setOrigFileName(info.getDocName());
                 ncTxt.setOrigFileSuffix(info.getDocSuffix());
                 ncTxt.setFileAddOrDelete(2);
-                String loFilePath = localFilePath + "\\" + ncTxt.getFileTxtName() + ".nc";
-                try {
-                   /* ObjectMapper mapper = new ObjectMapper();
-                    String json = mapper.writeValueAsString(ncTxt);*/
-                    String allList = new String();
-                    allList=(ncTxt.getFileTxtName()+"\n");
-                    allList+=(ncTxt.getFileNcName()+"\n");
-                    allList+=(ncTxt.getOrigFileName()+"\n");
-                    allList+=(ncTxt.getOrigFileSuffix()+"\n");
-                    allList+=(ncTxt.getFilePath()+"\n");
-                    allList+=(ncTxt.getEquipmentId()+"\n");
-                    allList+=(ncTxt.getFileAddOrDelete().toString());
-                    FileUtilS.fileWriterSql(loFilePath,allList);
-                }catch (Exception e) {
-                    return true;
-                }
+//                String loFilePath = localFilePath + "\\" + ncTxt.getFileTxtName() + ".nc";
+//                try {
+//                   /* ObjectMapper mapper = new ObjectMapper();
+//                    String json = mapper.writeValueAsString(ncTxt);*/
+//                    String allList = new String();
+//                    allList=(ncTxt.getFileTxtName()+"\n");
+//                    allList+=(ncTxt.getFileNcName()+"\n");
+//                    allList+=(ncTxt.getOrigFileName()+"\n");
+//                    allList+=(ncTxt.getOrigFileSuffix()+"\n");
+//                    allList+=(ncTxt.getFilePath()+"\n");
+//                    allList+=(ncTxt.getEquipmentId()+"\n");
+//                    allList+=(ncTxt.getFileAddOrDelete().toString());
+//                    FileUtilS.fileWriterSql(loFilePath,allList);
+//                }catch (Exception e) {
+//                    return true;
+//                }
             }
         }
         return b;
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 379abd8..ef03230 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
@@ -111,7 +111,7 @@
         }
         //娣诲姞缁撴瀯鏍�
         ProductMix productMix = new ProductMix(Long.parseLong(partsInfo.getPartsId()),Long.parseLong(partsInfo.getComponentId())
-                ,partsInfo.getPartsName(),partsInfo.getPartsCode(),"3");
+                ,partsInfo.getPartsName(),partsInfo.getPartsCode(),3);
         productMixService.save(productMix);
         //娣诲姞鐢ㄦ埛鏉冮檺
         PermissionStreamNew stream = new PermissionStreamNew();
@@ -138,6 +138,11 @@
         partsInfo.setProductId(null);
         partsInfo.setComponentId(null);
         boolean b = super.updateById(partsInfo);
+        //鍚屾淇敼缁撴瀯鏍�
+        ProductMix productMix = productMixService.getById(Long.parseLong(id));
+        productMix.setName(partsInfo.getPartsName());
+        productMix.setCode(partsInfo.getPartsCode());
+        productMixService.updateById(productMix);
         if(!b)
             return false;
         PartsPermission permission = partsPermissionService.getByPartsIdAndUserId(id, userId);
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PermissionStreamNewServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PermissionStreamNewServiceImpl.java
index 87c16f7..a41ec75 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PermissionStreamNewServiceImpl.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PermissionStreamNewServiceImpl.java
@@ -6,7 +6,6 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.collections4.ListUtils;
-import org.jeecg.modules.dnc.entity.PermissionStream;
 import org.jeecg.modules.dnc.entity.PermissionStreamNew;
 import org.jeecg.modules.dnc.entity.ProductMix;
 import org.jeecg.modules.dnc.mapper.PermissionStreamNewMapper;
@@ -25,8 +24,17 @@
      * @return
      */
     @Override
-    public List<ProductMix> loadProductMix(String userId){
-        return baseMapper.loadProductMix(userId);
+    public List<ProductMix> loadProductMix(String userId,List<String> productIdList){
+        return baseMapper.loadProductMix(userId,productIdList);
+    }
+
+    /**
+     * 绠$悊鍛樿幏鍙栨墍鏈夋潈闄�
+     * @return
+     */
+    @Override
+    public List<ProductMix> loadProductMixAll(String userId){
+        return baseMapper.loadProductMixAll(userId);
     }
 
     /**
@@ -139,7 +147,15 @@
         permissionStreamNewList.forEach(item -> {
             ids.add(item.getId());
         });
-        return super.removeByIds(ids);
+        if (ids.size()>1000) {
+            List<List<String>> partition = ListUtils.partition(ids, 1000);
+            for (List<String> partitionList : partition) {
+                super.removeByIds(partitionList);
+            }
+        }else {
+            super.removeByIds(ids);
+        }
+        return true;
     }
 
     /**
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessSpecVersionServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessSpecVersionServiceImpl.java
index 370f098..d33676b 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessSpecVersionServiceImpl.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessSpecVersionServiceImpl.java
@@ -45,6 +45,10 @@
     private IProcessSpecVersionDepartmentService processSpecVersionDepartmentService;
     @Autowired
     private IProductMixService productMixService;
+    @Autowired
+    private IWorkStepService workStepService;
+    @Autowired
+    private IProductPermissionService productPermissionService;
     /**
      * 鏍规嵁鐢ㄦ埛id鑾峰彇鎺堟潈鐨勫伐鑹鸿绋嬬増鏈〃淇℃伅
      * @param userId
@@ -144,9 +148,14 @@
                     ExceptionCast.cast(CommonCode.FAIL);
             }
         }
+        //娣诲姞鐢ㄦ埛鏉冮檺
+        b = productPermissionService.add(ProcessSpecVersion.getId(), userId,"4");
+        if (!b) {
+            ExceptionCast.cast(ProductInfoCode.PRODUCT_SAVE_ERROR);
+        }
         //娣诲姞缁撴瀯鏍�
         ProductMix productMix = new ProductMix(Long.parseLong(ProcessSpecVersion.getId()),Long.parseLong(ProcessSpecVersion.getPartsId())
-                ,ProcessSpecVersion.getProcessSpecVersionName(),ProcessSpecVersion.getProcessSpecVersionCode(),"4");
+                ,ProcessSpecVersion.getProcessSpecVersionName(),ProcessSpecVersion.getProcessSpecVersionCode(),4);
         productMixService.save(productMix);
         //娣诲姞鐢ㄦ埛鏉冮檺
         PermissionStreamNew stream = new PermissionStreamNew();
@@ -178,6 +187,11 @@
         processSpecVersion.setComponentId(null);
         processSpecVersion.setPartsId(null);
         boolean b = super.updateById(processSpecVersion);
+        //鍚屾淇敼缁撴瀯鏍�
+        ProductMix productMix = productMixService.getById(Long.parseLong(id));
+        productMix.setName(processSpecVersion.getProcessSpecVersionName());
+        productMix.setCode(processSpecVersion.getProcessSpecVersionCode());
+        productMixService.updateById(productMix);
         if(!b)
             return false;
         ProcessSpecVersionPermission permission = processSpecVersionPermissionService.getByPsvIdAndUserId(id, userId);
@@ -439,6 +453,8 @@
      */
     @Override
     public Result<?> getProcessSpecVersionCount(String processSpecId){
+        List<ProcessStream> list = processStreamService.findBypsvId(processSpecId);
+        List<WorkStep> workStepList=workStepService.list(new LambdaQueryWrapper<WorkStep>().eq(WorkStep::getPsvId,processSpecId));
         return null;
     }
 }
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 b3d3397..819c3bf 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
@@ -50,6 +50,8 @@
     private IProcessStreamPermissionService processStreamPermissionService;
     @Autowired
     private IProductMixService productMixService;
+    @Autowired
+    private IProductPermissionService productPermissionService;
 
     @Override
     @Transactional(rollbackFor = {Exception.class})
@@ -124,14 +126,19 @@
                     ExceptionCast.cast(CommonCode.FAIL);
             }
         }
+        //娣诲姞鐢ㄦ埛鏉冮檺
+        b = productPermissionService.add(stream.getProcessId(), userId,"5");
+        if (!b) {
+            ExceptionCast.cast(ProductInfoCode.PRODUCT_SAVE_ERROR);
+        }
         //娣诲姞缁撴瀯鏍�
         ProductMix productMix;
-        if (stream.getPartsId() != null) {
-            productMix = new ProductMix(Long.parseLong(stream.getProcessId()),Long.parseLong(stream.getPartsId())
-                    ,stream.getProcessName(),stream.getProcessCode(),"5");
+        if (stream.getPsvId() != null) {
+            productMix = new ProductMix(Long.parseLong(stream.getProcessId()),Long.parseLong(stream.getPsvId())
+                    ,stream.getProcessName(),stream.getProcessCode(),5);
         }else {
             productMix = new ProductMix(Long.parseLong(stream.getProcessId()),Long.parseLong(stream.getComponentId())
-                    ,stream.getProcessName(),stream.getProcessCode(),"5");
+                    ,stream.getProcessName(),stream.getProcessCode(),5);
         }
         productMixService.save(productMix);
         //娣诲姞鏉冮檺楠岃瘉
@@ -159,6 +166,11 @@
         stream.setProcessName(stream.getProcessName().toUpperCase());
         stream.setProcessCode(null);
         boolean b = super.updateById(stream);
+        //鍚屾淇敼缁撴瀯鏍�
+        ProductMix productMix = productMixService.getById(Long.parseLong(id));
+        productMix.setName(stream.getProcessName());
+        productMix.setCode(stream.getProcessCode());
+        productMixService.updateById(productMix);
         if(!b)
             ExceptionCast.cast(CommonCode.FAIL);
         ProcessInfo processInfo = new ProcessInfo();
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 9a775e3..4204924 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
@@ -1,11 +1,13 @@
 package org.jeecg.modules.dnc.service.impl;
 
+import cn.hutool.core.util.StrUtil;
 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 lombok.extern.slf4j.Slf4j;
 import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.dnc.dto.ComponentExt;
 import org.jeecg.modules.dnc.entity.*;
@@ -106,7 +108,7 @@
             ExceptionCast.cast(ProductInfoCode.PRODUCT_SAVE_ERROR);
         }
         //娣诲姞缁撴瀯鏍�
-        ProductMix productMix = new ProductMix(Long.parseLong(productInfo.getProductId()),0,productInfo.getProductName(),productInfo.getProductNo(),"1");
+        ProductMix productMix = new ProductMix(Long.parseLong(productInfo.getProductId()),0L,productInfo.getProductName(),productInfo.getProductNo(),1);
         productMixService.save(productMix);
         //娣诲姞鐢ㄦ埛鏉冮檺
         PermissionStreamNew stream = new PermissionStreamNew();
@@ -131,6 +133,11 @@
         productInfo.setProductId(id);
         productInfo.setProductStatus(null);
         boolean b = super.updateById(productInfo);
+        //鍚屾淇敼缁撴瀯鏍�
+        ProductMix productMix = productMixService.getById(Long.parseLong(id));
+        productMix.setName(productInfo.getProductName());
+        productMix.setCode(productInfo.getProductNo());
+        productMixService.updateById(productMix);
         if (!b)
             return false;
         ProductPermission permission = productPermissionService.getByProductIdAndUserId(id, userId);
@@ -946,6 +953,51 @@
         return false;
     }
 
+    @Override
+    public Result<?> getTreeById(String id, Integer type){
+        if (StrUtil.isNotEmpty(id)||type!=null){
+            switch (type){
+                case 1:
+                    //浜у搧
+                    QueryWrapper<ProductInfo> productInfoQueryWrapper = new QueryWrapper<>();
+                    productInfoQueryWrapper.eq("product_id",id);
+                    List<ProductInfo> productInfos = this.list(productInfoQueryWrapper);
+                    return Result.OK(productInfos);
+                case 2:
+                    //缁勪欢
+                    QueryWrapper<ComponentInfo> componentInfoQueryWrapper = new QueryWrapper<>();
+                    componentInfoQueryWrapper.eq("component_id",id);
+                    List<ComponentInfo> componentInfos = componentInfoService.list(componentInfoQueryWrapper);
+                    return Result.OK(componentInfos);
+                case 3:
+                    //闆朵欢
+                    QueryWrapper<PartsInfo> partsInfoQueryWrapper = new QueryWrapper<>();
+                    partsInfoQueryWrapper.eq("parts_id",id);
+                    List<PartsInfo> partsInfos = partsInfoService.list(partsInfoQueryWrapper);
+                    return Result.OK(partsInfos);
+                case 4:
+                    //宸ヨ壓瑙勫垝鐗堟湰
+                    QueryWrapper<ProcessSpecVersion> processSpecVersionQueryWrapper = new QueryWrapper<>();
+                    processSpecVersionQueryWrapper.eq("id",id);
+                    List<ProcessSpecVersion> processSpecVersions = processSpecVersionService.list(processSpecVersionQueryWrapper);
+                    return Result.OK(processSpecVersions);
+                case 5:
+                    //宸ュ簭
+                    QueryWrapper<ProcessStream> processStreamQueryWrapper = new QueryWrapper<>();
+                    processStreamQueryWrapper.eq("process_id",id);
+                    List<ProcessStream> processStreams = processStreamService.list(processStreamQueryWrapper);
+                    return Result.OK(processStreams);
+                case 6:
+                    //宸ユ
+                    QueryWrapper<WorkStep> workStepQueryWrapper = new QueryWrapper<>();
+                    workStepQueryWrapper.eq("id",id);
+                    List<WorkStep> workSteps = workStepService.list(workStepQueryWrapper);
+                    return Result.OK(workSteps);
+            }
+        }
+        return Result.error("鍙傛暟閿欒");
+    }
+
     /**
      * 楠岃瘉杈撳叆鍙傛暟
      */
@@ -997,8 +1049,11 @@
                         .map(PartsInfo::getPartsId)
                         .collect(Collectors.toList());
                 handlePartsPermissions(partsIds, userList, partsPermissionList, permissionStreamList);
-                List<String> psvIds = processSpecVersionService.getByPartsIds(partsIds).stream().map(ProcessSpecVersion::getId).collect(Collectors.toList());
-                handlePsvPermissions(psvIds, userList, processSpecVersionPermissionList, permissionStreamList);
+                List<ProcessSpecVersion> processSpecVersionList = processSpecVersionService.getByPartsIds(partsIds);
+                if (processSpecVersionList!= null &&!processSpecVersionList.isEmpty()) {
+                    List<String> psvIds = processSpecVersionList.stream().map(ProcessSpecVersion::getId).collect(Collectors.toList());
+                    handlePsvPermissions(psvIds, userList, processSpecVersionPermissionList, permissionStreamList);
+                }
                 List<ProcessStream> processStreamList = processStreamService.getByComponentIdList(productId, componentIds, partsIds);
                 processStreamApi(productId, userList, processionPermissionList, workStepPermissionList, permissionStreamList, processStreamList);
             }
@@ -1093,8 +1148,8 @@
             componentPermissionList.add(cp);
             ComponentInfo cpInfo = componentInfoMap.get(cp.getComponentId());
             PermissionStreamNew s = new PermissionStreamNew();
-            s.setBusinessId(cpInfo.getProductId());
-            s.setBusinessType("1");
+            s.setBusinessId(cpInfo.getComponentId());
+            s.setBusinessType("2");
             s.setUserId(cp.getUserId());
             permissionStreamList.add(s);
         }
@@ -1394,6 +1449,8 @@
                             .collect(Collectors.toList());
                 }
                 componentIds.add(componentInfo.getComponentId());
+
+
                 handleRelativePermissions(componentInfo.getProductId(), componentIds, null, null,null, userList);
             }
         }else {
@@ -2067,18 +2124,22 @@
 
     private void handlePartsRemovals(String productId, List<String> componentIds,Collection<SysUser> userList) {
         List<PartsInfo> partsInfoList = partsInfoService.getByComponentIdList(productId, componentIds);
-        partsInfoList.forEach(item->{
-            partsInfoService.assignRemoveUser(item,userList);
-            //鍒犻櫎
-            handlePartRelatedRemovals(item, userList);
-        });
+        if (partsInfoList!=null){
+            partsInfoList.forEach(item->{
+                partsInfoService.assignRemoveUser(item,userList);
+                //鍒犻櫎
+                handlePartRelatedRemovals(item, userList);
+            });
+        }
     }
     private void handlePartsDepartmentRemovals(String productId, List<String> componentIds, Collection<MdcProduction> mdcProductionList) {
         List<PartsInfo> partsInfoList = partsInfoService.getByComponentIdList(productId, componentIds);
-        partsInfoList.forEach(item->{
-            partsInfoService.assignRemoveDepart(item,mdcProductionList);
-            handlePartRelatedDepartmentRemovals(item, mdcProductionList);
-        });
+        if (partsInfoList!=null) {
+            partsInfoList.forEach(item->{
+                partsInfoService.assignRemoveDepart(item,mdcProductionList);
+                handlePartRelatedDepartmentRemovals(item, mdcProductionList);
+            });
+        }
     }
 
     private void handleComponentRelatedRemovals(ComponentInfo componentInfo, Collection<SysUser> userList, Collection<MdcProduction> mdcProductionList) {
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductMixServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductMixServiceImpl.java
index 9e0d90f..ef787db 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductMixServiceImpl.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductMixServiceImpl.java
@@ -1,9 +1,7 @@
 package org.jeecg.modules.dnc.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.shiro.SecurityUtils;
-import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.dnc.entity.ProductMix;
 import org.jeecg.modules.dnc.mapper.ProductMixMapper;
@@ -12,6 +10,9 @@
 import org.jeecg.modules.dnc.utils.TreeBuilder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 @Service
@@ -23,7 +24,16 @@
     @Override
     public List<ProductMix> getTree() {
         LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        List<ProductMix> rawData = permissionStreamNewService.loadProductMix(loginUser.getId());
+        List<ProductMix> rawData = new ArrayList<>();
+        if (loginUser.getUsername().equals("admin")) {
+            //涓嶉渶瑕佹潈闄愯繃婊�
+            rawData=permissionStreamNewService.loadProductMixAll(loginUser.getId());
+        }else{
+            //闇�瑕佹潈闄愯繃婊�
+            String productIds = loginUser.getProductionIds();
+            List<String> productIdList = Arrays.asList(productIds.split(","));
+            rawData = permissionStreamNewService.loadProductMix(loginUser.getId(),productIdList);
+        }
         TreeBuilder builder = new TreeBuilder();
         TreeBuilder.CleanResult cleanResult = builder.preprocessData(rawData);
         List<ProductMix> sorted = builder.topologicalSort(
@@ -32,4 +42,4 @@
         );
         return builder.assembleTree(sorted, cleanResult.getNodeMap());
     }
-}
\ No newline at end of file
+}
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
index 87be894..4415e17 100644
--- 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
@@ -137,9 +137,14 @@
                     ExceptionCast.cast(CommonCode.FAIL);
             }
         }
+        //娣诲姞鐢ㄦ埛鏉冮檺
+        b = productPermissionService.add(workStep.getId(), userId,"6");
+        if (!b) {
+            ExceptionCast.cast(ProductInfoCode.PRODUCT_SAVE_ERROR);
+        }
         //娣诲姞缁撴瀯鏍�
         ProductMix productMix = new ProductMix(Long.parseLong(workStep.getId()),Long.parseLong(workStep.getProcessId())
-                ,workStep.getStepName(),workStep.getStepCode(),"6");
+                ,workStep.getStepName(),workStep.getStepCode(),6);
         productMixService.save(productMix);
         //娣诲姞鏉冮檺楠岃瘉
         PermissionStreamNew permissionStream = new PermissionStreamNew();
@@ -164,6 +169,11 @@
         WorkStep en = super.getById(id);
         if(en == null)
             ExceptionCast.cast(ProcessInfoCode.WORKSTEP_NOT_EXIST);
+        //鍚屾淇敼缁撴瀯鏍�
+        ProductMix productMix = productMixService.getById(Long.parseLong(id));
+        productMix.setName(workStep.getStepName());
+        productMix.setCode(workStep.getStepCode());
+        productMixService.updateById(productMix);
         return super.updateById(workStep);
     }
 
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/utils/TreeBuilder.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/utils/TreeBuilder.java
index fed3ea5..7387b27 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/utils/TreeBuilder.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/utils/TreeBuilder.java
@@ -1,10 +1,14 @@
 package org.jeecg.modules.dnc.utils;
 
-import it.unimi.dsi.fastutil.longs.*;
+import it.unimi.dsi.fastutil.longs.Long2IntMap;
+import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap;
+import it.unimi.dsi.fastutil.longs.Long2ObjectMap;
+import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
 import org.jeecg.modules.dnc.entity.ProductMix;
 
 import java.util.*;
-import java.util.concurrent.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.stream.Collectors;
 
 public class TreeBuilder {
@@ -46,19 +50,19 @@
         // 1. 鏋勫缓閭绘帴琛紙鐖惰妭鐐� -> 瀛愯妭鐐瑰垪琛級
         Long2ObjectMap<List<Long>> adjacencyList = new Long2ObjectOpenHashMap<>(nodes.size());
         nodes.forEach(node -> {
-            long parentId = node.getParentId();
+            Long parentId = node.getParentId();
             adjacencyList.computeIfAbsent(parentId, k -> new ArrayList<>())
                     .add(node.getId());
         });
 
         // 2. 鍒濆鍖栧叆搴﹁鏁板櫒
         Long2IntMap inDegree = new Long2IntOpenHashMap();
-        nodes.forEach(node -> inDegree.put(node.getId(), 0));
+        nodes.forEach(node -> inDegree.put(node.getId().longValue(), 0));
 
         // 3. 璁$畻鍏ュ害
         nodes.forEach(node -> {
             if (node.getParentId() != 0 && nodeMap.containsKey(node.getParentId())) {
-                inDegree.put(node.getId(), inDegree.get(node.getId()) + 1);
+                inDegree.put(node.getId().longValue(), inDegree.get(node.getId()) + 1);
             }
         });
 
@@ -178,4 +182,4 @@
         public Long2ObjectMap<ProductMix> getNodeMap() { return nodeMap; }
         public List<ProductMix> getValidNodes() { return validNodes; }
     }
-}
\ No newline at end of file
+}
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/controller/AssignFileStreamController.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamController.java
similarity index 89%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/controller/AssignFileStreamController.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamController.java
index 7424f7a..79df2f8 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/controller/AssignFileStreamController.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamController.java
@@ -1,19 +1,21 @@
-package org.jeecg.modules.flow.controller;
+package org.jeecg.modules.dncFlow.controller;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
-import org.jeecg.modules.flow.service.IAssignFileStreamService;
-import org.jeecg.modules.flow.entity.AssignFileStream;
-import org.jeecg.modules.flow.ext.AssignFileStreamExt;
-import org.jeecg.modules.flow.request.ApproveBatchRequest;
-import org.jeecg.modules.flow.request.AssignFileRequest;
-import org.jeecg.modules.flow.request.AssignFileStreamQueryRequest;
-import org.jeecg.modules.dnc.response.*;
-import org.jeecg.modules.flow.vo.AssignFlowTaskVo;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.jeecg.modules.dnc.response.CommonCode;
+import org.jeecg.modules.dnc.response.DataResponseResult;
+import org.jeecg.modules.dnc.response.QueryPageResponseResult;
+import org.jeecg.modules.dnc.response.ResponseResult;
+import org.jeecg.modules.dncFlow.entity.AssignFileStream;
+import org.jeecg.modules.dncFlow.ext.AssignFileStreamExt;
+import org.jeecg.modules.dncFlow.request.ApproveBatchRequest;
+import org.jeecg.modules.dncFlow.request.AssignFileRequest;
+import org.jeecg.modules.dncFlow.request.AssignFileStreamQueryRequest;
+import org.jeecg.modules.dncFlow.service.IAssignFileStreamService;
+import org.jeecg.modules.dncFlow.vo.AssignFlowTaskVo;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/controller/AssignFileStreamFlowController.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamFlowController.java
similarity index 89%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/controller/AssignFileStreamFlowController.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamFlowController.java
index d6dedb0..9ffe196 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/controller/AssignFileStreamFlowController.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamFlowController.java
@@ -1,9 +1,7 @@
-package org.jeecg.modules.flow.controller;
+package org.jeecg.modules.dncFlow.controller;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.extern.slf4j.Slf4j;
@@ -14,19 +12,17 @@
 import org.flowable.image.ProcessDiagramGenerator;
 import org.flowable.task.api.Task;
 import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.system.vo.LoginUser;
-import org.jeecg.modules.flow.entity.HisWorkTask;
-import org.jeecg.modules.flow.entity.WorkTaskData;
-import org.jeecg.modules.flow.entity.WorkTaskDataVo;
-import org.jeecg.modules.flow.service.IAssignFileStreamService;
-import org.jeecg.modules.flow.service.IHisWorkTaskService;
-import org.jeecg.modules.flow.service.IWorkTaskService;
-import org.jeecg.modules.flow.service.IWorkTaskServiceVo;
-import org.jeecg.modules.flow.vo.FlowMy;
+import org.jeecg.modules.dncFlow.entity.HisWorkTask;
+import org.jeecg.modules.dncFlow.entity.WorkTaskData;
+import org.jeecg.modules.dncFlow.entity.WorkTaskDataVo;
+import org.jeecg.modules.dncFlow.service.IAssignFileStreamService;
+import org.jeecg.modules.dncFlow.service.IHisWorkTaskService;
+import org.jeecg.modules.dncFlow.service.IWorkTaskService;
+import org.jeecg.modules.dncFlow.service.IWorkTaskServiceVo;
+import org.jeecg.modules.dncFlow.vo.FlowMy;
 import org.jeecg.modules.flowable.apithird.business.dto.FlowMyBusinessDto;
-import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
-import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
+import org.jeecg.modules.flowable.apithird.business.service.impl.FlowMyBusinessServiceImpl;
 import org.jeecg.modules.flowable.domain.dto.FlowTaskDto;
 import org.jeecg.modules.flowable.service.IFlowTaskService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -48,7 +44,7 @@
 @Slf4j
 public class AssignFileStreamFlowController {
     @Autowired
-    IFlowMyBusinessService flowMyBusinessService;
+    FlowMyBusinessServiceImpl flowMyBusinessService;
     @Autowired
     IWorkTaskService workTaskService;
     @Autowired
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/AssignFileStream.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/AssignFileStream.java
similarity index 98%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/AssignFileStream.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/AssignFileStream.java
index a8a903d..ec105d8 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/AssignFileStream.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/AssignFileStream.java
@@ -1,4 +1,4 @@
-package org.jeecg.modules.flow.entity;
+package org.jeecg.modules.dncFlow.entity;
 
 import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.annotation.JsonFormat;
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/HisWorkTask.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/HisWorkTask.java
similarity index 96%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/HisWorkTask.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/HisWorkTask.java
index 06188a8..f7df053 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/HisWorkTask.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/HisWorkTask.java
@@ -1,4 +1,4 @@
-package org.jeecg.modules.flow.entity;
+package org.jeecg.modules.dncFlow.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/ToEquipmentTask.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/ToEquipmentTask.java
similarity index 97%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/ToEquipmentTask.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/ToEquipmentTask.java
index 5b2b23d..47521d0 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/ToEquipmentTask.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/ToEquipmentTask.java
@@ -1,4 +1,4 @@
-package org.jeecg.modules.flow.entity;
+package org.jeecg.modules.dncFlow.entity;
 
 import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.annotation.JsonIgnore;
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/UserRole.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/UserRole.java
similarity index 90%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/UserRole.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/UserRole.java
index 27481c9..93944cb 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/UserRole.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/UserRole.java
@@ -1,4 +1,4 @@
-package org.jeecg.modules.flow.entity;
+package org.jeecg.modules.dncFlow.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/WorkTaskData.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/WorkTaskData.java
similarity index 98%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/WorkTaskData.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/WorkTaskData.java
index 27fb687..417b65a 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/WorkTaskData.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/WorkTaskData.java
@@ -1,4 +1,4 @@
-package org.jeecg.modules.flow.entity;
+package org.jeecg.modules.dncFlow.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/WorkTaskDataVo.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/WorkTaskDataVo.java
similarity index 98%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/WorkTaskDataVo.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/WorkTaskDataVo.java
index 6fffc9d..eb57e51 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/WorkTaskDataVo.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/WorkTaskDataVo.java
@@ -1,4 +1,4 @@
-package org.jeecg.modules.flow.entity;
+package org.jeecg.modules.dncFlow.entity;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/ext/AssignFileStreamExt.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/ext/AssignFileStreamExt.java
similarity index 83%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/ext/AssignFileStreamExt.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/ext/AssignFileStreamExt.java
index 31c5295..c59cdb1 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/ext/AssignFileStreamExt.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/ext/AssignFileStreamExt.java
@@ -1,8 +1,8 @@
-package org.jeecg.modules.flow.ext;
+package org.jeecg.modules.dncFlow.ext;
 
 import lombok.Data;
 import lombok.NoArgsConstructor;
-import org.jeecg.modules.flow.entity.AssignFileStream;
+import org.jeecg.modules.dncFlow.entity.AssignFileStream;
 
 @Data
 @NoArgsConstructor
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/AssignFileStreamMapper.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/AssignFileStreamMapper.java
similarity index 83%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/AssignFileStreamMapper.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/AssignFileStreamMapper.java
index c4da9c8..2a8bc33 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/AssignFileStreamMapper.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/AssignFileStreamMapper.java
@@ -1,12 +1,12 @@
-package org.jeecg.modules.flow.mapper;
+package org.jeecg.modules.dncFlow.mapper;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import org.apache.ibatis.annotations.Param;
-import org.jeecg.modules.flow.entity.AssignFileStream;
-import org.jeecg.modules.flow.ext.AssignFileStreamExt;
+import org.jeecg.modules.dncFlow.entity.AssignFileStream;
+import org.jeecg.modules.dncFlow.ext.AssignFileStreamExt;
 
 public interface AssignFileStreamMapper extends BaseMapper<AssignFileStream> {
     /**
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/IHisWorkTaskMapper.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/IHisWorkTaskMapper.java
similarity index 85%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/IHisWorkTaskMapper.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/IHisWorkTaskMapper.java
index c7ffcd7..e7318d6 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/IHisWorkTaskMapper.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/IHisWorkTaskMapper.java
@@ -1,8 +1,8 @@
-package org.jeecg.modules.flow.mapper;
+package org.jeecg.modules.dncFlow.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
-import org.jeecg.modules.flow.entity.HisWorkTask;
+import org.jeecg.modules.dncFlow.entity.HisWorkTask;
 
 import java.util.List;
 
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/IWorkTaskMapper.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/IWorkTaskMapper.java
similarity index 67%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/IWorkTaskMapper.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/IWorkTaskMapper.java
index 8a9fb1e..668380e 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/IWorkTaskMapper.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/IWorkTaskMapper.java
@@ -1,7 +1,7 @@
-package org.jeecg.modules.flow.mapper;
+package org.jeecg.modules.dncFlow.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.jeecg.modules.flow.entity.WorkTaskData;
+import org.jeecg.modules.dncFlow.entity.WorkTaskData;
 
 import java.util.List;
 
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/IWorkTaskVoMapper.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/IWorkTaskVoMapper.java
similarity index 77%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/IWorkTaskVoMapper.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/IWorkTaskVoMapper.java
index 61bca2c..e111cbb 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/IWorkTaskVoMapper.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/IWorkTaskVoMapper.java
@@ -1,11 +1,11 @@
-package org.jeecg.modules.flow.mapper;
+package org.jeecg.modules.dncFlow.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
-import org.jeecg.modules.flow.entity.WorkTaskDataVo;
-import org.jeecg.modules.flow.vo.FlowMy;
+import org.jeecg.modules.dncFlow.entity.WorkTaskDataVo;
+import org.jeecg.modules.dncFlow.vo.FlowMy;
 
 import java.util.List;
 
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/PlmCommonUtilsMapper.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/PlmCommonUtilsMapper.java
similarity index 72%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/PlmCommonUtilsMapper.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/PlmCommonUtilsMapper.java
index 85a4d2d..de55fef 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/PlmCommonUtilsMapper.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/PlmCommonUtilsMapper.java
@@ -1,7 +1,7 @@
-package org.jeecg.modules.flow.mapper;
+package org.jeecg.modules.dncFlow.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.jeecg.modules.flow.entity.UserRole;
+import org.jeecg.modules.dncFlow.entity.UserRole;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/ToEquipmentTaskMapper.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/ToEquipmentTaskMapper.java
new file mode 100644
index 0000000..b7f7399
--- /dev/null
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/ToEquipmentTaskMapper.java
@@ -0,0 +1,7 @@
+package org.jeecg.modules.dncFlow.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.dncFlow.entity.ToEquipmentTask;
+
+public interface ToEquipmentTaskMapper extends BaseMapper<ToEquipmentTask> {
+}
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/xml/AssignFileStreamMapper.xml b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/AssignFileStreamMapper.xml
similarity index 91%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/xml/AssignFileStreamMapper.xml
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/AssignFileStreamMapper.xml
index d30212b..2dd41e9 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/xml/AssignFileStreamMapper.xml
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/AssignFileStreamMapper.xml
@@ -1,7 +1,7 @@
 <?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.flow.mapper.AssignFileStreamMapper">
-    <select id="getAssignFileStreamDetail" resultType="org.jeecg.modules.flow.ext.AssignFileStreamExt" parameterType="String">
+<mapper namespace="org.jeecg.modules.dncFlow.mapper.AssignFileStreamMapper">
+    <select id="getAssignFileStreamDetail" resultType="org.jeecg.modules.dncFlow.ext.AssignFileStreamExt" parameterType="String">
         select a.stream_id
         , a.product_id
         , a.component_id
@@ -50,7 +50,7 @@
 
     </select>
 
-    <select id="findByPage" resultType="org.jeecg.modules.flow.ext.AssignFileStreamExt" parameterType="String">
+    <select id="findByPage" resultType="org.jeecg.modules.dncFlow.ext.AssignFileStreamExt" parameterType="String">
         select a.stream_id
         , a.product_id
         , a.component_id
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/xml/HisWorkTaskMapper.xml b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/HisWorkTaskMapper.xml
similarity index 94%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/xml/HisWorkTaskMapper.xml
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/HisWorkTaskMapper.xml
index 2ca746e..c164cb5 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/xml/HisWorkTaskMapper.xml
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/HisWorkTaskMapper.xml
@@ -1,7 +1,7 @@
 <?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.flow.mapper.IHisWorkTaskMapper">
-    <select id="queryHisTaskList" resultType="org.jeecg.modules.flow.entity.HisWorkTask">
+<mapper namespace="org.jeecg.modules.dncFlow.mapper.IHisWorkTaskMapper">
+    <select id="queryHisTaskList" resultType="org.jeecg.modules.dncFlow.entity.HisWorkTask">
         SELECT
             fb.id AS id,
             aht.NAME_ AS name,
@@ -23,7 +23,7 @@
         ORDER BY
             aht.START_TIME_ ASC
     </select>
-    <select id="queryJjHisTaskByJjId" resultType="org.jeecg.modules.flow.entity.HisWorkTask">
+    <select id="queryJjHisTaskByJjId" resultType="org.jeecg.modules.dncFlow.entity.HisWorkTask">
         select fb.id            as id,
                aht.NAME_        as name,
                su.realname      as assignee,
@@ -39,7 +39,7 @@
         ORDER BY aht.START_TIME_ ASC
     </select>
 
-    <select id="queryJjGgHisTaskByJjId" resultType="org.jeecg.modules.flow.entity.HisWorkTask">
+    <select id="queryJjGgHisTaskByJjId" resultType="org.jeecg.modules.dncFlow.entity.HisWorkTask">
         select fb.id           as id,
                aht.NAME_       as name,
                su.realname   as assignee,
@@ -55,7 +55,7 @@
         ORDER BY aht.START_TIME_ ASC
     </select>
 
-    <select id="queryLsHisTaskByJjId" resultType="org.jeecg.modules.flow.entity.HisWorkTask">
+    <select id="queryLsHisTaskByJjId" resultType="org.jeecg.modules.dncFlow.entity.HisWorkTask">
         select fb.id           as id,
                aht.NAME_       as name,
                su.realname   as assignee,
@@ -71,7 +71,7 @@
         ORDER BY aht.START_TIME_ ASC
     </select>
 
-    <select id="queryFxHisTaskByJjId" resultType="org.jeecg.modules.flow.entity.HisWorkTask">
+    <select id="queryFxHisTaskByJjId" resultType="org.jeecg.modules.dncFlow.entity.HisWorkTask">
         select fb.id           as id,
                aht.NAME_       as name,
                su.realname   as assignee,
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/xml/PlmCommonUtilsMapper.xml b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/PlmCommonUtilsMapper.xml
similarity index 60%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/xml/PlmCommonUtilsMapper.xml
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/PlmCommonUtilsMapper.xml
index 83e1810..29d9cf3 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/xml/PlmCommonUtilsMapper.xml
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/PlmCommonUtilsMapper.xml
@@ -1,8 +1,8 @@
 <?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.flow.mapper.PlmCommonUtilsMapper">
+<mapper namespace="org.jeecg.modules.dncFlow.mapper.PlmCommonUtilsMapper">
   	<!-- 銆恦ue3涓撶敤銆� -->
-	<select id="queryAllRoleList" resultType="org.jeecg.modules.flow.entity.UserRole">
+	<select id="queryAllRoleList" resultType="org.jeecg.modules.dncFlow.entity.UserRole">
 		select
 			id,role_name,role_code
 		from sys_role
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/xml/WorkTaskMapper.xml b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/WorkTaskMapper.xml
similarity index 86%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/xml/WorkTaskMapper.xml
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/WorkTaskMapper.xml
index 6b63a89..3020aa0 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/xml/WorkTaskMapper.xml
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/WorkTaskMapper.xml
@@ -1,7 +1,7 @@
 <?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.flow.mapper.IWorkTaskMapper">
-    <select id="queryAllworkTask" resultType="org.jeecg.modules.flow.entity.WorkTaskData">
+<mapper namespace="org.jeecg.modules.dncFlow.mapper.IWorkTaskMapper">
+    <select id="queryAllworkTask" resultType="org.jeecg.modules.dncFlow.entity.WorkTaskData">
         select id_,rev_,execution_id_,proc_inst_id_,proc_def_id_,name_,task_def_key_,assignee_,priority_,create_time_,suspension_state_,task_def_id_,scope_id_,sub_scope_id_,scope_type_,scope_definition_id_,propagated_stage_inst_id_,parent_task_id_,description_,owner_,delegation_,due_date_,category_,form_key_,claim_time_,is_count_enabled_,var_count_,id_link_count_,sub_task_count_
         from act_ru_task ORDER BY create_time_ DESC
     </select>
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/xml/WorkTaskVoMapper.xml b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/WorkTaskVoMapper.xml
similarity index 89%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/xml/WorkTaskVoMapper.xml
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/WorkTaskVoMapper.xml
index 3bfe354..4658443 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/xml/WorkTaskVoMapper.xml
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/WorkTaskVoMapper.xml
@@ -1,7 +1,7 @@
 <?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.flow.mapper.IWorkTaskVoMapper">
-    <select id="taskBySelf" resultType="org.jeecg.modules.flow.entity.WorkTaskDataVo">
+<mapper namespace="org.jeecg.modules.dncFlow.mapper.IWorkTaskVoMapper">
+    <select id="taskBySelf" resultType="org.jeecg.modules.dncFlow.entity.WorkTaskDataVo">
         SELECT
             atask.id_ AS id,
             atask.rev_ AS rev,
@@ -43,7 +43,7 @@
         ORDER BY
             create_time_ DESC
     </select>
-    <select id="allList" parameterType="String" resultType="org.jeecg.modules.flow.entity.WorkTaskDataVo">
+    <select id="allList" parameterType="String" resultType="org.jeecg.modules.dncFlow.entity.WorkTaskDataVo">
         select * from act_ru_task
     </select>
 </mapper>
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/request/ActivitiDefinitionRequest.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/ActivitiDefinitionRequest.java
similarity index 80%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/request/ActivitiDefinitionRequest.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/ActivitiDefinitionRequest.java
index d23079c..ea70ef6 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/request/ActivitiDefinitionRequest.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/ActivitiDefinitionRequest.java
@@ -1,4 +1,4 @@
-package org.jeecg.modules.flow.request;
+package org.jeecg.modules.dncFlow.request;
 
 import lombok.Data;
 
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/request/ApproveBatchRequest.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/ApproveBatchRequest.java
similarity index 87%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/request/ApproveBatchRequest.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/ApproveBatchRequest.java
index 213ca8e..c711571 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/request/ApproveBatchRequest.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/ApproveBatchRequest.java
@@ -1,4 +1,4 @@
-package org.jeecg.modules.flow.request;
+package org.jeecg.modules.dncFlow.request;
 
 import lombok.Data;
 import lombok.NoArgsConstructor;
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/request/AssignFileRequest.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/AssignFileRequest.java
similarity index 88%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/request/AssignFileRequest.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/AssignFileRequest.java
index 0681160..073ef5a 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/request/AssignFileRequest.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/AssignFileRequest.java
@@ -1,4 +1,4 @@
-package org.jeecg.modules.flow.request;
+package org.jeecg.modules.dncFlow.request;
 
 import lombok.Data;
 import lombok.NoArgsConstructor;
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/request/AssignFileStreamQueryRequest.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/AssignFileStreamQueryRequest.java
similarity index 93%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/request/AssignFileStreamQueryRequest.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/AssignFileStreamQueryRequest.java
index d6166bb..5eecb9b 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/request/AssignFileStreamQueryRequest.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/AssignFileStreamQueryRequest.java
@@ -1,4 +1,4 @@
-package org.jeecg.modules.flow.request;
+package org.jeecg.modules.dncFlow.request;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/request/TaskRequest.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/TaskRequest.java
similarity index 83%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/request/TaskRequest.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/TaskRequest.java
index 8af48ea..731cafe 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/request/TaskRequest.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/TaskRequest.java
@@ -1,4 +1,4 @@
-package org.jeecg.modules.flow.request;
+package org.jeecg.modules.dncFlow.request;
 
 import lombok.Data;
 import lombok.NoArgsConstructor;
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IAssignFileStreamService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IAssignFileStreamService.java
similarity index 83%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IAssignFileStreamService.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IAssignFileStreamService.java
index 63f6fe3..28cb20d 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IAssignFileStreamService.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IAssignFileStreamService.java
@@ -1,15 +1,14 @@
-package org.jeecg.modules.flow.service;
+package org.jeecg.modules.dncFlow.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.common.api.vo.Result;
-import org.jeecg.modules.flow.entity.AssignFileStream;
-import org.jeecg.modules.flow.ext.AssignFileStreamExt;
-import org.jeecg.modules.flow.request.ApproveBatchRequest;
-import org.jeecg.modules.flow.request.AssignFileRequest;
-import org.jeecg.modules.flow.request.AssignFileStreamQueryRequest;
 import org.jeecg.modules.dnc.response.QueryPageResponseResult;
-import org.jeecg.modules.dnc.response.ResponseResult;
-import org.jeecg.modules.flow.vo.AssignFlowTaskVo;
+import org.jeecg.modules.dncFlow.entity.AssignFileStream;
+import org.jeecg.modules.dncFlow.ext.AssignFileStreamExt;
+import org.jeecg.modules.dncFlow.request.ApproveBatchRequest;
+import org.jeecg.modules.dncFlow.request.AssignFileRequest;
+import org.jeecg.modules.dncFlow.request.AssignFileStreamQueryRequest;
+import org.jeecg.modules.dncFlow.vo.AssignFlowTaskVo;
 
 public interface IAssignFileStreamService extends IService<AssignFileStream> {
     /**
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IHisWorkTaskService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IHisWorkTaskService.java
similarity index 82%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IHisWorkTaskService.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IHisWorkTaskService.java
index 7cd08f2..2ce2595 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IHisWorkTaskService.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IHisWorkTaskService.java
@@ -1,7 +1,7 @@
-package org.jeecg.modules.flow.service;
+package org.jeecg.modules.dncFlow.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import org.jeecg.modules.flow.entity.HisWorkTask;
+import org.jeecg.modules.dncFlow.entity.HisWorkTask;
 
 import java.util.List;
 
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IPlmCommonUtilsService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IPlmCommonUtilsService.java
similarity index 67%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IPlmCommonUtilsService.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IPlmCommonUtilsService.java
index 4877037..12c965b 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IPlmCommonUtilsService.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IPlmCommonUtilsService.java
@@ -1,7 +1,7 @@
-package org.jeecg.modules.flow.service;
+package org.jeecg.modules.dncFlow.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import org.jeecg.modules.flow.entity.UserRole;
+import org.jeecg.modules.dncFlow.entity.UserRole;
 
 import java.util.List;
 
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IToEquipmentTaskService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IToEquipmentTaskService.java
new file mode 100644
index 0000000..5e9359f
--- /dev/null
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IToEquipmentTaskService.java
@@ -0,0 +1,7 @@
+package org.jeecg.modules.dncFlow.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.dncFlow.entity.ToEquipmentTask;
+
+public interface IToEquipmentTaskService extends IService<ToEquipmentTask> {
+}
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IWorkTaskService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IWorkTaskService.java
similarity index 67%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IWorkTaskService.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IWorkTaskService.java
index b4d0a4a..4d3f5b6 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IWorkTaskService.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IWorkTaskService.java
@@ -1,7 +1,7 @@
-package org.jeecg.modules.flow.service;
+package org.jeecg.modules.dncFlow.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import org.jeecg.modules.flow.entity.WorkTaskData;
+import org.jeecg.modules.dncFlow.entity.WorkTaskData;
 
 import java.util.List;
 
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IWorkTaskServiceVo.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IWorkTaskServiceVo.java
similarity index 67%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IWorkTaskServiceVo.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IWorkTaskServiceVo.java
index 2bb0213..55e8841 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IWorkTaskServiceVo.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IWorkTaskServiceVo.java
@@ -1,12 +1,10 @@
-package org.jeecg.modules.flow.service;
+package org.jeecg.modules.dncFlow.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
-import org.jeecg.modules.flow.entity.WorkTaskDataVo;
-import org.jeecg.modules.flow.vo.FlowMy;
-
-import java.util.List;
+import org.jeecg.modules.dncFlow.entity.WorkTaskDataVo;
+import org.jeecg.modules.dncFlow.vo.FlowMy;
 
 public interface IWorkTaskServiceVo extends IService<WorkTaskDataVo> {
 
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/AssignFileStreamServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/AssignFileStreamServiceImpl.java
similarity index 96%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/AssignFileStreamServiceImpl.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/AssignFileStreamServiceImpl.java
index ae4f369..df6ebb3 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/AssignFileStreamServiceImpl.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/AssignFileStreamServiceImpl.java
@@ -1,4 +1,4 @@
-package org.jeecg.modules.flow.service.impl;
+package org.jeecg.modules.dncFlow.service.impl;
 
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -16,17 +16,6 @@
 import org.flowable.task.api.Task;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.vo.LoginUser;
-import org.jeecg.modules.flow.entity.ToEquipmentTask;
-import org.jeecg.modules.flow.service.IActivitiDefinitionService;
-import org.jeecg.modules.flow.service.IAssignFileStreamService;
-import org.jeecg.modules.flow.service.IToEquipmentTaskService;
-import org.jeecg.modules.flow.entity.AssignFileStream;
-import org.jeecg.modules.flow.ext.AssignFileStreamExt;
-import org.jeecg.modules.flow.mapper.AssignFileStreamMapper;
-import org.jeecg.modules.flow.request.ApproveBatchRequest;
-import org.jeecg.modules.flow.request.AssignFileRequest;
-import org.jeecg.modules.flow.request.AssignFileStreamQueryRequest;
-import org.jeecg.modules.flow.request.TaskRequest;
 import org.jeecg.modules.dnc.entity.*;
 import org.jeecg.modules.dnc.exception.ExceptionCast;
 import org.jeecg.modules.dnc.ext.NcTxtFilePathInfo;
@@ -35,7 +24,17 @@
 import org.jeecg.modules.dnc.utils.ValidateUtil;
 import org.jeecg.modules.dnc.utils.date.DateUtil;
 import org.jeecg.modules.dnc.utils.file.FileUtilS;
-import org.jeecg.modules.flow.vo.AssignFlowTaskVo;
+import org.jeecg.modules.dncFlow.entity.AssignFileStream;
+import org.jeecg.modules.dncFlow.entity.ToEquipmentTask;
+import org.jeecg.modules.dncFlow.ext.AssignFileStreamExt;
+import org.jeecg.modules.dncFlow.mapper.AssignFileStreamMapper;
+import org.jeecg.modules.dncFlow.request.ApproveBatchRequest;
+import org.jeecg.modules.dncFlow.request.AssignFileRequest;
+import org.jeecg.modules.dncFlow.request.AssignFileStreamQueryRequest;
+import org.jeecg.modules.dncFlow.request.TaskRequest;
+import org.jeecg.modules.dncFlow.service.IAssignFileStreamService;
+import org.jeecg.modules.dncFlow.service.IToEquipmentTaskService;
+import org.jeecg.modules.dncFlow.vo.AssignFlowTaskVo;
 import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
 import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
 import org.jeecg.modules.flowable.apithird.service.FlowCommonService;
@@ -55,7 +54,10 @@
 
 import javax.annotation.Resource;
 import java.io.IOException;
-import java.util.*;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 @Service("IAssignFileStreamService")
@@ -85,8 +87,6 @@
     @Autowired
     private IDocFileService docFileService;
     @Autowired
-    private IActivitiDefinitionService definitionService;
-    @Autowired
     private IDocRelativeService docRelativeService;
     @Autowired
     private ISynchronizedFlagService synchronizedFlagService;
@@ -109,10 +109,6 @@
     @Autowired
     private IFlowTaskService flowTaskService;
 
-    @Value("${securedoc.serverIp}")
-    private String serverIp;
-    @Value("${securedoc.serverPort}")
-    private int serverPort;
     @Value("${securedoc.whether}")
     private String whether;
     @Value("${securedoc.localFilePath}")
@@ -620,14 +616,6 @@
         return departIds;
     }
 
-    //鑾峰彇澶氫釜閮ㄩ棬鐨勫鎵逛汉 鍘婚噸
-    private List<String> getUserIdList(List<String> departIds) {
-        List<String> userIdList = definitionService.getByDepartIds(departIds);
-        if (userIdList == null || userIdList.isEmpty()) {
-            ExceptionCast.cast(ActivitiCode.ACT_APPROVE_USERS_NONE);
-        }
-        return userIdList;
-    }
 
     //灏佽鏁版嵁
     private void saveBusinessObject(AssignFileStream stream, String userId) {
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/HisWorkTaskServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/HisWorkTaskServiceImpl.java
similarity index 81%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/HisWorkTaskServiceImpl.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/HisWorkTaskServiceImpl.java
index 27548c2..e33d63a 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/HisWorkTaskServiceImpl.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/HisWorkTaskServiceImpl.java
@@ -1,9 +1,9 @@
-package org.jeecg.modules.flow.service.impl;
+package org.jeecg.modules.dncFlow.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.jeecg.modules.flow.entity.HisWorkTask;
-import org.jeecg.modules.flow.mapper.IHisWorkTaskMapper;
-import org.jeecg.modules.flow.service.IHisWorkTaskService;
+import org.jeecg.modules.dncFlow.entity.HisWorkTask;
+import org.jeecg.modules.dncFlow.mapper.IHisWorkTaskMapper;
+import org.jeecg.modules.dncFlow.service.IHisWorkTaskService;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/PlmCommonUtilsServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/PlmCommonUtilsServiceImpl.java
similarity index 71%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/PlmCommonUtilsServiceImpl.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/PlmCommonUtilsServiceImpl.java
index 6fa60e7..a1ea24e 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/PlmCommonUtilsServiceImpl.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/PlmCommonUtilsServiceImpl.java
@@ -1,9 +1,9 @@
-package org.jeecg.modules.flow.service.impl;
+package org.jeecg.modules.dncFlow.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.jeecg.modules.flow.entity.UserRole;
-import org.jeecg.modules.flow.mapper.PlmCommonUtilsMapper;
-import org.jeecg.modules.flow.service.IPlmCommonUtilsService;
+import org.jeecg.modules.dncFlow.entity.UserRole;
+import org.jeecg.modules.dncFlow.mapper.PlmCommonUtilsMapper;
+import org.jeecg.modules.dncFlow.service.IPlmCommonUtilsService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/ToEquipmentTaskServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/ToEquipmentTaskServiceImpl.java
new file mode 100644
index 0000000..d527868
--- /dev/null
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/ToEquipmentTaskServiceImpl.java
@@ -0,0 +1,11 @@
+package org.jeecg.modules.dncFlow.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.dncFlow.entity.ToEquipmentTask;
+import org.jeecg.modules.dncFlow.mapper.ToEquipmentTaskMapper;
+import org.jeecg.modules.dncFlow.service.IToEquipmentTaskService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ToEquipmentTaskServiceImpl extends ServiceImpl<ToEquipmentTaskMapper, ToEquipmentTask> implements IToEquipmentTaskService {
+}
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/WorkTaskServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/WorkTaskServiceImpl.java
similarity index 63%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/WorkTaskServiceImpl.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/WorkTaskServiceImpl.java
index e8f2bc6..14e763e 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/WorkTaskServiceImpl.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/WorkTaskServiceImpl.java
@@ -1,9 +1,9 @@
-package org.jeecg.modules.flow.service.impl;
+package org.jeecg.modules.dncFlow.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.jeecg.modules.flow.entity.WorkTaskData;
-import org.jeecg.modules.flow.mapper.IWorkTaskMapper;
-import org.jeecg.modules.flow.service.IWorkTaskService;
+import org.jeecg.modules.dncFlow.entity.WorkTaskData;
+import org.jeecg.modules.dncFlow.mapper.IWorkTaskMapper;
+import org.jeecg.modules.dncFlow.service.IWorkTaskService;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/WorkTaskServiceImplVo.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/WorkTaskServiceImplVo.java
similarity index 83%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/WorkTaskServiceImplVo.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/WorkTaskServiceImplVo.java
index a66124d..94ae51c 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/WorkTaskServiceImplVo.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/WorkTaskServiceImplVo.java
@@ -1,19 +1,18 @@
-package org.jeecg.modules.flow.service.impl;
+package org.jeecg.modules.dncFlow.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.flowable.engine.ProcessEngine;
 import org.flowable.engine.TaskService;
-import org.jeecg.modules.flow.entity.WorkTaskDataVo;
-import org.jeecg.modules.flow.mapper.IWorkTaskVoMapper;
-import org.jeecg.modules.flow.service.IWorkTaskServiceVo;
-import org.jeecg.modules.flow.vo.FlowMy;
+import org.jeecg.modules.dncFlow.entity.WorkTaskDataVo;
+import org.jeecg.modules.dncFlow.mapper.IWorkTaskVoMapper;
+import org.jeecg.modules.dncFlow.service.IWorkTaskServiceVo;
+import org.jeecg.modules.dncFlow.vo.FlowMy;
 import org.jeecg.modules.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
 import java.util.Map;
 
 @Service
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/vo/AssignFlowTaskVo.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/vo/AssignFlowTaskVo.java
similarity index 96%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/vo/AssignFlowTaskVo.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/vo/AssignFlowTaskVo.java
index a925647..87c67d3 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/vo/AssignFlowTaskVo.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/vo/AssignFlowTaskVo.java
@@ -1,4 +1,4 @@
-package org.jeecg.modules.flow.vo;
+package org.jeecg.modules.dncFlow.vo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/vo/FlowMy.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/vo/FlowMy.java
similarity index 92%
rename from lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/vo/FlowMy.java
rename to lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/vo/FlowMy.java
index b459dfb..da94872 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/vo/FlowMy.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/vo/FlowMy.java
@@ -1,4 +1,4 @@
-package org.jeecg.modules.flow.vo;
+package org.jeecg.modules.dncFlow.vo;
 
 import io.swagger.annotations.ApiModel;
 import lombok.Data;
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/ActivitiDefinition.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/ActivitiDefinition.java
deleted file mode 100644
index 469c30a..0000000
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/ActivitiDefinition.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.jeecg.modules.flow.entity;
-
-import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import io.swagger.annotations.Api;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import org.jeecg.common.aspect.annotation.Dict;
-
-import java.util.Date;
-
-@Data
-@NoArgsConstructor
-@TableName("nc_activiti_definition_info")
-@Api(value= "DNC鎸囨淳璁惧娴佺▼瀹氫箟")
-public class ActivitiDefinition {
-    @TableId(value = "id")
-    private String id;
-    @TableField(value = "act_name")
-    private String actName;
-    @TableField(value = "depart_id")
-    @Dict(dictTable = "mdc_production",dicCode = "id",dicText = "production_name")
-    private String departId;
-    @TableField(value = "approve_users")
-    @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
-    private String approveUsers;
-    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
-    @TableField(value = "create_time", fill = FieldFill.INSERT)
-    private Date createTime;
-    @TableField(value = "update_time", fill = FieldFill.UPDATE)
-    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
-    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/flow/entity/ActivitiSignExamine.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/ActivitiSignExamine.java
deleted file mode 100644
index 8fc31cd..0000000
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/ActivitiSignExamine.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package org.jeecg.modules.flow.entity;
-
-import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import io.swagger.annotations.Api;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import org.jeecg.common.aspect.annotation.Dict;
-
-import java.util.Date;
-
-@Data
-@NoArgsConstructor
-@TableName("nc_assign_to_sign_examine")
-@Api(value= "NC绋嬪簭绛炬淳娴佺▼瀹氫箟")
-public class ActivitiSignExamine {
-    @TableId(value = "id")
-    private String id;
-    @TableField(value = "act_name")
-    private String actName;
-    @TableField(value = "depart_id")
-    @Dict(dictTable = "mdc_production",dicCode = "id",dicText = "production_name")
-    private String departId;
-    @TableField(value = "proofreader_user")
-    @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
-    private String proofreaderUser;
-    @TableField(value = "approving_user")
-    @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
-    private String approveUser;
-    @TableField(value = "cutter_user")
-    @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
-    private String cutterUser;
-    @TableField(value = "typecast_user")
-    @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
-    private String typecastUser;
-    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
-    @TableField(value = "create_time", fill = FieldFill.INSERT)
-    private Date createTime;
-    @TableField(value = "update_time", fill = FieldFill.UPDATE)
-    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
-    private Date updateTime;
-    @JsonIgnore
-    @TableField(value = "create_by", select = false, fill = FieldFill.INSERT)
-    private String createBy;
-    @JsonIgnore
-    @TableField(value = "update_by", select = false, fill = FieldFill.UPDATE)
-    private String updateBy;
-    @JsonIgnore
-    @TableLogic
-    @TableField(value = "delete_flag", select = false)
-    private Integer deleteFlag = 0;
-}
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/ext/ActTaskExt.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/ext/ActTaskExt.java
deleted file mode 100644
index b0bc0c4..0000000
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/ext/ActTaskExt.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.jeecg.modules.flow.ext;
-
-import lombok.Data;
-import lombok.NoArgsConstructor;
-@Data
-@NoArgsConstructor
-public class ActTaskExt {
-    private String id;
-    private String name;
-    private String processInstanceId;
-    private String assignee;
-    private String executionId;
-    private String processDefinitionId;
-    private String businessKey;
-    private AssignFileStreamExt assignFileStream;
-}
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/ActivitiDefinitionMapper.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/ActivitiDefinitionMapper.java
deleted file mode 100644
index 054d02e..0000000
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/ActivitiDefinitionMapper.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.jeecg.modules.flow.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.jeecg.modules.flow.entity.ActivitiDefinition;
-
-public interface ActivitiDefinitionMapper extends BaseMapper<ActivitiDefinition> {
-}
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/ActivitiSignExamineMapper.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/ActivitiSignExamineMapper.java
deleted file mode 100644
index 803a105..0000000
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/ActivitiSignExamineMapper.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.jeecg.modules.flow.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.jeecg.modules.flow.entity.ActivitiSignExamine;
-
-public interface ActivitiSignExamineMapper extends BaseMapper<ActivitiSignExamine> {
-}
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/ToEquipmentTaskMapper.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/ToEquipmentTaskMapper.java
deleted file mode 100644
index 8ff63d7..0000000
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/ToEquipmentTaskMapper.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.jeecg.modules.flow.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.jeecg.modules.flow.entity.ToEquipmentTask;
-
-public interface ToEquipmentTaskMapper extends BaseMapper<ToEquipmentTask> {
-}
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IActivitiDefinitionService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IActivitiDefinitionService.java
deleted file mode 100644
index b67624d..0000000
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IActivitiDefinitionService.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.jeecg.modules.flow.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.modules.flow.entity.ActivitiDefinition;
-import org.jeecg.modules.flow.request.ActivitiDefinitionRequest;
-
-import java.util.List;
-
-public interface IActivitiDefinitionService extends IService<ActivitiDefinition> {
-    /**
-     * 娣诲姞閰嶇疆
-     * @param definition
-     * @return
-     */
-    boolean addDefinition(ActivitiDefinition definition);
-    /**
-     * 缂栬緫閰嶇疆
-     * @param definition
-     * @return
-     */
-    boolean editDefinition(String id, ActivitiDefinition definition);
-
-    /**
-     * 鍒犻櫎閰嶇疆
-     * @param id
-     * @return
-     */
-    boolean deleteDefinition(String id);
-
-    /**
-     * 鑾峰彇閮ㄩ棬鐨勬祦绋嬪畾涔�
-     * @param departId
-     * @return
-     */
-    ActivitiDefinition getByDepartId(String departId);
-
-    /**
-     * 鍒嗛〉鏌ヨ
-     * @param page
-     * @param size
-     * @param request
-     * @return
-     */
-    Result<?> findPageList(int page, int size, ActivitiDefinitionRequest request);
-
-    /**
-     * 鑾峰彇澶氫釜閮ㄩ棬鐨勫鎵逛汉 鍘婚噸
-     * @param departIds
-     * @return
-     */
-    List<String> getByDepartIds(List<String> departIds);
-
-    /**
-     * 鏍规嵁鐢ㄦ埛淇℃伅鑾峰彇瀹℃壒
-     * @param userId
-     * @return
-     */
-    List<ActivitiDefinition> findByUserId(String userId);
-}
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IActivitiSignExamineService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IActivitiSignExamineService.java
deleted file mode 100644
index 1ad8dc8..0000000
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IActivitiSignExamineService.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.jeecg.modules.flow.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import org.jeecg.modules.flow.entity.ActivitiSignExamine;
-
-
-public interface IActivitiSignExamineService extends IService<ActivitiSignExamine> {
-
-}
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IToEquipmentTaskService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IToEquipmentTaskService.java
deleted file mode 100644
index 9f30e60..0000000
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IToEquipmentTaskService.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.jeecg.modules.flow.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import org.jeecg.modules.flow.entity.ToEquipmentTask;
-
-public interface IToEquipmentTaskService extends IService<ToEquipmentTask> {
-}
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/ActivitiDefinitionServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/ActivitiDefinitionServiceImpl.java
deleted file mode 100644
index b6c5074..0000000
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/ActivitiDefinitionServiceImpl.java
+++ /dev/null
@@ -1,150 +0,0 @@
-package org.jeecg.modules.flow.service.impl;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.modules.flow.service.IActivitiDefinitionService;
-import org.jeecg.modules.flow.entity.ActivitiDefinition;
-import org.jeecg.modules.flow.mapper.ActivitiDefinitionMapper;
-import org.jeecg.modules.flow.request.ActivitiDefinitionRequest;
-import org.jeecg.modules.dnc.exception.ExceptionCast;
-import org.jeecg.modules.dnc.mapper.DepartmentMapper;
-import org.jeecg.modules.dnc.response.ActivitiDefinitionCode;
-import org.jeecg.modules.dnc.response.CommonCode;
-import org.jeecg.modules.dnc.utils.ValidateUtil;
-import org.jeecg.modules.system.entity.MdcProduction;
-import org.jeecg.modules.system.entity.SysUser;
-import org.jeecg.modules.system.service.IMdcProductionService;
-import org.jeecg.modules.system.service.ISysUserService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.*;
-
-@Service
-public class ActivitiDefinitionServiceImpl extends ServiceImpl<ActivitiDefinitionMapper, ActivitiDefinition> implements IActivitiDefinitionService {
-    @Autowired
-    private DepartmentMapper departmentMapper;
-    @Autowired
-    private ISysUserService userService;
-    @Autowired
-    private IMdcProductionService iMdcProductionService;
-    @Override
-    @Transactional(rollbackFor = {Exception.class})
-    public boolean addDefinition(ActivitiDefinition definition) {
-        if(definition == null || !ValidateUtil.validateString(definition.getDepartId())
-        || !ValidateUtil.validateString(definition.getActName()) || !ValidateUtil.validateString(definition.getApproveUsers()))
-            ExceptionCast.cast(CommonCode.INVALID_PARAM);
-        ActivitiDefinition en = getByDepartId(definition.getDepartId());
-        if(en != null)
-            ExceptionCast.cast(ActivitiDefinitionCode.DEF_IS_EXIST);
-        //淇敼涓簃dc杞﹂棿
-        MdcProduction mdcProduction=iMdcProductionService.getById(definition.getDepartId());
-        if(mdcProduction == null)
-            ExceptionCast.cast(ActivitiDefinitionCode.DEF_DEPART_NONE);
-        String[] userIds = definition.getApproveUsers().split(",");
-        if(userIds == null|| userIds.length < 1)
-            ExceptionCast.cast(ActivitiDefinitionCode.DEF_USER_NONE);
-        List<String> userIdList = new ArrayList<>(userIds.length);
-        Collections.addAll(userIdList, userIds);
-        Collection<SysUser> userList = userService.listByIds(userIdList);
-        if(userList == null || userList.isEmpty() || userList.size() != userIds.length)
-            ExceptionCast.cast(ActivitiDefinitionCode.DEF_USER_NONE);
-        return super.save(definition);
-    }
-
-    @Override
-    @Transactional(rollbackFor = {Exception.class})
-    public boolean editDefinition(String id, ActivitiDefinition definition) {
-        if(!ValidateUtil.validateString(id) || definition == null)
-            ExceptionCast.cast(CommonCode.INVALID_PARAM);
-        ActivitiDefinition en = super.getById(id);
-        if(en == null)
-            ExceptionCast.cast(ActivitiDefinitionCode.DEF_NOT_EXIST);
-        String[] userIds = definition.getApproveUsers().split(",");
-        if(userIds == null|| userIds.length < 1)
-            ExceptionCast.cast(ActivitiDefinitionCode.DEF_USER_NONE);
-        List<String> userIdList = new ArrayList<>(userIds.length);
-        Collections.addAll(userIdList, userIds);
-        Collection<SysUser> userList = userService.listByIds(userIdList);
-        if(userList == null || userList.isEmpty() || userList.size() != userIds.length)
-            ExceptionCast.cast(ActivitiDefinitionCode.DEF_USER_NONE);
-        definition.setId(id);
-        definition.setDepartId(null);
-        return super.updateById(definition);
-    }
-
-    @Override
-    @Transactional(rollbackFor = {Exception.class})
-    public boolean deleteDefinition(String id) {
-        if(!ValidateUtil.validateString(id))
-            ExceptionCast.cast(CommonCode.INVALID_PARAM);
-        ActivitiDefinition en = super.getById(id);
-        if(en == null)
-            ExceptionCast.cast(ActivitiDefinitionCode.DEF_NOT_EXIST);
-        return super.removeById(id);
-    }
-
-    @Override
-    public ActivitiDefinition getByDepartId(String departId) {
-        if(!ValidateUtil.validateString(departId))
-            return null;
-        List<ActivitiDefinition> list = super.lambdaQuery().eq(ActivitiDefinition::getDepartId, departId).list();
-        if(list == null || list.isEmpty())
-            return null;
-        return list.get(0);
-    }
-
-    @Override
-    public Result<?> findPageList(int page, int size, ActivitiDefinitionRequest request) {
-        if(page < 1 || size < 1) {
-            ExceptionCast.cast(CommonCode.INVALID_PAGE);
-        }
-        IPage<ActivitiDefinition> pageData = new Page<>(page, size);
-        LambdaQueryChainWrapper<ActivitiDefinition> lambdaQuery = super.lambdaQuery();
-        if(request != null) {
-            if(ValidateUtil.validateString(request.getActName())) {
-                lambdaQuery.like(ActivitiDefinition::getActName, request.getActName());
-            }
-        }
-        lambdaQuery.orderByDesc(ActivitiDefinition::getCreateTime);
-        IPage<ActivitiDefinition> definitionIPage = lambdaQuery.page(pageData);
-        return Result.ok(definitionIPage);
-
-    }
-
-    @Override
-    public List<String> getByDepartIds(List<String> departIds) {
-        if(departIds == null || departIds.isEmpty())
-            return null;
-        List<ActivitiDefinition> list = super.lambdaQuery().in(ActivitiDefinition::getDepartId, departIds).list();
-        if(list == null || list.isEmpty())
-            return null;
-        Map<String, String> userIdMap = new HashMap<>();
-        list.forEach(item -> {
-            if(ValidateUtil.validateString(item.getApproveUsers())) {
-                String[] arr = item.getApproveUsers().split(",");
-                if(arr != null && arr.length > 0) {
-                    for (String s : arr) {
-                        userIdMap.put(s, s);
-                    }
-                }
-            }
-        });
-        if(userIdMap.isEmpty())
-            return null;
-        List<String> userIds = new ArrayList<>();
-        userIdMap.forEach((key, value) -> {
-            userIds.add(key);
-        });
-        return userIds;
-    }
-
-    @Override
-    public List<ActivitiDefinition> findByUserId(String userId) {
-        return super.lambdaQuery().like(ActivitiDefinition::getApproveUsers, userId).list();
-    }
-}
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/ActivitiSignExamineServiceimpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/ActivitiSignExamineServiceimpl.java
deleted file mode 100644
index a96f31a..0000000
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/ActivitiSignExamineServiceimpl.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.jeecg.modules.flow.service.impl;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.jeecg.modules.flow.entity.ActivitiSignExamine;
-import org.jeecg.modules.flow.mapper.ActivitiSignExamineMapper;
-import org.jeecg.modules.flow.service.IActivitiSignExamineService;
-import org.springframework.stereotype.Service;
-
-@Service
-public class ActivitiSignExamineServiceimpl extends ServiceImpl<ActivitiSignExamineMapper, ActivitiSignExamine> implements IActivitiSignExamineService {
-}
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/ToEquipmentTaskServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/ToEquipmentTaskServiceImpl.java
deleted file mode 100644
index 13e0d2c..0000000
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/ToEquipmentTaskServiceImpl.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.jeecg.modules.flow.service.impl;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.jeecg.modules.flow.entity.ToEquipmentTask;
-import org.jeecg.modules.flow.service.IToEquipmentTaskService;
-import org.jeecg.modules.flow.mapper.ToEquipmentTaskMapper;
-import org.springframework.stereotype.Service;
-
-@Service
-public class ToEquipmentTaskServiceImpl extends ServiceImpl<ToEquipmentTaskMapper, ToEquipmentTask> implements IToEquipmentTaskService {
-}
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/FlowMyBusinessMapper.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/FlowMyBusinessMapper.java
index 93b59ad..df24518 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/FlowMyBusinessMapper.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/FlowMyBusinessMapper.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.flowable.apithird.business.dto.FlowMyBusinessDto;
 import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
 
@@ -19,6 +20,6 @@
      * @param flowMyBusinessDto
      * @return
      */
-    IPage<FlowMyBusinessDto> findPageList(Page<FlowMyBusiness> page, FlowMyBusinessDto flowMyBusinessDto);
+    IPage<FlowMyBusinessDto> getPageList(@Param("page") Page page, @Param("flowMyBusinessDto") FlowMyBusinessDto flowMyBusinessDto);
 
 }
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml
index 46ca3a5..5b0cd76 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml
@@ -1,14 +1,13 @@
 <?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.flowable.apithird.business.mapper.FlowMyBusinessMapper">
-
-    <select id="findPageList" resultType="org.jeecg.modules.flowable.apithird.business.dto.FlowMyBusinessDto">
+    <select id="getPageList" resultType="org.jeecg.modules.flowable.apithird.business.dto.FlowMyBusinessDto">
         SELECT
-        flow_my_business.*,
-        ACT_HI_PROCINST.START_TIME_ as start_time,
-        ACT_HI_PROCINST.END_TIME_ as end_time,
-        NC_ASSIGN_FILE_STREAM.STATUS as status,
-        ACT_RE_PROCDEF.NAME_ as flowName
+            flow_my_business.*,
+            ACT_HI_PROCINST.START_TIME_ as start_time,
+            ACT_HI_PROCINST.END_TIME_ as end_time,
+            NC_ASSIGN_FILE_STREAM.STATUS as status,
+            ACT_RE_PROCDEF.NAME_ as flowName
         FROM
             flow_my_business
                 LEFT JOIN ACT_HI_PROCINST ON flow_my_business.process_instance_id = ACT_HI_PROCINST.ID_
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java
index 0ee5d72..aca2489 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java
@@ -1,9 +1,5 @@
 package org.jeecg.modules.flowable.apithird.business.service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
-import org.jeecg.modules.flowable.apithird.business.dto.FlowMyBusinessDto;
 import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
 
 /**
@@ -14,5 +10,4 @@
  */
 public interface IFlowMyBusinessService extends IService<FlowMyBusiness> {
 
-    IPage<FlowMyBusinessDto> findPageList(Page page, FlowMyBusinessDto flowMyBusinessDto);
 }
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java
index 8dbf02e..1b92cfb 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java
@@ -8,6 +8,7 @@
 import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
 import org.jeecg.modules.flowable.apithird.business.mapper.FlowMyBusinessMapper;
 import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
@@ -18,6 +19,8 @@
  */
 @Service
 public class FlowMyBusinessServiceImpl extends ServiceImpl<FlowMyBusinessMapper, FlowMyBusiness> implements IFlowMyBusinessService {
+    @Autowired
+    private FlowMyBusinessMapper flowMyBusinessMapper;
 
     public FlowMyBusiness getByDataId(String dataId) {
         LambdaQueryWrapper<FlowMyBusiness> flowMyBusinessLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -37,14 +40,12 @@
         FlowMyBusiness business = this.getOne(flowMyBusinessLambdaQueryWrapper);
         return business;
     }
-
     /**
      * 娴佺▼鎬诲彴璐�
      * @param flowMyBusinessDto
      * @return
      */
-    @Override
     public IPage<FlowMyBusinessDto> findPageList(Page page, FlowMyBusinessDto flowMyBusinessDto){
-        return this.baseMapper.findPageList(page,flowMyBusinessDto);
+        return flowMyBusinessMapper.getPageList(page,flowMyBusinessDto);
     }
 }
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/service/FlowCommonService.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/service/FlowCommonService.java
index d52277e..90af8d8 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/service/FlowCommonService.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/service/FlowCommonService.java
@@ -3,7 +3,6 @@
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
 import org.jeecg.modules.flowable.apithird.business.service.impl.FlowMyBusinessServiceImpl;
 import org.jeecg.modules.flowable.apithird.common.exception.CustomException;
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/config/FlowableConfig.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/config/FlowableConfig.java
index c40dc09..0680065 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/config/FlowableConfig.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/config/FlowableConfig.java
@@ -1,14 +1,16 @@
 package org.jeecg.modules.flowable.config;
+
 import org.flowable.engine.ProcessEngine;
 import org.flowable.engine.ProcessEngineConfiguration;
 import org.flowable.engine.impl.cfg.StandaloneProcessEngineConfiguration;
+import org.flowable.eventregistry.impl.EventRegistryEngine;
 import org.flowable.eventregistry.impl.EventRegistryEngineConfiguration;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.DependsOn;
 import org.springframework.jdbc.datasource.DriverManagerDataSource;
-import org.flowable.eventregistry.impl.EventRegistryEngine;
+
 import javax.sql.DataSource;
 
 @Configuration
@@ -55,7 +57,8 @@
     public EventRegistryEngine eventRegistryEngine(DataSource dataSource) {
         EventRegistryEngineConfiguration config = new EventRegistryEngineConfiguration();
         config.setDataSource(dataSource);
-        // 璁剧疆鏁版嵁搴撴ā寮忔洿鏂扮瓥鐣ワ紝杩欓噷閫夋嫨鑷姩鏇存柊
+        //flase锛歛ctiviti鍦ㄥ惎鍔ㄦ椂锛屼細瀵规瘮鏁版嵁搴撹〃涓繚瀛樼殑鐗堟湰锛屽鏋滄病鏈夎〃鎴栬�呯増鏈笉鍖归厤锛屽皢鎶涘嚭寮傚父銆傦紙鐢熶骇鐜甯哥敤锛�
+        //true锛� activiti浼氬鏁版嵁搴撲腑鎵�鏈夎〃杩涜鏇存柊鎿嶄綔銆傚鏋滆〃涓嶅瓨鍦紝鍒欒嚜鍔ㄥ垱寤恒�傦紙寮�鍙戞椂甯哥敤锛�
         config.setDatabaseSchemaUpdate("true");
         return config.buildEventRegistryEngine();
     }
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/listener/UserTaskListener.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/listener/UserTaskListener.java
index ae8f7d3..ac48611 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/listener/UserTaskListener.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/listener/UserTaskListener.java
@@ -2,7 +2,6 @@
 
 import org.flowable.engine.delegate.TaskListener;
 import org.flowable.task.service.delegate.DelegateTask;
-import org.springframework.stereotype.Component;
 
 /**
  */
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/IFlowTaskService.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/IFlowTaskService.java
index 313777e..71749a5 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/IFlowTaskService.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/IFlowTaskService.java
@@ -1,6 +1,5 @@
 package org.jeecg.modules.flowable.service;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.flowable.task.api.Task;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.flowable.domain.dto.FlowViewerDto;
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowDefinitionServiceImpl.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowDefinitionServiceImpl.java
index cdfca7e..edf2eb1 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowDefinitionServiceImpl.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowDefinitionServiceImpl.java
@@ -9,10 +9,8 @@
 import org.apache.commons.io.IOUtils;
 import org.flowable.bpmn.model.BpmnModel;
 import org.flowable.bpmn.model.UserTask;
-import org.flowable.common.engine.impl.identity.Authentication;
 import org.flowable.engine.ProcessEngineConfiguration;
 import org.flowable.engine.history.HistoricActivityInstance;
-import org.flowable.engine.history.HistoricProcessInstance;
 import org.flowable.engine.repository.Deployment;
 import org.flowable.engine.repository.ProcessDefinition;
 import org.flowable.engine.repository.ProcessDefinitionQuery;
@@ -24,12 +22,12 @@
 import org.jeecg.common.util.SpringContextUtils;
 import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
 import org.jeecg.modules.flowable.apithird.business.service.impl.FlowMyBusinessServiceImpl;
+import org.jeecg.modules.flowable.apithird.common.constant.ProcessConstants;
+import org.jeecg.modules.flowable.apithird.common.enums.FlowComment;
 import org.jeecg.modules.flowable.apithird.entity.ActStatus;
 import org.jeecg.modules.flowable.apithird.entity.SysUser;
 import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
 import org.jeecg.modules.flowable.apithird.service.IFlowThirdService;
-import org.jeecg.modules.flowable.apithird.common.constant.ProcessConstants;
-import org.jeecg.modules.flowable.apithird.common.enums.FlowComment;
 import org.jeecg.modules.flowable.domain.dto.FlowNextDto;
 import org.jeecg.modules.flowable.domain.dto.FlowProcDefDto;
 import org.jeecg.modules.flowable.factory.FlowServiceFactory;
@@ -65,7 +63,7 @@
         ProcessDefinitionQuery processDefinitionQuery
                 = repositoryService.createProcessDefinitionQuery().processDefinitionKey(processDefinitionKey);
         long count = processDefinitionQuery.count();
-        return count > 0 ? true : false;
+        return count > 0;
     }
 
 
@@ -145,7 +143,7 @@
     public Result readXml(String deployId) throws IOException {
         ProcessDefinition definition = repositoryService.createProcessDefinitionQuery().deploymentId(deployId).singleResult();
         InputStream inputStream = repositoryService.getResourceAsStream(definition.getDeploymentId(), definition.getResourceName());
-        String result = IOUtils.toString(inputStream, StandardCharsets.UTF_8.name());
+        String result = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
         return Result.OK("", result);
     }
 
@@ -158,7 +156,7 @@
         FlowMyBusiness business = flowMyBusinessService.getOne(flowMyBusinessLambdaQueryWrapper);
         ProcessDefinition definition = repositoryService.createProcessDefinitionQuery().processDefinitionId(business.getProcessDefinitionId()).singleResult();
         InputStream inputStream = repositoryService.getResourceAsStream(definition.getDeploymentId(), definition.getResourceName());
-        String result = IOUtils.toString(inputStream, StandardCharsets.UTF_8.name());
+        String result = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
         return Result.OK("", result);
     }
 
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/model/MdcEquipmentTree.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/model/MdcEquipmentTree.java
index 33d8b12..d7c1d1a 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/model/MdcEquipmentTree.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/model/MdcEquipmentTree.java
@@ -73,6 +73,12 @@
      */
     private Integer type;
 
+    /**
+     * orgType
+     */
+    private String orgType;
+
+
     private List<MdcEquipmentTree> children = new ArrayList<>();
 
     /**
@@ -112,7 +118,8 @@
         this.value = treeModel.getId();
         this.title = treeModel.getProductionName();
         this.memo = treeModel.getMemo();
-        this.type =treeModel.getType();
+        this.type = treeModel.getType();
+        this.orgType = treeModel.getOrgType();
         return this;
     }
 
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/flow/FlowThirdServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/dncFlow/FlowThirdServiceImpl.java
similarity index 98%
rename from lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/flow/FlowThirdServiceImpl.java
rename to lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/dncFlow/FlowThirdServiceImpl.java
index 4e41d2f..3311b89 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/flow/FlowThirdServiceImpl.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/dncFlow/FlowThirdServiceImpl.java
@@ -1,4 +1,4 @@
-package org.jeecg.modules.flow;
+package org.jeecg.modules.dncFlow;
 
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/MdcProductionController.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/MdcProductionController.java
index e5cabaa..3b88a1c 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/MdcProductionController.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/MdcProductionController.java
@@ -1,6 +1,5 @@
 package org.jeecg.modules.system.controller;
 
-
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -87,6 +86,26 @@
         return result;
     }
 
+    @AutoLog(value = "浜х嚎琛�-鏍戝舰鍒楄〃(娣诲姞绯荤粺閰嶇疆)")
+    @ApiOperation(value = "浜х嚎琛�-鏍戝舰鍒楄〃(娣诲姞绯荤粺閰嶇疆)", notes = "浜х嚎琛�-鏍戝舰鍒楄〃(娣诲姞绯荤粺閰嶇疆)")
+    @GetMapping(value = "/queryTreeListByConfig")
+    public Result<List<MdcProductionTreeModel>> queryTreeListByConfig(@RequestParam(name = "ids", required = false) String ids) {
+        Result<List<MdcProductionTreeModel>> result = new Result<>();
+        try {
+            if (oConvertUtils.isNotEmpty(ids)) {
+                List<MdcProductionTreeModel> productionList = mdcProductionService.queryTreeList(ids);
+                result.setResult(productionList);
+            } else {
+                List<MdcProductionTreeModel> list = mdcProductionService.queryTreeListByConfig();
+                result.setResult(list);
+            }
+            result.setSuccess(true);
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+        }
+        return result;
+    }
+
     @AutoLog(value = "浜х嚎琛�-鏍规嵁鐢ㄦ埛id鑾峰彇浜х嚎涓嬫媺鏍戦�夐」")
     @ApiOperation(value = "浜х嚎琛�-鏍规嵁鐢ㄦ埛id鑾峰彇浜х嚎涓嬫媺鏍戦�夐」", notes = "浜х嚎琛�-鏍规嵁鐢ㄦ埛id鑾峰彇浜х嚎涓嬫媺鏍戦�夐」")
     @GetMapping(value = "/loadProductionTreeOptions")
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/DncDevicePermission.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/DncDevicePermission.java
index 4eefe20..c2a0643 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/DncDevicePermission.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/DncDevicePermission.java
@@ -14,7 +14,7 @@
 @NoArgsConstructor
 @TableName(value = "nc_device_permission")
 public class DncDevicePermission {
-    public DncDevicePermission(String userId, String deviceId) {
+    public DncDevicePermission( String deviceId,String userId) {
         this.userId = userId;
         this.deviceId = deviceId;
     }
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcProductionService.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcProductionService.java
index 95dcec9..3e2608e 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcProductionService.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcProductionService.java
@@ -22,6 +22,11 @@
     List<MdcProductionTreeModel> queryTreeList();
 
     /**
+     * 鏌ヨ鎵�鏈変骇绾夸俊鎭紝骞跺垎鑺傜偣杩涜鏄剧ず(娣诲姞绯荤粺閰嶇疆)
+     */
+    List<MdcProductionTreeModel> queryTreeListByConfig();
+
+    /**
      * 鏌ヨ鎵�鏈変骇绾夸俊鎭紝骞跺垎鑺傜偣杩涜鏄剧ず
      */
     List<MdcProductionTreeModel> queryTreeList(String ids);
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/DncDevicePermissionServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/DncDevicePermissionServiceImpl.java
index ec204b6..0921430 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/DncDevicePermissionServiceImpl.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/DncDevicePermissionServiceImpl.java
@@ -1,9 +1,8 @@
 package org.jeecg.modules.system.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import lombok.extern.slf4j.Slf4j;
 import org.jeecg.modules.system.entity.DncDevicePermission;
-import org.jeecg.modules.system.entity.MdcProduction;
 import org.jeecg.modules.system.entity.SysUser;
 import org.jeecg.modules.system.mapper.DncDevicePermissionMapper;
 import org.jeecg.modules.system.service.IDncDevicePermissionService;
@@ -22,6 +21,11 @@
     @Override
     public void addDevicePermission(String EquipmentId, String userId) {
         DncDevicePermission dncDevicePermission=new DncDevicePermission(EquipmentId,userId);
+        List<DncDevicePermission> devicePermissionList=super.list(new LambdaQueryWrapper<DncDevicePermission>().eq(DncDevicePermission::getDeviceId,EquipmentId)
+                        .eq(DncDevicePermission::getUserId,userId));
+        if (!devicePermissionList.isEmpty()){
+            return;
+        }
         SysUser sysUser=sysUserService.getUserByName("admin");
         if (userId.equals(sysUser.getId())) {
             // 绠$悊鍛樻柊澧�
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java
index 9b7711e..938efca 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java
@@ -7,17 +7,19 @@
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.constant.FillRuleConstant;
-import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.FillRuleUtil;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.system.entity.*;
-import org.jeecg.modules.system.mapper.*;
+import org.jeecg.modules.system.mapper.MdcProductionEquipmentMapper;
+import org.jeecg.modules.system.mapper.MdcProductionMapper;
+import org.jeecg.modules.system.mapper.MdcUserProductionMapper;
+import org.jeecg.modules.system.mapper.SysUserMapper;
 import org.jeecg.modules.system.model.MdcProductionTreeModel;
 import org.jeecg.modules.system.model.ProductionIdModel;
 import org.jeecg.modules.system.service.IMdcProductionService;
+import org.jeecg.modules.system.service.ISysParamsService;
 import org.jeecg.modules.system.util.FindsProductionsChildrenUtil;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
@@ -45,6 +47,8 @@
     @Resource
     private MdcProductionEquipmentMapper productionEquipmentMapper;
 
+    @Resource
+    private ISysParamsService sysParamsService;
     /**
      * queryTreeList 瀵瑰簲 queryTreeList 鏌ヨ鎵�鏈夌殑浜х嚎鏁版嵁,浠ユ爲缁撴瀯褰㈠紡鍝嶅簲缁欏墠绔�
      */
@@ -62,6 +66,45 @@
     }
 
     /**
+     * 鏌ヨ鎵�鏈変骇绾夸俊鎭紝骞跺垎鑺傜偣杩涜鏄剧ず(娣诲姞绯荤粺閰嶇疆)
+     */
+    @Override
+    public List<MdcProductionTreeModel> queryTreeListByConfig(){
+        SysParams sysParams = sysParamsService.getSysPramBySettingKey("dnc_production");
+        LambdaQueryWrapper<MdcProduction> query = new LambdaQueryWrapper<MdcProduction>();
+        if (sysParams == null) {
+            return null;
+        }else {
+            if (("0").equals(sysParams.getSettingValue())){
+                query.eq(MdcProduction::getOrgType,"2");
+                query.eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+                query.orderByAsc(MdcProduction::getProductionOrder);
+                List<MdcProduction> list = this.list(query);
+                //璁剧疆鐢ㄦ埛id锛岃鍓嶅彴鏄剧ず
+                this.setUserIdsByProList(list);
+                //灏佽涓�绾ф爲
+                List<MdcProductionTreeModel> listResult = new ArrayList<>();
+                for (MdcProduction production : list) {
+                    if (production.getDescription().isEmpty()){
+                        production.setDescription("");
+                    }
+                    listResult.add(new MdcProductionTreeModel(production));
+                }
+                //璋冪敤wrapTreeDataToTreeList鏂规硶鐢熸垚鏍戠姸鏁版嵁
+                return listResult;
+            }else {
+                query.eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+                query.orderByAsc(MdcProduction::getProductionOrder);
+                List<MdcProduction> list = this.list(query);
+                //璁剧疆鐢ㄦ埛id锛岃鍓嶅彴鏄剧ず
+                this.setUserIdsByProList(list);
+                //璋冪敤wrapTreeDataToTreeList鏂规硶鐢熸垚鏍戠姸鏁版嵁
+                return FindsProductionsChildrenUtil.wrapTreeDataToTreeList(list);
+            }
+        }
+    }
+
+    /**
      * queryTreeList 鏍规嵁浜х嚎id鏌ヨ,鍓嶇鍥炴樉璋冪敤
      */
     @Override
diff --git a/lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml b/lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml
index f94e1b9..2b4b48b 100644
--- a/lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml
+++ b/lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml
@@ -136,20 +136,6 @@
     host: 127.0.0.1
     port: 6379
     password: 123456
-#  activiti:
-#    #1.flase锛氶粯璁ゅ�笺�俛ctiviti鍦ㄥ惎鍔ㄦ椂锛屽姣旀暟鎹簱琛ㄤ腑淇濆瓨鐨勭増鏈紝濡傛灉娌℃湁琛ㄦ垨鑰呯増鏈笉鍖归厤锛屽皢鎶涘嚭寮傚父
-#    #2.true锛� activiti浼氬鏁版嵁搴撲腑鎵�鏈夎〃杩涜鏇存柊鎿嶄綔銆傚鏋滆〃涓嶅瓨鍦紝鍒欒嚜鍔ㄥ垱寤�
-#    #3.create_drop锛� 鍦╝ctiviti鍚姩鏃跺垱寤鸿〃锛屽湪鍏抽棴鏃跺垹闄よ〃锛堝繀椤绘墜鍔ㄥ叧闂紩鎿庯紝鎵嶈兘鍒犻櫎琛級
-#    #4.drop-create锛� 鍦╝ctiviti鍚姩鏃跺垹闄ゅ師鏉ョ殑鏃ц〃锛岀劧鍚庡湪鍒涘缓鏂拌〃锛堜笉闇�瑕佹墜鍔ㄥ叧闂紩鎿庯級
-#    database-schema-update: true
-#    # 妫�娴嬪巻鍙蹭俊鎭〃鏄惁瀛樺湪锛宎ctiviti7榛樿涓嶇敓鎴愬巻鍙蹭俊鎭〃锛屽紑鍚巻鍙茶〃
-#    db-history-used: true
-#    # 鍘嗗彶璁板綍瀛樺偍绛夌骇
-#    history-level: full
-#    check-process-definitions: true
-#    #鍦ㄦ祦绋嬪紩鎿庡惎鍔ㄥ氨婵�娲籄syncExecutor,寮傛 true  false 鍏抽棴  锛堝垏璁板叧闂級
-#    async-executor-activate: false
-#    async-executor-enabled: true
 flowable:
   enable: true
   #鍏抽棴瀹氭椂浠诲姟JOB

--
Gitblit v1.9.3