From 7a44a373f7a7cc190d6ff35d7be23f32851689a9 Mon Sep 17 00:00:00 2001 From: wangcl Date: Tue, 22 Feb 2022 17:08:44 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=93=8D=E4=BD=9C=E5=AE=8C?= =?UTF-8?q?=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusiProductRequireController.java | 5 +- .../java/com/ruoyi/busi/domain/BusiOrder.java | 6 +- .../impl/BusiProductOperateServiceImpl.java | 78 +++++++++++++++---- .../resources/templates/busi/order/add.html | 4 +- .../resources/templates/busi/order/order.html | 12 ++- .../templates/busi/productRequire/add.html | 6 +- 6 files changed, 83 insertions(+), 28 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiProductRequireController.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiProductRequireController.java index bdec7dfcc..81587213b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiProductRequireController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiProductRequireController.java @@ -71,8 +71,11 @@ public class BusiProductRequireController extends BaseController * 新增产品需求 */ @GetMapping("/add") - public String add() + public String add(@RequestParam(name = "orderId", required = false)String orderId, + @RequestParam(name = "orderName", required = false)String orderName, ModelMap mmap) { + mmap.put("orderId",orderId); + mmap.put("orderName",orderName); return prefix + "/add"; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiOrder.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiOrder.java index 8f89af2ad..60818bc91 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiOrder.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiOrder.java @@ -37,7 +37,7 @@ public class BusiOrder extends BaseEntity /** 订单价格 */ @Excel(name = "订单价格") - private double price; + private Double price; /** 类型 */ @Excel(name = "类型") @@ -137,11 +137,11 @@ public class BusiOrder extends BaseEntity this.busiProductRequireList = busiProductRequireList; } - public double getPrice() { + public Double getPrice() { return price; } - public void setPrice(double price) { + public void setPrice(Double price) { this.price = price; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiProductOperateServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiProductOperateServiceImpl.java index 0c6f83c32..d3f603878 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiProductOperateServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiProductOperateServiceImpl.java @@ -1,21 +1,18 @@ package com.ruoyi.busi.service.impl; -import java.math.BigDecimal; import java.util.Date; import java.util.List; import java.util.Map; import com.ruoyi.busi.domain.*; -import com.ruoyi.busi.mapper.BusiOrderMapper; -import com.ruoyi.busi.mapper.BusiProductStockMapper; -import com.ruoyi.busi.mapper.BusiSubTaskMapper; +import com.ruoyi.busi.mapper.*; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ruoyi.busi.mapper.BusiProductOperateMapper; import com.ruoyi.busi.service.IBusiProductOperateService; import com.ruoyi.common.core.text.Convert; +import org.springframework.transaction.annotation.Transactional; /** * 成品操作流水Service业务层处理 @@ -36,6 +33,12 @@ public class BusiProductOperateServiceImpl implements IBusiProductOperateService @Autowired private BusiSubTaskMapper subTaskMapper; + @Autowired + private BusiTaskMapper taskMapper; + + @Autowired + private BusiPrisonLineMapper busiPrisonLineMapper; + /** * 查询成品操作流水 * @@ -59,12 +62,13 @@ public class BusiProductOperateServiceImpl implements IBusiProductOperateService } /** - * 新增成品操作流水 + * 新增成品操作 * * @param busiProductOperate 成品操作流水 * @return 结果 */ @Override + @Transactional(rollbackFor = Exception.class) public int insertBusiProductOperate(BusiProductOperate busiProductOperate) { List busiProductStocks = queryBusiProductStocks(busiProductOperate); busiProductOperate.setProductValue(cacuValue(busiProductOperate)); @@ -109,20 +113,64 @@ public class BusiProductOperateServiceImpl implements IBusiProductOperateService return busiProductOperateMapper.insertBusiProductOperate(busiProductOperate); } + /** + * 更新子任务完成量,并处理子任务状态 + * @param subTaskId + * @param operateAmount + */ private void updateCompletedAmount(String subTaskId, long operateAmount) { BusiSubTask busiSubTask = subTaskMapper.selectBusiSubTaskById(subTaskId); long completedAmount = busiSubTask.getCompletedAmount(); - if (operateAmount > 0) {// 若果操作为入库 - if(completedAmount > busiSubTask.getTargetAmount()){ - busiSubTask.setStatus("2"); //子任务完成 - //若子任务为完成,检查任务是否完成,任务若完成,则更新状态同时释放产线为空闲 - //若任务完成,则同时要检查订单状态,若订单所有任务完成,更新订单状态为生产完成。 - } - } - - busiSubTask.setCompletedAmount(completedAmount + operateAmount); subTaskMapper.updateBusiSubTask(busiSubTask); // 更新子任务完成量 + + if (operateAmount > 0) {// 若果操作为入库,还要处理完成状态 + if (completedAmount > busiSubTask.getTargetAmount()) {// 若子任务为完成 + busiSubTask.setStatus("2"); //子任务完成 + subTaskMapper.updateBusiSubTask(busiSubTask);// 更新当前子任务状态 + handleTaskStatus(busiSubTask);// 处理任务状态 + } + } + } + + /** + * 处理任务状态 + * @param busiSubTask + */ + private void handleTaskStatus(BusiSubTask busiSubTask) { + BusiSubTask subTaskQuery = new BusiSubTask(); + subTaskQuery.setTaskId(busiSubTask.getTaskId()); + subTaskQuery.setStatus("1"); // 查询任务下所有未完成的子任务 + List busiSubTasks = subTaskMapper.selectBusiSubTaskList(subTaskQuery); + if (busiSubTasks.size() == 0) {//检查任务是否完成(查全部子任务),任务若完成,则更新状态同时释放产线为空闲 + BusiTask busiTask = taskMapper.selectBusiTaskById(busiSubTask.getTaskId()); + busiTask.setStatus("2"); + taskMapper.updateBusiTask(busiTask);// 任务更新为完成 + + BusiPrisonLine busiPrisonLine = new BusiPrisonLine(); + busiPrisonLine.setId(busiTask.getPrisonLineId()); + busiPrisonLine.setStatus("0");// 产线状态设置为空闲 + busiPrisonLineMapper.updateBusiPrisonLine(busiPrisonLine);//产线更新 + + handleOrderStatus(busiTask);//处理订单状态 + } + } + + /** + * 处理订单状态 + * @param busiTask + */ + private void handleOrderStatus(BusiTask busiTask) { + BusiTask taskQuery = new BusiTask(); + taskQuery.setOrderId(busiTask.getOrderId()); + taskQuery.setStatus("1");// 未完成状态 + List busiTasks = taskMapper.selectBusiTaskList(taskQuery); + if (busiTasks.size() == 0) { //检查订单状态,若订单所有任务完成,更新订单状态为生产完成。 + BusiOrder busiOrder = new BusiOrder(); + busiOrder.setId(busiTask.getOrderId()); + busiOrder.setStatus("3"); //完成 + busiOrderMapper.updateBusiOrder(busiOrder); + } } /** diff --git a/ruoyi-admin/src/main/resources/templates/busi/order/add.html b/ruoyi-admin/src/main/resources/templates/busi/order/add.html index e80d11039..8d267016b 100644 --- a/ruoyi-admin/src/main/resources/templates/busi/order/add.html +++ b/ruoyi-admin/src/main/resources/templates/busi/order/add.html @@ -133,7 +133,7 @@ align: 'center', title: '数量', formatter: function(value, row, index) { - var html = $.common.sprintf("", index, value); + var html = $.common.sprintf("", index, value); return html; } }, @@ -160,7 +160,7 @@ align: 'center', title: '截止日期', formatter: function(value, row, index) { - var html = $.common.sprintf("", index, value); + var html = $.common.sprintf("", index, value); return html; } diff --git a/ruoyi-admin/src/main/resources/templates/busi/order/order.html b/ruoyi-admin/src/main/resources/templates/busi/order/order.html index 7fd60ac9c..80de85994 100644 --- a/ruoyi-admin/src/main/resources/templates/busi/order/order.html +++ b/ruoyi-admin/src/main/resources/templates/busi/order/order.html @@ -124,9 +124,13 @@ align: 'center', formatter: function(value, row, index) { var actions = []; - actions.push('编辑 '); + if(row.status != '3'){// 非完成状态 + actions.push('编辑 '); + var content = '产品需求 '; + actions.push($.common.sprintf(content,row.id,row.orderName,row.id,row.orderName)); + } actions.push('删除'); - actions.push('新增 '); + return actions.join(''); } }] @@ -153,8 +157,8 @@ $.table.search(); } - function addProduct(id,name){ - var addUrl = ctx + "busi/productRequire/add" + function addProduct(id,name,orderId,orderName){ + var addUrl = ctx + "busi/productRequire/add?orderId="+id+"&orderName="+orderName $.modal.open( name + ",添加产品需求", addUrl); } diff --git a/ruoyi-admin/src/main/resources/templates/busi/productRequire/add.html b/ruoyi-admin/src/main/resources/templates/busi/productRequire/add.html index 0ea9d5d0b..203011774 100644 --- a/ruoyi-admin/src/main/resources/templates/busi/productRequire/add.html +++ b/ruoyi-admin/src/main/resources/templates/busi/productRequire/add.html @@ -11,8 +11,8 @@
- - + +
@@ -130,7 +130,7 @@ align: 'center', title: '数量', formatter: function(value, row, index) { - var html = $.common.sprintf("", index, value); + var html = $.common.sprintf("", index, value); return html; } },