feat: persist MES delivery point and urgency metadata
This commit is contained in:
@@ -107,6 +107,21 @@ public class OutStockout extends BaseEntity
|
||||
@Excel(name = "需求时间")
|
||||
private String requireTime;
|
||||
|
||||
/** 是否加急:1 加急,0 正常 */
|
||||
private Integer isExpedited;
|
||||
|
||||
/** MES 分配的配送地点 */
|
||||
@Excel(name = "配送地点")
|
||||
private String deliveryPoint;
|
||||
|
||||
public String getDeliveryPoint() {
|
||||
return deliveryPoint;
|
||||
}
|
||||
|
||||
public void setDeliveryPoint(String deliveryPoint) {
|
||||
this.deliveryPoint = deliveryPoint;
|
||||
}
|
||||
|
||||
public String getKdNum() {
|
||||
return kdNum;
|
||||
}
|
||||
@@ -337,6 +352,14 @@ public class OutStockout extends BaseEntity
|
||||
this.requireTime = requireTime;
|
||||
}
|
||||
|
||||
public Integer getIsExpedited() {
|
||||
return isExpedited;
|
||||
}
|
||||
|
||||
public void setIsExpedited(Integer isExpedited) {
|
||||
this.isExpedited = isExpedited;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
@@ -357,6 +380,7 @@ public class OutStockout extends BaseEntity
|
||||
.append("finishDate", getFinishDate())
|
||||
.append("FID", getFID())
|
||||
.append("erpStockoutId", getErpStockoutId())
|
||||
.append("isExpedited", getIsExpedited())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,10 @@ public class DeliveryApplicationMsg {
|
||||
private String requester;
|
||||
@Excel(name = "需求时间")
|
||||
private String requireTime;
|
||||
@Excel(name = "需求时间")
|
||||
private String requiredTm;
|
||||
@Excel(name = "是否加急")
|
||||
private Integer isExpedited;
|
||||
|
||||
private String org;
|
||||
|
||||
@@ -67,6 +71,22 @@ public class DeliveryApplicationMsg {
|
||||
this.requireTime = requireTime;
|
||||
}
|
||||
|
||||
public String getRequiredTm() {
|
||||
return requiredTm;
|
||||
}
|
||||
|
||||
public void setRequiredTm(String requiredTm) {
|
||||
this.requiredTm = requiredTm;
|
||||
}
|
||||
|
||||
public Integer getIsExpedited() {
|
||||
return isExpedited;
|
||||
}
|
||||
|
||||
public void setIsExpedited(Integer isExpedited) {
|
||||
this.isExpedited = isExpedited;
|
||||
}
|
||||
|
||||
@Excel(name = "条码集合")
|
||||
private List<BarCodeDetail> detailList;
|
||||
|
||||
@@ -176,6 +196,8 @@ public class DeliveryApplicationMsg {
|
||||
", preparationCode='" + preparationCode + '\'' +
|
||||
", requester='" + requester + '\'' +
|
||||
", requireTime='" + requireTime + '\'' +
|
||||
", requiredTm='" + requiredTm + '\'' +
|
||||
", isExpedited=" + isExpedited +
|
||||
", org='" + org + '\'' +
|
||||
", detailList=" + detailList +
|
||||
'}';
|
||||
|
||||
@@ -1572,8 +1572,14 @@ public class PortServiceImpl implements PortService {
|
||||
outStockout.setErpStockoutId(deliveryApplicationMsg.getCode());
|
||||
// 新加字段 领料人
|
||||
outStockout.setRequester(deliveryApplicationMsg.getRequester());
|
||||
outStockout.setDeliveryPoint(deliveryApplicationMsg.getDeliveryPoint());
|
||||
// 新加字段 需求时间
|
||||
outStockout.setRequireTime(deliveryApplicationMsg.getRequireTime());
|
||||
String requiredTm = deliveryApplicationMsg.getRequiredTm();
|
||||
if (requiredTm == null || requiredTm.trim().isEmpty()) {
|
||||
requiredTm = deliveryApplicationMsg.getRequireTime();
|
||||
}
|
||||
outStockout.setRequireTime(requiredTm);
|
||||
outStockout.setIsExpedited(deliveryApplicationMsg.getIsExpedited());
|
||||
outStockoutMapper.insertOutStockout(outStockout);
|
||||
OutStockoutDetail outStockoutDetail = new OutStockoutDetail();
|
||||
outStockoutDetail.setStockoutDetailId(jobId + "-1");
|
||||
|
||||
@@ -29,10 +29,12 @@
|
||||
<result property="kdNum" column="kd_num" />
|
||||
<result property="requester" column="requester" />
|
||||
<result property="requireTime" column="require_time" />
|
||||
<result property="isExpedited" column="is_expedited" />
|
||||
<result property="deliveryPoint" column="delivery_point"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectOutStockoutVo">
|
||||
select stockout_guid, stockout_id, out_type, create_date, department_no, customer_no, create_man_id, status, stockout_source, warehouse_id, class_now_id, exit_id, car_number, FID, erp_stockout_id,bar_code_list,tray_code_list,org,task_id,kd_num,requester,require_time from out_stockout
|
||||
select stockout_guid, stockout_id, out_type, create_date, department_no, customer_no, create_man_id, status, stockout_source, warehouse_id, class_now_id, exit_id, car_number, FID, erp_stockout_id,bar_code_list,tray_code_list,org,task_id,kd_num,requester,require_time,is_expedited,time_ship_plan,delivery_point from out_stockout
|
||||
</sql>
|
||||
|
||||
<select id="selectOutStockoutList" parameterType="OutStockout" resultMap="OutStockoutResult">
|
||||
@@ -93,6 +95,8 @@
|
||||
<if test="taskId != null">task_id,</if>
|
||||
<if test="requester != null">requester,</if>
|
||||
<if test="requireTime != null">require_time,</if>
|
||||
<if test="isExpedited != null">is_expedited,</if>
|
||||
<if test="deliveryPoint != null">delivery_point,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
|
||||
@@ -121,6 +125,8 @@
|
||||
<if test="taskId != null">#{taskId},</if>
|
||||
<if test="requester != null">#{requester},</if>
|
||||
<if test="requireTime != null">#{requireTime},</if>
|
||||
<if test="isExpedited != null">#{isExpedited},</if>
|
||||
<if test="deliveryPoint != null">#{deliveryPoint},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
@@ -142,6 +148,11 @@
|
||||
|
||||
<if test="FID != null">FID = #{FID},</if>
|
||||
<if test="erpStockoutId != null">erp_stockout_id = #{erpStockoutId},</if>
|
||||
<if test="isExpedited != null">is_expedited = #{isExpedited},</if>
|
||||
<if test="deliveryPoint != null">delivery_point = #{deliveryPoint},</if>
|
||||
<if test="timeShipPlan != null">time_ship_plan = #{timeShipPlan},</if>
|
||||
<if test="requester != null">requester = #{requester},</if>
|
||||
<if test="requireTime != null">require_time = #{requireTime},</if>
|
||||
</trim>
|
||||
where stockout_guid = #{stockoutGuid}
|
||||
</update>
|
||||
@@ -179,4 +190,4 @@
|
||||
where stockout_id = #{fillNo}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
</mapper>
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.ruoyi.web.port;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.ruoyi.project.bas.basJobId.service.IBasJobIdService;
|
||||
import com.ruoyi.project.out.outStock.domain.OutStockout;
|
||||
import com.ruoyi.project.out.outStock.mapper.OutStockoutMapper;
|
||||
import com.ruoyi.project.out.outStockDetail.mapper.OutStockoutDetailMapper;
|
||||
import com.ruoyi.web.port.domain.DeliveryApplicationMsg;
|
||||
import com.ruoyi.web.port.service.impl.PortServiceImpl;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
import java.util.Collections;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
/** No Spring context, network, scheduler or database: capture the actual persistence boundary. */
|
||||
class DeliveryApplicationPortServiceTest {
|
||||
@Test
|
||||
void preservesMesDeliveryMetadataAndLegacyTime() {
|
||||
for (String required : new String[]{"2026-09-08 15:30:00", "", " ", null}) {
|
||||
PortServiceImpl service = new PortServiceImpl();
|
||||
IBasJobIdService ids = mock(IBasJobIdService.class);
|
||||
OutStockoutMapper orders = mock(OutStockoutMapper.class);
|
||||
ReflectionTestUtils.setField(service, "basJobIdService", ids);
|
||||
ReflectionTestUtils.setField(service, "outStockoutMapper", orders);
|
||||
ReflectionTestUtils.setField(service, "outStockoutDetailMapper", mock(OutStockoutDetailMapper.class));
|
||||
when(ids.getJobId("CK")).thenReturn("CK-TEST");
|
||||
DeliveryApplicationMsg msg = JSON.parseObject("{\"deliveryDirection\":\"0\","
|
||||
+ "\"code\":\"MES-001\",\"deliveryPoint\":\"哈镘\",\"qtyPlan\":1.25,"
|
||||
+ "\"requester\":\"叫料人\",\"isExpedited\":1,\"requireTime\":\"2026-09-08 16:00:00\"}",
|
||||
DeliveryApplicationMsg.class);
|
||||
msg.setRequiredTm(required);
|
||||
assertEquals(0, service.insertDeliveryApplication(Collections.singletonList(msg)).getCode());
|
||||
ArgumentCaptor<OutStockout> captured = ArgumentCaptor.forClass(OutStockout.class);
|
||||
verify(orders).insertOutStockout(captured.capture());
|
||||
OutStockout row = captured.getValue();
|
||||
assertEquals("哈镘", row.getDeliveryPoint());
|
||||
assertEquals("叫料人", row.getRequester());
|
||||
assertEquals(Integer.valueOf(1), row.getIsExpedited());
|
||||
assertEquals("MES-001", row.getErpStockoutId());
|
||||
assertEquals(required == null || required.trim().isEmpty() ? "2026-09-08 16:00:00" : required,
|
||||
row.getRequireTime());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user