预约单改造;

This commit is contained in:
王奎兴
2026-06-27 18:06:31 +08:00
parent c6366ef728
commit 8f0e71fe2a
34 changed files with 329 additions and 58 deletions
@@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mhd.common.core.domain.po.UserPo;
import com.mhd.common.core.exception.ServiceException;
import com.mhd.common.core.enums.DictCode;
@@ -54,13 +56,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -158,6 +154,8 @@ public class MaterialBaseInfoApplicationService {
}
}
}
materialBaseInfoDO.setOrgId(String.valueOf(materialBaseInfoDO.getOrganizationId()));
materialBaseInfoDO.setOrganizationId(null);
List<MaterialBaseInfoPO> materialBaseInfoPOS = materialBaseInfoDomainService.queryList(materialBaseInfoDO);
for (MaterialBaseInfoPO materialBaseInfoPO : materialBaseInfoPOS) {
//物料商品规则
@@ -557,6 +555,31 @@ public class MaterialBaseInfoApplicationService {
MaterialBaseInfo matched = findExistingMaterialByShipper(row);
if (matched != null) {
row.setShipperId(matched.getShipperId());
Long shipperId = matched.getShipperId();
String customerCodeNcJson = materialBaseInfoMapper.getCustomerCodeNcJson(shipperId.toString());
if (customerCodeNcJson != null && !customerCodeNcJson.isEmpty()) {
ObjectMapper objectMapper = new ObjectMapper();
List<Map<String, Object>> listNc = null;
try {
listNc = objectMapper.readValue(
customerCodeNcJson,
new com.fasterxml.jackson.core.type.TypeReference<List<Map<String, Object>>>() {}
);
String codeStr = "";
if (listNc != null && listNc.size() > 0) {
// 方式1:Stream拼接,逗号分隔
codeStr = listNc.stream()
.map(map -> map.get("code"))
.filter(Objects::nonNull) // 过滤code为空
.map(Object::toString)
.collect(Collectors.joining(","));
row.setOrgId(codeStr);
}
// codeStr 就是拼接好的字符串
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
}
if (StringUtils.isBlank(row.getShipperCode())) {
row.setShipperCode(matched.getShipperCode());
}
@@ -798,6 +821,31 @@ public class MaterialBaseInfoApplicationService {
return;
}
row.setShipperId(userPo.getUserId());
Long shipperId = userPo.getUserId();
String customerCodeNcJson = materialBaseInfoMapper.getCustomerCodeNcJson(shipperId.toString());
if (customerCodeNcJson != null && !customerCodeNcJson.isEmpty()) {
ObjectMapper objectMapper = new ObjectMapper();
List<Map<String, Object>> listNc = null;
try {
listNc = objectMapper.readValue(
customerCodeNcJson,
new com.fasterxml.jackson.core.type.TypeReference<List<Map<String, Object>>>() {}
);
String codeStr = "";
if (listNc != null && listNc.size() > 0) {
// 方式1:Stream拼接,逗号分隔
codeStr = listNc.stream()
.map(map -> map.get("code"))
.filter(Objects::nonNull) // 过滤code为空
.map(Object::toString)
.collect(Collectors.joining(","));
row.setOrgId(codeStr);
}
// codeStr 就是拼接好的字符串
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
}
if (!isValidOrgId(row.getOrganizationId()) && isValidOrgId(userPo.getOrganizationId())) {
row.setOrganizationId(userPo.getOrganizationId());
}
@@ -1266,4 +1314,4 @@ public class MaterialBaseInfoApplicationService {
return tableDataInfo;
}
}
}
@@ -845,7 +845,10 @@ public class StockOutOrderApplicationService {
public Boolean execution(String outOrderNumber){
//Boolean execution = stockOutOrderDomainService.execution(outOrderNumber);
StockOutOrderDO stockOutOrderDO = new StockOutOrderDO();
stockOutOrderDO.setOutOrderNumber(outOrderNumber);
// stockOutOrderDO.setOutOrderNumber(outOrderNumber);
List<String> numbers = new ArrayList<>();
numbers.add(outOrderNumber);
stockOutOrderDO.setOutOrderNumbers(numbers);
Boolean b = omsAutoAssign(stockOutOrderDO);
return b;
}
@@ -963,20 +966,20 @@ public class StockOutOrderApplicationService {
List<OutMaterialDetailDO> materialDetailList = cn.hutool.core.bean.BeanUtil.copyToList(outMaterialDetailList, OutMaterialDetailDO.class);
List<OutMaterialDetailDO> materialDetailList2 = new ArrayList<>();
for (OutMaterialDetailDO detail : materialDetailList) {
String batchRefNo = detail.getBatchRefNo();
String sheetRefNo = detail.getSheetRefNo();
String boxPalletNo = detail.getBoxPalletNo();
// String batchRefNo = detail.getBatchRefNo();
// String sheetRefNo = detail.getSheetRefNo();
// String boxPalletNo = detail.getBoxPalletNo();
Long materialBaseInfoId = detail.getMaterialBaseInfoId();
Long warehouseId = detail.getWarehouseId();
List<MaterialInventory> materialInventories = materialInventoryMapper.selectList(new QueryWrapper<MaterialInventory>().lambda()
.eq(MaterialInventory::getBatchRefNo, batchRefNo)
.eq(MaterialInventory::getSheetRefNo, sheetRefNo)
.eq(MaterialInventory::getBoxPalletNo, boxPalletNo)
// .eq(MaterialInventory::getBatchRefNo, batchRefNo)
// .eq(MaterialInventory::getSheetRefNo, sheetRefNo)
// .eq(MaterialInventory::getBoxPalletNo, boxPalletNo)
.eq(MaterialInventory::getWarehouseId, warehouseId)
.eq(MaterialInventory::getMaterialBaseInfoId, materialBaseInfoId));
if (materialInventories == null || materialInventories.isEmpty()) {
throw new ServiceException("库存不存在:" + batchRefNo + " " + sheetRefNo + " " + boxPalletNo);
}
// if (materialInventories == null || materialInventories.isEmpty()) {
// throw new ServiceException("库存不存在:" + batchRefNo + " " + sheetRefNo + " " + boxPalletNo);
// }
BigDecimal remainingQuantity = detail.getQuantity(); // 计划数量
for (MaterialInventory materialInventory : materialInventories) {
@@ -44,4 +44,10 @@ public interface IHandoverTaskOrderService extends IService<HandoverTaskOrder>
boolean taskDistribution(HandoverTaskOrderDO handoverTaskOrderDO);
public void updateOmsOrder(String orderNumber, Integer status);
public void updateOmsExecutionOrder(String orderNumber, Integer status);
public Integer getExecutionRkCount(String orderNumber);
public String getBusinessOrdernumber(String orderNumber);
}
@@ -23,4 +23,9 @@ public interface HandoverTaskOrderMapper extends BaseMapper<HandoverTaskOrder>
public void updateOmsOrder(@Param("orderNumber") String orderNumber, @Param("status") Integer status);
public void updateOmsExecutionOrder(@Param("orderNumber") String orderNumber, @Param("status") Integer status);
public Integer getExecutionRkCount(@Param("orderNumber") String orderNumber);
public String getBusinessOrdernumber(@Param("orderNumber") String orderNumber);
}
@@ -94,6 +94,21 @@ public class HandoverTaskOrderImpl extends ServiceImpl<HandoverTaskOrderMapper,
handoverTaskOrderMapper.updateOmsOrder(orderNumber, status);
}
@Override
public void updateOmsExecutionOrder(String orderNumber, Integer status) {
handoverTaskOrderMapper.updateOmsExecutionOrder(orderNumber, status);
}
@Override
public Integer getExecutionRkCount(String orderNumber) {
return handoverTaskOrderMapper.getExecutionRkCount(orderNumber);
}
@Override
public String getBusinessOrdernumber(String orderNumber) {
return handoverTaskOrderMapper.getBusinessOrdernumber(orderNumber);
}
@Override
public boolean taskDistribution(HandoverTaskOrderDO handoverTaskOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
@@ -312,7 +312,14 @@ public class HandoverTaskOrderDomainService {
private void pushOms(Long handoverTaskOrderId) {
HandoverTaskOrder handoverTaskOrder = handoverTaskOrderService.getById(handoverTaskOrderId);
if (handoverTaskOrder != null) {
handoverTaskOrderService.updateOmsOrder(handoverTaskOrder.getOrderNumber(),4);
handoverTaskOrderService.updateOmsExecutionOrder(handoverTaskOrder.getOrderNumber(),4);
Integer executionRkCount = handoverTaskOrderService.getExecutionRkCount(handoverTaskOrder.getOrderNumber());
String businessOrdernumber = handoverTaskOrderService.getBusinessOrdernumber(handoverTaskOrder.getOrderNumber());
if (executionRkCount != null && executionRkCount > 0) {
if (businessOrdernumber != null) handoverTaskOrderService.updateOmsOrder(businessOrdernumber,5);
} else {
if (businessOrdernumber != null) handoverTaskOrderService.updateOmsOrder(businessOrdernumber,4);
}
}
}
@@ -237,4 +237,7 @@ public class MaterialBaseInfo extends BaseVOEntity {
@ApiModelProperty(name = "单位")
private String unit;
@ApiModelProperty(name = "组织(多个用,分开)")
private String orgId;
}
@@ -25,4 +25,5 @@ public interface MaterialBaseInfoMapper extends BaseMapper<MaterialBaseInfo>
List<MaterialBaseInfoPO> selectBatchByIds(@Param("materialBaseInfoIds") List<Long> materialBaseInfoIds);
}
String getCustomerCodeNcJson(@Param("actualInvoiceCustomerId") String actualInvoiceCustomerId);
}
@@ -286,4 +286,7 @@ public class MaterialBaseInfoPO extends BaseVOEntity {
@ApiModelProperty(name = "单位")
private String unit;
@ApiModelProperty(name = "组织(多个用,分开)")
private String orgId;
}
@@ -259,4 +259,7 @@ public class MaterialBaseInfoDO extends BaseVOEntity {
@ApiModelProperty(name = "单位")
private String unit;
@ApiModelProperty(name = "组织(多个用,分开)")
private String orgId;
}
@@ -49,9 +49,14 @@ public interface IStockShelfOrderService extends IService<StockShelfOrder>
*/
public StockShelfOrderPO getInfo(Long shelfOrderId);
public void updateOmsOrder(String orderNumber, Integer status, BigDecimal shelvesQuantity);
public Integer getExecutionCount(String orderNumber);
public String getBusinessOrderNumber(String orderNumber);
public void updateOmsExecutionOrder(String orderNumber, Integer status, BigDecimal shelvesQuantity);
public void updateOmsReserveOrder(String orderNumber, BigDecimal shelvesQuantity);
public void updateOmsDocument(BigDecimal shelvesQuantity, BigDecimal totalNetWeight, String omsInMaterialDetail);
@@ -24,6 +24,12 @@ public interface StockShelfOrderMapper extends BaseMapper<StockShelfOrder>
public void updateOmsOrder(@Param("orderNumber") String orderNumber, @Param("status") Integer status, @Param("shelvesQuantity") BigDecimal shelvesQuantity);
public Integer getExecutionCount(@Param("orderNumber") String orderNumber);
public String getBusinessOrderNumber(@Param("orderNumber") String orderNumber);
public void updateOmsExecutionOrder(@Param("orderNumber") String orderNumber, @Param("status") Integer status, @Param("shelvesQuantity") BigDecimal shelvesQuantity);
public void updateOmsReserveOrder(@Param("orderNumber") String orderNumber, @Param("shelvesQuantity") BigDecimal shelvesQuantity);
void updateOmsDocument(@Param("shelvesQuantity") BigDecimal shelvesQuantity, @Param("totalNetWeight") BigDecimal totalNetWeight, @Param("omsInMaterialDetail") String omsInMaterialDetail);
@@ -115,6 +115,21 @@ public class StockShelfOrderImpl extends ServiceImpl<StockShelfOrderMapper, Stoc
stockShelfOrderMapper.updateOmsOrder(orderNumber, status,shelvesQuantity);
}
@Override
public Integer getExecutionCount(String orderNumber) {
return stockShelfOrderMapper.getExecutionCount(orderNumber);
}
@Override
public String getBusinessOrderNumber(String orderNumber) {
return stockShelfOrderMapper.getBusinessOrderNumber(orderNumber);
}
@Override
public void updateOmsExecutionOrder(String orderNumber, Integer status,BigDecimal shelvesQuantity) {
stockShelfOrderMapper.updateOmsExecutionOrder(orderNumber, status,shelvesQuantity);
}
@Override
public void updateOmsReserveOrder(String orderNumber, BigDecimal shelvesQuantity) {
stockShelfOrderMapper.updateOmsReserveOrder(orderNumber, shelvesQuantity);
@@ -863,9 +863,19 @@ public class StockShelfOrderDomainService {
markShelfTypeStockInTaskOrderOnComplete(stockShelfOrderPO.getShelfOrderNumber(), loginUser, userRealNameComplete);
//推送业务数据到BMS系统
// pushSyncBmsDomainService.pushInShelfOrder(stockShelfOrderPO.getInOrderNumber());
stockShelfOrderService.updateOmsOrder(stockShelfOrderPO.getInOrderNumber(), 4,
stockShelfOrderService.updateOmsExecutionOrder(stockShelfOrderPO.getInOrderNumber(), 4,
shelvesQuantity == null ? null : shelvesQuantity);
stockShelfOrderService.updateOmsReserveOrder(stockShelfOrderPO.getInOrderNumber(),
Integer executionCount = stockShelfOrderService.getExecutionCount(stockShelfOrderPO.getInOrderNumber());
String businessOrderNumber = stockShelfOrderService.getBusinessOrderNumber(stockShelfOrderPO.getInOrderNumber());
if (executionCount != null && executionCount > 0) {
if (businessOrderNumber != null) stockShelfOrderService.updateOmsOrder(businessOrderNumber, 5,
shelvesQuantity == null ? null : shelvesQuantity);
} else {
if (businessOrderNumber != null) stockShelfOrderService.updateOmsOrder(businessOrderNumber, 4,
shelvesQuantity == null ? null : shelvesQuantity);
}
if (businessOrderNumber != null) stockShelfOrderService.updateOmsReserveOrder(businessOrderNumber,
shelvesQuantity == null ? null : shelvesQuantity);
return true;
}
@@ -311,4 +311,7 @@ public class MaterialBaseInfoDTO extends BaseVOEntity {
@ApiModelProperty(name = "单位")
private String unit;
@ApiModelProperty(name = "组织(多个用,分开)")
private String orgId;
}