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 a97c98ce..fab4f868 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 @@ -220,23 +220,28 @@ public class OutsourceOrderController extends BaseController boolean processIsFinish = processService.judgeProcessIsFinish(instanceId); if (processIsFinish) { // 审核通过 - outsourceOrderVO.setAuditStatus("1"); - // 提交 - if("submit".equals(instanceType)){ - // 使用状态-是 - outsourceOrderVO.setUseStatus("1"); - OutsourceOrder outsourceOrder = outsourceOrderService.selectOutsourceOrderByOutsourceOrderId(outsourceOrderVO.getOutsourceOrderId()); - outsourceOrderService.insertFinancialAccountsPayable(outsourceOrder); - } - // 作废 - else if("cancel".equals(instanceType)){ - // 使用状态-已作废 - outsourceOrderVO.setUseStatus("2"); - } - // 恢复 - else if("restore".equals(instanceType)){ - // 使用状态-是 - outsourceOrderVO.setUseStatus("1"); + if(!approvedFlag){ + // 审核状态-审核拒绝 + outsourceOrderVO.setAuditStatus("2"); + }else{ + outsourceOrderVO.setAuditStatus("1"); + // 提交 + if("submit".equals(instanceType)){ + // 使用状态-是 + outsourceOrderVO.setUseStatus("1"); + OutsourceOrder outsourceOrder = outsourceOrderService.selectOutsourceOrderByOutsourceOrderId(outsourceOrderVO.getOutsourceOrderId()); + outsourceOrderService.insertFinancialAccountsPayable(outsourceOrder); + } + // 作废 + else if("cancel".equals(instanceType)){ + // 使用状态-已作废 + outsourceOrderVO.setUseStatus("2"); + } + // 恢复 + else if("restore".equals(instanceType)){ + // 使用状态-是 + outsourceOrderVO.setUseStatus("1"); + } } } outsourceOrderService.updateAuditOutsourceOrder(outsourceOrderVO); 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 b77f2552..a7896c91 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 @@ -98,6 +98,9 @@ public class OutsourceOrderDetail extends BaseEntity // 委外工序数量 private int outsourceProcessAmount; + //委外计划详情id + private Long planDetailId; + public void setOutsourceOrderDetailId(Long outsourceOrderDetailId) { this.outsourceOrderDetailId = outsourceOrderDetailId; @@ -300,6 +303,14 @@ public class OutsourceOrderDetail extends BaseEntity this.plannedOutsourceAmount = plannedOutsourceAmount; } + public Long getPlanDetailId() { + return planDetailId; + } + + public void setPlanDetailId(Long planDetailId) { + this.planDetailId = planDetailId; + } + @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 9cc03797..b0cd54e5 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 @@ -92,4 +92,8 @@ public interface OutsourceOrderDetailMapper public int deleteOutsourceOrderDetailByOutsourceOrderNo(String outsourceOrderNo); public int deleteOutsourceOrderDetailByOutsourceOrderNos(String[] outsourceOrderNos); + + /* + * 根据委外订单号查询委外订单详情列表*/ + public List selectOutsourceOrderDetailByCode(String outsourceOrderNo); } 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 f50d027e..7f289146 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 @@ -17,10 +17,7 @@ import com.ruoyi.financial.domain.FinancialAccountsPayable; import com.ruoyi.financial.mapper.FinancialAccountsPayableMapper; import com.ruoyi.process.general.service.IProcessService; import com.ruoyi.process.todoitem.mapper.BizTodoItemMapper; -import com.ruoyi.system.domain.OutsourceMaterial; -import com.ruoyi.system.domain.OutsourceOrder; -import com.ruoyi.system.domain.OutsourceOrderDetail; -import com.ruoyi.system.domain.SysSupplier; +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; @@ -103,7 +100,7 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService if(StringUtils.isNotEmpty(details)){ outsourceOrderVO.setOutsourceOrderDetailList(details); for (OutsourceOrderDetail detail: details) { - OutsourceMaterial material = outsourcePlanService.selectMaterialByCode(detail.getMaterialNo()); + OutsourceMaterial material = outsourcePlanService.selectMaterialByCode(detail.getMaterialNo(),detail.getPlanDetailId()); detail.setOutsourceMaterial(material); } } @@ -235,6 +232,7 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService if(processIsFinish){ // 审核状态-审核通过 outsourceOrderVO.setAuditStatus("1"); + insertFinancialAccountsPayable(outsourceOrderVO); } outsourceOrderMapper.updateOutsourceOrder(outsourceOrderVO); return processInstance; @@ -273,7 +271,7 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService variables.put("authority",1); }else if(roleKeys.contains("wwjlRole")){ variables.put("authority",2); - }else if(roleKeys.contains("wwzgRole")){ + }else if(roleKeys.contains("wwzgRole")||roleKeys.contains("admin")){ variables.put("authority",3); } } @@ -315,7 +313,7 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService tempDetail.setOutsourceOrderNo(order.getOutsourceOrderNo()); List details= orderDetailMapper.selectOutsourceOrderDetailList(tempDetail); for (OutsourceOrderDetail detail:details) { - OutsourceMaterial material = outsourcePlanService.selectMaterialByCode(detail.getMaterialNo()); + OutsourceMaterial material = outsourcePlanService.selectMaterialByCode(detail.getMaterialNo(),detail.getPlanDetailId()); // 确保 material 的 OrderDetails 集合已初始化 if (material.getOrderDetails() == null) { material.setOrderDetails(new ArrayList<>()); @@ -373,17 +371,14 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService String OutsourceOrderNo = outsourceOrderVO.getOutsourceOrderNo(); if (StringUtils.isNotNull(outsourceOrderDetailList)) { - List list = new ArrayList(); for (OutsourceOrderDetail outsourceOrderDetail : outsourceOrderDetailList) { outsourceOrderDetail.setOutsourceOrderNo(OutsourceOrderNo); outsourceOrderDetail.setRemitStatus("0"); outsourceOrderDetail.setClosedStatus("0"); - list.add(outsourceOrderDetail); - } - if (list.size() > 0) - { - orderDetailMapper.batchOutsourceOrderDetail(list); + outsourceOrderDetail.setCreateBy(ShiroUtils.getLoginName()); + outsourceOrderDetail.setCreateTime(DateUtils.getNowDate()); + orderDetailMapper.insertOutsourceOrderDetail(outsourceOrderDetail); } } } @@ -467,7 +462,7 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService // 根据委外订单详情子表数据生成应付账款记录 @Override public int insertFinancialAccountsPayable(OutsourceOrder outsourceOrder) { - List orderDetails = outsourceOrder.getOutsourceOrderDetailList(); + List orderDetails = orderDetailMapper.selectOutsourceOrderDetailByCode(outsourceOrder.getOutsourceOrderNo()); if(CollectionUtils.isEmpty(orderDetails)){ throw new BusinessException("委外订单详情为空!"); } diff --git a/ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderDetailMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderDetailMapper.xml index 48ad12b7..f8773af7 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderDetailMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderDetailMapper.xml @@ -24,10 +24,21 @@ 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, planned_outsource_amount from outsource_order_detail + 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, + planned_outsource_amount ,plan_detail_id, create_by, create_time, + update_by, update_time from outsource_order_detail @@ -80,6 +92,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" no_rmb_sum, correlation_codes, planned_outsource_amount, + plan_detail_id, + create_by, + create_time, + update_by, + update_time, #{outsourceOrderNo}, @@ -100,6 +117,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{noRmbSum}, #{correlationCodes}, #{plannedOutsourceAmount}, + #{planDetailId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, @@ -124,6 +146,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" no_rmb_sum = #{noRmbSum}, correlation_codes = #{correlationCodes}, planned_outsource_amount = #{plannedOutsourceAmount}, + plan_detail_id = #{planDetailId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, where outsource_order_detail_id = #{outsourceOrderDetailId} @@ -159,9 +186,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - insert into outsource_order_detail( 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,planned_outsource_amount) values + insert into outsource_order_detail( 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,planned_outsource_amount, + plan_detail_id,create_by,create_time) values - ( #{item.outsourceOrderDetailId}, #{item.outsourceOrderNo}, #{item.materialNo}, #{item.outsourceProcessNo}, #{item.outsourceProcessName}, #{item.chargeUnit}, #{item.singleMaterial}, #{item.deliveryTime}, #{item.actualOutsourceAmount}, #{item.materialRmb}, #{item.materialNoRmb}, #{item.supplierCode}, #{item.supplierName}, #{item.closedStatus}, #{item.remitStatus}, #{item.rmbSum}, #{item.noRmbSum}, #{item.correlationCodes},#{item.plannedOutsourceAmount}) + ( #{item.outsourceOrderDetailId}, #{item.outsourceOrderNo}, #{item.materialNo}, + #{item.outsourceProcessNo}, #{item.outsourceProcessName}, #{item.chargeUnit}, + #{item.singleMaterial}, #{item.deliveryTime}, #{item.actualOutsourceAmount}, + #{item.materialRmb}, #{item.materialNoRmb}, #{item.supplierCode}, #{item.supplierName}, + #{item.closedStatus}, #{item.remitStatus}, #{item.rmbSum}, #{item.noRmbSum}, + #{item.correlationCodes},#{item.plannedOutsourceAmount},#{item.planDetailId}, + #{item.createBy},#{item.createTime}) + + + \ No newline at end of file