zhangherong
2025-03-14 9a8d9ef43c70fe6d70b494f49b19e5ca6ef01d4b
Merge remote-tracking branch 'origin/master'
已重命名37个文件
已添加9个文件
已修改42个文件
已删除12个文件
1998 ■■■■■ 文件已修改
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/CutterController.java 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DeviceManagementController.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DeviceTypeController.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/ProductMixController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/Cutter.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/DeviceManagement.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/DeviceType.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/ProcessStream.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/ProductMix.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/WorkStep.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/DeviceManagementMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/PermissionStreamNewMapper.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/ProductMixMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/DeviceManagementMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/PermissionStreamNewMapper.xml 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDeviceManagementService.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IPermissionStreamNewService.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IProcessSpecVersionService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IProductInfoService.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ComponentInfoSeServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/CutterServiceImpl.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceManagementServiceImpl.java 221 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceTypeServiceImpl.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocRelativeServiceImpl.java 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PartsInfoServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PermissionStreamNewServiceImpl.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessSpecVersionServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessStreamServiceImpl.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java 89 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductMixServiceImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/WorkStepServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/utils/TreeBuilder.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamController.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamFlowController.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/AssignFileStream.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/HisWorkTask.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/ToEquipmentTask.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/UserRole.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/WorkTaskData.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/WorkTaskDataVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/ext/AssignFileStreamExt.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/AssignFileStreamMapper.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/IHisWorkTaskMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/IWorkTaskMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/IWorkTaskVoMapper.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/PlmCommonUtilsMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/ToEquipmentTaskMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/AssignFileStreamMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/HisWorkTaskMapper.xml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/PlmCommonUtilsMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/WorkTaskMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/WorkTaskVoMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/ActivitiDefinitionRequest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/ApproveBatchRequest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/AssignFileRequest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/AssignFileStreamQueryRequest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/TaskRequest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IAssignFileStreamService.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IHisWorkTaskService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IPlmCommonUtilsService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IToEquipmentTaskService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IWorkTaskService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IWorkTaskServiceVo.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/AssignFileStreamServiceImpl.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/HisWorkTaskServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/PlmCommonUtilsServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/ToEquipmentTaskServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/WorkTaskServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/WorkTaskServiceImplVo.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/vo/AssignFlowTaskVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/vo/FlowMy.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/ActivitiDefinition.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/ActivitiSignExamine.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/ext/ActTaskExt.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/ActivitiDefinitionMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/ActivitiSignExamineMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/ToEquipmentTaskMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IActivitiDefinitionService.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IActivitiSignExamineService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IToEquipmentTaskService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/ActivitiDefinitionServiceImpl.java 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/ActivitiSignExamineServiceimpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/ToEquipmentTaskServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/FlowMyBusinessMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/service/FlowCommonService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/config/FlowableConfig.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/listener/UserTaskListener.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/IFlowTaskService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowDefinitionServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/model/MdcEquipmentTree.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/dncFlow/FlowThirdServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/MdcProductionController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/DncDevicePermission.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcProductionService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/DncDevicePermissionServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
    }
}
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));
    }
}
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);
    }
}
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);
    }
}
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;
    //工序或工步id
    @TableField(value = "process_step_id")
    private String processStepId;
    @Excel(name = "所属业务id", 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;
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;
}
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;
    //工序或工步id
    @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;
}
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
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) {
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
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> {
}
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);
}
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> {
}
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>
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>
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);
}
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和业务类型获取权限
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
     */
}
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);
}
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);
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);
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);
    }
}
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);
    }
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;
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);
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;
    }
    /**
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;
    }
}
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();
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) {
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());
    }
}
}
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);
    }
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; }
    }
}
}
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamController.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamFlowController.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/AssignFileStream.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/HisWorkTask.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/ToEquipmentTask.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/UserRole.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/WorkTaskData.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/WorkTaskDataVo.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/ext/AssignFileStreamExt.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/AssignFileStreamMapper.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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> {
    /**
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/IHisWorkTaskMapper.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/IWorkTaskMapper.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/IWorkTaskVoMapper.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/PlmCommonUtilsMapper.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
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> {
}
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/AssignFileStreamMapper.xml
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/HisWorkTaskMapper.xml
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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,
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/PlmCommonUtilsMapper.xml
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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">
      <!-- ã€vue3专用】 -->
    <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
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/WorkTaskMapper.xml
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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>
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/WorkTaskVoMapper.xml
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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>
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/ActivitiDefinitionRequest.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/request/ActivitiDefinitionRequest.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package org.jeecg.modules.flow.request;
package org.jeecg.modules.dncFlow.request;
import lombok.Data;
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/ApproveBatchRequest.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/AssignFileRequest.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/AssignFileStreamQueryRequest.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/request/TaskRequest.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IAssignFileStreamService.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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> {
    /**
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IHisWorkTaskService.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IPlmCommonUtilsService.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
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> {
}
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IWorkTaskService.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/IWorkTaskServiceVo.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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> {
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/AssignFileStreamServiceImpl.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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) {
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/HisWorkTaskServiceImpl.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/PlmCommonUtilsServiceImpl.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
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 {
}
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/WorkTaskServiceImpl.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/WorkTaskServiceImplVo.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/vo/AssignFlowTaskVo.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/vo/FlowMy.java
ÎļþÃû´Ó lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/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;
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/ActivitiDefinition.java
ÎļþÒÑɾ³ý
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/entity/ActivitiSignExamine.java
ÎļþÒÑɾ³ý
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/ext/ActTaskExt.java
ÎļþÒÑɾ³ý
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/ActivitiDefinitionMapper.java
ÎļþÒÑɾ³ý
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/ActivitiSignExamineMapper.java
ÎļþÒÑɾ³ý
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/mapper/ToEquipmentTaskMapper.java
ÎļþÒÑɾ³ý
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IActivitiDefinitionService.java
ÎļþÒÑɾ³ý
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IActivitiSignExamineService.java
ÎļþÒÑɾ³ý
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/IToEquipmentTaskService.java
ÎļþÒÑɾ³ý
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/ActivitiDefinitionServiceImpl.java
ÎļþÒÑɾ³ý
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/ActivitiSignExamineServiceimpl.java
ÎļþÒÑɾ³ý
lxzn-module-dnc/src/main/java/org/jeecg/modules/flow/service/impl/ToEquipmentTaskServiceImpl.java
ÎļþÒÑɾ³ý
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);
}
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_
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);
}
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);
    }
}
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;
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:activiti在启动时,会对比数据库表中保存的版本,如果没有表或者版本不匹配,将抛出异常。(生产环境常用)
        //true: activiti会对数据库中所有表进行更新操作。如果表不存在,则自动创建。(开发时常用)
        config.setDatabaseSchemaUpdate("true");
        return config.buildEventRegistryEngine();
    }
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;
/**
 */
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;
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);
    }
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;
    }
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/dncFlow/FlowThirdServiceImpl.java
ÎļþÃû´Ó lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/flow/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;
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")
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;
    }
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);
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())) {
            // ç®¡ç†å‘˜æ–°å¢ž
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
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:默认值。activiti在启动时,对比数据库表中保存的版本,如果没有表或者版本不匹配,将抛出异常
#    #2.true: activiti会对数据库中所有表进行更新操作。如果表不存在,则自动创建
#    #3.create_drop: åœ¨activiti启动时创建表,在关闭时删除表(必须手动关闭引擎,才能删除表)
#    #4.drop-create: åœ¨activiti启动时删除原来的旧表,然后在创建新表(不需要手动关闭引擎)
#    database-schema-update: true
#    # æ£€æµ‹åŽ†å²ä¿¡æ¯è¡¨æ˜¯å¦å­˜åœ¨ï¼Œactiviti7默认不生成历史信息表,开启历史表
#    db-history-used: true
#    # åŽ†å²è®°å½•å­˜å‚¨ç­‰çº§
#    history-level: full
#    check-process-definitions: true
#    #在流程引擎启动就激活AsyncExecutor,异步 true  false å…³é—­  ï¼ˆåˆ‡è®°å…³é—­ï¼‰
#    async-executor-activate: false
#    async-executor-enabled: true
flowable:
  enable: true
  #关闭定时任务JOB