yzc 1 жил өмнө
parent
commit
d4f54b3bff

+ 2 - 1
hx-jxst/src/main/java/com/fjhx/jxst/flow/SalesContractFlow.java

@@ -20,6 +20,7 @@ import com.fjhx.wms.service.stock.StockService;
 import com.fjhx.wms.service.stock.StockWaitDetailsService;
 import com.fjhx.wms.service.stock.StockWaitService;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -72,7 +73,7 @@ public class SalesContractFlow extends FlowDelegate {
 
             //非定制工单查询库存如果存在库存需要人工干预是否需要生产
             BigDecimal availableStockQuantity = stockService.getAvailableStockQuantity(salesContractDetails.getProductId());
-            if(Objects.equals(salesContractDetails.getIsCustomized(),0) && availableStockQuantity.compareTo(BigDecimal.ZERO)>0){
+            if("0".equals(salesContractDetails.getIsCustomized()) && availableStockQuantity.compareTo(BigDecimal.ZERO)>0){
                 workOrder.setProductionQuantity(null);
             }
 

+ 22 - 17
hx-mes/src/main/java/com/fjhx/mes/service/work/impl/WorkOrderServiceImpl.java

@@ -270,25 +270,30 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
         Page<WorkOrderVo> page = getPage(dto);
         List<WorkOrderVo> records = page.getRecords();
         for (WorkOrderVo workOrderVo : records) {
-            //赋值已计划数量
-            workOrderVo.setArrangedQuantity(workOrderVo.getProductionQuantity().subtract(workOrderVo.getRemainingQuantity()));
-            //赋值完成率
-            long count = 0;
-            //获取工单下的所有计划
-            List<Long> productionPlanIds = productionPlanService.listObject(ProductionPlan::getId,
-                    q -> q.eq(ProductionPlan::getWorkOrderId, workOrderVo.getId()));
-            if (ObjectUtil.isNotEmpty(productionPlanIds)) {
-                //获取计划下的所有任务
-                List<Long> productionTaskIds = productionTaskService.listObject(ProductionTask::getId,
-                        q -> q.in(ProductionTask::getProductionPlanId, productionPlanIds));
-                if (ObjectUtil.isNotEmpty(productionTaskIds)) {
-                    count = productionTaskDetailService.count(q ->
-                            q.in(ProductionTaskDetail::getProductionTaskId, productionTaskIds)
-                                    .eq(ProductionTaskDetail::getFinishStatus, 1));
+            workOrderVo.setArrangedQuantity(BigDecimal.ZERO);
+            workOrderVo.setCompletionRate(BigDecimal.ZERO);
+
+            if(ObjectUtil.isNotEmpty(workOrderVo.getProductionQuantity())) {
+                //赋值已计划数量
+                workOrderVo.setArrangedQuantity(workOrderVo.getProductionQuantity().subtract(workOrderVo.getRemainingQuantity()));
+                //赋值完成率
+                long count = 0;
+                //获取工单下的所有计划
+                List<Long> productionPlanIds = productionPlanService.listObject(ProductionPlan::getId,
+                        q -> q.eq(ProductionPlan::getWorkOrderId, workOrderVo.getId()));
+                if (ObjectUtil.isNotEmpty(productionPlanIds)) {
+                    //获取计划下的所有任务
+                    List<Long> productionTaskIds = productionTaskService.listObject(ProductionTask::getId,
+                            q -> q.in(ProductionTask::getProductionPlanId, productionPlanIds));
+                    if (ObjectUtil.isNotEmpty(productionTaskIds)) {
+                        count = productionTaskDetailService.count(q ->
+                                q.in(ProductionTaskDetail::getProductionTaskId, productionTaskIds)
+                                        .eq(ProductionTaskDetail::getFinishStatus, 1));
+                    }
                 }
+                BigDecimal divide = BigDecimal.valueOf(count).divide(workOrderVo.getProductionQuantity(), 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
+                workOrderVo.setCompletionRate(divide);
             }
-            BigDecimal divide = BigDecimal.valueOf(count).divide(workOrderVo.getProductionQuantity(), 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
-            workOrderVo.setCompletionRate(divide);
         }
         return page;
     }