Эх сурвалжийг харах

第一道工序排程后才能报工

yzc 10 сар өмнө
parent
commit
be07747883

+ 4 - 4
hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionScheduling.java

@@ -47,9 +47,9 @@ public class ProductionScheduling extends BasePo {
      */
     private Long companyId;
 
-    /**
-     * 排程完成数
-     */
-    private Integer finishQuantity;
+//    /**
+//     * 排程完成数
+//     */
+//    private Integer finishQuantity;
 
 }

+ 20 - 16
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionReportingServiceImpl.java

@@ -18,6 +18,7 @@ import com.fjhx.mes.mapper.production.ProductionReportingMapper;
 import com.fjhx.mes.service.production.*;
 import com.fjhx.mes.service.technology.TechnologyProcessLineService;
 import com.ruoyi.common.core.domain.BasePo;
+import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.system.utils.UserUtil;
@@ -120,6 +121,25 @@ public class ProductionReportingServiceImpl extends ServiceImpl<ProductionReport
         Long companyId = SecurityUtils.getCompanyId();
         dto.setCompanyId(companyId);
 
+        //获取工艺信息
+        ProductionOrderDetail productionOrderDetail = produceOrderDetailService.getById(productionTaskId);
+        Assert.notEmpty(productionOrderDetail, "查询不到生产任务信息!");
+        ProductInfo productInfo = productInfoService.getById(productionOrderDetail.getProductId());
+        Assert.notEmpty(productInfo, "查询不到生产产品信息!");
+        Long technologyId = productInfo.getTechnologyId();
+
+        //获取第一道工序信息
+        TechnologyProcessLine oneProcessInfo = technologyProcessLineService.getOne(q -> q
+                .eq(TechnologyProcessLine::getTechnologyId, technologyId)
+                .eq(TechnologyProcessLine::getSourceProcessesId, 1)
+        );
+        Assert.notEmpty(oneProcessInfo, "获取第一道工序信息失败!");
+
+        //检查第一道工序是否排程
+        if (productionSchedulingService.count(q -> q.eq(ProductionScheduling::getTaskId, productionTaskId).eq(ProductionScheduling::getProcessesId, oneProcessInfo.getTargetProcessesId())) <= 0) {
+            throw new ServiceException("第一道工序未排程,禁止报工!");
+        }
+
         //获取工序信息
         ProductionProcesses productionProcesses = productionProcessesService.getById(productionProcessesId);
         Assert.notEmpty(productionProcesses, "查询不到工序信息!");
@@ -172,23 +192,7 @@ public class ProductionReportingServiceImpl extends ServiceImpl<ProductionReport
                 .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
         );
 
-        //更新排程信息
-        productionSchedulingService.update(q -> q
-                .eq(ProductionScheduling::getTaskId, productionTaskId)
-                .eq(ProductionScheduling::getProcessesId, productionProcessesId)
-                .setSql("finish_quantity = finish_quantity + " + dto.getQuantity())
-                .set(BasePo::getUpdateTime, newDateTime)
-                .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
-        );
-
-
         //更新完工数量
-        ProductionOrderDetail productionOrderDetail = produceOrderDetailService.getById(productionTaskId);
-        Assert.notEmpty(productionOrderDetail, "查询不到生产任务信息!");
-        ProductInfo productInfo = productInfoService.getById(productionOrderDetail.getProductId());
-        Assert.notEmpty(productInfo, "查询不到生产产品信息!");
-        Long technologyId = productInfo.getTechnologyId();
-
         //更新下一工序结存数量
         List<Long> nextProcessIds = technologyProcessLineService.listObject(TechnologyProcessLine::getTargetProcessesId, q -> q
                 .eq(TechnologyProcessLine::getTechnologyId, technologyId)

+ 1 - 5
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionSchedulingServiceImpl.java

@@ -176,15 +176,11 @@ public class ProductionSchedulingServiceImpl extends ServiceImpl<ProductionSched
         }
     }
 
+    @DSTransactional
     @Override
     public void delete(Long id) {
         ProductionScheduling oldPs = this.getById(id);
         Assert.notEmpty(oldPs, "查询不到排程信息!");
-
-        if (oldPs.getFinishQuantity() > 0) {
-            throw new ServiceException("该排程已有完工信息,禁止删除!");
-        }
-
         this.removeById(id);
 
         //删除生产领料待出库

+ 19 - 13
hx-mes/src/main/resources/mapper/production/ProductionTaskProgressMapper.xml

@@ -29,21 +29,27 @@
                        WHERE ps.task_id = pod.id
                          AND ps.processes_id = ptp.processes_id
                          AND DATEDIFF(ps.scheduling_date, now()) = - 1), 0) as yesterdaySchedulingQuantity,
-               IFNULL((SELECT sum(finish_quantity)
-                       FROM production_scheduling ps
-                       WHERE ps.task_id = pod.id
-                         AND ps.processes_id = ptp.processes_id
-                         AND DATEDIFF(ps.scheduling_date, now()) = - 1), 0) as yesterdayFinishQuantity,
+               IFNULL((SELECT SUM(pr.quantity)
+                       FROM production_reporting pr
+                       WHERE pr.production_task_id = pod.id
+                         AND pr.production_processes_id = ptp.processes_id
+                         AND DATEDIFF(
+                                     DATE( pr.create_time ),
+	DATE(
+	now())) = -1), 0)      as yesterdayFinishQuantity,
                IFNULL((SELECT sum(quantity)
                        FROM production_scheduling ps
                        WHERE ps.task_id = pod.id
                          AND ps.processes_id = ptp.processes_id
                          AND DATEDIFF(ps.scheduling_date, now()) = 0), 0)   as todaySchedulingQuantity,
-               IFNULL((SELECT sum(finish_quantity)
-                       FROM production_scheduling ps
-                       WHERE ps.task_id = pod.id
-                         AND ps.processes_id = ptp.processes_id
-                         AND DATEDIFF(ps.scheduling_date, now()) = 0), 0)   as todayFinishQuantity,
+               IFNULL((SELECT SUM(pr.quantity)
+                       FROM production_reporting pr
+                       WHERE pr.production_task_id = pod.id
+                         AND pr.production_processes_id = ptp.processes_id
+                         AND DATEDIFF(
+                                     DATE( pr.create_time ),
+	DATE(
+	now())) = 0), 0)       as todayFinishQuantity,
                IFNULL((SELECT sum(quantity)
                        FROM production_scheduling ps
                        WHERE ps.task_id = pod.id
@@ -59,9 +65,9 @@
     <select id="workshopReportStatistics"
             resultType="com.fjhx.mes.entity.production.vo.ProductionTaskProgressVo">
         SELECT ptp.processes_id,
-               pp.`name`                          AS progressName,
-               IFNULL(sum(ps.quantity), 0)        AS quantity,
-               IFNULL(sum(ps.finish_quantity), 0) AS finishQuantity
+               pp.`name`                           AS progressName,
+               IFNULL(sum(ps.quantity), 0)         AS quantity,
+               IFNULL(sum(ptp.finish_quantity), 0) AS finishQuantity
         FROM production_task_progress ptp
                  LEFT JOIN production_processes pp ON ptp.processes_id = pp.id
                  LEFT JOIN production_order_detail pod ON ptp.task_id = pod.id