yzc 1 سال پیش
والد
کامیت
f0b472f17d

+ 9 - 5
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionProcessesServiceImpl.java

@@ -83,14 +83,14 @@ public class ProductionProcessesServiceImpl extends ServiceImpl<ProductionProces
     @Override
     public void edit(ProductionProcessesDto productionProcessesDto) {
         List<ObsFile> fileList = productionProcessesDto.getFileList();
-        if(fileList.size()>0) {
+        if (fileList.size() > 0) {
             ObsFile obsFile = fileList.get(0);
             productionProcessesDto.setFileName(obsFile.getFileName());
-        }else{
+        } else {
             productionProcessesDto.setFileName(null);
         }
         this.updateById(productionProcessesDto);
-        baseMapper.updateFileName(productionProcessesDto.getId(),productionProcessesDto.getFileName());
+        baseMapper.updateFileName(productionProcessesDto.getId(), productionProcessesDto.getFileName());
         ObsFileUtil.editFile(productionProcessesDto.getFileList(), productionProcessesDto.getId());
     }
 
@@ -105,7 +105,7 @@ public class ProductionProcessesServiceImpl extends ServiceImpl<ProductionProces
      * 根据工单详细获取基本工序
      */
     @Override
-    public List<ProductionProcesses> getBaseProductionProcessesList(WorkOrder workOrder){
+    public List<ProductionProcesses> getBaseProductionProcessesList(WorkOrder workOrder) {
         ApplicableProducts applicableProducts = applicableProductsService.getOne(q -> q.eq(ApplicableProducts::getProductId, workOrder.getProductId()));
         if (ObjectUtil.isEmpty(applicableProducts)) {
             throw new ServiceException("未找到适用于该产品的工艺信息");
@@ -119,7 +119,11 @@ public class ProductionProcessesServiceImpl extends ServiceImpl<ProductionProces
             throw new ServiceException("工艺线路为空");
         }
         String[] split = processRoute.split(",");
-        return this.list(q -> q.in(ProductionProcesses::getId, split));
+        //查询工序并自定义排序
+        IWrapper<ProductionProcesses> wrapper = IWrapper.getWrapper();
+        wrapper.in(ProductionProcesses::getId, split);
+        wrapper.orderByAsc("FIELD( id, " + processRoute + ")");
+        return this.list(wrapper);
     }
 
 }

+ 11 - 2
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskDetailServiceImpl.java

@@ -167,9 +167,13 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
      */
     @Override
     @DSTransactional
-    public void circulation(ProductionTaskDetailDto dto) {
+    public synchronized void circulation(ProductionTaskDetailDto dto) {
         ProductionTaskDetail productionTaskDetail = this.getById(dto.getId());
 
+        if(Objects.equals(productionTaskDetail.getCirculationStatus(),1)){
+            throw new ServiceException("该任务已被提交,请重试或刷新!");
+        }
+
         //修改流转状态
         productionTaskDetail.setCirculationStatus(1);
         //赋值流转人id
@@ -232,11 +236,16 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
      */
     @Override
     @DSTransactional
-    public void productStorage(ProductionTaskDetailDto productionTaskDetailDto) {
+    public synchronized void productStorage(ProductionTaskDetailDto productionTaskDetailDto) {
         ProductionTaskDetail productionTaskDetail = getById(productionTaskDetailDto.getId());
         if (ObjectUtil.isEmpty(productionTaskDetail)) {
             throw new ServiceException("未查询到任务明细信息");
         }
+
+        if(Objects.equals(productionTaskDetail.getFinishStatus(),1)){
+            throw new ServiceException("该任务已完工入库,请重试或刷新!");
+        }
+
         productionTaskDetail.setFinishStatus(1);//标记为完成
         productionTaskDetail.setFinishTime(new Date());//记录完成时间
 

+ 0 - 14
hx-mes/src/main/java/com/fjhx/mes/service/work/impl/WorkOrderProductionProcessesServiceImpl.java

@@ -60,20 +60,6 @@ public class WorkOrderProductionProcessesServiceImpl extends ServiceImpl<WorkOrd
         //如果定制工序信息为空就获取基础工艺工序信息
         if (ObjectUtil.isEmpty(workOrderProductionProcessesList)) {
             List<ProductionProcesses> productionProcesses = productionProcessesService.getBaseProductionProcessesList(workOrder);
-//            ApplicableProducts applicableProducts = applicableProductsService.getOne(q -> q.eq(ApplicableProducts::getProductId, workOrder.getProductId()));
-//            if (ObjectUtil.isEmpty(applicableProducts)) {
-//                throw new ServiceException("未找到适用于该产品的工艺信息");
-//            }
-//            Technology technology = technologyService.getById(applicableProducts.getTechnologyId());
-//            if (ObjectUtil.isEmpty(technology)) {
-//                throw new ServiceException("工艺信息不存在");
-//            }
-//            String processRoute = technology.getProcessRoute();
-//            if (ObjectUtil.isEmpty(processRoute)) {
-//                throw new ServiceException("工艺线路为空");
-//            }
-//            String[] split = processRoute.split(",");
-//            List<ProductionProcesses> productionProcesses = productionProcessesService.list(q -> q.in(ProductionProcesses::getId, split));
             List<WorkOrderProductionProcessesVo> workOrderProductionProcessesList0 = BeanUtil.copyToList(productionProcesses, WorkOrderProductionProcessesVo.class);
             int i = 0;
             for (WorkOrderProductionProcessesVo workOrderProductionProcesses : workOrderProductionProcessesList0) {