Browse Source

[fix]

委外加工 委外计划
修改委外计划实体类,数量相关字段类型改为Integer;
修改委外计划详情对象,数量相关字段类型改为Integer,新增层级、父级id、生产bomID、委外订单号、已委外领料数字段;
修改委外物料对象,新增计划详情id字段;
新增根据详情id查询委外计划详情controller接口;
修改查询委外计划列表service方法,获取详情列表后过滤保留0阶记录;
新增查询委外计划详情service方法,获取详情后遍历联查获取已领料数;
新增查询委外计划详情和新增委外计划详情mapper方法,修改相关方法,新增字段;
dev
王晓迪 2 months ago
parent
commit
8a19decc04
  1. 11
      ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourcePlanController.java
  2. 10
      ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceMaterial.java
  3. 24
      ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourcePlan.java
  4. 89
      ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourcePlanDetail.java
  5. 8
      ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourcePlanMapper.java
  6. 6
      ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourcePlanService.java
  7. 51
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourcePlanServiceImpl.java
  8. 86
      ruoyi-admin/src/main/resources/mapper/system/OutsourcePlanMapper.xml
  9. 4
      ruoyi-admin/src/main/resources/templates/system/outsource_plan/addOutsourceOrder.html

11
ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourcePlanController.java

@ -156,4 +156,15 @@ public class OutsourcePlanController extends BaseController
{
return toAjax(outsourcePlanService.deleteOutsourcePlanByOutsourcePlanIds(ids));
}
/**
* 查询委外计划详情
*/
@PostMapping("/getRequisitionMaterial")
@ResponseBody
public TableDataInfo getRequisitionMaterial(OutsourcePlanDetail outsourcePlanDetail)
{
List<OutsourcePlanDetail> list = outsourcePlanService.selectOutsourcePlanDetail(outsourcePlanDetail);
return getDataTable(list);
}
}

10
ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceMaterial.java

