Merge branch 'dev_qinhongzhanWMS' into wms_dev
# Conflicts: # mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java
This commit is contained in:
+29
-29
@@ -68,8 +68,8 @@ public class StockInOrderApplicationService {
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
stockInOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
stockInOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
// AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
// stockInOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return stockInOrderDomainService.queryList(stockInOrderDO);
|
||||
}
|
||||
@@ -79,26 +79,26 @@ public class StockInOrderApplicationService {
|
||||
* 新增入库单
|
||||
*/
|
||||
public Boolean insert(StockInOrderDO stockInOrderDO) {
|
||||
// 如果仓库ID为空,从当前登录用户的关联仓库中获取
|
||||
// if (stockInOrderDO.getWarehouseId() == null) {
|
||||
// LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
// if (loginUser == null) {
|
||||
// throw new ServiceException("登录已失效,请重新登录");
|
||||
// }
|
||||
// AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
// if (associationWarehouseCacheDO == null || associationWarehouseCacheDO.getWarehouseId() == null) {
|
||||
// throw new ServiceException("当前用户未配置关联仓库,请先配置仓库");
|
||||
// }
|
||||
// stockInOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
// }
|
||||
// //设置仓库
|
||||
// setWarehouseInfo(stockInOrderDO);
|
||||
//设置货主信息
|
||||
// shipperParam(stockInOrderDO);
|
||||
//设置供应商信息
|
||||
// supplierParam(stockInOrderDO);
|
||||
//设置数据字典键值
|
||||
// setDataDict(stockInOrderDO);
|
||||
// 如果仓库ID为空,从当前登录用户的关联仓库中获取
|
||||
if (stockInOrderDO.getWarehouseId() == null) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser == null) {
|
||||
throw new ServiceException("登录已失效,请重新登录");
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
if (associationWarehouseCacheDO == null || associationWarehouseCacheDO.getWarehouseId() == null) {
|
||||
throw new ServiceException("当前用户未配置关联仓库,请先配置仓库");
|
||||
}
|
||||
stockInOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
//设置仓库
|
||||
setWarehouseInfo(stockInOrderDO);
|
||||
// 设置货主信息
|
||||
shipperParam(stockInOrderDO);
|
||||
// 设置供应商信息
|
||||
supplierParam(stockInOrderDO);
|
||||
// 设置数据字典键值
|
||||
setDataDict(stockInOrderDO);
|
||||
return stockInOrderDomainService.insert(stockInOrderDO);
|
||||
}
|
||||
|
||||
@@ -107,13 +107,13 @@ public class StockInOrderApplicationService {
|
||||
*/
|
||||
public Boolean update(StockInOrderDO stockInOrderDO) {
|
||||
//设置仓库
|
||||
// setWarehouseInfo(stockInOrderDO);
|
||||
setWarehouseInfo(stockInOrderDO);
|
||||
//设置货主信息
|
||||
// shipperParam(stockInOrderDO);
|
||||
shipperParam(stockInOrderDO);
|
||||
//设置供应商信息
|
||||
// supplierParam(stockInOrderDO);
|
||||
supplierParam(stockInOrderDO);
|
||||
//设置数据字典键值
|
||||
// setDataDict(stockInOrderDO);
|
||||
setDataDict(stockInOrderDO);
|
||||
return stockInOrderDomainService.update(stockInOrderDO);
|
||||
}
|
||||
|
||||
@@ -396,11 +396,11 @@ public class StockInOrderApplicationService {
|
||||
InMaterialDetailDO d = new InMaterialDetailDO();
|
||||
d.setMaterialBaseInfoId(materialBaseInfoId);
|
||||
d.setQuantity(quantity);
|
||||
d.setSpecification(r.getSpecification());
|
||||
d.setSpecificationModel(r.getSpecificationModel());
|
||||
d.setSkuCode(r.getSkuCode());
|
||||
d.setInvoiceNo(r.getInvoiceNo());
|
||||
d.setDeclaredQuantity(r.getDeclaredQuantity());
|
||||
d.setDeclaredUnit(r.getDeclaredUnit());
|
||||
d.setDeclarationUnit(r.getDeclarationUnit());
|
||||
d.setLiter(r.getLiter());
|
||||
d.setBoxCount(r.getBoxCount());
|
||||
d.setPieceCount(r.getPieceCount());
|
||||
@@ -413,7 +413,7 @@ public class StockInOrderApplicationService {
|
||||
d.setTotalArea(r.getTotalArea());
|
||||
d.setBatchRefNo(r.getBatchRefNo());
|
||||
d.setSheetRefNo(r.getSheetRefNo());
|
||||
d.setCountryOfOrigin(r.getCountryOfOrigin());
|
||||
d.setOriginCountry(r.getOriginCountry());
|
||||
d.setBoxPalletNo(r.getBoxPalletNo());
|
||||
d.setTotalPrice(r.getTotalPrice());
|
||||
d.setCurrency(r.getCurrency());
|
||||
|
||||
+28
-4
@@ -39,6 +39,7 @@ import com.mhd.wms.domain.stockReceiptOrder.service.StockReceiptOrderDomainServi
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.mhd.common.core.utils.StringUtils;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
@@ -87,8 +88,8 @@ public class StockReceiptOrderApplicationService {
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
stockReceiptOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
stockReceiptOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
// AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
// stockReceiptOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return stockReceiptOrderDomainService.queryList(stockReceiptOrderDO);
|
||||
}
|
||||
@@ -162,7 +163,21 @@ public class StockReceiptOrderApplicationService {
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean taskDistribution(StockReceiptOrderDO stockReceiptOrderDO){
|
||||
//设置作业人员信息
|
||||
//获取收货单信息,用于获取仓库ID
|
||||
if (stockReceiptOrderDO.getReceiptOrderIds() != null && stockReceiptOrderDO.getReceiptOrderIds().size() > 0) {
|
||||
StockReceiptOrderDO queryDO = new StockReceiptOrderDO();
|
||||
queryDO.setReceiptOrderId(stockReceiptOrderDO.getReceiptOrderIds().get(0));
|
||||
StockReceiptOrderPO stockReceiptOrderPO = stockReceiptOrderDomainService.getInfo(queryDO.getReceiptOrderId());
|
||||
if (stockReceiptOrderPO != null && stockReceiptOrderPO.getWarehouseId() != null) {
|
||||
//查询该仓库绑定的用户ID列表
|
||||
AjaxResult ajaxResult = systemServiceFeign.queryListCorrelationId(stockReceiptOrderPO.getWarehouseId());
|
||||
if ("200".equals(String.valueOf(ajaxResult.get("code")))) {
|
||||
List<Long> warehouseUserIds = JSON.parseArray(JSONUtil.toJsonStr(ajaxResult.get("data")), Long.class);
|
||||
stockReceiptOrderDO.setWarehouseUserIds(warehouseUserIds);
|
||||
}
|
||||
}
|
||||
}
|
||||
//设置作业人员信息(会验证操作人员是否属于该仓库绑定的用户)
|
||||
operatorsParam(stockReceiptOrderDO);
|
||||
return stockReceiptOrderDomainService.taskDistribution(stockReceiptOrderDO);
|
||||
}
|
||||
@@ -313,6 +328,15 @@ public class StockReceiptOrderApplicationService {
|
||||
* @param stockReceiptOrderDO
|
||||
*/
|
||||
private void operatorsParam(StockReceiptOrderDO stockReceiptOrderDO){
|
||||
if (stockReceiptOrderDO.getOperatorsBy() == null) {
|
||||
throw new ServiceException("操作人员不能为空");
|
||||
}
|
||||
//如果指定了仓库绑定的用户列表,验证操作人员是否在该列表中
|
||||
if (stockReceiptOrderDO.getWarehouseUserIds() != null && !stockReceiptOrderDO.getWarehouseUserIds().isEmpty()) {
|
||||
if (!stockReceiptOrderDO.getWarehouseUserIds().contains(stockReceiptOrderDO.getOperatorsBy())) {
|
||||
throw new ServiceException("操作人员必须属于当前收货单对应仓库绑定的用户");
|
||||
}
|
||||
}
|
||||
AjaxResult ajaxResult = userServiceFeign.getInfo(stockReceiptOrderDO.getOperatorsBy());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取作业人员信息失败");
|
||||
@@ -591,7 +615,7 @@ public class StockReceiptOrderApplicationService {
|
||||
*/
|
||||
private void setMaterialMoreDetailInfo(ReceiptMaterialDetailDO receiptMaterialDetailDO){
|
||||
|
||||
if(ObjectUtil.isNotNull(receiptMaterialDetailDO.getMaterialStatusCode())){
|
||||
if(ObjectUtil.isNotNull(receiptMaterialDetailDO.getMaterialStatusCode()) && StringUtils.isNotBlank(receiptMaterialDetailDO.getMaterialStatusCode())){
|
||||
//翻译物料状态
|
||||
AjaxResult materialsStatusResult = systemServiceFeign.selectListByDictType(DictCode.MATERIALS_STATUS.getCode());
|
||||
if (!"200".equals(String.valueOf(materialsStatusResult.get("code")))) {
|
||||
|
||||
+16
-16
@@ -67,8 +67,8 @@ public class StockShelfOrderApplicationService {
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
stockShelfOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
stockShelfOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
// AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
// stockShelfOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return stockShelfOrderDomainService.queryList(stockShelfOrderDO);
|
||||
}
|
||||
@@ -245,7 +245,7 @@ public class StockShelfOrderApplicationService {
|
||||
//设置上架信息
|
||||
setStorageLocationInfo(shelfMaterialDetailDO);
|
||||
//设置容器信息
|
||||
setContainerInfo(shelfMaterialDetailDO);
|
||||
// setContainerInfo(shelfMaterialDetailDO);
|
||||
//上架后 设置该记录不允许被修改
|
||||
shelfMaterialDetailDO.setAllowModify(2);
|
||||
//未上过架 统计到当前收货单作业收货数
|
||||
@@ -267,7 +267,7 @@ public class StockShelfOrderApplicationService {
|
||||
//设置上架信息
|
||||
setStorageLocationInfo(shelfMaterialDetailDOChild);
|
||||
//设置容器信息
|
||||
setContainerInfo(returnShelfMaterialDetailDOChild);
|
||||
// setContainerInfo(returnShelfMaterialDetailDOChild);
|
||||
//上架后 设置该记录不允许被修改
|
||||
shelfMaterialDetailDO.setAllowModify(2);
|
||||
returnShelfMaterialDetailDOChild.setMaterialDetailSerialNumberList(shelfMaterialDetailDOChild.getMaterialDetailSerialNumberList());
|
||||
@@ -348,18 +348,18 @@ public class StockShelfOrderApplicationService {
|
||||
* @date 2024/5/23 14:03
|
||||
* @param shelfMaterialDetailDO
|
||||
*/
|
||||
private void setContainerInfo(ShelfMaterialDetailDO shelfMaterialDetailDO){
|
||||
|
||||
//获取容器详情
|
||||
AjaxResult ajaxResult = systemServiceFeign.getContainerInfoByContainerId(shelfMaterialDetailDO.getContainerId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取容器信息失败");
|
||||
}
|
||||
ContainerFeignPO containerFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), ContainerFeignPO.class);
|
||||
shelfMaterialDetailDO.setContainerCode(containerFeignPO.getContainerCode());
|
||||
shelfMaterialDetailDO.setContainerType(containerFeignPO.getContainerType());
|
||||
shelfMaterialDetailDO.setContainerTypeName(containerFeignPO.getContainerTypeName());
|
||||
}
|
||||
// private void setContainerInfo(ShelfMaterialDetailDO shelfMaterialDetailDO){
|
||||
//
|
||||
// //获取容器详情
|
||||
// AjaxResult ajaxResult = systemServiceFeign.getContainerInfoByContainerId(shelfMaterialDetailDO.getContainerId());
|
||||
// if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
// throw new ServiceException("获取容器信息失败");
|
||||
// }
|
||||
// ContainerFeignPO containerFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), ContainerFeignPO.class);
|
||||
// shelfMaterialDetailDO.setContainerCode(containerFeignPO.getContainerCode());
|
||||
// shelfMaterialDetailDO.setContainerType(containerFeignPO.getContainerType());
|
||||
// shelfMaterialDetailDO.setContainerTypeName(containerFeignPO.getContainerTypeName());
|
||||
// }
|
||||
|
||||
/**
|
||||
* @description 判断上架数量是否存在超收
|
||||
|
||||
+6
-6
@@ -253,12 +253,12 @@ public class InMaterialDetail extends BaseVOEntity {
|
||||
private Long overStockType;
|
||||
|
||||
// ========== 报关相关明细字段 ==========
|
||||
@ApiModelProperty("规格型号/ITEM")
|
||||
@ApiModelProperty("规格型号")
|
||||
@Excel(name = "规格型号/ITEM")
|
||||
private String specification;
|
||||
private String specificationModel;
|
||||
|
||||
@ApiModelProperty("商品SKU码")
|
||||
@Excel(name = "商品SKU码")
|
||||
@ApiModelProperty("SKU码")
|
||||
@Excel(name = "SKU码")
|
||||
private String skuCode;
|
||||
|
||||
@ApiModelProperty("Invoice No.")
|
||||
@@ -275,7 +275,7 @@ public class InMaterialDetail extends BaseVOEntity {
|
||||
|
||||
@ApiModelProperty("申报单位")
|
||||
@Excel(name = "申报单位")
|
||||
private String declaredUnit;
|
||||
private String declarationUnit;
|
||||
|
||||
@ApiModelProperty("Batch Ref NO's")
|
||||
@Excel(name = "Batch Ref NO's")
|
||||
@@ -287,7 +287,7 @@ public class InMaterialDetail extends BaseVOEntity {
|
||||
|
||||
@ApiModelProperty("原产国")
|
||||
@Excel(name = "原产国")
|
||||
private String countryOfOrigin;
|
||||
private String originCountry;
|
||||
|
||||
@ApiModelProperty("箱号/卡板号")
|
||||
@Excel(name = "箱号/卡板号")
|
||||
|
||||
+6
-6
@@ -264,12 +264,12 @@ public class InMaterialDetailPO extends StockInOrderBasePO {
|
||||
private Long overStockType;
|
||||
|
||||
// ========== 报关相关明细字段 ==========
|
||||
@ApiModelProperty("规格型号/ITEM")
|
||||
@ApiModelProperty("规格型号")
|
||||
@Excel(name = "规格型号/ITEM")
|
||||
private String specification;
|
||||
private String specificationModel;
|
||||
|
||||
@ApiModelProperty("商品SKU码")
|
||||
@Excel(name = "商品SKU码")
|
||||
@ApiModelProperty("SKU码")
|
||||
@Excel(name = "SKU码")
|
||||
private String skuCode;
|
||||
|
||||
@ApiModelProperty("Invoice No.")
|
||||
@@ -286,7 +286,7 @@ public class InMaterialDetailPO extends StockInOrderBasePO {
|
||||
|
||||
@ApiModelProperty("申报单位")
|
||||
@Excel(name = "申报单位")
|
||||
private String declaredUnit;
|
||||
private String declarationUnit;
|
||||
|
||||
@ApiModelProperty("Batch Ref NO's")
|
||||
@Excel(name = "Batch Ref NO's")
|
||||
@@ -298,7 +298,7 @@ public class InMaterialDetailPO extends StockInOrderBasePO {
|
||||
|
||||
@ApiModelProperty("原产国")
|
||||
@Excel(name = "原产国")
|
||||
private String countryOfOrigin;
|
||||
private String originCountry;
|
||||
|
||||
@ApiModelProperty("箱号/卡板号")
|
||||
@Excel(name = "箱号/卡板号")
|
||||
|
||||
+6
-6
@@ -260,12 +260,12 @@ public class InMaterialDetailDO extends StockInOrderBaseDO {
|
||||
private List<String> inOrderNumberList;
|
||||
|
||||
// ========== 报关相关明细字段 ==========
|
||||
@ApiModelProperty("规格型号/ITEM(选择物料后自动带出,不可编辑)")
|
||||
@ApiModelProperty("规格型号(选择物料后自动带出,不可编辑)")
|
||||
@Excel(name = "规格型号/ITEM")
|
||||
private String specification;
|
||||
private String specificationModel;
|
||||
|
||||
@ApiModelProperty("商品SKU码(选择物料后自动带出,不可编辑)")
|
||||
@Excel(name = "商品SKU码")
|
||||
@ApiModelProperty("SKU码(选择物料后自动带出,不可编辑)")
|
||||
@Excel(name = "SKU码")
|
||||
private String skuCode;
|
||||
|
||||
@ApiModelProperty("Invoice No.")
|
||||
@@ -282,7 +282,7 @@ public class InMaterialDetailDO extends StockInOrderBaseDO {
|
||||
|
||||
@ApiModelProperty("申报单位")
|
||||
@Excel(name = "申报单位")
|
||||
private String declaredUnit;
|
||||
private String declarationUnit;
|
||||
|
||||
@ApiModelProperty("Batch Ref NO's")
|
||||
@Excel(name = "Batch Ref NO's")
|
||||
@@ -294,7 +294,7 @@ public class InMaterialDetailDO extends StockInOrderBaseDO {
|
||||
|
||||
@ApiModelProperty("原产国")
|
||||
@Excel(name = "原产国")
|
||||
private String countryOfOrigin;
|
||||
private String originCountry;
|
||||
|
||||
@ApiModelProperty("箱号/卡板号")
|
||||
@Excel(name = "箱号/卡板号")
|
||||
|
||||
+3
-4
@@ -107,7 +107,6 @@ public class StockInOrderDomainService {
|
||||
/**
|
||||
* 批量新增入库单
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean batchInsert(List<StockInOrderDO> stockInOrderDOList) {
|
||||
for (StockInOrderDO stockInOrderDO : stockInOrderDOList){
|
||||
if (StringUtils.isBlank(stockInOrderDO.getInOrderNumber())){
|
||||
@@ -409,12 +408,12 @@ public class StockInOrderDomainService {
|
||||
|
||||
//自动填充规格型号和SKU码(如果物料基础信息中有相关字段且明细中未设置)
|
||||
//规格型号:优先使用物料种类名称,如果为空则使用物料类型名称
|
||||
if (StringUtils.isBlank(inMaterialDetailDO.getSpecification())) {
|
||||
if (StringUtils.isBlank(inMaterialDetailDO.getSpecificationModel())) {
|
||||
if (StringUtils.isNotBlank(materialBaseInfoPO.getMaterialTypeName())) {
|
||||
inMaterialDetailDO.setSpecification(materialBaseInfoPO.getMaterialTypeName());
|
||||
inMaterialDetailDO.setSpecificationModel(materialBaseInfoPO.getMaterialTypeName());
|
||||
}
|
||||
}
|
||||
//商品SKU码:使用物料条形码
|
||||
//SKU码:使用物料条形码
|
||||
if (StringUtils.isBlank(inMaterialDetailDO.getSkuCode())) {
|
||||
if (StringUtils.isNotBlank(materialBaseInfoPO.getBarCode())) {
|
||||
inMaterialDetailDO.setSkuCode(materialBaseInfoPO.getBarCode());
|
||||
|
||||
+3
@@ -158,4 +158,7 @@ public class StockReceiptOrderDO extends StockInOrderBaseDO {
|
||||
@ApiModelProperty("物料明细")
|
||||
private List<ReceiptMaterialDetailDO> materialDetailList;
|
||||
|
||||
@ApiModelProperty("仓库绑定的用户ID列表(用于任务下发时筛选操作人员)")
|
||||
private List<Long> warehouseUserIds;
|
||||
|
||||
}
|
||||
|
||||
+40
@@ -53,6 +53,9 @@ import com.mhd.wms.domain.stockReceiptOrder.repository.facade.IStockReceiptOrder
|
||||
import com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderPO;
|
||||
import com.mhd.wms.domain.stockReceiptOrder.repository.todo.NoReceiptOrderDO;
|
||||
import com.mhd.wms.domain.stockReceiptOrder.repository.todo.StockReceiptOrderDO;
|
||||
import com.mhd.wms.domain.stockShelfOrder.entity.StockShelfOrder;
|
||||
import com.mhd.wms.domain.stockShelfOrder.repository.facade.IStockShelfOrderService;
|
||||
import com.mhd.wms.domain.stockShelfOrder.repository.po.StockShelfOrderPO;
|
||||
import com.mhd.wms.domain.stockShelfOrder.repository.todo.StockShelfOrderDO;
|
||||
import com.mhd.wms.domain.stockShelfOrder.service.StockShelfOrderDomainService;
|
||||
import com.mhd.wms.domain.taskReceiptMaterialDetail.repository.todo.TaskReceiptMaterialDetailDO;
|
||||
@@ -88,6 +91,8 @@ public class StockReceiptOrderDomainService {
|
||||
@Autowired
|
||||
private StockShelfOrderDomainService stockShelfOrderDomainService;
|
||||
@Autowired
|
||||
private IStockShelfOrderService stockShelfOrderService;
|
||||
@Autowired
|
||||
private IQualityInspectionService qualityInspectionService;
|
||||
@Autowired
|
||||
private IInMaterialDetailSerialNumberService inMaterialDetailSerialNumberService;
|
||||
@@ -145,6 +150,7 @@ public class StockReceiptOrderDomainService {
|
||||
receiptMaterialDetail.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
receiptMaterialDetail.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
|
||||
receiptMaterialDetail.setReceiptOrderNumber(stockReceiptOrder.getReceiptOrderNumber());
|
||||
receiptMaterialDetail.setGenStockShelf(2); // 设置需要生成上架单
|
||||
receiptMaterialDetail.setCreateBy(loginUser.getUserid());
|
||||
receiptMaterialDetail.setCreateByName(loginUser.getUsername());
|
||||
receiptMaterialDetail.setCreateTime(new Date());
|
||||
@@ -455,6 +461,40 @@ public class StockReceiptOrderDomainService {
|
||||
//根据收货数量生成上架
|
||||
genStockShelfOrder(stockReceiptOrderPO);
|
||||
|
||||
//收货完成后自动生成上架任务
|
||||
try {
|
||||
//查询刚生成的上架单
|
||||
StockShelfOrderDO stockShelfOrderDOQuery = new StockShelfOrderDO();
|
||||
stockShelfOrderDOQuery.setReceiptOrderNumber(stockReceiptOrderPO.getReceiptOrderNumber());
|
||||
stockShelfOrderDOQuery.setTaskDistribution(2); // 查询未下发的上架单
|
||||
List<StockShelfOrderPO> stockShelfOrderPOList = stockShelfOrderService.queryList(stockShelfOrderDOQuery);
|
||||
if (!CollectionUtils.isEmpty(stockShelfOrderPOList)) {
|
||||
//创建上架任务参数
|
||||
StockShelfOrderDO stockShelfOrderDO = new StockShelfOrderDO();
|
||||
stockShelfOrderDO.setShelfOrderIds(stockShelfOrderPOList.stream()
|
||||
.map(StockShelfOrderPO::getShelfOrderId)
|
||||
.collect(Collectors.toList()));
|
||||
//如果没有指定操作人员,使用当前登录用户
|
||||
if (stockShelfOrderDO.getOperatorsBy() == null) {
|
||||
stockShelfOrderDO.setOperatorsBy(loginUser.getUserid());
|
||||
stockShelfOrderDO.setOperatorsName(loginUser.getUsername());
|
||||
}
|
||||
//生成上架任务
|
||||
stockShelfOrderDomainService.genDeliveTask(stockShelfOrderPOList, stockShelfOrderDO);
|
||||
//标记上架单任务已下发
|
||||
stockShelfOrderService.update(null, new UpdateWrapper<StockShelfOrder>().lambda()
|
||||
.set(StockShelfOrder::getTaskDistribution, 1)
|
||||
.set(StockShelfOrder::getTaskDistributionTime, new Date())
|
||||
.set(StockShelfOrder::getUpdateBy, loginUser.getUserid())
|
||||
.set(StockShelfOrder::getUpdateByName, loginUser.getUsername())
|
||||
.set(StockShelfOrder::getUpdateTime, new Date())
|
||||
.in(StockShelfOrder::getShelfOrderId, stockShelfOrderDO.getShelfOrderIds()));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
//如果生成上架任务失败,记录日志但不影响收货完成流程
|
||||
log.error("收货完成后生成上架任务失败,收货单号:{}", stockReceiptOrderPO.getReceiptOrderNumber(), e);
|
||||
}
|
||||
|
||||
//生成收货追溯记录
|
||||
genInventoryStandingDetail(stockReceiptOrderPO);
|
||||
//存在异常 生成记录
|
||||
|
||||
+6
-6
@@ -264,12 +264,12 @@ public class InMaterialDetailDTO extends BaseVOEntity {
|
||||
private Integer isDifferentType;
|
||||
|
||||
// ========== 报关相关明细字段 ==========
|
||||
@ApiModelProperty("规格型号/ITEM(选择物料后自动带出,不可编辑)")
|
||||
@ApiModelProperty("规格型号(选择物料后自动带出,不可编辑)")
|
||||
@Excel(name = "规格型号/ITEM")
|
||||
private String specification;
|
||||
private String specificationModel;
|
||||
|
||||
@ApiModelProperty("商品SKU码(选择物料后自动带出,不可编辑)")
|
||||
@Excel(name = "商品SKU码")
|
||||
@ApiModelProperty("SKU码(选择物料后自动带出,不可编辑)")
|
||||
@Excel(name = "SKU码")
|
||||
private String skuCode;
|
||||
|
||||
@ApiModelProperty("Invoice No.")
|
||||
@@ -286,7 +286,7 @@ public class InMaterialDetailDTO extends BaseVOEntity {
|
||||
|
||||
@ApiModelProperty("申报单位")
|
||||
@Excel(name = "申报单位")
|
||||
private String declaredUnit;
|
||||
private String declarationUnit;
|
||||
|
||||
@ApiModelProperty("Batch Ref NO's")
|
||||
@Excel(name = "Batch Ref NO's")
|
||||
@@ -298,7 +298,7 @@ public class InMaterialDetailDTO extends BaseVOEntity {
|
||||
|
||||
@ApiModelProperty("原产国")
|
||||
@Excel(name = "原产国")
|
||||
private String countryOfOrigin;
|
||||
private String originCountry;
|
||||
|
||||
@ApiModelProperty("箱号/卡板号")
|
||||
@Excel(name = "箱号/卡板号")
|
||||
|
||||
+24
@@ -215,6 +215,30 @@ public class MaterialBaseInfoDTO extends BaseVOEntity {
|
||||
@ApiModelProperty("法定第二单位")
|
||||
private String statutorySecondUnit;
|
||||
|
||||
@ApiModelProperty("SKU码")
|
||||
private String skuCode;
|
||||
|
||||
@ApiModelProperty("单价")
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
@ApiModelProperty("币制")
|
||||
private String currency;
|
||||
|
||||
@ApiModelProperty("原产国")
|
||||
private String originCountry;
|
||||
|
||||
@ApiModelProperty("HS码")
|
||||
private String hsCode;
|
||||
|
||||
@ApiModelProperty("申报单位")
|
||||
private String declarationUnit;
|
||||
|
||||
@ApiModelProperty("法定单位")
|
||||
private String statutoryUnit;
|
||||
|
||||
@ApiModelProperty("法定第二单位")
|
||||
private String statutorySecondUnit;
|
||||
|
||||
@ApiModelProperty("规格型号")
|
||||
private String specificationModel;
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="packId" column="pack_id" />
|
||||
<result property="packCode" column="pack_code" />
|
||||
<result property="packName" column="pack_name" />
|
||||
<result property="packDetailId" column="pack_detail_id" />
|
||||
<result property="packDetailId" column="pack_detail_id" jdbcType="BIGINT" />
|
||||
<result property="unitCode" column="unit_code" />
|
||||
<result property="unitName" column="unit_name" />
|
||||
<result property="materialWarehouseControlId" column="material_warehouse_control_id" />
|
||||
@@ -52,15 +52,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="overStockId" column="over_stock_id" />
|
||||
<result property="overStockStatus" column="over_stock_status" />
|
||||
<result property="overStockType" column="over_stock_type" />
|
||||
<result property="specification" column="SPECIFICATION" />
|
||||
<result property="specificationModel" column="SPECIFICATION_MODEL" />
|
||||
<result property="skuCode" column="SKU_CODE" />
|
||||
<result property="invoiceNo" column="INVOICE_NO" />
|
||||
<result property="liter" column="LITER" />
|
||||
<result property="dimensions" column="DIMENSIONS" />
|
||||
<result property="declaredUnit" column="DECLARED_UNIT" />
|
||||
<result property="declarationUnit" column="DECLARATION_UNIT" />
|
||||
<result property="batchRefNo" column="BATCH_REF_NO" />
|
||||
<result property="sheetRefNo" column="SHEET_REF_NO" />
|
||||
<result property="countryOfOrigin" column="COUNTRY_OF_ORIGIN" />
|
||||
<result property="originCountry" column="ORIGIN_COUNTRY" />
|
||||
<result property="boxPalletNo" column="BOX_PALLET_NO" />
|
||||
<result property="currency" column="CURRENCY" />
|
||||
<result property="unit" column="UNIT" />
|
||||
@@ -80,14 +80,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
a.material_detail_id, a.organization_id, a.organization_name, a.top_organization_id, a.unique_id, a.in_order_number, a.material_base_info_id,
|
||||
a.material_code, a.material_name, a.bar_code, a.quantity, a.receipt_quantity, a.shelves_quantity,
|
||||
a.receipt_status, a.shelves_status, a.pack_id, a.pack_code, a.pack_name,
|
||||
a.pack_detail_id, a.unit_code, a.unit_name, a.material_warehouse_control_id, a.serial_number_manage, a.quality_inspection_manage,
|
||||
CASE
|
||||
WHEN a.pack_detail_id IS NULL OR TRIM(a.pack_detail_id) = '' THEN NULL
|
||||
ELSE CAST(a.pack_detail_id AS BIGINT)
|
||||
END as pack_detail_id, a.unit_code, a.unit_name, a.material_warehouse_control_id, a.serial_number_manage, a.quality_inspection_manage,
|
||||
a.quality_inspection_stage, a.quality_inspection_rule, a.quality_inspection_ratio, a.quality_inspection_term, a.quality_inspection_results, a.allow_overcharge,
|
||||
a.overcharge_ratio, a.batch_number, a.material_status_code, a.material_status_name, a.distribute_rule_id, a.distribute_rule_code,
|
||||
a.distribute_rule_name, a.container_id, a.container_code, a.container_type, a.container_type_name,
|
||||
a.warehouse_id, a.warehouse_code, a.warehouse_name, a.storage_section_id, a.storage_code, a.storage_name, a.storage_location_id, a.storage_location_code, a.storage_location_name,
|
||||
a.level, a.parent_unique_id, a.remark, a.create_time, a.create_by,a.create_by_name, a.update_time, a.update_by, a.update_by_name, a.del_flag, a.over_stock_id, a.over_stock_status, a.over_stock_type,
|
||||
a.SPECIFICATION, a.SKU_CODE, a.INVOICE_NO, a.LITER, a.DIMENSIONS, a.DECLARED_UNIT, a.BATCH_REF_NO, a.SHEET_REF_NO,
|
||||
a.COUNTRY_OF_ORIGIN, a.BOX_PALLET_NO, a.CURRENCY, a.UNIT, a.DECLARED_QUANTITY, a.BOX_COUNT, a.PIECE_COUNT, a.OUTBOUND_QUANTITY,
|
||||
a.SPECIFICATION_MODEL, a.SKU_CODE, a.INVOICE_NO, a.LITER, a.DIMENSIONS, a.DECLARATION_UNIT, a.BATCH_REF_NO, a.SHEET_REF_NO,
|
||||
a.ORIGIN_COUNTRY, a.BOX_PALLET_NO, a.CURRENCY, a.UNIT, a.DECLARED_QUANTITY, a.BOX_COUNT, a.PIECE_COUNT, a.OUTBOUND_QUANTITY,
|
||||
a.TOTAL_NET_WEIGHT, a.TOTAL_GROSS_WEIGHT, a.TOTAL_VOLUME, a.TOTAL_AREA, a.TOTAL_PRICE
|
||||
,CASE
|
||||
WHEN (a.quantity - a.receipt_quantity) < 0 THEN 0
|
||||
@@ -142,7 +145,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="packName != null and packName != ''">
|
||||
and a.pack_name like concat('%', #{packName}, '%')
|
||||
</if>
|
||||
<if test="packDetailId != null and packDetailId != ''">
|
||||
<if test="packDetailId != null">
|
||||
and a.pack_detail_id = #{packDetailId}
|
||||
</if>
|
||||
<if test="unitCode != null and unitCode != ''">
|
||||
|
||||
+10
-10
@@ -13,7 +13,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="receiptOrderNumber" column="receipt_order_number" />
|
||||
<result property="materialBaseInfoId" column="material_base_info_id" />
|
||||
<result property="materialCode" column="material_code" />
|
||||
<result property="materialName" column="material_name" />
|
||||
<result property="materialName" column="MATERIAL_NAME" />
|
||||
<result property="barCode" column="bar_code" />
|
||||
<result property="quantity" column="quantity" />
|
||||
<result property="receiptQuantity" column="receipt_quantity" />
|
||||
@@ -60,7 +60,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
|
||||
|
||||
<sql id="selectReceiptMaterialDetailPo">
|
||||
select material_detail_id, organization_id, organization_name, top_organization_id, unique_id, receipt_order_number, material_base_info_id, material_code, material_name, bar_code, quantity, already_receipt_quantity, receipt_quantity, receipt_status, pack_id, pack_code, pack_name, pack_detail_id, unit_code, unit_name, unit_number, material_warehouse_control_id, serial_number_manage, quality_inspection_manage, quality_inspection_stage, quality_inspection_rule, quality_inspection_ratio, quality_inspection_term, quality_inspection_results, allow_overcharge, overcharge_ratio, batch_number, material_status_code, material_status_name, distribute_rule_id, distribute_rule_code, distribute_rule_name, container_id, container_code, container_type, container_type_name, level, parent_unique_id, in_unique_id, allow_modify, remark, create_time, create_by, create_by_name, update_time, update_by, update_by_name, gen_stock_shelf, del_flag from receipt_material_detail
|
||||
select MATERIAL_DETAIL_ID, ORGANIZATION_ID, ORGANIZATION_NAME, TOP_ORGANIZATION_ID, UNIQUE_ID, RECEIPT_ORDER_NUMBER, MATERIAL_BASE_INFO_ID, MATERIAL_CODE, MATERIAL_NAME, BAR_CODE, QUANTITY, ALREADY_RECEIPT_QUANTITY, RECEIPT_QUANTITY, RECEIPT_STATUS, PACK_ID, PACK_CODE, PACK_NAME, PACK_DETAIL_ID, UNIT_CODE, UNIT_NAME, UNIT_NUMBER, MATERIAL_WAREHOUSE_CONTROL_ID, SERIAL_NUMBER_MANAGE, QUALITY_INSPECTION_MANAGE, QUALITY_INSPECTION_STAGE, QUALITY_INSPECTION_RULE, QUALITY_INSPECTION_RATIO, QUALITY_INSPECTION_TERM, QUALITY_INSPECTION_RESULTS, ALLOW_OVERCHARGE, OVERCHARGE_RATIO, BATCH_NUMBER, MATERIAL_STATUS_CODE, MATERIAL_STATUS_NAME, DISTRIBUTE_RULE_ID, DISTRIBUTE_RULE_CODE, DISTRIBUTE_RULE_NAME, CONTAINER_ID, CONTAINER_CODE, CONTAINER_TYPE, CONTAINER_TYPE_NAME, LEVEL, PARENT_UNIQUE_ID, IN_UNIQUE_ID, ALLOW_MODIFY, REMARK, CREATE_TIME, CREATE_BY, CREATE_BY_NAME, UPDATE_TIME, UPDATE_BY, UPDATE_BY_NAME, GEN_STOCK_SHELF, DEL_FLAG from RECEIPT_MATERIAL_DETAIL
|
||||
</sql>
|
||||
|
||||
<sql id="selectReceiptMaterialDetailPo1">
|
||||
@@ -78,16 +78,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
and unique_id = #{uniqueId}
|
||||
</if>
|
||||
<if test="receiptOrderNumber != null and receiptOrderNumber != ''">
|
||||
and receipt_order_number = #{receiptOrderNumber}
|
||||
and RECEIPT_ORDER_NUMBER = #{receiptOrderNumber}
|
||||
</if>
|
||||
<if test="materialBaseInfoId != null ">
|
||||
and material_base_info_id = #{materialBaseInfoId}
|
||||
and MATERIAL_BASE_INFO_ID = #{materialBaseInfoId}
|
||||
</if>
|
||||
<if test="materialCode != null and materialCode != ''">
|
||||
and material_code = #{materialCode}
|
||||
and MATERIAL_CODE = #{materialCode}
|
||||
</if>
|
||||
<if test="materialName != null and materialName != ''">
|
||||
and material_name like concat('%', #{materialName}, '%')
|
||||
and MATERIAL_NAME like concat('%', #{materialName}, '%')
|
||||
</if>
|
||||
<if test="barCode != null and barCode != ''">
|
||||
and bar_code = #{barCode}
|
||||
@@ -198,15 +198,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
and gen_stock_shelf = #{genStockShelf}
|
||||
</if>
|
||||
<if test="compoundOrQuery != null and compoundOrQuery != ''">
|
||||
and ( instr(material_name, #{compoundOrQuery}) > 0
|
||||
and ( instr(MATERIAL_NAME, #{compoundOrQuery}) > 0
|
||||
or
|
||||
instr(material_code, #{compoundOrQuery}) > 0
|
||||
instr(MATERIAL_CODE, #{compoundOrQuery}) > 0
|
||||
or
|
||||
instr(bar_code, #{compoundOrQuery}) > 0
|
||||
instr(BAR_CODE, #{compoundOrQuery}) > 0
|
||||
)
|
||||
</if>
|
||||
<if test="receiptOrderNumberList != null and receiptOrderNumberList.size > 0 ">
|
||||
and receipt_order_number in
|
||||
and RECEIPT_ORDER_NUMBER in
|
||||
<foreach collection="receiptOrderNumberList" item="item" index="index" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
|
||||
@@ -51,7 +51,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="inOrderNumber != null ">
|
||||
and a.in_order_number = #{inOrderNumber}
|
||||
</if>
|
||||
<if test="receiptOrderNumber != null ">
|
||||
<if test="receiptOrderNumber != null and receiptOrderNumber != ''">
|
||||
and a.receipt_order_number = #{receiptOrderNumber}
|
||||
</if>
|
||||
<if test="receiptTaskNumber != null and receiptTaskNumber != ''">
|
||||
|
||||
Reference in New Issue
Block a user