Browse Source

[fix]

委外加工 委外入库
修改委外入库详情类,修改数量相关字段为Integer,新增已入库数、通知到货数、通知已到货数字段,去除之前已委外入库数和本次入库数;
修改mapper对应方法,新增字段;
修改新增委外入库service方法,添加总通知到货数和实际委外数校验,同时更新委外订单详情通知已到货数;
修改委外入库列表页面搜索栏定义,添加下拉框;
dev
王晓迪 2 months ago
parent
commit
d936a35c6d
  1. 52
      ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceStorageDetail.java
  2. 2
      ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourceStorageOrderService.java
  3. 115
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceStorageOrderServiceImpl.java
  4. 42
      ruoyi-admin/src/main/resources/mapper/system/OutsourceStorageDetailMapper.xml
  5. 12
      ruoyi-admin/src/main/resources/templates/system/outsource_storage/detail.html
  6. 27
      ruoyi-admin/src/main/resources/templates/system/outsource_storage/storage.html

52
ruoyi-admin/src/main/java/com/ruoyi/system/domain/OutsourceStorageDetail.java

@ -50,10 +50,10 @@ public class OutsourceStorageDetail extends BaseEntity {
private String processMethod; private String processMethod;
/** 计划委外数 */ /** 计划委外数 */
private BigDecimal plannedOutsourceAmount; private Integer plannedOutsourceAmount;
// 实际委外数 // 实际委外数
private BigDecimal actualOutsourceAmount; private Integer actualOutsourceAmount;
// 关联单号 // 关联单号
private String correlationCodes; private String correlationCodes;
@ -73,13 +73,17 @@ public class OutsourceStorageDetail extends BaseEntity {
// 交付时间信息 // 交付时间信息
private String deliveryTimeInfo; private String deliveryTimeInfo;
/** 已委外入库数 */ /** 已入库数 */
@Excel(name = "已委外入库数") @Excel(name = "已入库数")
private BigDecimal takenMaterial; private Integer hasStorageNum;
/** 本次委外入库数 */ /** 通知已到货数 (未保存)*/
@Excel(name = "本次委外入库数") @Excel(name = "通知已到货数")
private BigDecimal takingMaterial; private Integer notifyHasArrivedNum;
/** 通知到货数 */
@Excel(name = "通知到货数")
private Integer notifyArrivedNum;
public Long getOutsourceStorageDetailId() { public Long getOutsourceStorageDetailId() {
return outsourceStorageDetailId; return outsourceStorageDetailId;
@ -169,19 +173,19 @@ public class OutsourceStorageDetail extends BaseEntity {
this.processMethod = processMethod; this.processMethod = processMethod;
} }
public BigDecimal getPlannedOutsourceAmount() { public Integer getPlannedOutsourceAmount() {
return plannedOutsourceAmount; return plannedOutsourceAmount;
} }
public void setPlannedOutsourceAmount(BigDecimal plannedOutsourceAmount) { public void setPlannedOutsourceAmount(Integer plannedOutsourceAmount) {
this.plannedOutsourceAmount = plannedOutsourceAmount; this.plannedOutsourceAmount = plannedOutsourceAmount;
} }
public BigDecimal getActualOutsourceAmount() { public Integer getActualOutsourceAmount() {
return actualOutsourceAmount; return actualOutsourceAmount;
} }
public void setActualOutsourceAmount(BigDecimal actualOutsourceAmount) { public void setActualOutsourceAmount(Integer actualOutsourceAmount) {
this.actualOutsourceAmount = actualOutsourceAmount; this.actualOutsourceAmount = actualOutsourceAmount;
} }
@ -233,20 +237,28 @@ public class OutsourceStorageDetail extends BaseEntity {
this.deliveryTimeInfo = deliveryTimeInfo; this.deliveryTimeInfo = deliveryTimeInfo;
} }
public BigDecimal getTakenMaterial() { public Integer getHasStorageNum() {
return takenMaterial; return hasStorageNum;
}
public void setHasStorageNum(Integer hasStorageNum) {
this.hasStorageNum = hasStorageNum;
}
public Integer getNotifyArrivedNum() {
return notifyArrivedNum;
} }
public void setTakenMaterial(BigDecimal takenMaterial) { public void setNotifyArrivedNum(Integer notifyArrivedNum) {
this.takenMaterial = takenMaterial; this.notifyArrivedNum = notifyArrivedNum;
} }
public BigDecimal getTakingMaterial() { public Integer getNotifyHasArrivedNum() {
return takingMaterial; return notifyHasArrivedNum;
} }
public void setTakingMaterial(BigDecimal takingMaterial) { public void setNotifyHasArrivedNum(Integer notifyHasArrivedNum) {
this.takingMaterial = takingMaterial; this.notifyHasArrivedNum = notifyHasArrivedNum;
} }
public String getOutsourcePlanCode() { public String getOutsourcePlanCode() {

2
ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourceStorageOrderService.java

@ -33,7 +33,7 @@ public interface IOutsourceStorageOrderService
/** /**
* 新增委外入库 * 新增委外入库
* *
* @param warehouseStorageOrder 委外入库 * @param outsourceStorage 委外入库
* @return 结果 * @return 结果
*/ */
public int insertWarehouseStorageOrder(OutsourceStorage outsourceStorage); public int insertWarehouseStorageOrder(OutsourceStorage outsourceStorage);

115
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceStorageOrderServiceImpl.java

@ -6,8 +6,10 @@ import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.exception.BusinessException; import com.ruoyi.common.exception.BusinessException;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.system.domain.OutsourceOrderDetail;
import com.ruoyi.system.domain.OutsourceStorage; import com.ruoyi.system.domain.OutsourceStorage;
import com.ruoyi.system.domain.OutsourceStorageDetail; import com.ruoyi.system.domain.OutsourceStorageDetail;
import com.ruoyi.system.mapper.OutsourceOrderDetailMapper;
import com.ruoyi.system.mapper.OutsourceStorageDetailMapper; import com.ruoyi.system.mapper.OutsourceStorageDetailMapper;
import com.ruoyi.system.service.IOutsourceStorageOrderService; import com.ruoyi.system.service.IOutsourceStorageOrderService;
import com.ruoyi.warehouse.domain.WarehouseStorageOrder; import com.ruoyi.warehouse.domain.WarehouseStorageOrder;
@ -17,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Map; import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
@ -39,6 +42,9 @@ public class OutsourceStorageOrderServiceImpl implements IOutsourceStorageOrderS
@Autowired @Autowired
private OutsourceStorageDetailMapper outsourceStorageDetailMapper; private OutsourceStorageDetailMapper outsourceStorageDetailMapper;
@Autowired
private OutsourceOrderDetailMapper orderDetailMapper;
@Autowired @Autowired
private RedisCache redisCache; private RedisCache redisCache;
@ -61,14 +67,27 @@ public class OutsourceStorageOrderServiceImpl implements IOutsourceStorageOrderS
* @param outsourceStorage 委外入库 * @param outsourceStorage 委外入库
* @return 结果 * @return 结果
*/ */
@Transactional @Transactional(rollbackFor = Exception.class)
@Override @Override
public int insertWarehouseStorageOrder(OutsourceStorage outsourceStorage) public int insertWarehouseStorageOrder(OutsourceStorage outsourceStorage)
{ {
WarehouseStorageOrder warehouseStorageOrder = new WarehouseStorageOrder(); WarehouseStorageOrder warehouseStorageOrder = new WarehouseStorageOrder();
String loginName = ShiroUtils.getLoginName(); String loginName = ShiroUtils.getLoginName();
warehouseStorageOrder.setCreateBy(loginName); String outsourceOrderNo = outsourceStorage.getRelatedOrderCode();
List<OutsourceStorageDetail> outsourceStorageDetails = outsourceStorage.getStorageDetailList();
for (OutsourceStorageDetail detail:outsourceStorageDetails) {
int actualOutNum = Optional.ofNullable(detail.getActualOutsourceAmount()).orElse(0);
int notifyHasArriveNum = Optional.ofNullable(detail.getNotifyHasArrivedNum()).orElse(0);
/** 检查总通知到货数 > 实际委外数?*/
int allArrivedNum = notifyHasArriveNum + detail.getNotifyArrivedNum();
if(allArrivedNum > actualOutNum){
throw new BusinessException("物料" + detail.getMaterialNo() +"总通知到货数大于实际委外数,请检查");
}
}
String warehouseStorageCode = redisCache.generateBillNo("RK"); String warehouseStorageCode = redisCache.generateBillNo("RK");
warehouseStorageOrder.setCreateBy(loginName);
warehouseStorageOrder.setCreateTime(DateUtils.getNowDate()); warehouseStorageOrder.setCreateTime(DateUtils.getNowDate());
warehouseStorageOrder.setWarehouseOrderType("3");//委外订单 warehouseStorageOrder.setWarehouseOrderType("3");//委外订单
warehouseStorageOrder.setWarehouseStorageType("4");//委外入库 warehouseStorageOrder.setWarehouseStorageType("4");//委外入库
@ -81,39 +100,62 @@ public class OutsourceStorageOrderServiceImpl implements IOutsourceStorageOrderS
warehouseStorageOrder.setWarehouseStorageCode(warehouseStorageCode); warehouseStorageOrder.setWarehouseStorageCode(warehouseStorageCode);
warehouseStorageOrder.setNotifyArrivedNum(outsourceStorage.getNotifyArrivedNum()); warehouseStorageOrder.setNotifyArrivedNum(outsourceStorage.getNotifyArrivedNum());
warehouseStorageOrder.setArrivedTime(DateUtils.getNowDate()); warehouseStorageOrder.setArrivedTime(DateUtils.getNowDate());
warehouseStorageOrder.setRelatedOrderCode(outsourceStorage.getRelatedOrderCode()); warehouseStorageOrder.setRelatedOrderCode(outsourceOrderNo);
List<OutsourceStorageDetail> outsourceStorageDetails = outsourceStorage.getStorageDetailList();
if(StringUtils.isEmpty(outsourceStorageDetails)){ List<WarehouseStorageOrderDetail> storageOrderDetails = new ArrayList<>();
throw new BusinessException("新增委外入库单失败!入库单详情为空");
}
for (OutsourceStorageDetail detail:outsourceStorageDetails) { for (OutsourceStorageDetail detail:outsourceStorageDetails) {
detail.setWarehouseStorageCode(warehouseStorageCode); detail.setWarehouseStorageCode(warehouseStorageCode);
outsourceStorageDetailMapper.insertOutsourceStorageDetail(detail); detail.setHasStorageNum(0);
} detail.setCreateBy(loginName);
List<WarehouseStorageOrderDetail> warehouseStorageOrderDetailList = new ArrayList<>(); detail.setCreateTime(DateUtils.getNowDate());
// 使用 Map 分组 int insertResult = outsourceStorageDetailMapper.insertOutsourceStorageDetail(detail);
Map<String, List<OutsourceStorageDetail>> groupedByMaterialNo = outsourceStorageDetails.stream() if(insertResult <= 0){
.collect(Collectors.groupingBy(OutsourceStorageDetail::getMaterialNo)); throw new BusinessException("新增委外入库详情失败!");
// 遍历 Map 的每一个条目
for (Map.Entry<String, List<OutsourceStorageDetail>> entry : groupedByMaterialNo.entrySet()) {
String materialNo = entry.getKey();
List<OutsourceStorageDetail> details = entry.getValue();
// 获取列表中的第一条记录
if (!details.isEmpty()) {
OutsourceStorageDetail firstDetail = details.get(0);
// System.out.println("Material No: " + materialNo + ", First Detail: " + firstDetail);
WarehouseStorageOrderDetail warehouseStorageOrderDetail = generateWarehouseStorageOrderDetail(firstDetail);
warehouseStorageOrderDetail.setWarehouseStorageCode(warehouseStorageCode);
warehouseStorageOrderDetailList.add(warehouseStorageOrderDetail);
} }
} }
if(warehouseStorageOrderDetailList!=null){
warehouseStorageOrder.setWarehouseStorageOrderDetailList(warehouseStorageOrderDetailList);
insertWarehouseStorageOrderDetail(warehouseStorageOrder);
}
// 去除重复的料号
List<OutsourceStorageDetail> uniqueStorageDetails = outsourceStorageDetails.stream()
.collect(Collectors.toMap(
OutsourceStorageDetail::getMaterialNo,
detail -> detail,
(existing, replacement) -> existing
))
.values()
.stream()
.collect(Collectors.toList());
for (OutsourceStorageDetail detail:uniqueStorageDetails) {
OutsourceOrderDetail tempDetail = new OutsourceOrderDetail();
tempDetail.setMaterialNo(detail.getMaterialNo());
tempDetail.setOutsourceOrderNo(outsourceOrderNo);
/** 更新委外订单通知已到货数 += 通知到货数(本次入库数)*/
List<OutsourceOrderDetail> orderDetails = orderDetailMapper.selectOutsourceOrderDetailByNos(tempDetail);
if(StringUtils.isEmpty(orderDetails)){
throw new BusinessException("关联委外订单详情为空");
}
for (OutsourceOrderDetail orderDetail: orderDetails) {
int notifyHasArrivedNum = Optional.ofNullable(orderDetail.getNotifyHasArrivedNum()).orElse(0);
notifyHasArrivedNum = notifyHasArrivedNum + detail.getNotifyArrivedNum();
orderDetail.setNotifyHasArrivedNum(notifyHasArrivedNum);
orderDetail.setUpdateBy(loginName);
orderDetail.setUpdateTime(DateUtils.getNowDate());
int orderUpdateResult = orderDetailMapper.updateOutsourceOrderDetail(orderDetail);
if(orderUpdateResult<=0){
throw new BusinessException("更新订单物料信息失败");
}
}
/** 根据委外入库单详情生成入库单详情*/
WarehouseStorageOrderDetail storageOrderDetail = generateWarehouseStorageOrderDetail(detail);
storageOrderDetail.setWarehouseStorageCode(warehouseStorageCode);
storageOrderDetails.add(storageOrderDetail);
if(storageOrderDetails!=null){
warehouseStorageOrder.setWarehouseStorageOrderDetailList(storageOrderDetails);
insertWarehouseStorageOrderDetail(warehouseStorageOrder);
}
}
int rows = warehouseStorageOrderMapper.insertWarehouseStorageOrder(warehouseStorageOrder); int rows = warehouseStorageOrderMapper.insertWarehouseStorageOrder(warehouseStorageOrder);
return rows; return rows;
} }
@ -121,13 +163,12 @@ public class OutsourceStorageOrderServiceImpl implements IOutsourceStorageOrderS
public WarehouseStorageOrderDetail generateWarehouseStorageOrderDetail(OutsourceStorageDetail outstorageDetail){ public WarehouseStorageOrderDetail generateWarehouseStorageOrderDetail(OutsourceStorageDetail outstorageDetail){
WarehouseStorageOrderDetail storageOrderDetail = new WarehouseStorageOrderDetail(); WarehouseStorageOrderDetail storageOrderDetail = new WarehouseStorageOrderDetail();
storageOrderDetail.setRelatedOrderCode(outstorageDetail.getOutsourceOrderNo()); storageOrderDetail.setRelatedOrderCode(outstorageDetail.getOutsourceOrderNo());
storageOrderDetail.setWarehouseStorageStatus("0"); storageOrderDetail.setWarehouseStorageStatus("0");//待暂收
storageOrderDetail.setWarehouseQualityStatus("0"); storageOrderDetail.setWarehouseQualityStatus("0");//待品质
storageOrderDetail.setWarehouseStorageType("4"); storageOrderDetail.setWarehouseStorageType("4");//委外入库
storageOrderDetail.setWarehouseOrderType("3"); storageOrderDetail.setWarehouseOrderType("3");//委外订单
storageOrderDetail.setNotifyArriveNum(outstorageDetail.getTakingMaterial().intValue()); storageOrderDetail.setNotifyArriveNum(outstorageDetail.getNotifyArrivedNum());
// storageOrderDetail.setActualHasArrivedNum(outstorageDetail.getTakingMaterial().intValue()); storageOrderDetail.setNotifyHasArrivedNum(outstorageDetail.getNotifyArrivedNum());
storageOrderDetail.setNotifyHasArrivedNum(outstorageDetail.getTakingMaterial().intValue());
storageOrderDetail.setHasStorageNum(0); storageOrderDetail.setHasStorageNum(0);
storageOrderDetail.setActualHasArrivedNum(0); storageOrderDetail.setActualHasArrivedNum(0);
storageOrderDetail.setTemporaryHasQualifiedNum(0); storageOrderDetail.setTemporaryHasQualifiedNum(0);

42
ruoyi-admin/src/main/resources/mapper/system/OutsourceStorageDetailMapper.xml

@ -20,17 +20,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="processMethod" column="process_method" /> <result property="processMethod" column="process_method" />
<result property="plannedOutsourceAmount" column="planned_outsource_amount" /> <result property="plannedOutsourceAmount" column="planned_outsource_amount" />
<result property="actualOutsourceAmount" column="actual_outsource_amount" /> <result property="actualOutsourceAmount" column="actual_outsource_amount" />
<result property="takenMaterial" column="taken_material" /> <result property="notifyArrivedNum" column="notify_arrived_num" />
<result property="takingMaterial" column="taking_material" /> <result property="hasStorageNum" column="has_storage_num" />
<result property="outsourceProcessInfo" column="outsource_process_info" /> <result property="outsourceProcessInfo" column="outsource_process_info" />
<result property="chargeUnitInfo" column="charge_unit_info" /> <result property="chargeUnitInfo" column="charge_unit_info" />
<result property="singleMaterialInfo" column="single_material_info" /> <result property="singleMaterialInfo" column="single_material_info" />
<result property="supplierInfo" column="supplier_info" /> <result property="supplierInfo" column="supplier_info" />
<result property="deliveryTimeInfo" column="delivery_time_info" /> <result property="deliveryTimeInfo" column="delivery_time_info" />
<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="selectOutsourceStorageDetailVo"> <sql id="selectOutsourceStorageDetailVo">
select outsource_storage_detail_id, warehouse_storage_code, outsource_order_no, outsource_plan_code, correlation_codes, material_no, material_name, material_type, material_photo_url, description, brand, unit, process_method, planned_outsource_amount, actual_outsource_amount, taken_material, taking_material, outsource_process_info, charge_unit_info, single_material_info, supplier_info, delivery_time_info from outsource_storage_detail select outsource_storage_detail_id, warehouse_storage_code, outsource_order_no,
outsource_plan_code, correlation_codes, material_no, material_name,
material_type, material_photo_url, description, brand, unit,
process_method, planned_outsource_amount, actual_outsource_amount,
notify_arrived_num, has_storage_num, outsource_process_info,
charge_unit_info, single_material_info, supplier_info,create_by,create_time,
delivery_time_info,update_by,update_time from outsource_storage_detail
</sql> </sql>
<select id="selectOutsourceStorageDetailList" parameterType="OutsourceStorageDetail" resultMap="OutsourceStorageDetailResult"> <select id="selectOutsourceStorageDetailList" parameterType="OutsourceStorageDetail" resultMap="OutsourceStorageDetailResult">
@ -50,8 +60,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="processMethod != null and processMethod != ''"> and process_method = #{processMethod}</if> <if test="processMethod != null and processMethod != ''"> and process_method = #{processMethod}</if>
<if test="plannedOutsourceAmount != null "> and planned_outsource_amount = #{plannedOutsourceAmount}</if> <if test="plannedOutsourceAmount != null "> and planned_outsource_amount = #{plannedOutsourceAmount}</if>
<if test="actualOutsourceAmount != null "> and actual_outsource_amount = #{actualOutsourceAmount}</if> <if test="actualOutsourceAmount != null "> and actual_outsource_amount = #{actualOutsourceAmount}</if>
<if test="takenMaterial != null "> and taken_material = #{takenMaterial}</if>
<if test="takingMaterial != null "> and taking_material = #{takingMaterial}</if>
<if test="outsourceProcessInfo != null and outsourceProcessInfo != ''"> and outsource_process_info = #{outsourceProcessInfo}</if> <if test="outsourceProcessInfo != null and outsourceProcessInfo != ''"> and outsource_process_info = #{outsourceProcessInfo}</if>
<if test="chargeUnitInfo != null and chargeUnitInfo != ''"> and charge_unit_info = #{chargeUnitInfo}</if> <if test="chargeUnitInfo != null and chargeUnitInfo != ''"> and charge_unit_info = #{chargeUnitInfo}</if>
<if test="singleMaterialInfo != null and singleMaterialInfo != ''"> and single_material_info = #{singleMaterialInfo}</if> <if test="singleMaterialInfo != null and singleMaterialInfo != ''"> and single_material_info = #{singleMaterialInfo}</if>
@ -82,13 +90,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="processMethod != null">process_method,</if> <if test="processMethod != null">process_method,</if>
<if test="plannedOutsourceAmount != null">planned_outsource_amount,</if> <if test="plannedOutsourceAmount != null">planned_outsource_amount,</if>
<if test="actualOutsourceAmount != null">actual_outsource_amount,</if> <if test="actualOutsourceAmount != null">actual_outsource_amount,</if>
<if test="takenMaterial != null">taken_material,</if> <if test="hasStorageNum != null">has_storage_num,</if>
<if test="takingMaterial != null">taking_material,</if> <if test="notifyArrivedNum != null">notify_arrived_num,</if>
<if test="outsourceProcessInfo != null">outsource_process_info,</if> <if test="outsourceProcessInfo != null">outsource_process_info,</if>
<if test="chargeUnitInfo != null">charge_unit_info,</if> <if test="chargeUnitInfo != null">charge_unit_info,</if>
<if test="singleMaterialInfo != null">single_material_info,</if> <if test="singleMaterialInfo != null">single_material_info,</if>
<if test="supplierInfo != null">supplier_info,</if> <if test="supplierInfo != null">supplier_info,</if>
<if test="deliveryTimeInfo != null">delivery_time_info,</if> <if test="deliveryTimeInfo != null">delivery_time_info,</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="warehouseStorageCode != null and warehouseStorageCode != ''">#{warehouseStorageCode},</if> <if test="warehouseStorageCode != null and warehouseStorageCode != ''">#{warehouseStorageCode},</if>
@ -105,13 +117,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="processMethod != null">#{processMethod},</if> <if test="processMethod != null">#{processMethod},</if>
<if test="plannedOutsourceAmount != null">#{plannedOutsourceAmount},</if> <if test="plannedOutsourceAmount != null">#{plannedOutsourceAmount},</if>
<if test="actualOutsourceAmount != null">#{actualOutsourceAmount},</if> <if test="actualOutsourceAmount != null">#{actualOutsourceAmount},</if>
<if test="takenMaterial != null">#{takenMaterial},</if> <if test="hasStorageNum != null">#{hasStorageNum},</if>
<if test="takingMaterial != null">#{takingMaterial},</if> <if test="notifyArrivedNum != null">#{notifyArrivedNum},</if>
<if test="outsourceProcessInfo != null">#{outsourceProcessInfo},</if> <if test="outsourceProcessInfo != null">#{outsourceProcessInfo},</if>
<if test="chargeUnitInfo != null">#{chargeUnitInfo},</if> <if test="chargeUnitInfo != null">#{chargeUnitInfo},</if>
<if test="singleMaterialInfo != null">#{singleMaterialInfo},</if> <if test="singleMaterialInfo != null">#{singleMaterialInfo},</if>
<if test="supplierInfo != null">#{supplierInfo},</if> <if test="supplierInfo != null">#{supplierInfo},</if>
<if test="deliveryTimeInfo != null">#{deliveryTimeInfo},</if> <if test="deliveryTimeInfo != null">#{deliveryTimeInfo},</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>
@ -132,13 +148,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="processMethod != null">process_method = #{processMethod},</if> <if test="processMethod != null">process_method = #{processMethod},</if>
<if test="plannedOutsourceAmount != null">planned_outsource_amount = #{plannedOutsourceAmount},</if> <if test="plannedOutsourceAmount != null">planned_outsource_amount = #{plannedOutsourceAmount},</if>
<if test="actualOutsourceAmount != null">actual_outsource_amount = #{actualOutsourceAmount},</if> <if test="actualOutsourceAmount != null">actual_outsource_amount = #{actualOutsourceAmount},</if>
<if test="takenMaterial != null">taken_material = #{takenMaterial},</if> <if test="hasStorageNum != null">has_storage_num = #{hasStorageNum},</if>
<if test="takingMaterial != null">taking_material = #{takingMaterial},</if> <if test="notifyArrivedNum != null">notify_arrived_num = #{notifyArrivedNum},</if>
<if test="outsourceProcessInfo != null">outsource_process_info = #{outsourceProcessInfo},</if> <if test="outsourceProcessInfo != null">outsource_process_info = #{outsourceProcessInfo},</if>
<if test="chargeUnitInfo != null">charge_unit_info = #{chargeUnitInfo},</if> <if test="chargeUnitInfo != null">charge_unit_info = #{chargeUnitInfo},</if>
<if test="singleMaterialInfo != null">single_material_info = #{singleMaterialInfo},</if> <if test="singleMaterialInfo != null">single_material_info = #{singleMaterialInfo},</if>
<if test="supplierInfo != null">supplier_info = #{supplierInfo},</if> <if test="supplierInfo != null">supplier_info = #{supplierInfo},</if>
<if test="deliveryTimeInfo != null">delivery_time_info = #{deliveryTimeInfo},</if> <if test="deliveryTimeInfo != null">delivery_time_info = #{deliveryTimeInfo},</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_storage_detail_id = #{outsourceStorageDetailId} where outsource_storage_detail_id = #{outsourceStorageDetailId}
</update> </update>

12
ruoyi-admin/src/main/resources/templates/system/outsource_storage/detail.html

@ -127,8 +127,8 @@
correlationCodes: material.correlationCodes, correlationCodes: material.correlationCodes,
plannedOutsourceAmount: material.plannedOutsourceAmount, plannedOutsourceAmount: material.plannedOutsourceAmount,
actualOutsourceAmount: material.actualOutsourceAmount, actualOutsourceAmount: material.actualOutsourceAmount,
alreadyStorageAmount: material.takenMaterial, hasStorageNum: material.hasStorageNum,
nowStorageAmount: material.takingMaterial, notifyArrivedNum: material.notifyArrivedNum,
}; };
var materialData = [materialObj]; // Bootstrap Table需要一个数组作为数据源 var materialData = [materialObj]; // Bootstrap Table需要一个数组作为数据源
materialList.push(material); materialList.push(material);
@ -241,8 +241,8 @@
}, },
{title: '计划委外数', field: 'plannedOutsourceAmount'}, {title: '计划委外数', field: 'plannedOutsourceAmount'},
{title: '实际委外数', field: 'actualOutsourceAmount'}, {title: '实际委外数', field: 'actualOutsourceAmount'},
{title: '已入库数', field: 'alreadyStorageAmount'}, {title: '已入库数', field: 'hasStorageNum'},
{title: '本次入库数', field: 'nowStorageAmount', {title: '通知到货数', field: 'notifyArrivedNum',
}, },
], ],
}); });
@ -277,8 +277,8 @@
correlationCodes: current.correlationCodes, correlationCodes: current.correlationCodes,
plannedOutsourceAmount: current.plannedOutsourceAmount, plannedOutsourceAmount: current.plannedOutsourceAmount,
actualOutsourceAmount: current.actualOutsourceAmount, actualOutsourceAmount: current.actualOutsourceAmount,
takenMaterial: current.takenMaterial, hasStorageNum: current.hasStorageNum,
takingMaterial: current.takingMaterial, notifyArrivedNum: current.notifyArrivedNum,
processList:[{ processList:[{
outsourceProcessInfo: current.outsourceProcessInfo, outsourceProcessInfo: current.outsourceProcessInfo,
chargeUnitInfo: current.chargeUnitInfo, chargeUnitInfo: current.chargeUnitInfo,

27
ruoyi-admin/src/main/resources/templates/system/outsource_storage/storage.html

@ -16,11 +16,17 @@
</li> </li>
<li> <li>
<label>入库状态:</label> <label>入库状态:</label>
<input type="text" name="temporaryQualifiedNum"/> <select name="warehouseStorageStatus" th:with="type=${@dict.getType('warehouse_storage_status')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li> </li>
<li> <li>
<label>品质状态:</label> <label>品质状态:</label>
<input type="text" name="temporaryUnqualifiedNum"/> <select name="warehouseQualityStatus" th:with="type=${@dict.getType('warehouse_quality_status')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li> </li>
<li> <li>
<label>关联订单号:</label> <label>关联订单号:</label>
@ -30,13 +36,18 @@
<label>仓库员:</label> <label>仓库员:</label>
<input type="text" name="warehouseEmployee"/> <input type="text" name="warehouseEmployee"/>
</li> </li>
<li> <!-- <li>-->
<label>入库部门:</label> <!-- <label>入库部门:</label>-->
<input type="text" name="temporaryUnqualifiedNum"/> <!-- <select name="warehouseDeptType" th:with="type=${@dict.getType('warehouse_dept_type')}">-->
</li> <!-- <option value="">所有</option>-->
<li> <!-- <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>-->
<!-- </select>-->
<!-- </li>-->
<li class="select-time">
<label>录入时间:</label> <label>录入时间:</label>
<input type="text" class="time-input" placeholder="请选择入库时间" name="storageTime"/> <input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginCreateTime]"/>
<span>-</span>
<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endCreateTime]"/>
</li> </li>
<li> <li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a> <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>

Loading…
Cancel
Save