From 6e858b57249869c218245ceb93ccff22d7b57218 Mon Sep 17 00:00:00 2001 From: wangcl Date: Mon, 27 Dec 2021 09:07:13 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E6=96=99=E6=93=8D=E4=BD=9C=E6=B5=81?= =?UTF-8?q?=E6=B0=B4=E6=96=B0=E5=A2=9E=E5=8A=9F=E8=83=BD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusiMaterialOperateController.java | 3 +- .../busi/domain/BusiMaterialOperate.java | 69 ++++++++++---- .../service/IBusiMaterialOperateService.java | 2 +- .../impl/BusiMaterialOperateServiceImpl.java | 12 ++- .../mapper/busi/BusiMaterialOperateMapper.xml | 16 +++- .../templates/busi/materialperate/add.html | 7 +- .../busi/materialperate/materialperate.html | 95 +++++++++++++++---- 7 files changed, 149 insertions(+), 55 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiMaterialOperateController.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiMaterialOperateController.java index 39bb11b9f..adfe8337e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiMaterialOperateController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiMaterialOperateController.java @@ -86,8 +86,7 @@ public class BusiMaterialOperateController extends BaseController @Log(title = "物料操作流水", businessType = BusinessType.INSERT) @PostMapping("/add") @ResponseBody - public AjaxResult addSave(BusiMaterialOperate busiMaterialOperate) - { + public AjaxResult addSave(BusiMaterialOperate busiMaterialOperate) throws Exception { busiMaterialOperate.setCreateBy(getLoginName()); busiMaterialOperate.setCreateTime(DateUtils.getNowDate()); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiMaterialOperate.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiMaterialOperate.java index 41cb6ab58..7c35f8558 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiMaterialOperate.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiMaterialOperate.java @@ -22,9 +22,8 @@ public class BusiMaterialOperate extends BaseEntity { private Long id; /** - * 订单 + * 物料库存ID */ - @Excel(name = "订单") private String materialStockId; /** @@ -44,32 +43,62 @@ public class BusiMaterialOperate extends BaseEntity { */ private String colorAndType; + /** + * 订单ID + */ private String orderId; - public String getColor() { - if (colorAndType != null) { - return colorAndType.split(";")[0]; - } else { - return ""; - } + /** + * 订单名称 + */ + @Excel(name = "订单") + private String orderName; + /** + * 类型 + */ + private String classify; + /** + * 颜色 + */ + private String color; + + /** + * 单位 + */ + private String unit; + + public String getOrderName() { + return orderName; + } + + public void setOrderName(String orderName) { + this.orderName = orderName; } public String getClassify() { - if (colorAndType != null) { - return colorAndType.split(";")[1]; - } else { - return ""; - } + return classify; + } + + public void setClassify(String classify) { + this.classify = classify; + } + + public String getColor() { + return color; + } + + public void setColor(String color) { + this.color = color; } public String getUnit() { - if (colorAndType != null) { - return colorAndType.split(";")[2]; - } else { - return ""; - } + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; } public String getOrderId() { @@ -86,6 +115,10 @@ public class BusiMaterialOperate extends BaseEntity { public void setColorAndType(String colorAndType) { this.colorAndType = colorAndType; + this.color = colorAndType.split(";")[0]; + this.classify = colorAndType.split(";")[1]; + this.unit = colorAndType.split(";")[2]; + } public void setId(Long id) { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiMaterialOperateService.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiMaterialOperateService.java index 1800fe06d..6e1fd794a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiMaterialOperateService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiMaterialOperateService.java @@ -33,7 +33,7 @@ public interface IBusiMaterialOperateService * @param busiMaterialOperate 物料操作流水 * @return 结果 */ - public int insertBusiMaterialOperate(BusiMaterialOperate busiMaterialOperate); + public int insertBusiMaterialOperate(BusiMaterialOperate busiMaterialOperate) throws Exception; /** * 修改物料操作流水 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 3b9a7231c..a2137ef14 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 @@ -58,16 +58,20 @@ public class BusiMaterialOperateServiceImpl implements IBusiMaterialOperateServi */ @Override @Transactional(rollbackFor = Exception.class) - public int insertBusiMaterialOperate(BusiMaterialOperate busiMaterialOperate) { + public int insertBusiMaterialOperate(BusiMaterialOperate busiMaterialOperate) throws Exception { // 先查询库存 List busiMaterialStocks = queryBusiMaterialStocks(busiMaterialOperate); BusiMaterialStock busiMaterialStock; if (busiMaterialStocks.size() != 0) { // 已有库存,则更新 busiMaterialStock = busiMaterialStocks.get(0); - if ("1".equals(busiMaterialOperate.getOprateType())) { + if ("1".equals(busiMaterialOperate.getOprateType())) { // 1为入库 busiMaterialStock.setAmountIn(busiMaterialOperate.getAmount() + busiMaterialStock.getAmountIn()); - } else { + } else {// 2为入库 + long stockAmount = busiMaterialStock.getAmountIn() - busiMaterialStock.getAmountOut(); + if(busiMaterialOperate.getAmount() > stockAmount){ + throw new Exception("出库超过库存"); + } busiMaterialStock.setAmountOut(busiMaterialOperate.getAmount() + busiMaterialStock.getAmountOut()); } busiMaterialStockMapper.updateBusiMaterialStock(busiMaterialStock); @@ -83,7 +87,7 @@ public class BusiMaterialOperateServiceImpl implements IBusiMaterialOperateServi if ("1".equals(busiMaterialOperate.getOprateType())) { busiMaterialStock.setAmountIn(busiMaterialOperate.getAmount()); } else { - busiMaterialStock.setAmountOut(busiMaterialOperate.getAmount()); + throw new Exception("尚未建立库存,请先入库再出库"); } busiMaterialStockMapper.insertBusiMaterialStock(busiMaterialStock); } diff --git a/ruoyi-admin/src/main/resources/mapper/busi/BusiMaterialOperateMapper.xml b/ruoyi-admin/src/main/resources/mapper/busi/BusiMaterialOperateMapper.xml index f03f697c2..27442ce73 100644 --- a/ruoyi-admin/src/main/resources/mapper/busi/BusiMaterialOperateMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/busi/BusiMaterialOperateMapper.xml @@ -7,6 +7,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + @@ -15,22 +19,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, material_stock_id, amount, oprate_type, create_by, create_time, remark from busi_material_operate + select bmo.id, bmo.material_stock_id,bo.order_name, bms.unit, bms.color, bms.classify, bmo.amount, bmo.oprate_type, bmo.create_by, bmo.create_time, bmo.remark + from busi_material_operate bmo LEFT JOIN busi_material_stock bms on bmo.material_stock_id = bms.id LEFT JOIN busi_order bo on bo.id = bms.order_id diff --git a/ruoyi-admin/src/main/resources/templates/busi/materialperate/add.html b/ruoyi-admin/src/main/resources/templates/busi/materialperate/add.html index 1839e81d0..8fc4d916b 100644 --- a/ruoyi-admin/src/main/resources/templates/busi/materialperate/add.html +++ b/ruoyi-admin/src/main/resources/templates/busi/materialperate/add.html @@ -15,24 +15,23 @@
-
+
- +
- +
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 b9ebf012e..e1f55c60a 100644 --- a/ruoyi-admin/src/main/resources/templates/busi/materialperate/materialperate.html +++ b/ruoyi-admin/src/main/resources/templates/busi/materialperate/materialperate.html @@ -11,8 +11,9 @@
  • - - + + +
  • @@ -45,12 +46,12 @@ 添加 - - 修改 - - - 删除 - + + + + + + 导出 @@ -65,6 +66,10 @@ var editFlag = [[${@permission.hasPermi('busi:materialperate:edit')}]]; var removeFlag = [[${@permission.hasPermi('busi:materialperate:remove')}]]; var prefix = ctx + "busi/materialperate"; + var colorDatas = [[${@dict.getType('busi_color')}]]; + var unitDatas = [[${@dict.getType('busi_material_unit')}]]; + var classifyDatas = [[${@dict.getType('busi_material_type')}]]; + var operateTypeDatas = [[${@dict.getType('busi_operate_type')}]]; $(function() { var options = { @@ -83,16 +88,46 @@ visible: false }, { - field: 'materialStockId', - title: '订单' + field: 'orderName', + title: '所属订单' }, { field: 'amount', title: '操作数量' }, + { + field: 'unit', + title: '单位', + formatter: function(value, row, index) { + return $.table.selectDictLabel(unitDatas, value); + } + }, + { + field: 'color', + title: '颜色', + formatter: function(value, row, index) { + return $.table.selectDictLabel(colorDatas, value); + } + }, + { + field: 'classify', + title: '类型', + formatter: function(value, row, index) { + return $.table.selectDictLabel(classifyDatas, value); + } + }, { field: 'oprateType', - title: '操作类型' + title: '操作类型', + formatter: function(value, row, index) { + if (value == "1") { + return "入库"; + } else if (value == "2") { + return "出库"; + } else { + return "未知操作"; + } + } }, { field: 'createBy', @@ -102,19 +137,37 @@ field: 'createTime', title: '操作时间' }, - { - title: '操作', - align: 'center', - formatter: function(value, row, index) { - var actions = []; - actions.push('编辑 '); - actions.push('删除'); - return actions.join(''); - } - }] + // { + // 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