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 fab4f868..87be9c19 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 @@ -249,7 +249,7 @@ public class OutsourceOrderController extends BaseController if (saveEntityBoolean) { outsourceOrderVO.setAuditStatus("0"); outsourceOrderVO.setUseStatus("0"); - outsourceOrderService.updateAuditOutsourceOrder(outsourceOrderVO); + outsourceOrderService.updateOutsourceOrder(outsourceOrderVO); } return success("任务已完成"); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceOrderDetail.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceOrderDetail.java index a7896c91..6c87d40e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceOrderDetail.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceOrderDetail.java @@ -54,7 +54,7 @@ public class OutsourceOrderDetail extends BaseEntity /** 实际委外数 */ @Excel(name = "实际委外数") - private BigDecimal actualOutsourceAmount; + private Integer actualOutsourceAmount; @Excel(name = "含税委外单价(RMB) ") private BigDecimal materialRmb; @@ -81,6 +81,12 @@ public class OutsourceOrderDetail extends BaseEntity // 关联单号 private String correlationCodes; + /** 通知已到货数*/ + private Integer notifyHasArrivedNum; + + /** 已入库数*/ + private Integer hasStorageNum; + OutsourceMaterial outsourcematerial; /** 含税委外总价(RMB) */ @@ -175,12 +181,12 @@ public class OutsourceOrderDetail extends BaseEntity } - public void setActualOutsourceAmount(BigDecimal actualOutsourceAmount) + public void setActualOutsourceAmount(Integer actualOutsourceAmount) { this.actualOutsourceAmount = actualOutsourceAmount; } - public BigDecimal getActualOutsourceAmount() + public Integer getActualOutsourceAmount() { return actualOutsourceAmount; } @@ -311,6 +317,22 @@ public class OutsourceOrderDetail extends BaseEntity this.planDetailId = planDetailId; } + public Integer getNotifyHasArrivedNum() { + return notifyHasArrivedNum; + } + + public void setNotifyHasArrivedNum(Integer notifyHasArrivedNum) { + this.notifyHasArrivedNum = notifyHasArrivedNum; + } + + public Integer getHasStorageNum() { + return hasStorageNum; + } + + public void setHasStorageNum(Integer hasStorageNum) { + this.hasStorageNum = hasStorageNum; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceOrderDetailMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceOrderDetailMapper.java index b0cd54e5..e2ee9f60 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceOrderDetailMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceOrderDetailMapper.java @@ -96,4 +96,8 @@ public interface OutsourceOrderDetailMapper /* * 根据委外订单号查询委外订单详情列表*/ public List selectOutsourceOrderDetailByCode(String outsourceOrderNo); + + /* + * 根据委外订单号和料号查询委外订单详情列表*/ + public List selectOutsourceOrderDetailByNos(OutsourceOrderDetail orderDetail); } 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 7f289146..3e752975 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 @@ -20,10 +20,7 @@ import com.ruoyi.process.todoitem.mapper.BizTodoItemMapper; import com.ruoyi.system.domain.*; import com.ruoyi.system.domain.Vo.OutsourceOrderVO; import com.ruoyi.system.domain.Vo.OutsourceRequisitionVO; -import com.ruoyi.system.mapper.OutsourceOrderDetailMapper; -import com.ruoyi.system.mapper.OutsourceOrderMapper; -import com.ruoyi.system.mapper.SysSupplierMapper; -import com.ruoyi.system.mapper.SysUserMapper; +import com.ruoyi.system.mapper.*; import com.ruoyi.system.service.IOutsourceOrderService; import com.ruoyi.system.service.IOutsourcePlanService; import org.activiti.engine.RuntimeService; @@ -64,6 +61,9 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService @Autowired private IOutsourcePlanService outsourcePlanService; + @Autowired + private OutsourcePlanMapper outsourcePlanMapper; + @Autowired private RedisCache redisCache; @@ -206,6 +206,18 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService outsourceOrderVO.setWarehouseStatus("0"); int rows = outsourceOrderMapper.insertOutsourceOrder(outsourceOrderVO); insertOutsourceOrderDetail(outsourceOrderVO); + + String planCodes = outsourceOrderVO.getOutsourcePlanCode(); + List outsourcePlans = outsourcePlanService.selectOutsourcePlanByCodes(planCodes); + if(StringUtils.isEmpty(outsourcePlans)){ + throw new BusinessException("关联委外计划为空,新增委外订单失败"); + } + for (OutsourcePlan plan: outsourcePlans) { + plan.setStatus("1");//申请中 + plan.setUpdateBy(loginName); + plan.setUpdateTime(DateUtils.getNowDate()); + outsourcePlanMapper.updateOutsourcePlan(plan); + } return rows; } /** @@ -294,14 +306,26 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService return rows; } -// 审批更新委外订单 +// 审批更新委外订单(审批通过) @Override public int updateAuditOutsourceOrder(OutsourceOrderVO outsourceOrderVO) { - outsourceOrderVO.setUpdateTime(DateUtils.getNowDate()); + OutsourceOrderVO orderVO = outsourceOrderMapper.selectOutsourceOrderByOutsourceOrderId(outsourceOrderVO.getOutsourceOrderId()); + orderVO.setUpdateTime(DateUtils.getNowDate()); String loginName = ShiroUtils.getLoginName(); - outsourceOrderVO.setUpdateBy(loginName); - int rows = outsourceOrderMapper.updateOutsourceOrder(outsourceOrderVO); + orderVO.setUpdateBy(loginName); + String planCodes = orderVO.getOutsourcePlanCode(); + List outsourcePlans = outsourcePlanService.selectOutsourcePlanByCodes(planCodes); + if(StringUtils.isEmpty(outsourcePlans)){ + throw new BusinessException("关联委外计划为空,新增委外订单失败"); + } + for (OutsourcePlan plan: outsourcePlans) { + plan.setStatus("2");//申请通过 + plan.setUpdateBy(loginName); + plan.setUpdateTime(DateUtils.getNowDate()); + outsourcePlanMapper.updateOutsourcePlan(plan); + } + int rows = outsourceOrderMapper.updateOutsourceOrder(orderVO); return rows; } // 根据订单号查询委外订单(用以委外领料或入库) @@ -376,6 +400,8 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService outsourceOrderDetail.setOutsourceOrderNo(OutsourceOrderNo); outsourceOrderDetail.setRemitStatus("0"); outsourceOrderDetail.setClosedStatus("0"); + outsourceOrderDetail.setNotifyHasArrivedNum(0); + outsourceOrderDetail.setHasStorageNum(0); outsourceOrderDetail.setCreateBy(ShiroUtils.getLoginName()); outsourceOrderDetail.setCreateTime(DateUtils.getNowDate()); orderDetailMapper.insertOutsourceOrderDetail(outsourceOrderDetail); diff --git a/ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderDetailMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderDetailMapper.xml index f8773af7..dc01ef82 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderDetailMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderDetailMapper.xml @@ -24,6 +24,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -35,8 +37,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select outsource_order_detail_id, outsource_order_no, material_no, outsource_process_no, outsource_process_name, charge_unit, single_material, delivery_time, actual_outsource_amount, material_rmb, - material_no_rmb, supplier_code, supplier_name, closed_status, - remit_status, rmb_sum, no_rmb_sum, correlation_codes, + material_no_rmb, supplier_code, supplier_name, closed_status,has_storage_num, + remit_status, rmb_sum, no_rmb_sum, correlation_codes,notify_has_arrived_num, planned_outsource_amount ,plan_detail_id, create_by, create_time, update_by, update_time from outsource_order_detail @@ -92,6 +94,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" no_rmb_sum, correlation_codes, planned_outsource_amount, + notify_has_arrived_num, + has_storage_num, plan_detail_id, create_by, create_time, @@ -117,6 +121,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{noRmbSum}, #{correlationCodes}, #{plannedOutsourceAmount}, + #{notifyHasArrivedNum}, + #{hasStorageNum}, #{planDetailId}, #{createBy}, #{createTime}, @@ -146,6 +152,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" no_rmb_sum = #{noRmbSum}, correlation_codes = #{correlationCodes}, planned_outsource_amount = #{plannedOutsourceAmount}, + notify_has_arrived_num = #{notifyHasArrivedNum}, + has_storage_num = #{hasStorageNum}, plan_detail_id = #{planDetailId}, create_by = #{createBy}, create_time = #{createTime}, @@ -211,4 +219,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where outsource_order_no = #{outsourceOrderNo} + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/system/outsource_order/addStorage.html b/ruoyi-admin/src/main/resources/templates/system/outsource_order/addStorage.html index 6d14580e..774e10e0 100644 --- a/ruoyi-admin/src/main/resources/templates/system/outsource_order/addStorage.html +++ b/ruoyi-admin/src/main/resources/templates/system/outsource_order/addStorage.html @@ -46,7 +46,7 @@
- +
@@ -123,7 +123,8 @@ correlationCodes: material.correlationCodes, plannedOutsourceAmount: material.plannedOutsourceAmount, actualOutsourceAmount: material.orderDetails[0].actualOutsourceAmount, - alreadyStorageAmount: 0, + hasStorageNum: material.orderDetails[0].hasStorageNum, + notifyHasArrivedNum: material.orderDetails[0].notifyHasArrivedNum, nowStorageAmount: 0, }; var materialData = [materialObj]; // Bootstrap Table需要一个数组作为数据源 @@ -131,7 +132,7 @@ tables(materialTable, materialData); var $MaterialNumDiv = - $('
' + + $('
' + '
' + '
' + '

