Browse Source

[fix]

委外加工 委外订单
修改委外订单审批完成controller方法,根据审批结果不同调用方法;
修改委外订单详情对象,添加委外计划详情id字段;
修改根据订单号查询委外订单用以领料或入库service方法,添加委外计划详情id参数;
新增根据委外订单号查询委外订单详情列表mapper方法;
dev
王晓迪 2 months ago
parent
commit
7073e340ba
  1. 39
      ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceOrderController.java
  2. 11
      ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceOrderDetail.java
  3. 4
      ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceOrderDetailMapper.java
  4. 23
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceOrderServiceImpl.java
  5. 53
      ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderDetailMapper.xml

39
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); boolean processIsFinish = processService.judgeProcessIsFinish(instanceId);
if (processIsFinish) { if (processIsFinish) {
// 审核通过 // 审核通过
outsourceOrderVO.setAuditStatus("1"); if(!approvedFlag){
// 提交 // 审核状态-审核拒绝
if("submit".equals(instanceType)){ outsourceOrderVO.setAuditStatus("2");
// 使用状态-是 }else{
outsourceOrderVO.setUseStatus("1"); outsourceOrderVO.setAuditStatus("1");
OutsourceOrder outsourceOrder = outsourceOrderService.selectOutsourceOrderByOutsourceOrderId(outsourceOrderVO.getOutsourceOrderId()); // 提交
outsourceOrderService.insertFinancialAccountsPayable(outsourceOrder); if("submit".equals(instanceType)){
} // 使用状态-是
// 作废 outsourceOrderVO.setUseStatus("1");
else if("cancel".equals(instanceType)){ OutsourceOrder outsourceOrder = outsourceOrderService.selectOutsourceOrderByOutsourceOrderId(outsourceOrderVO.getOutsourceOrderId());
// 使用状态-已作废 outsourceOrderService.insertFinancialAccountsPayable(outsourceOrder);
outsourceOrderVO.setUseStatus("2"); }
} // 作废
// 恢复 else if("cancel".equals(instanceType)){
else if("restore".equals(instanceType)){ // 使用状态-已作废
// 使用状态-是 outsourceOrderVO.setUseStatus("2");
outsourceOrderVO.setUseStatus("1"); }
// 恢复
else if("restore".equals(instanceType)){
// 使用状态-是
outsourceOrderVO.setUseStatus("1");
}
} }
} }
outsourceOrderService.updateAuditOutsourceOrder(outsourceOrderVO); outsourceOrderService.updateAuditOutsourceOrder(outsourceOrderVO);

11
ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceOrderDetail.java

@ -98,6 +98,9 @@ public class OutsourceOrderDetail extends BaseEntity
// 委外工序数量 // 委外工序数量
private int outsourceProcessAmount; private int outsourceProcessAmount;
//委外计划详情id
private Long planDetailId;
public void setOutsourceOrderDetailId(Long outsourceOrderDetailId) public void setOutsourceOrderDetailId(Long outsourceOrderDetailId)
{ {
this.outsourceOrderDetailId = outsourceOrderDetailId; this.outsourceOrderDetailId = outsourceOrderDetailId;
@ -300,6 +303,14 @@ public class OutsourceOrderDetail extends BaseEntity
this.plannedOutsourceAmount = plannedOutsourceAmount; this.plannedOutsourceAmount = plannedOutsourceAmount;
} }
public Long getPlanDetailId() {
return planDetailId;
}
public void setPlanDetailId(Long planDetailId) {
this.planDetailId = planDetailId;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

4
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 deleteOutsourceOrderDetailByOutsourceOrderNo(String outsourceOrderNo);
public int deleteOutsourceOrderDetailByOutsourceOrderNos(String[] outsourceOrderNos); public int deleteOutsourceOrderDetailByOutsourceOrderNos(String[] outsourceOrderNos);
/*
* 根据委外订单号查询委外订单详情列表*/
public List<OutsourceOrderDetail> selectOutsourceOrderDetailByCode(String outsourceOrderNo);
} }

