diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceOrderController.java index 6f3ed95b..c318638e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceOrderController.java @@ -345,4 +345,15 @@ public class OutsourceOrderController extends BaseController mmap.put("outsourceOrder", outsourceOrderVO.get(0)); return prefix + "/closed"; } + + /** + * 修改保存委外订单结案 + */ + @Log(title = "委外订单", businessType = BusinessType.UPDATE) + @PostMapping("/saveClosed") + @ResponseBody + public AjaxResult saveClosed(@RequestBody OutsourceOrderVO outsourceOrderVO) + { + return toAjax(outsourceOrderService.closeOutsourceOrder(outsourceOrderVO)); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourceOrderService.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourceOrderService.java index ee80b0b3..d1ba6a8a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourceOrderService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourceOrderService.java @@ -99,4 +99,6 @@ public interface IOutsourceOrderService ProcessInstance restoreOutsourceOrderById(Long id); int insertFinancialAccountsPayable(OutsourceOrder outsourceOrder); + + int closeOutsourceOrder(OutsourceOrderVO outsourceOrderVO); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceOrderServiceImpl.java index d0de3382..34d64851 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceOrderServiceImpl.java @@ -537,4 +537,46 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService } return rows; } + + @Override + @Transactional(rollbackFor = Exception.class) + public int closeOutsourceOrder(OutsourceOrderVO outsourceOrderVO){ + List supplierList = outsourceOrderVO.getOutsourceOrderDetailList(); + if(StringUtils.isEmpty(supplierList)){ + throw new BusinessException("供应商列表为空!"); + } + List orderDetails = orderDetailMapper.selectOutsourceOrderDetailByCode(outsourceOrderVO.getOutsourceOrderNo()); + if(StringUtils.isEmpty(orderDetails)){ + throw new BusinessException("委外单关联详情列表为空!"); + } + + for (OutsourceOrderDetail detail: supplierList) { + String supplierCode = detail.getSupplierCode(); + List closeList = orderDetails.stream() + .filter(item -> item.getSupplierCode().equals(supplierCode)).collect(Collectors.toList()); + if(StringUtils.isEmpty(closeList)){ + throw new BusinessException("供应商列表为空!"); + } + for (OutsourceOrderDetail updateDetail: closeList) { + updateDetail.setRemitStatus("4"); + updateDetail.setClosedStatus("4"); + updateDetail.setUpdateBy(ShiroUtils.getLoginName()); + updateDetail.setUpdateTime(DateUtils.getNowDate()); + int updateResult = orderDetailMapper.updateOutsourceOrderDetail(updateDetail); + if(updateResult<=0){ + throw new BusinessException("更新供应商结案状态失败"); + } + } + } + List updateDetails = orderDetailMapper.selectOutsourceOrderDetailByCode(outsourceOrderVO.getOutsourceOrderNo()); + boolean allClosed = updateDetails.stream().allMatch(item->item.getRemitStatus().equals("4")); + if(allClosed){ + outsourceOrderVO.setRemitStatus("4");//已结案 + outsourceOrderVO.setClosedStatus("4"); + } + outsourceOrderVO.setUpdateBy(ShiroUtils.getLoginName()); + outsourceOrderVO.setUpdateTime(DateUtils.getNowDate()); + + return outsourceOrderMapper.updateOutsourceOrder(outsourceOrderVO); + } } diff --git a/ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderMapper.xml index d12b5c87..1fa91d42 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderMapper.xml @@ -44,6 +44,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -67,7 +68,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" material_amount, outsource_material_amount, outsource_process_type, outsource_process_amount, outsource_total_price, outsource_no_price, create_by, create_time, update_by, update_time, use_status, receive_status, warehouse_status, closed_status, remit_status, audit_status, actual_material_amount, actual_process_amount, stock_no, stock_name, receive_person, receive_telephone,supplier_code, supplier_name, - receive_address,instance_id, instance_type, submit_instance_id, apply_title, apply_time, apply_user, cancel_instance_id, restore_instance_id, cancel_remark + receive_address,instance_id, instance_type, submit_instance_id, apply_title, apply_time, apply_user, cancel_instance_id, restore_instance_id, cancel_remark,remark from outsource_order @@ -159,6 +160,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" cancel_instance_id, restore_instance_id, cancel_remark, + remark, #{outsourceOrderNo}, @@ -197,6 +199,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{cancelInstanceId}, #{restoreInstanceId}, #{cancelRemark}, + #{remark}, @@ -239,6 +242,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" cancel_instance_id = #{cancelInstanceId}, restore_instance_id = #{restoreInstanceId}, cancel_remark = #{cancelRemark}, + remark = #{remark}, where outsource_order_id = #{outsourceOrderId} diff --git a/ruoyi-admin/src/main/resources/mapper/system/OutsourcePlanMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/OutsourcePlanMapper.xml index f2c34145..fe91c8ce 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/OutsourcePlanMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/OutsourcePlanMapper.xml @@ -37,6 +37,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -56,7 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" material_no, material_name, material_type, material_photoUrl, description, brand, process_method, unit, planned_outsource_amount, outsource_process_type, outsource_process_amount, `level`, parent_id, - create_by,create_time,update_by,update_time + create_by,create_time,update_by,update_time,actual_outsource_amount,out_plan_status from outsource_plan_detail @@ -71,6 +73,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and create_time = #{createTime} and create_time between #{params.beginCreateTime} and #{params.endCreateTime} + order by create_time desc
- -
- + +
+
-
已选择供应商:
+
选择供应商:
+
+ +
+ +
+
+
@@ -32,17 +39,30 @@ focusCleanup: true, }); + var closedStatusDatas = [[${@dict.getType('sys_pay_close')}]]; var outsourceOrder = [[${outsourceOrder}]]; $(function() { // console.log(outsourceOrder); + var outsourceOrderId = $("#outsourceOrderId").val(); var options = { - data: [[${outsourceOrder.outsourceOrderDetailList}]], + url: prefix + "/sublist?outsourceOrderId=" + outsourceOrderId, + method: 'get', pagination: false, showSearch: false, showRefresh: false, showToggle: false, showColumns: false, columns: [ + { + checkbox:true, + formatter: function(value, row, index) { + //已结案 + if(row.remitStatus === "4"){ + return { disabled : true,} + } + return { disabled : false,} + } + }, { field: 'supplierCode', title: '供应商编码', @@ -53,7 +73,10 @@ }, { field: 'remitStatus', - title: '打款状态' + title: '打款状态', + formatter: function(value, row, index) { + return $.table.selectDictLabel(closedStatusDatas, value); + } } ] }; @@ -62,7 +85,18 @@ function submitHandler() { if ($.validate.form()) { - $.operate.save(prefix + "/closed", $('#form-outsource_order_closed').serialize()); + var datas = $("#bootstrap-table").bootstrapTable("getSelections"); + if(datas.length<=0){ + $.modal.msgError("至少选择一个供应商结案"); + return; + } + var outsourceOrder = { + outsourceOrderId: $("#outsourceOrderId").val(), + outsourceOrderNo: $("#outsourceOrderNo").val(), + remark: $("#remark").val(), + outsourceOrderDetailList: datas, + } + $.operate.saveJson(prefix + "/saveClosed", JSON.stringify(outsourceOrder)); } } diff --git a/ruoyi-admin/src/main/resources/templates/system/outsource_order/outsource_order.html b/ruoyi-admin/src/main/resources/templates/system/outsource_order/outsource_order.html index 318af38c..fd78f916 100644 --- a/ruoyi-admin/src/main/resources/templates/system/outsource_order/outsource_order.html +++ b/ruoyi-admin/src/main/resources/templates/system/outsource_order/outsource_order.html @@ -124,11 +124,19 @@ restoreUrl: prefix + "/restore/{id}", modalName: "委外订单", detailView: true, + singleSelect: true, onExpandRow : function(index, row, $detail) { initChildTable(index, row, $detail); }, columns: [{ - checkbox: true + checkbox: true, + formatter: function(value, row, index) { + //待结案 + if(row.closedStatus === "3"||row.closedStatus === "1"){ + return { disabled : false,} + } + return { disabled : true,} + } }, { field: 'outsourceOrderId',