@ -75,6 +75,8 @@ public class OutsourceMaterial extends BaseEntity {
private String correlationCodes;
private Long planDetailId;
private List<OutsourceOrderDetail> orderDetails;
public List<OutsourceOrderDetail> getOrderDetails() {
@ -246,6 +248,14 @@ public class OutsourceMaterial extends BaseEntity {
this.deliveryTime = deliveryTime;
}
public Long getPlanDetailId() {
return planDetailId;
}
public void setPlanDetailId(Long planDetailId) {
this.planDetailId = planDetailId;
}
@Override
public String toString() {
return "OutsourceMaterial{" +

24
ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourcePlan.java

@ -38,19 +38,19 @@ public class OutsourcePlan extends BaseEntity
/** 物料总计 */
@Excel(name = "物料总计")
private int materialAmount;
private Integer materialAmount;
/** 数量总计 */
@Excel(name = "数量总计")
private BigDecimal totalAmount;
private Integer totalAmount;
/** 委外工序种类 */
@Excel(name = "委外工序种类")
private int outsourceProcessType;
private Integer outsourceProcessType;
/** 委外工序合计 */
@Excel(name = "委外工序合计")
private int outsourceProcessAmount;
private Integer outsourceProcessAmount;
/** 来源 */
@Excel(name = "来源")
@ -109,42 +109,42 @@ public class OutsourcePlan extends BaseEntity
return status;
}
public void setMaterialAmount(int materialAmount)
public void setMaterialAmount(Integer materialAmount)
{
this.materialAmount = materialAmount;
}
public int getMaterialAmount()
public Integer getMaterialAmount()
{
return materialAmount;
}
public void setTotalAmount(BigDecimal totalAmount)
public void setTotalAmount(Integer totalAmount)
{
this.totalAmount = totalAmount;
}
public BigDecimal getTotalAmount()
public Integer getTotalAmount()
{
return totalAmount;
}
public void setOutsourceProcessType(int outsourceProcessType)
public void setOutsourceProcessType(Integer outsourceProcessType)
{
this.outsourceProcessType = outsourceProcessType;
}
public int getOutsourceProcessType()
public Integer getOutsourceProcessType()
{
return outsourceProcessType;
}
public void setOutsourceProcessAmount(int outsourceProcessAmount)
public void setOutsourceProcessAmount(Integer outsourceProcessAmount)
{
this.outsourceProcessAmount = outsourceProcessAmount;
}
public int getOutsourceProcessAmount()
public Integer getOutsourceProcessAmount()
{
return outsourceProcessAmount;
}

89
ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourcePlanDetail.java

@ -45,14 +45,6 @@ public class OutsourcePlanDetail extends BaseEntity
@Excel(name = "描述")
private String description;
public OutsourceMaterial getMaterial() {
return material;
}
public void setMaterial(OutsourceMaterial material) {
this.material = material;
}
/** 品牌 */
@Excel(name = "品牌")
private String brand;
@ -67,18 +59,41 @@ public class OutsourcePlanDetail extends BaseEntity
/** 计划委外数 */
@Excel(name = "计划委外数")
private BigDecimal plannedOutsourceAmount;
private Integer plannedOutsourceAmount;
/** 委外工序种类 */
@Excel(name = "委外工序种类")
private int outsourceProcessType;
private Integer outsourceProcessType;
/** 委外工序合计 */
@Excel(name = "委外工序合计")
private int outsourceProcessAmount;
private Integer outsourceProcessAmount;
//层级
private int level;
//父级id
private Long parentId;
//生产bomID(避免订单中出现重复报错)
private Long makeBomId;
/** 委外订单号(不保存数据库,*/
private String outsourceOrderNo;
/** 已委外领料数(不保存数据库*/
private int pickedNum;
private OutsourceMaterial material;
public OutsourceMaterial getMaterial() {
return material;
}
public void setMaterial(OutsourceMaterial material) {
this.material = material;
}
public void setOutsourcePlanDetailId(Long outsourcePlanDetailId)
{
this.outsourcePlanDetailId = outsourcePlanDetailId;
@ -169,34 +184,74 @@ public class OutsourcePlanDetail extends BaseEntity
{
return unit;
}
public void setPlannedOutsourceAmount(BigDecimal plannedOutsourceAmount)
public void setPlannedOutsourceAmount(Integer plannedOutsourceAmount)
{
this.plannedOutsourceAmount = plannedOutsourceAmount;
}
public BigDecimal getPlannedOutsourceAmount()
public Integer getPlannedOutsourceAmount()
{
return plannedOutsourceAmount;
}
public void setOutsourceProcessType(int outsourceProcessType)
public void setOutsourceProcessType(Integer outsourceProcessType)
{
this.outsourceProcessType = outsourceProcessType;
}
public int getOutsourceProcessType()
public Integer getOutsourceProcessType()
{
return outsourceProcessType;
}
public void setOutsourceProcessAmount(int outsourceProcessAmount)
public void setOutsourceProcessAmount(Integer outsourceProcessAmount)
{
this.outsourceProcessAmount = outsourceProcessAmount;
}
public int getOutsourceProcessAmount()
public Integer getOutsourceProcessAmount()
{
return outsourceProcessAmount;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public Long getMakeBomId() {
return makeBomId;
}
public void setMakeBomId(Long makeBomId) {
this.makeBomId = makeBomId;
}
public String getOutsourceOrderNo() {
return outsourceOrderNo;
}
public void setOutsourceOrderNo(String outsourceOrderNo) {
this.outsourceOrderNo = outsourceOrderNo;
}
public int getPickedNum() {
return pickedNum;
}
public void setPickedNum(int pickedNum) {
this.pickedNum = pickedNum;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

8
ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourcePlanMapper.java

@ -113,4 +113,12 @@ public interface OutsourcePlanMapper
* @return 结果
*/
public int deleteOutsourcePlanDetailByOutsourcePlanCode(Long outsourcePlanId);
/*
* 新增委外计划详情*/
public int insertOutsourcePlanDetail(OutsourcePlanDetail outsourcePlanDetail);
/*
* 查询委外计划详情*/
public List<OutsourcePlanDetail> selectOutsourcePlanDetail(OutsourcePlanDetail outsourcePlanDetail);
}

6
ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourcePlanService.java

@ -88,7 +88,9 @@ public interface IOutsourcePlanService
* @param materialNo 委外计划详情中包含的料号
* @return 委外物料集合
*/
public OutsourceMaterial selectMaterialByCode(String materialNo);
public OutsourceMaterial selectMaterialByCode(String materialNo,Long id);
/*
* 查询委外计划详情*/
public List<OutsourcePlanDetail> selectOutsourcePlanDetail(OutsourcePlanDetail outsourcePlanDetail);
}

51
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourcePlanServiceImpl.java

@ -3,16 +3,10 @@ package com.ruoyi.system.service.impl;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.domain.OutsourceMaterial;
import com.ruoyi.system.domain.OutsourcePlan;
import com.ruoyi.system.domain.OutsourcePlanDetail;
import com.ruoyi.system.domain.OutsourceQuoteChild;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.domain.Vo.OutsourceProcessVo;
import com.ruoyi.system.domain.Vo.Supplier;
import com.ruoyi.system.mapper.OutsourceMaterialMapper;
import com.ruoyi.system.mapper.OutsourcePlanMapper;
import com.ruoyi.system.mapper.OutsourceProcessMapper;
import com.ruoyi.system.mapper.OutsourceQuoteMapper;
import com.ruoyi.system.mapper.*;
import com.ruoyi.system.service.IOutsourcePlanService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -44,6 +38,9 @@ public class OutsourcePlanServiceImpl implements IOutsourcePlanService
@Autowired
private OutsourceMaterialMapper outsourceMaterialMapper;
@Autowired
private OutsourceRequisitionMapper requisitionMapper;
/**
* 查询委外计划
*
@ -106,25 +103,26 @@ public class OutsourcePlanServiceImpl implements IOutsourcePlanService
List<OutsourcePlan> outsourcePlans = outsourcePlanMapper.selectOutsourcePlanByCodes(Convert.toStrArray(outsourcePlanCodes));
for (OutsourcePlan plan:outsourcePlans) {
List<OutsourcePlanDetail> details = outsourcePlanMapper.selectOutsourcePlanDetailByCodes(Convert.toStrArray(plan.getOutsourcePlanCode()));
if(details.size()!=0){
for (OutsourcePlanDetail planDetail:details) {
OutsourceMaterial materials = selectMaterialByCode(planDetail.getMaterialNo());
List<OutsourcePlanDetail> filtDetails = details.stream().filter(item ->item.getLevel() == 0).collect(Collectors.toList());
if(filtDetails.size()!=0){
for (OutsourcePlanDetail planDetail:filtDetails) {
OutsourceMaterial materials = selectMaterialByCode(planDetail.getMaterialNo(),planDetail.getOutsourcePlanDetailId());
materials.setCorrelationCodes(plan.getAssociateOrderNo());
planDetail.setMaterial(materials);
}
plan.setOutsourcePlanDetailList(details);
plan.setOutsourcePlanDetailList(filtDetails);
}
}
// System.out.println(outsourcePlans);
return outsourcePlans;
}
// 获取物料信息
@Override
public OutsourceMaterial selectMaterialByCode(String materialNo) {
public OutsourceMaterial selectMaterialByCode(String materialNo,Long id) {
List<OutsourceMaterial> materialList = outsourceMaterialMapper.selectProcessNoByNo(materialNo);
OutsourceMaterial shareMaterial = materialList.get(0);
OutsourceMaterial material = new OutsourceMaterial();
material.setPlanDetailId(id);
material.setMaterialNo(shareMaterial.getMaterialNo());
material.setMaterialName(shareMaterial.getMaterialName());
material.setMaterialType(shareMaterial.getMaterialType());
@ -276,4 +274,29 @@ public class OutsourcePlanServiceImpl implements IOutsourcePlanService
}
}
}
/*
* 查询委外计划详情*/
@Override
public List<OutsourcePlanDetail> selectOutsourcePlanDetail(OutsourcePlanDetail outsourcePlanDetail){
String outsoutceOrderNo = outsourcePlanDetail.getOutsourceOrderNo();
List<OutsourcePlanDetail> details = outsourcePlanMapper.selectOutsourcePlanDetail(outsourcePlanDetail);
if(StringUtils.isNotEmpty(details)){
for (OutsourcePlanDetail plan: details) {
OutsourceRequisitionDetail requisitionDetail = new OutsourceRequisitionDetail();
requisitionDetail.setOutsourceOrderNo(outsoutceOrderNo);
requisitionDetail.setPlanDetailId(plan.getOutsourcePlanDetailId());
List<OutsourceRequisitionDetail> requisitionDetails = requisitionMapper.selectOutsourceRequisitionDetailList(requisitionDetail);
List<OutsourceRequisitionDetail> filtList = requisitionDetails.stream().filter(item -> item.getAuditStatus().equals("0")
|| item.getAuditStatus().equals("1")).collect(Collectors.toList());
if(StringUtils.isEmpty(filtList)){
plan.setPickedNum(0);
}else{
int pikenNum = filtList.stream().mapToInt(item -> item.getTakingMaterial()).sum();
plan.setPickedNum(pikenNum);
}
}
}
return details;
}
}

86
ruoyi-admin/src/main/resources/mapper/system/OutsourcePlanMapper.xml

@ -39,12 +39,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="plannedOutsourceAmount" column="planned_outsource_amount" />
<result property="outsourceProcessType" column="outsource_process_type" />
<result property="outsourceProcessAmount" column="outsource_process_amount" />
<result property="level" column="level" />
<result property="parentId" column="parent_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>
<sql id="selectOutsourcePlanVo">
select outsource_plan_id, outsource_plan_code, associate_order_no, applicant, status, material_amount, total_amount, outsource_process_type, outsource_process_amount, source, create_by, create_time, update_by, update_time from outsource_plan
</sql>
<sql id="selectOutsourcePlanDetail">
select outsource_plan_detail_id, outsource_plan_code,
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
from outsource_plan_detail
</sql>
<select id="selectOutsourcePlanList" parameterType="OutsourcePlan" resultMap="OutsourcePlanResult">
<include refid="selectOutsourcePlanVo"/>
<where>
@ -57,6 +72,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="params.beginCreateTime != null and params.beginCreateTime != '' and params.endCreateTime != null and params.endCreateTime != ''"> and create_time between #{params.beginCreateTime} and #{params.endCreateTime}</if>
</where>
</select>
<select id="selectOutsourcePlanDetail" parameterType="OutsourcePlanDetail" resultMap="OutsourcePlanDetailResult">
<include refid="selectOutsourcePlanDetail"/>
<where>
<if test="outsourcePlanCode != null and outsourcePlanCode != ''"> and outsource_plan_code = #{outsourcePlanCode}</if>
<if test="outsourcePlanDetailId != null and outsourcePlanDetailId != ''"> and outsource_plan_detail_id = #{outsourcePlanDetailId}</if>
<if test="parentId != null and parentId != ''"> and parent_id = #{parentId}</if>
</where>
</select>
<select id="selectOutsourcePlanByOutsourcePlanId" parameterType="Long" resultMap="OutsourcePlanOutsourcePlanDetailResult">
select outsource_plan_id, outsource_plan_code, associate_order_no, applicant, status, material_amount, total_amount, outsource_process_type, outsource_process_amount, source, create_by, create_time, update_by, update_time
@ -65,8 +89,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="selectOutsourcePlanDetailList" resultType="OutsourcePlanDetail" resultMap="OutsourcePlanDetailResult">
select outsource_plan_detail_id, outsource_plan_code, material_no, material_name, material_type, material_photoUrl, description, brand, process_method, unit, planned_outsource_amount, outsource_process_type, outsource_process_amount
from outsource_plan_detail
<include refid="selectOutsourcePlanDetail"/>
where outsource_plan_code = #{outsource_plan_code}
</select>
@ -136,8 +159,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<!-- 按委外计划单编号批量查询详情-->
<select id="selectOutsourcePlanDetailByCodes" parameterType="String" resultMap="OutsourcePlanDetailResult">
select outsource_plan_detail_id, outsource_plan_code, material_no, material_name, material_type, material_photoUrl, description, brand, process_method, unit, planned_outsource_amount, outsource_process_type, outsource_process_amount
from outsource_plan_detail
<include refid="selectOutsourcePlanDetail"/>
where outsource_plan_code in
<foreach item="outsourcePlanCode" collection="array" open="(" separator="," close=")">
#{outsourcePlanCode}
@ -165,10 +187,62 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<insert id="batchOutsourcePlanDetail">
insert into outsource_plan_detail( outsource_plan_detail_id, outsource_plan_code, material_no, material_name, material_type, material_photoUrl, description, brand, process_method, unit, planned_outsource_amount, outsource_process_type, outsource_process_amount) values
insert into outsource_plan_detail( outsource_plan_detail_id, outsource_plan_code,
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) values
<foreach item="item" index="index" collection="list" separator=",">
( #{item.outsourcePlanDetailId}, #{item.outsourcePlanCode}, #{item.materialNo}, #{item.materialName}, #{item.materialType}, #{item.materialPhotourl}, #{item.description}, #{item.brand}, #{item.processMethod}, #{item.unit}, #{item.plannedOutsourceAmount}, #{item.outsourceProcessType}, #{item.outsourceProcessAmount})
( #{item.outsourcePlanDetailId}, #{item.outsourcePlanCode},
#{item.materialNo}, #{item.materialName}, #{item.materialType},
#{item.materialPhotourl}, #{item.description}, #{item.brand},
#{item.processMethod}, #{item.unit}, #{item.plannedOutsourceAmount},
#{item.outsourceProcessType}, #{item.outsourceProcessAmount},
#{item.level}, #{item.parentId})
</foreach>
</insert>
<insert id="insertOutsourcePlanDetail" parameterType="OutsourcePlanDetail" useGeneratedKeys="true" keyProperty="outsourcePlanDetailId">
insert into outsource_plan_detail
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="outsourcePlanCode != null and outsourcePlanCode != ''">outsource_plan_code,</if>
<if test="materialNo != null">material_no,</if>
<if test="materialName != null">material_name,</if>
<if test="materialType != null">material_type,</if>
<if test="materialPhotourl != null">material_photoUrl,</if>
<if test="description != null">description,</if>
<if test="brand != null">brand,</if>
<if test="processMethod != null">process_method,</if>
<if test="unit != null">unit,</if>
<if test="plannedOutsourceAmount != null">planned_outsource_amount,</if>
<if test="outsourceProcessType != null">outsource_process_type,</if>
<if test="outsourceProcessAmount != null">outsource_process_amount,</if>
<if test="level != null">`level`,</if>
<if test="parentId != null">parent_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 prefix="values (" suffix=")" suffixOverrides=",">
<if test="outsourcePlanCode != null and outsourcePlanCode != ''">#{outsourcePlanCode},</if>
<if test="materialNo != null">#{materialNo},</if>
<if test="materialName != null">#{materialName},</if>
<if test="materialType != null">#{materialType},</if>
<if test="materialPhotourl != null">#{materialPhotourl},</if>
<if test="description != null">#{description},</if>
<if test="brand != null">#{brand},</if>
<if test="processMethod != null">#{processMethod},</if>
<if test="unit != null">#{unit},</if>
<if test="plannedOutsourceAmount != null">#{plannedOutsourceAmount},</if>
<if test="outsourceProcessType != null">#{outsourceProcessType},</if>
<if test="outsourceProcessAmount != null">#{outsourceProcessAmount},</if>
<if test="level != null">#{level},</if>
<if test="parentId != null">#{parentId},</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>
</insert>
</mapper>

4
ruoyi-admin/src/main/resources/templates/system/outsource_plan/addOutsourceOrder.html

@ -198,6 +198,7 @@
unit: material.unit,
brand: material.brand,
processMethod: material.processMethod,
planDetailId: material.planDetailId,
correlationCodes: material.correlationCodes,
plannedOutsourceAmount: material.plannedOutsourceAmount,
};
@ -355,6 +356,7 @@
materialName: current.material.materialName,
materialType: current.materialType,
description: current.material.description,
planDetailId: current.material.planDetailId,
unit: current.unit,
brand: current.material.brand,
processMethod: current.processMethod,
@ -574,6 +576,7 @@
}
},
{title: '计划委外数', field: 'plannedOutsourceAmount'},
{title: '委外计划详情id', field: 'planDetailId',visible:false},
],
});
}
@ -621,6 +624,7 @@
correlationCodes: materialObj.correlationCodes,
deliveryTime: deliveryTime,
plannedOutsourceAmount: materialObj.plannedOutsourceAmount,
planDetailId: materialObj.planDetailId,
};
outsourceProcessAmount++;
if(!isNaN(actualAmount)){

Loading…
Cancel
Save