23
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.financial.mapper.FinancialAccountsPayableMapper;
import com.ruoyi.process.general.service.IProcessService; import com.ruoyi.process.general.service.IProcessService;
import com.ruoyi.process.todoitem.mapper.BizTodoItemMapper; import com.ruoyi.process.todoitem.mapper.BizTodoItemMapper;
import com.ruoyi.system.domain.OutsourceMaterial; import com.ruoyi.system.domain.*;
import com.ruoyi.system.domain.OutsourceOrder;
import com.ruoyi.system.domain.OutsourceOrderDetail;
import com.ruoyi.system.domain.SysSupplier;
import com.ruoyi.system.domain.Vo.OutsourceOrderVO; import com.ruoyi.system.domain.Vo.OutsourceOrderVO;
import com.ruoyi.system.domain.Vo.OutsourceRequisitionVO; import com.ruoyi.system.domain.Vo.OutsourceRequisitionVO;
import com.ruoyi.system.mapper.OutsourceOrderDetailMapper; import com.ruoyi.system.mapper.OutsourceOrderDetailMapper;
@ -103,7 +100,7 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService
if(StringUtils.isNotEmpty(details)){ if(StringUtils.isNotEmpty(details)){
outsourceOrderVO.setOutsourceOrderDetailList(details); outsourceOrderVO.setOutsourceOrderDetailList(details);
for (OutsourceOrderDetail detail: details) { for (OutsourceOrderDetail detail: details) {
OutsourceMaterial material = outsourcePlanService.selectMaterialByCode(detail.getMaterialNo()); OutsourceMaterial material = outsourcePlanService.selectMaterialByCode(detail.getMaterialNo(),detail.getPlanDetailId());
detail.setOutsourceMaterial(material); detail.setOutsourceMaterial(material);
} }
} }
@ -235,6 +232,7 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService
if(processIsFinish){ if(processIsFinish){
// 审核状态-审核通过 // 审核状态-审核通过
outsourceOrderVO.setAuditStatus("1"); outsourceOrderVO.setAuditStatus("1");
insertFinancialAccountsPayable(outsourceOrderVO);
} }
outsourceOrderMapper.updateOutsourceOrder(outsourceOrderVO); outsourceOrderMapper.updateOutsourceOrder(outsourceOrderVO);
return processInstance; return processInstance;
@ -273,7 +271,7 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService
variables.put("authority",1); variables.put("authority",1);
}else if(roleKeys.contains("wwjlRole")){ }else if(roleKeys.contains("wwjlRole")){
variables.put("authority",2); variables.put("authority",2);
}else if(roleKeys.contains("wwzgRole")){ }else if(roleKeys.contains("wwzgRole")||roleKeys.contains("admin")){
variables.put("authority",3); variables.put("authority",3);
} }
} }
@ -315,7 +313,7 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService
tempDetail.setOutsourceOrderNo(order.getOutsourceOrderNo()); tempDetail.setOutsourceOrderNo(order.getOutsourceOrderNo());
List<OutsourceOrderDetail> details= orderDetailMapper.selectOutsourceOrderDetailList(tempDetail); List<OutsourceOrderDetail> details= orderDetailMapper.selectOutsourceOrderDetailList(tempDetail);
for (OutsourceOrderDetail detail:details) { for (OutsourceOrderDetail detail:details) {
OutsourceMaterial material = outsourcePlanService.selectMaterialByCode(detail.getMaterialNo()); OutsourceMaterial material = outsourcePlanService.selectMaterialByCode(detail.getMaterialNo(),detail.getPlanDetailId());
// 确保 material 的 OrderDetails 集合已初始化 // 确保 material 的 OrderDetails 集合已初始化
if (material.getOrderDetails() == null) { if (material.getOrderDetails() == null) {
material.setOrderDetails(new ArrayList<>()); material.setOrderDetails(new ArrayList<>());
@ -373,17 +371,14 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService
String OutsourceOrderNo = outsourceOrderVO.getOutsourceOrderNo(); String OutsourceOrderNo = outsourceOrderVO.getOutsourceOrderNo();
if (StringUtils.isNotNull(outsourceOrderDetailList)) if (StringUtils.isNotNull(outsourceOrderDetailList))
{ {
List<OutsourceOrderDetail> list = new ArrayList<OutsourceOrderDetail>();
for (OutsourceOrderDetail outsourceOrderDetail : outsourceOrderDetailList) for (OutsourceOrderDetail outsourceOrderDetail : outsourceOrderDetailList)
{ {
outsourceOrderDetail.setOutsourceOrderNo(OutsourceOrderNo); outsourceOrderDetail.setOutsourceOrderNo(OutsourceOrderNo);
outsourceOrderDetail.setRemitStatus("0"); outsourceOrderDetail.setRemitStatus("0");
outsourceOrderDetail.setClosedStatus("0"); outsourceOrderDetail.setClosedStatus("0");
list.add(outsourceOrderDetail); outsourceOrderDetail.setCreateBy(ShiroUtils.getLoginName());
} outsourceOrderDetail.setCreateTime(DateUtils.getNowDate());
if (list.size() > 0) orderDetailMapper.insertOutsourceOrderDetail(outsourceOrderDetail);
{
orderDetailMapper.batchOutsourceOrderDetail(list);
} }
} }
} }
@ -467,7 +462,7 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService
// 根据委外订单详情子表数据生成应付账款记录 // 根据委外订单详情子表数据生成应付账款记录
@Override @Override
public int insertFinancialAccountsPayable(OutsourceOrder outsourceOrder) { public int insertFinancialAccountsPayable(OutsourceOrder outsourceOrder) {
List<OutsourceOrderDetail> orderDetails = outsourceOrder.getOutsourceOrderDetailList(); List<OutsourceOrderDetail> orderDetails = orderDetailMapper.selectOutsourceOrderDetailByCode(outsourceOrder.getOutsourceOrderNo());
if(CollectionUtils.isEmpty(orderDetails)){ if(CollectionUtils.isEmpty(orderDetails)){
throw new BusinessException("委外订单详情为空!"); throw new BusinessException("委外订单详情为空!");
} }

53
ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderDetailMapper.xml

@ -24,10 +24,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="noRmbSum" column="no_rmb_sum" /> <result property="noRmbSum" column="no_rmb_sum" />
<result property="correlationCodes" column="correlation_codes" /> <result property="correlationCodes" column="correlation_codes" />
<result property="plannedOutsourceAmount" column="planned_outsource_amount" /> <result property="plannedOutsourceAmount" column="planned_outsource_amount" />
<result property="planDetailId" column="plan_detail_id" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap> </resultMap>
<sql id="selectOutsourceOrderDetailVo"> <sql id="selectOutsourceOrderDetailVo">
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
</sql> </sql>
<select id="selectOutsourceOrderDetailList" parameterType="OutsourceOrderDetail" resultMap="OutsourceOrderDetailResult"> <select id="selectOutsourceOrderDetailList" parameterType="OutsourceOrderDetail" resultMap="OutsourceOrderDetailResult">
@ -51,6 +62,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="noRmbSum != null "> and no_rmb_sum = #{noRmbSum}</if> <if test="noRmbSum != null "> and no_rmb_sum = #{noRmbSum}</if>
<if test="correlationCodes != null and correlationCodes != ''"> and correlation_codes = #{correlationCodes}</if> <if test="correlationCodes != null and correlationCodes != ''"> and correlation_codes = #{correlationCodes}</if>
<if test="plannedOutsourceAmount != null "> and planned_outsource_amount = #{plannedOutsourceAmount}</if> <if test="plannedOutsourceAmount != null "> and planned_outsource_amount = #{plannedOutsourceAmount}</if>
<if test="planDetailId != null "> and plan_detail_id = #{planDetailId}</if>
</where> </where>
</select> </select>
@ -80,6 +92,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="noRmbSum != null">no_rmb_sum,</if> <if test="noRmbSum != null">no_rmb_sum,</if>
<if test="correlationCodes != null">correlation_codes,</if> <if test="correlationCodes != null">correlation_codes,</if>
<if test="plannedOutsourceAmount != null">planned_outsource_amount,</if> <if test="plannedOutsourceAmount != null">planned_outsource_amount,</if>
<if test="planDetailId != null">plan_detail_id,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="outsourceOrderNo != null and outsourceOrderNo != ''">#{outsourceOrderNo},</if> <if test="outsourceOrderNo != null and outsourceOrderNo != ''">#{outsourceOrderNo},</if>
@ -100,6 +117,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="noRmbSum != null">#{noRmbSum},</if> <if test="noRmbSum != null">#{noRmbSum},</if>
<if test="correlationCodes != null">#{correlationCodes},</if> <if test="correlationCodes != null">#{correlationCodes},</if>
<if test="plannedOutsourceAmount != null">#{plannedOutsourceAmount},</if> <if test="plannedOutsourceAmount != null">#{plannedOutsourceAmount},</if>
<if test="planDetailId != null">#{planDetailId},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim> </trim>
</insert> </insert>
@ -124,6 +146,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="noRmbSum != null">no_rmb_sum = #{noRmbSum},</if> <if test="noRmbSum != null">no_rmb_sum = #{noRmbSum},</if>
<if test="correlationCodes != null">correlation_codes = #{correlationCodes},</if> <if test="correlationCodes != null">correlation_codes = #{correlationCodes},</if>
<if test="plannedOutsourceAmount != null">planned_outsource_amount = #{plannedOutsourceAmount},</if> <if test="plannedOutsourceAmount != null">planned_outsource_amount = #{plannedOutsourceAmount},</if>
<if test="planDetailId != null">plan_detail_id = #{planDetailId},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim> </trim>
where outsource_order_detail_id = #{outsourceOrderDetailId} where outsource_order_detail_id = #{outsourceOrderDetailId}
</update> </update>
@ -159,9 +186,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete> </delete>
<insert id="batchOutsourceOrderDetail"> <insert id="batchOutsourceOrderDetail">
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
<foreach item="item" index="index" collection="list" separator=","> <foreach item="item" index="index" collection="list" separator=",">
( #{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})
</foreach> </foreach>
</insert> </insert>
<select id="selectOutsourceOrderDetailByCode" parameterType="String" resultMap="OutsourceOrderDetailResult">
<include refid="selectOutsourceOrderDetailVo"/>
where outsource_order_no = #{outsourceOrderNo}
</select>
</mapper> </mapper>
Loading…
Cancel
Save