' + @@ -169,7 +170,7 @@ } $processContent = $('
' + - '
' + + '
' + '
' + '
委外工序 ' + (detailsIndex+1) + ':' + '' + detail.outsourceProcessNo + '' + '-' + @@ -236,27 +237,29 @@ showToggle: false, data: data, columns: [ - {title: '料号', field: 'materialNo'}, - {title: '图片', field: 'materialPhotourl', formatter: function (value, row, index) { + {title: '料号', field: 'materialNo',align: 'center',}, + {title: '图片', field: 'materialPhotourl',align: 'center', + formatter: function (value, row, index) { return $.table.imageView(value); } }, - {title: '物料类型',field: 'materialType', + {title: '物料类型',field: 'materialType',align: 'center', formatter: function(value, row, index) {return $.table.selectCategoryLabel(materialTypeDatas, value);} }, - {title: '物料名称', field: 'materialName'}, - {title: '物料描述', field: 'description'}, - {title: '品牌', field: 'brand'}, + {title: '物料名称', field: 'materialName',align: 'center',}, + {title: '物料描述', field: 'description',align: 'center',}, + {title: '品牌', field: 'brand',align: 'center',}, {title: '单位', field: 'unit', align: 'center', }, {title: '加工方式', field: 'processMethod', align: 'center', formatter: function (value, row, index) { return $.table.selectDictLabel(processMethodDatas, value); } }, - {title: '计划委外数', field: 'plannedOutsourceAmount'}, - {title: '实际委外数', field: 'actualOutsourceAmount'}, - {title: '已入库数', field: 'alreadyStorageAmount'}, - {title: '本次入库数', field: 'nowStorageAmount', + {title: '计划委外数', field: 'plannedOutsourceAmount',align: 'center',}, + {title: '实际委外数', field: 'actualOutsourceAmount',align: 'center',}, + {title: '已入库数', field: 'hasStorageNum',align: 'center',}, + {title: '通知已到货数', field: 'notifyHasArrivedNum',align: 'center',}, + {title: '通知到货数', field: 'nowStorageAmount',align: 'center', formatter: function(value, row, index) { var html = $.common.sprintf("", index, value); return html; @@ -303,6 +306,8 @@ processMethod: current.processMethod, correlationCodes: current.correlationCodes, plannedOutsourceAmount: current.plannedOutsourceAmount, + hasStorageNum: current.hasStorageNum, + notifyHasArrivedNum: current.notifyHasArrivedNum, orderDetails: [ current.orderDetails[0], ] @@ -320,7 +325,6 @@ storageDetailList:[] }; let storageSum = 0; - var hasError = false; var hasValue = false; $('.table-materialNo').each(function(index, tableElement) { var tableId = tableIdList[index]; @@ -330,17 +334,14 @@ var rows = $("#" + "bootstrap-table_" + tableId).bootstrapTable('getData').length; if(rows != 0) { var data = $("#" + "bootstrap-table_" + tableId).bootstrapTable('getData')[0]; - if ($('[id^="nowStorageAmount_bootstrap-table_' + tableId + '"]').val() === "") { + var notifyValue = $('[id^="nowStorageAmount_bootstrap-table_' + tableId + '"]').val(); + if (notifyValue === "" || Number(notifyValue) <= 0) { return; } else { hasValue = true; // materialAmount++; let value = Number($('[id^="nowStorageAmount_bootstrap-table_' + tableId + '"]').val()); if (!isNaN(value)) { - var hasReValue = Number(data.alreadyStorageAmount); - if (hasReValue + value > data.actualOutsourceAmount) { - hasError = true; - } storageSum += value; } var correlationCodes = $("#correlationCodes-" + tableId).text().trim(); @@ -366,8 +367,9 @@ plannedOutsourceAmount: data.plannedOutsourceAmount, actualOutsourceAmount: data.actualOutsourceAmount, outsourceOrderNo: outsourceStorage.relatedOrderCode, - takenMaterial: data.alreadyStorageAmount, - takingMaterial: value, + hasStorageNum: data.hasStorageNum, + notifyHasArrivedNum: data.notifyHasArrivedNum, + notifyArrivedNum: value, outsourceProcessInfo: processInfo, chargeUnitInfo: chargeUnitInfo, singleMaterialInfo: singleMaterialInfo, @@ -386,13 +388,7 @@ $.modal.msgError("入库数不能全为空!"); return; } - if(!hasError){ - console.log(outsourceStorage); - $.operate.saveJson(prefix + "/addStorage",JSON.stringify(outsourceStorage)); - }else{ - $.modal.msgError("累计入库数不能大于实际委外数!"); - return; - } + $.operate.saveJson(prefix + "/addStorage",JSON.stringify(outsourceStorage)); }