From bdcf096d99ed56e408f95c6e50fe593820735aed Mon Sep 17 00:00:00 2001 From: wangcl Date: Mon, 10 Jan 2022 14:09:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=90=E5=93=81=E5=BA=93=E5=AD=98=E5=92=8C?= =?UTF-8?q?=E6=88=90=E5=93=81=E6=93=8D=E4=BD=9C=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BusiSubTaskController.java | 126 +++++++++++++++ .../java/com/ruoyi/busi/domain/BusiOrder.java | 18 +-- .../ruoyi/busi/domain/BusiProductOperate.java | 72 +++++++-- .../ruoyi/busi/domain/BusiProductStock.java | 15 +- .../com/ruoyi/busi/domain/BusiSubTask.java | 8 +- .../ruoyi/busi/mapper/BusiSubTaskMapper.java | 61 ++++++++ .../busi/service/IBusiSubTaskService.java | 61 ++++++++ .../impl/BusiMaterialOperateServiceImpl.java | 29 ++-- .../impl/BusiProductOperateServiceImpl.java | 123 ++++++++++++--- .../service/impl/BusiSubTaskServiceImpl.java | 96 ++++++++++++ .../mapper/busi/BusiProductOperateMapper.xml | 21 ++- .../mapper/busi/BusiProductStockMapper.xml | 12 +- .../mapper/busi/BusiSubTaskMapper.xml | 85 ++++++++++ .../busi/materialperate/materialperate.html | 2 +- .../productOperate/{add.html => addIn.html} | 8 +- .../templates/busi/productOperate/addOut.html | 144 +++++++++++++++++ .../busi/productOperate/productOperate.html | 147 +++++++++++++++--- .../busi/productStock/productStock.html | 62 +++++--- .../resources/templates/busi/subtask/add.html | 59 +++++++ .../templates/busi/subtask/edit.html | 60 +++++++ .../templates/busi/subtask/subtask.html | 121 ++++++++++++++ 21 files changed, 1213 insertions(+), 117 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiSubTaskController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiSubTaskMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiSubTaskService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiSubTaskServiceImpl.java create mode 100644 ruoyi-admin/src/main/resources/mapper/busi/BusiSubTaskMapper.xml rename ruoyi-admin/src/main/resources/templates/busi/productOperate/{add.html => addIn.html} (93%) create mode 100644 ruoyi-admin/src/main/resources/templates/busi/productOperate/addOut.html create mode 100644 ruoyi-admin/src/main/resources/templates/busi/subtask/add.html create mode 100644 ruoyi-admin/src/main/resources/templates/busi/subtask/edit.html create mode 100644 ruoyi-admin/src/main/resources/templates/busi/subtask/subtask.html diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiSubTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiSubTaskController.java new file mode 100644 index 000000000..4339e27ca --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiSubTaskController.java @@ -0,0 +1,126 @@ +package com.ruoyi.busi.controller; + +import java.util.List; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.busi.domain.BusiSubTask; +import com.ruoyi.busi.service.IBusiSubTaskService; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 产品子任务Controller + * + * @author WangCL + * @date 2022-01-10 + */ +@Controller +@RequestMapping("/busi/subtask") +public class BusiSubTaskController extends BaseController +{ + private String prefix = "busi/subtask"; + + @Autowired + private IBusiSubTaskService busiSubTaskService; + + @RequiresPermissions("busi:subtask:view") + @GetMapping() + public String subtask() + { + return prefix + "/subtask"; + } + + /** + * 查询产品子任务列表 + */ + @RequiresPermissions("busi:subtask:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(BusiSubTask busiSubTask) + { + startPage(); + List list = busiSubTaskService.selectBusiSubTaskList(busiSubTask); + return getDataTable(list); + } + + /** + * 导出产品子任务列表 + */ + @RequiresPermissions("busi:subtask:export") + @Log(title = "产品子任务", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ResponseBody + public AjaxResult export(BusiSubTask busiSubTask) + { + List list = busiSubTaskService.selectBusiSubTaskList(busiSubTask); + ExcelUtil util = new ExcelUtil(BusiSubTask.class); + return util.exportExcel(list, "产品子任务数据"); + } + + /** + * 新增产品子任务 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存产品子任务 + */ + @RequiresPermissions("busi:subtask:add") + @Log(title = "产品子任务", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(BusiSubTask busiSubTask) + { + return toAjax(busiSubTaskService.insertBusiSubTask(busiSubTask)); + } + + /** + * 修改产品子任务 + */ + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") String id, ModelMap mmap) + { + BusiSubTask busiSubTask = busiSubTaskService.selectBusiSubTaskById(id); + mmap.put("busiSubTask", busiSubTask); + return prefix + "/edit"; + } + + /** + * 修改保存产品子任务 + */ + @RequiresPermissions("busi:subtask:edit") + @Log(title = "产品子任务", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(BusiSubTask busiSubTask) + { + return toAjax(busiSubTaskService.updateBusiSubTask(busiSubTask)); + } + + /** + * 删除产品子任务 + */ + @RequiresPermissions("busi:subtask:remove") + @Log(title = "产品子任务", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(busiSubTaskService.deleteBusiSubTaskByIds(ids)); + } +} 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 a32752b70..8f89af2ad 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 BigDecimal price; + private double price; /** 类型 */ @Excel(name = "类型") @@ -90,15 +90,7 @@ public class BusiOrder extends BaseEntity { return identificationCode; } - public void setPrice(BigDecimal price) - { - this.price = price; - } - public BigDecimal getPrice() - { - return price; - } public void setClassify(String classify) { this.classify = classify; @@ -145,6 +137,14 @@ public class BusiOrder extends BaseEntity this.busiProductRequireList = busiProductRequireList; } + public double getPrice() { + return price; + } + + public void setPrice(double price) { + this.price = price; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiProductOperate.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiProductOperate.java index a676e272c..0902fbd9b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiProductOperate.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiProductOperate.java @@ -26,9 +26,15 @@ public class BusiProductOperate extends BaseEntity /** 任务 */ @Excel(name = "任务") private String taskId; + private String subTaskId; private String orderId; + private String color; + private String size; + private String orderName; + private String lineName; + private String lineId; /** 操作数量 */ @Excel(name = "操作数量") @@ -36,7 +42,7 @@ public class BusiProductOperate extends BaseEntity /** 价值 */ @Excel(name = "价值") - private BigDecimal productValue; + private double productValue; /** 每包数量 */ private Long amountPerPackage; @@ -45,6 +51,38 @@ public class BusiProductOperate extends BaseEntity @Excel(name = "操作类型") private String oprateType; + public String getLineId() { + return lineId; + } + + public void setLineId(String lineId) { + this.lineId = lineId; + } + + public String getOrderName() { + return orderName; + } + + public void setOrderName(String orderName) { + this.orderName = orderName; + } + + public String getLineName() { + return lineName; + } + + public void setLineName(String lineName) { + this.lineName = lineName; + } + + public String getSubTaskId() { + return subTaskId; + } + + public void setSubTaskId(String subTaskId) { + this.subTaskId = subTaskId; + } + public String getOrderId() { return orderId; } @@ -53,6 +91,22 @@ public class BusiProductOperate extends BaseEntity this.orderId = orderId; } + public String getColor() { + return color; + } + + public void setColor(String color) { + this.color = color; + } + + public String getSize() { + return size; + } + + public void setSize(String size) { + this.size = size; + } + public void setId(String id) { this.id = id; @@ -89,15 +143,7 @@ public class BusiProductOperate extends BaseEntity { return amount; } - public void setProductValue(BigDecimal productValue) - { - this.productValue = productValue; - } - public BigDecimal getProductValue() - { - return productValue; - } public void setAmountPerPackage(Long amountPerPackage) { this.amountPerPackage = amountPerPackage; @@ -117,6 +163,14 @@ public class BusiProductOperate extends BaseEntity return oprateType; } + public double getProductValue() { + return productValue; + } + + public void setProductValue(double productValue) { + this.productValue = productValue; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiProductStock.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiProductStock.java index 21e1639a6..fd35ad597 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiProductStock.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiProductStock.java @@ -19,9 +19,12 @@ public class BusiProductStock extends BaseEntity private String id; /** 订单 */ - @Excel(name = "订单") private String orderId; + /** 订单 */ + @Excel(name = "订单") + private String orderName; + /** 数量 */ @Excel(name = "数量") private Long amount; @@ -34,7 +37,15 @@ public class BusiProductStock extends BaseEntity @Excel(name = "颜色") private String color; - public void setId(String id) + public String getOrderName() { + return orderName; + } + + public void setOrderName(String orderName) { + this.orderName = orderName; + } + + public void setId(String id) { this.id = id; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiSubTask.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiSubTask.java index c71972e52..099eb14f5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiSubTask.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiSubTask.java @@ -9,14 +9,14 @@ import com.ruoyi.common.core.domain.BaseEntity; * 产品子任务对象 busi_sub_task * * @author WangCL - * @date 2021-12-30 + * @date 2022-01-10 */ public class BusiSubTask extends BaseEntity { private static final long serialVersionUID = 1L; /** ID主键 */ - private Long id; + private String id; /** 任务ID */ @Excel(name = "任务ID") @@ -58,12 +58,12 @@ public class BusiSubTask extends BaseEntity this.color = color; } - public void setId(Long id) + public void setId(String id) { this.id = id; } - public Long getId() + public String getId() { return id; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiSubTaskMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiSubTaskMapper.java new file mode 100644 index 000000000..ae9a6a9af --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiSubTaskMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.busi.mapper; + +import java.util.List; +import com.ruoyi.busi.domain.BusiSubTask; + +/** + * 产品子任务Mapper接口 + * + * @author WangCL + * @date 2022-01-10 + */ +public interface BusiSubTaskMapper +{ + /** + * 查询产品子任务 + * + * @param id 产品子任务主键 + * @return 产品子任务 + */ + public BusiSubTask selectBusiSubTaskById(String id); + + /** + * 查询产品子任务列表 + * + * @param busiSubTask 产品子任务 + * @return 产品子任务集合 + */ + public List selectBusiSubTaskList(BusiSubTask busiSubTask); + + /** + * 新增产品子任务 + * + * @param busiSubTask 产品子任务 + * @return 结果 + */ + public int insertBusiSubTask(BusiSubTask busiSubTask); + + /** + * 修改产品子任务 + * + * @param busiSubTask 产品子任务 + * @return 结果 + */ + public int updateBusiSubTask(BusiSubTask busiSubTask); + + /** + * 删除产品子任务 + * + * @param id 产品子任务主键 + * @return 结果 + */ + public int deleteBusiSubTaskById(String id); + + /** + * 批量删除产品子任务 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBusiSubTaskByIds(String[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiSubTaskService.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiSubTaskService.java new file mode 100644 index 000000000..f29b7d23e --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiSubTaskService.java @@ -0,0 +1,61 @@ +package com.ruoyi.busi.service; + +import java.util.List; +import com.ruoyi.busi.domain.BusiSubTask; + +/** + * 产品子任务Service接口 + * + * @author WangCL + * @date 2022-01-10 + */ +public interface IBusiSubTaskService +{ + /** + * 查询产品子任务 + * + * @param id 产品子任务主键 + * @return 产品子任务 + */ + public BusiSubTask selectBusiSubTaskById(String id); + + /** + * 查询产品子任务列表 + * + * @param busiSubTask 产品子任务 + * @return 产品子任务集合 + */ + public List selectBusiSubTaskList(BusiSubTask busiSubTask); + + /** + * 新增产品子任务 + * + * @param busiSubTask 产品子任务 + * @return 结果 + */ + public int insertBusiSubTask(BusiSubTask busiSubTask); + + /** + * 修改产品子任务 + * + * @param busiSubTask 产品子任务 + * @return 结果 + */ + public int updateBusiSubTask(BusiSubTask busiSubTask); + + /** + * 批量删除产品子任务 + * + * @param ids 需要删除的产品子任务主键集合 + * @return 结果 + */ + public int deleteBusiSubTaskByIds(String ids); + + /** + * 删除产品子任务信息 + * + * @param id 产品子任务主键 + * @return 结果 + */ + public int deleteBusiSubTaskById(String id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiMaterialOperateServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiMaterialOperateServiceImpl.java index 238d074f1..5770e4ce7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiMaterialOperateServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiMaterialOperateServiceImpl.java @@ -70,31 +70,34 @@ public class BusiMaterialOperateServiceImpl implements IBusiMaterialOperateServi } else {// 2为入库 double stockAmount = busiMaterialStock.getAmountIn() - busiMaterialStock.getAmountOut(); if(busiMaterialOperate.getAmount() > stockAmount){ - throw new ServiceException("出库或损耗超过库存,库存值:" + stockAmount); + throw new ServiceException("操作超过库存,库存值:" + stockAmount); } busiMaterialStock.setAmountOut(busiMaterialOperate.getAmount() + busiMaterialStock.getAmountOut()); } - busiMaterialStockMapper.updateBusiMaterialStock(busiMaterialStock); + busiMaterialStockMapper.updateBusiMaterialStock(busiMaterialStock);// 更新库存 } else {// 没有库存则新建 - busiMaterialStock = new BusiMaterialStock(); - busiMaterialStock.setColor(busiMaterialOperate.getColor()); - busiMaterialStock.setClassify(busiMaterialOperate.getClassify()); - busiMaterialStock.setOrderId(busiMaterialOperate.getOrderId()); - busiMaterialStock.setUnit(busiMaterialOperate.getUnit()); - busiMaterialStock.setCreateTime(new Date()); - busiMaterialStock.setCreateBy("system"); - + busiMaterialStock = createBusiMaterialStock(busiMaterialOperate); if ("1".equals(busiMaterialOperate.getOprateType())) { busiMaterialStock.setAmountIn(busiMaterialOperate.getAmount()); } else { throw new ServiceException("尚未建立库存,请先操作物料入库"); } - busiMaterialStockMapper.insertBusiMaterialStock(busiMaterialStock); + busiMaterialStockMapper.insertBusiMaterialStock(busiMaterialStock); // 创建库存 } busiMaterialOperate.setMaterialStockId(busiMaterialStock.getId()); - // 插入操作流水 - return busiMaterialOperateMapper.insertBusiMaterialOperate(busiMaterialOperate); + return busiMaterialOperateMapper.insertBusiMaterialOperate(busiMaterialOperate);// 插入操作 + } + + private BusiMaterialStock createBusiMaterialStock(BusiMaterialOperate busiMaterialOperate) { + BusiMaterialStock busiMaterialStock = new BusiMaterialStock(); + busiMaterialStock.setColor(busiMaterialOperate.getColor()); + busiMaterialStock.setClassify(busiMaterialOperate.getClassify()); + busiMaterialStock.setOrderId(busiMaterialOperate.getOrderId()); + busiMaterialStock.setUnit(busiMaterialOperate.getUnit()); + busiMaterialStock.setCreateTime(new Date()); + busiMaterialStock.setCreateBy("system"); + return busiMaterialStock; } 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 c4c64234e..f13331edc 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,100 +1,179 @@ 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.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.domain.BusiProductOperate; import com.ruoyi.busi.service.IBusiProductOperateService; import com.ruoyi.common.core.text.Convert; /** * 成品操作流水Service业务层处理 - * + * * @author WangCL * @date 2022-01-08 */ @Service -public class BusiProductOperateServiceImpl implements IBusiProductOperateService -{ +public class BusiProductOperateServiceImpl implements IBusiProductOperateService { @Autowired private BusiProductOperateMapper busiProductOperateMapper; + @Autowired + private BusiProductStockMapper busiProductStockMapper; + + @Autowired + private BusiOrderMapper busiOrderMapper; + + @Autowired + private BusiSubTaskMapper subTaskMapper; /** * 查询成品操作流水 - * + * * @param id 成品操作流水主键 * @return 成品操作流水 */ @Override - public BusiProductOperate selectBusiProductOperateById(String id) - { + public BusiProductOperate selectBusiProductOperateById(String id) { return busiProductOperateMapper.selectBusiProductOperateById(id); } /** * 查询成品操作流水列表 - * + * * @param busiProductOperate 成品操作流水 * @return 成品操作流水 */ @Override - public List selectBusiProductOperateList(BusiProductOperate busiProductOperate) - { + public List selectBusiProductOperateList(BusiProductOperate busiProductOperate) { return busiProductOperateMapper.selectBusiProductOperateList(busiProductOperate); } /** * 新增成品操作流水 - * + * * @param busiProductOperate 成品操作流水 * @return 结果 */ @Override - public int insertBusiProductOperate(BusiProductOperate busiProductOperate) - { + public int insertBusiProductOperate(BusiProductOperate busiProductOperate) { + List busiProductStocks = queryBusiProductStocks(busiProductOperate); + busiProductOperate.setProductValue(cacuValue(busiProductOperate)); busiProductOperate.setCreateTime(DateUtils.getNowDate()); + BusiProductStock busiProductStock; + if (busiProductStocks.size() != 0) { + busiProductStock = busiProductStocks.get(0); + if ("1".equals(busiProductOperate.getOprateType())) { //1为入库 + busiProductStock.setAmount(busiProductStock.getAmount() + busiProductOperate.getAmount()); + updateCompletedAmount(busiProductOperate.getSubTaskId(), busiProductOperate.getAmount()); // 更新子任务完成量 + } else {// 出库或退回 + if (busiProductOperate.getAmount() > busiProductStock.getAmount()) { + throw new ServiceException("操作值超过库存,当前库存值:" + busiProductStock.getAmount()); + } + busiProductStock.setAmount(busiProductStock.getAmount() - busiProductOperate.getAmount()); + if ("3".equals(busiProductOperate.getOprateType())) { // 退回时,任务完成值还要减掉退回值,响应的操作值更新为负值,以方便后面统计 + busiProductOperate.setAmount(-busiProductOperate.getAmount()); + busiProductOperate.setProductValue(-busiProductOperate.getProductValue()); + updateCompletedAmount(busiProductOperate.getSubTaskId(), -busiProductOperate.getAmount()); // 更新子任务完成量 + } + } + busiProductStock.setUpdateTime(new Date()); + busiProductStockMapper.updateBusiProductStock(busiProductStock); + } else { + busiProductStock = createBusiProductStock(busiProductOperate); + if ("1".equals(busiProductOperate.getOprateType())) { //1为入库 + busiProductStock.setAmount(busiProductOperate.getAmount()); + long completedAmount = busiProductOperate.getAmount(); + updateCompletedAmount(busiProductOperate.getSubTaskId(), completedAmount); + busiProductStockMapper.insertBusiProductStock(busiProductStock); //插入库存 + } else { // 出库或退回 + throw new ServiceException("尚未建立库存,请先进行入库操作"); + } + } + busiProductOperate.setProductStockId(busiProductStock.getId()); return busiProductOperateMapper.insertBusiProductOperate(busiProductOperate); } + private void updateCompletedAmount(String subTaskId, long operateAmount) { + BusiSubTask busiSubTask = subTaskMapper.selectBusiSubTaskById(subTaskId); + long completedAmount = busiSubTask.getCompletedAmount(); + busiSubTask.setCompletedAmount(completedAmount + operateAmount); + subTaskMapper.updateBusiSubTask(busiSubTask); // 更新子任务完成量 + } + + /** + * 计算产值 + * + * @param busiProductOperate + * @return + */ + private double cacuValue(BusiProductOperate busiProductOperate) { + BusiOrder order = busiOrderMapper.selectBusiOrderById(busiProductOperate.getOrderId()); + double price = order.getPrice(); + double value = busiProductOperate.getAmount() * price; + return value; + } + + private BusiProductStock createBusiProductStock(BusiProductOperate busiProductOperate) { + BusiProductStock busiProductStock; + busiProductStock = new BusiProductStock(); + busiProductStock.setOrderId(busiProductOperate.getOrderId()); + busiProductStock.setColor(busiProductOperate.getColor()); + busiProductStock.setSize(busiProductOperate.getSize()); + busiProductStock.setCreateBy("system"); + busiProductStock.setCreateTime(new Date()); + return busiProductStock; + } + + private List queryBusiProductStocks(BusiProductOperate busiProductOperate) { + BusiProductStock stockQuery = new BusiProductStock(); + stockQuery.setOrderId(busiProductOperate.getOrderId()); + stockQuery.setColor(busiProductOperate.getColor()); + stockQuery.setSize(busiProductOperate.getSize()); + return busiProductStockMapper.selectBusiProductStockList(stockQuery); + } + /** * 修改成品操作流水 - * + * * @param busiProductOperate 成品操作流水 * @return 结果 */ @Override - public int updateBusiProductOperate(BusiProductOperate busiProductOperate) - { + public int updateBusiProductOperate(BusiProductOperate busiProductOperate) { return busiProductOperateMapper.updateBusiProductOperate(busiProductOperate); } /** * 批量删除成品操作流水 - * + * * @param ids 需要删除的成品操作流水主键 * @return 结果 */ @Override - public int deleteBusiProductOperateByIds(String ids) - { + public int deleteBusiProductOperateByIds(String ids) { return busiProductOperateMapper.deleteBusiProductOperateByIds(Convert.toStrArray(ids)); } /** * 删除成品操作流水信息 - * + * * @param id 成品操作流水主键 * @return 结果 */ @Override - public int deleteBusiProductOperateById(String id) - { + public int deleteBusiProductOperateById(String id) { return busiProductOperateMapper.deleteBusiProductOperateById(id); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiSubTaskServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiSubTaskServiceImpl.java new file mode 100644 index 000000000..247ec6f0d --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiSubTaskServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.busi.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.busi.mapper.BusiSubTaskMapper; +import com.ruoyi.busi.domain.BusiSubTask; +import com.ruoyi.busi.service.IBusiSubTaskService; +import com.ruoyi.common.core.text.Convert; + +/** + * 产品子任务Service业务层处理 + * + * @author WangCL + * @date 2022-01-10 + */ +@Service +public class BusiSubTaskServiceImpl implements IBusiSubTaskService +{ + @Autowired + private BusiSubTaskMapper busiSubTaskMapper; + + /** + * 查询产品子任务 + * + * @param id 产品子任务主键 + * @return 产品子任务 + */ + @Override + public BusiSubTask selectBusiSubTaskById(String id) + { + return busiSubTaskMapper.selectBusiSubTaskById(id); + } + + /** + * 查询产品子任务列表 + * + * @param busiSubTask 产品子任务 + * @return 产品子任务 + */ + @Override + public List selectBusiSubTaskList(BusiSubTask busiSubTask) + { + return busiSubTaskMapper.selectBusiSubTaskList(busiSubTask); + } + + /** + * 新增产品子任务 + * + * @param busiSubTask 产品子任务 + * @return 结果 + */ + @Override + public int insertBusiSubTask(BusiSubTask busiSubTask) + { + busiSubTask.setCreateTime(DateUtils.getNowDate()); + return busiSubTaskMapper.insertBusiSubTask(busiSubTask); + } + + /** + * 修改产品子任务 + * + * @param busiSubTask 产品子任务 + * @return 结果 + */ + @Override + public int updateBusiSubTask(BusiSubTask busiSubTask) + { + return busiSubTaskMapper.updateBusiSubTask(busiSubTask); + } + + /** + * 批量删除产品子任务 + * + * @param ids 需要删除的产品子任务主键 + * @return 结果 + */ + @Override + public int deleteBusiSubTaskByIds(String ids) + { + return busiSubTaskMapper.deleteBusiSubTaskByIds(Convert.toStrArray(ids)); + } + + /** + * 删除产品子任务信息 + * + * @param id 产品子任务主键 + * @return 结果 + */ + @Override + public int deleteBusiSubTaskById(String id) + { + return busiSubTaskMapper.deleteBusiSubTaskById(id); + } +} diff --git a/ruoyi-admin/src/main/resources/mapper/busi/BusiProductOperateMapper.xml b/ruoyi-admin/src/main/resources/mapper/busi/BusiProductOperateMapper.xml index f4b4455a6..550080a57 100644 --- a/ruoyi-admin/src/main/resources/mapper/busi/BusiProductOperateMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/busi/BusiProductOperateMapper.xml @@ -8,6 +8,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + @@ -18,21 +22,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, product_stock_id, task_id, amount, product_value, amount_per_package, oprate_type, create_by, create_time, remark from busi_product_operate + select bpo.id, bpo.product_stock_id, bpo.task_id, bps.size,bps.color,bo.order_name,bpl.disname line_name, bpo.amount, bpo.product_value, bpo.amount_per_package, bpo.oprate_type, bpo.create_by, bpo.create_time, bpo.remark + from busi_product_operate bpo + INNER JOIN busi_product_stock bps on bps.id = bpo.product_stock_id + LEFT JOIN busi_order bo on bps.order_id = bo.id + LEFT JOIN busi_task bt on bt.id = bpo.task_id + LEFT JOIN busi_prison_line bpl on bt.prison_line_id = bpl.id diff --git a/ruoyi-admin/src/main/resources/mapper/busi/BusiProductStockMapper.xml b/ruoyi-admin/src/main/resources/mapper/busi/BusiProductStockMapper.xml index 0b0bbd048..0016c081a 100644 --- a/ruoyi-admin/src/main/resources/mapper/busi/BusiProductStockMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/busi/BusiProductStockMapper.xml @@ -7,6 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -17,21 +18,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, order_id, amount, size, color, create_by, create_time, update_by, update_time from busi_product_stock + select bps.id, bps.order_id,bo.order_name, bps.amount, bps.size, bps.color, bps.create_by, bps.create_time, bps.update_by, bps.update_time + from busi_product_stock bps LEFT JOIN busi_order bo on bo.id = bps.order_id diff --git a/ruoyi-admin/src/main/resources/mapper/busi/BusiSubTaskMapper.xml b/ruoyi-admin/src/main/resources/mapper/busi/BusiSubTaskMapper.xml new file mode 100644 index 000000000..9cffc7108 --- /dev/null +++ b/ruoyi-admin/src/main/resources/mapper/busi/BusiSubTaskMapper.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + select id, task_id, product_require_id, target_amount, completed_amount, create_by, create_time, status from busi_sub_task + + + + + + + + insert into busi_sub_task + + task_id, + product_require_id, + target_amount, + completed_amount, + create_by, + create_time, + status, + + + #{taskId}, + #{productRequireId}, + #{targetAmount}, + #{completedAmount}, + #{createBy}, + #{createTime}, + #{status}, + + + + + update busi_sub_task + + task_id = #{taskId}, + product_require_id = #{productRequireId}, + target_amount = #{targetAmount}, + completed_amount = #{completedAmount}, + create_by = #{createBy}, + create_time = #{createTime}, + status = #{status}, + + where id = #{id} + + + + delete from busi_sub_task where id = #{id} + + + + delete from busi_sub_task where id in + + #{id} + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/busi/materialperate/materialperate.html b/ruoyi-admin/src/main/resources/templates/busi/materialperate/materialperate.html index 6328a474d..bc0cfa85e 100644 --- a/ruoyi-admin/src/main/resources/templates/busi/materialperate/materialperate.html +++ b/ruoyi-admin/src/main/resources/templates/busi/materialperate/materialperate.html @@ -132,7 +132,7 @@ } else if (value == "2") { return "出库"; } else { - return "损耗"; + return "损耗"; } } }, diff --git a/ruoyi-admin/src/main/resources/templates/busi/productOperate/add.html b/ruoyi-admin/src/main/resources/templates/busi/productOperate/addIn.html similarity index 93% rename from ruoyi-admin/src/main/resources/templates/busi/productOperate/add.html rename to ruoyi-admin/src/main/resources/templates/busi/productOperate/addIn.html index 644536719..9d9c390c6 100644 --- a/ruoyi-admin/src/main/resources/templates/busi/productOperate/add.html +++ b/ruoyi-admin/src/main/resources/templates/busi/productOperate/addIn.html @@ -1,7 +1,7 @@ - +
@@ -9,6 +9,7 @@ +
@@ -81,8 +82,10 @@ $("#color").change(function(){ var orderId = $("#color :selected").attr("orderId"); var taskId = $("#color :selected").attr("taskId"); + var subTaskId = $("#color :selected").attr("subTaskId"); $("#orderId").val(orderId); $("#taskId").val(taskId); + $("#subTaskId").val(subTaskId); }) /*监区产线-新增-选择父监区产线树*/ function selectPrisonLineTree() { @@ -131,7 +134,8 @@ var text = $.table.getDictText(colorDatas, val); var orderId = data[i].orderId; var taskId = data[i].taskId; - $("#color").append(""); + var subTaskId = data[i].subTaskId; + $("#color").append(""); } }) } diff --git a/ruoyi-admin/src/main/resources/templates/busi/productOperate/addOut.html b/ruoyi-admin/src/main/resources/templates/busi/productOperate/addOut.html new file mode 100644 index 000000000..9d9c390c6 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/busi/productOperate/addOut.html @@ -0,0 +1,144 @@ + + + + + + +
+
+ + + + + +
+ +
+ + +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ + + + + + +
+ +
+ +
+ +
+
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/busi/productOperate/productOperate.html b/ruoyi-admin/src/main/resources/templates/busi/productOperate/productOperate.html index 1039d01a2..100dd155f 100644 --- a/ruoyi-admin/src/main/resources/templates/busi/productOperate/productOperate.html +++ b/ruoyi-admin/src/main/resources/templates/busi/productOperate/productOperate.html @@ -11,18 +11,36 @@
  • - - + + +
  • - - + +
  • - + + +
  • +
  • + + + +
  • +
  • +
  • @@ -35,15 +53,21 @@
- - 添加 + + 入库 - - 修改 + + 出库 - - 删除 + + 退回 + + + + + + 导出 @@ -57,6 +81,8 @@ \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/busi/productStock/productStock.html b/ruoyi-admin/src/main/resources/templates/busi/productStock/productStock.html index d9e127b4f..33388a2e7 100644 --- a/ruoyi-admin/src/main/resources/templates/busi/productStock/productStock.html +++ b/ruoyi-admin/src/main/resources/templates/busi/productStock/productStock.html @@ -12,7 +12,8 @@
  • - + +
  • @@ -38,15 +39,15 @@
- - 添加 - - - 修改 - - - 删除 - + + + + + + + + + 导出 @@ -81,12 +82,12 @@ visible: false }, { - field: 'orderId', + field: 'orderName', title: '订单' }, { field: 'amount', - title: '数量' + title: '库存量' }, { field: 'size', @@ -103,18 +104,39 @@ } }, { - title: '操作', - align: 'center', - formatter: function(value, row, index) { - var actions = []; - actions.push('编辑 '); - actions.push('删除'); - return actions.join(''); - } + field: 'updateTime', + title: '更新时间' + // }, + // { + // title: '操作', + // align: 'center', + // formatter: function(value, row, index) { + // var actions = []; + // actions.push('编辑 '); + // actions.push('删除'); + // return actions.join(''); + // } }] }; $.table.init(options); }); + + /*订单选择*/ + function selectOrder() { + var options = { + title: '选择订单', + width: "380", + height: "400", + url: ctx + "busi/order/selectOrder/" , + callBack: function(index, layero){ + var body = $.modal.getChildFrame(index); + $("#treeId").val(body.find('#treeId').val()); + $("#treeName").val(body.find('#treeName').val()); + $.modal.close(index); + } + }; + $.modal.openOptions(options); + } \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/busi/subtask/add.html b/ruoyi-admin/src/main/resources/templates/busi/subtask/add.html new file mode 100644 index 000000000..8d17ee841 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/busi/subtask/add.html @@ -0,0 +1,59 @@ + + + + + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ + +
+ 代码生成请选择字典属性 +
+
+
+
+ + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/busi/subtask/edit.html b/ruoyi-admin/src/main/resources/templates/busi/subtask/edit.html new file mode 100644 index 000000000..971187c39 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/busi/subtask/edit.html @@ -0,0 +1,60 @@ + + + + + + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ + +
+ 代码生成请选择字典属性 +
+
+
+
+ + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/busi/subtask/subtask.html b/ruoyi-admin/src/main/resources/templates/busi/subtask/subtask.html new file mode 100644 index 000000000..f448f2953 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/busi/subtask/subtask.html @@ -0,0 +1,121 @@ + + + + + + +
+
+
+
+
+
    +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • +  搜索 +  重置 +
  • +
+
+
+
+ + +
+
+
+
+
+ + + + \ No newline at end of file