fix(oms):出库执行修改

This commit is contained in:
zhaoqing
2026-07-21 19:08:43 +08:00
parent b825f1a789
commit f2216adb06
3 changed files with 29 additions and 10 deletions
@@ -37,4 +37,5 @@ public interface ExecutionStockOutOrderMapper extends BaseMapper<ExecutionStockO
public void delWOrderDetail(@Param("outOrderNumber") String outOrderNumber);
int countByOrderNumberPrefix(@Param("prefix") String prefix);
}
@@ -27,6 +27,7 @@ import com.mhd.oms.domain.executionOutMaterialDetail.repository.facade.IExecutio
import com.mhd.oms.domain.executionStockInOrder.entity.ExecutionStockInOrder;
import com.mhd.oms.domain.executionStockOutOrder.entity.ExecutionStockOutOrder;
import com.mhd.oms.domain.executionStockOutOrder.repository.facade.IExecutionStockOutOrderService;
import com.mhd.oms.domain.executionStockOutOrder.repository.mapper.ExecutionStockOutOrderMapper;
import com.mhd.oms.domain.executionStockOutOrder.repository.todo.ExecutionStockOutOrderDO;
import com.mhd.oms.domain.executionStockOutOrder.service.ExecutionStockOutOrderApplicationService;
import com.mhd.oms.domain.reservationDeliveryDetailsLink.entity.ReservationDeliveryDetailsLink;
@@ -62,6 +63,7 @@ import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -95,6 +97,8 @@ public class ReservationStockOutOrderDomainService {
private ExecuteOrderMapper executeOrderMapper;
@Autowired
private ExecutionStockOutOrderApplicationService stockOutOrderApplicationService;
@Autowired
private ExecutionStockOutOrderMapper executionStockOutOrderMapper;
@Resource
private SystemServiceFeign systemServiceFeign;
@Resource
@@ -385,11 +389,10 @@ public class ReservationStockOutOrderDomainService {
// reservationStockInOrder.setTopOrganizationId(topOrgId);
reservationStockInOrder.setBusinessOutOrderNumber(inOrderNumber);
if (materialDetailGroupByWarehouse!=null&&materialDetailGroupByWarehouse.size()>1) {
reservationStockInOrder.setOutOrderNumber(OrderSequence.getOrderCode("CK"));
} else {
reservationStockInOrder.setOutOrderNumber(inOrderNumber);
}
reservationStockInOrder.setOutOrderNumber(generateExecutionOrderNumber(warehouseCode));
// reservationStockInOrder.setBusinessOrderNo(byId.getBusinessOrderNo());
reservationStockInOrder.setBusinessOrderNo(reservationStockInOrder.getOutOrderNumber());
List<ExecutionOutMaterialDetail> inMaterialDetailList = new ArrayList<>();
for (ReservationOutMaterialDetail reservationOutMaterialDetail : details) {
@@ -513,11 +516,9 @@ public class ReservationStockOutOrderDomainService {
reservationStockInOrder.setWarehouseCode(warehouseCode);
reservationStockInOrder.setWarehouseName(warehouseName);
reservationStockInOrder.setBusinessOutOrderNumber(inOrderNumber);
if (materialDetailGroupByWarehouse!=null&&materialDetailGroupByWarehouse.size()>1) {
reservationStockInOrder.setOutOrderNumber(OrderSequence.getOrderCode("CK"));
} else {
reservationStockInOrder.setOutOrderNumber(inOrderNumber);
}
reservationStockInOrder.setOutOrderNumber(generateExecutionOrderNumber(warehouseCode));
// reservationStockInOrder.setBusinessOrderNo(byId.getBusinessOrderNo());
reservationStockInOrder.setBusinessOrderNo(reservationStockInOrder.getOutOrderNumber());
List<ExecutionOutMaterialDetail> inMaterialDetailList = new ArrayList<>();
for (ReservationOutMaterialDetail reservationOutMaterialDetail : details) {
@@ -1051,4 +1052,16 @@ public class ReservationStockOutOrderDomainService {
}
}
/**
* 生成执行出库单号:仓库代码简称 + YYMMDD + 当日累加(3位,不足补零)
*/
public String generateExecutionOrderNumber(String warehouseCode) {
SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
String datePart = sdf.format(new Date());
String prefix = warehouseCode + datePart;
int todayCount = executionStockOutOrderMapper.countByOrderNumberPrefix(prefix);
String seq = String.format("%03d", todayCount + 1);
return prefix + seq;
}
}
@@ -475,4 +475,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update "NGWL_TEST_WMS".out_material_detail set DEL_FLAG = 2 where DEL_FLAG = 1 and out_order_number = #{outOrderNumber}
</update>
<select id="countByOrderNumberPrefix" resultType="java.lang.Integer" parameterType="java.lang.String">
SELECT COUNT(1)
FROM execution_stock_out_order
WHERE out_order_number LIKE concat(#{prefix}, '%')
</select>
</mapper>