diff --git a/hangtag-module-oms/hangtag-module-oms-api/src/main/java/cn/hangtag/module/oms/enums/common/BillStatusEnum.java b/hangtag-module-oms/hangtag-module-oms-api/src/main/java/cn/hangtag/module/oms/enums/common/BillStatusEnum.java index 3c87c00..ae38444 100644 --- a/hangtag-module-oms/hangtag-module-oms-api/src/main/java/cn/hangtag/module/oms/enums/common/BillStatusEnum.java +++ b/hangtag-module-oms/hangtag-module-oms-api/src/main/java/cn/hangtag/module/oms/enums/common/BillStatusEnum.java @@ -13,9 +13,11 @@ public enum BillStatusEnum { //订单状态:已下单、生产中、已完成 //单据状态:暂存、已提交、已审核 + REJECT("AA", "驳回"), SAVE("A", "暂存"), SUBMIT("B", "已提交"), - AUDIT("C", "已审核"); + AUDIT("C", "已审核"), + INVALID("D", "作废"); /** * 状态 diff --git a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/SaleOrderController.java b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/SaleOrderController.java index 5fe711c..7aaffb5 100644 --- a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/SaleOrderController.java +++ b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/SaleOrderController.java @@ -1,5 +1,6 @@ package cn.hangtag.module.oms.controller.admin.saleorder; +import cn.hutool.core.map.MapUtil; import com.alibaba.fastjson.JSONObject; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; @@ -138,6 +139,7 @@ public class SaleOrderController { public CommonResult rejectOrder(@RequestBody JSONObject jobs) { Long[] ids = jobs.getObject("ids", new Long[0].getClass()); String reason = jobs.getString("reason"); + saleOrderService.updateSaleOrderBillStatus(Arrays.asList(ids), "reject", MapUtil.of("rejectReason",reason)); return success(true); } diff --git a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderService.java b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderService.java index db653b9..013983f 100644 --- a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderService.java +++ b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderService.java @@ -70,7 +70,10 @@ public interface SaleOrderService { Map getTabsCount(); - void updateSaleOrderBillStatus(List ids, String status); + default void updateSaleOrderBillStatus(List ids, String status){ + updateSaleOrderBillStatus(ids,status,null); + } + void updateSaleOrderBillStatus(List ids, String status,Map params); void generateProduceOrder(List ids); diff --git a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java index 49a1abb..b800c00 100644 --- a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java +++ b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java @@ -156,11 +156,42 @@ public class SaleOrderServiceImpl implements SaleOrderService { } @Override - public void updateSaleOrderBillStatus(List ids, String status) { + public void updateSaleOrderBillStatus(List ids, String status,Map params) { List saleOrders = saleOrderMapper.selectList(SaleOrderDO::getId, ids); - for (SaleOrderDO saleOrder : saleOrders) { - saleOrder.setBillStatus(BillStatusEnum.AUDIT.getValue()); - saleOrderMapper.updateById(saleOrder); + switch (status){ + case "invalid": + for (SaleOrderDO saleOrder : saleOrders) { + if(!BillStatusEnum.AUDIT.getValue().equals(saleOrder.getBillStatus())){ + saleOrder.setBillStatus(BillStatusEnum.INVALID.getValue()); + saleOrderMapper.updateById(saleOrder); + } + } + break; + case "reject": + for (SaleOrderDO saleOrder : saleOrders) { + if(!BillStatusEnum.AUDIT.getValue().equals(saleOrder.getBillStatus()) && (params!=null && params.size()>0)){ + saleOrder.setBillStatus(BillStatusEnum.REJECT.getValue()); + saleOrder.setRejectReason((String)params.get("rejectReason")); + saleOrderMapper.updateById(saleOrder); + } + } + break; + case "submit": + for (SaleOrderDO saleOrder : saleOrders) { + if(BillStatusEnum.SAVE.getValue().equals(saleOrder.getBillStatus())){ + saleOrder.setBillStatus(BillStatusEnum.SUBMIT.getValue()); + saleOrderMapper.updateById(saleOrder); + } + } + break; + case "audit": + for (SaleOrderDO saleOrder : saleOrders) { + if(BillStatusEnum.SUBMIT.getValue().equals(saleOrder.getBillStatus())){ + saleOrder.setBillStatus(BillStatusEnum.AUDIT.getValue()); + saleOrderMapper.updateById(saleOrder); + } + } + break; } } diff --git a/hangtag-ui/hangtag-ui-admin/src/views/oms/saleorder/index.vue b/hangtag-ui/hangtag-ui-admin/src/views/oms/saleorder/index.vue index 0876f85..4a14b47 100644 --- a/hangtag-ui/hangtag-ui-admin/src/views/oms/saleorder/index.vue +++ b/hangtag-ui/hangtag-ui-admin/src/views/oms/saleorder/index.vue @@ -403,9 +403,10 @@ const handleDelete = async (id: number) => { const handleReject = async () => { const ids = selectionList.value.map((item) => item.id) const billStatus = selectionList.value.map((item) => item.billStatus) + debugger for(let vals of billStatus) { - if(vals!='B'){ - message.error("请选择单据状态已提交的数据行"); + if(vals!='A' && vals!='B'){ + message.error("请选择单据状态保存或已提交的数据行"); return; } } @@ -423,17 +424,21 @@ const handleUpdateBillStatus = async (operateKey: string) => { message.error("请选择单据状态已提交的数据行"); return; } - if("invalid" == operateKey && vals!='B'){ - message.error("请选择单据状态已提交的数据行"); + if("invalid" == operateKey && (vals=='C')){ + debugger + message.error("单据已审核不允许作废"); return; } } + debugger // 审批的二次确认 let operateName = '' if(operateKey === 'submit'){ operateName = '提交' }else if(operateKey === "audit"){ operateName = '审核' + }else if(operateKey === "invalid"){ + operateName = '作废' }else { return }