Merge branch 'dev_WMS20260401' into dev

This commit is contained in:
王奎兴
2026-04-22 18:42:51 +08:00
23 changed files with 1872 additions and 59 deletions
@@ -4,32 +4,33 @@ import com.mhd.common.core.constant.ServiceNameConstants;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.system.api.domain.*;
import com.mhd.system.api.factory.RemoteBmsFeignFallbackFactory;
import com.mhd.system.api.factory.RemoteOmsFeignFallbackFactory;
import com.mhd.system.api.feign.FeignAutoConfiguration;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE, fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE, fallbackFactory = RemoteOmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
public interface OmsServiceFeign {
@ApiOperation("wms推送入库单")
@PostMapping(value = "/reservationStockInOrderApi/pushInOrder")
public AjaxResult pushInOrder(@RequestBody StockInOrder stockInOrder);
public AjaxResult pushInOrder(@RequestBody StockInOrderTZPD stockInOrder);
@ApiOperation("wms推送入库单明细")
@PostMapping(value = "/reservationStockInOrderApi/pushInOrderDetail")
public AjaxResult pushInOrderDetail(@RequestBody InMaterialDetail inMaterialDetail);
public AjaxResult pushInOrderDetail(@RequestBody InMaterialDetailTZPD inMaterialDetail);
@ApiOperation("wms推送入库单")
@PostMapping(value = "/reservationStockOutOrderApi/pushOutOrder")
public AjaxResult pushOutOrder(@RequestBody StockOutOrder stockOutOrder);
public AjaxResult pushOutOrder(@RequestBody StockOutOrderTZPD stockOutOrder);
@ApiOperation("wms推送入库单明细")
@PostMapping(value = "/reservationStockOutOrderApi/pushOutOrderDetail")
public AjaxResult pushOutOrderDetail(@RequestBody OutMaterialDetail outMaterialDetail);
public AjaxResult pushOutOrderDetail(@RequestBody OutMaterialDetailTZPD outMaterialDetail);
@ApiOperation("编辑物料库存")
@PostMapping("/materialInventoryApi/omsEdit")
@@ -0,0 +1,371 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 物料明细对象 material_detail
*
* @author gen
* @date 2024-05-21
*/
@Data
public class InMaterialDetailTZPD extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("订单物料明细id")
@TableId(type = IdType.AUTO)
private Long materialDetailId;
@ApiModelProperty("业务唯一id")
@JsonSerialize(using = ToStringSerializer.class)
private Long uniqueId;
@ApiModelProperty("组织表ID")
@Excel(name = "组织表ID")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("一级组织表ID")
@Excel(name = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty("入库单号")
@Excel(name = "入库单号")
private String inOrderNumber;
@ApiModelProperty("物料基础信息id")
@Excel(name = "物料基础信息id")
private Long materialBaseInfoId;
@ApiModelProperty("物料编码")
@Excel(name = "物料编码")
private String materialCode;
@ApiModelProperty("物料名称")
@Excel(name = "物料名称")
private String materialName;
@ApiModelProperty("物料条形码")
@Excel(name = "物料条形码")
private String barCode;
@ApiModelProperty("计划数量")
@Excel(name = "计划数量")
private BigDecimal quantity;
@ApiModelProperty("收货数量")
@Excel(name = "收货数量")
private BigDecimal receiptQuantity;
@ApiModelProperty("上架数量")
@Excel(name = "上架数量")
private BigDecimal shelvesQuantity;
@ApiModelProperty("作业数量(例如:收货数量 上架数量)")
@Excel(name = "作业数量(例如:收货数量 上架数量)")
private BigDecimal actualQuantity;
@ApiModelProperty("收货状态: 1-待收货 2-收货中 3-已收货 4-已收货(少收) 5-已收货(超收)")
@Excel(name = "收货状态: 1-待收货 2-收货中 3-已收货 4-已收货(少收) 5-已收货(超收)")
private Integer receiptStatus;
@ApiModelProperty("上架状态: 1-待上架 2-上架中 3-已上架 4-已上架(少上) 5-已上架(超上)")
@Excel(name = "上架状态: 1-待上架 2-上架中 3-已上架 4-已上架(少上) 5-已上架(超上)")
private Integer shelvesStatus;
@ApiModelProperty("包装规格id")
@Excel(name = "包装规格id")
private Long packId;
@ApiModelProperty("包装规格编码")
@Excel(name = "包装规格编码")
private String packCode;
@ApiModelProperty("包装规格名称")
@Excel(name = "包装规格名称")
private String packName;
@ApiModelProperty("包装详情id")
@Excel(name = "包装详情id")
private Long packDetailId;
@ApiModelProperty("单位代码:EA IP CS PL OT")
@Excel(name = "单位代码:EA IP CS PL OT")
private String unitCode;
@ApiModelProperty("单位名称")
@Excel(name = "单位名称")
private String unitName;
@ApiModelProperty("单位数量")
@Excel(name = "单位数量")
private BigDecimal unitNumber;
@ApiModelProperty("物料仓库控制信息id")
@Excel(name = "物料仓库控制信息id")
private Long materialWarehouseControlId;
@ApiModelProperty("是否序列号管理: 1-是 2-否")
@Excel(name = "是否序列号管理: 1-是 2-否")
private Integer serialNumberManage;
@ApiModelProperty("是否质检管理: 1-是 2-否")
@Excel(name = "是否质检管理: 1-是 2-否")
private Integer qualityInspectionManage;
@ApiModelProperty("质检阶段: 1-收货前 2-收货后上架前")
@Excel(name = "质检阶段: 1-收货前 2-收货后上架前")
private Integer qualityInspectionStage;
@ApiModelProperty("质检规则: 1-全检 2-抽检 ")
@Excel(name = "质检规则: 1-全检 2-抽检 ")
private Integer qualityInspectionRule;
@ApiModelProperty("抽检比例")
@Excel(name = "抽检比例")
private BigDecimal qualityInspectionRatio;
@ApiModelProperty("质检项: 1-包装 2-纯度")
@Excel(name = "质检项: 1-包装 2-纯度")
private Integer qualityInspectionTerm;
@ApiModelProperty("质检结果: 1-正常 2-异常")
@Excel(name = "质检结果: 1-正常 2-异常")
private Integer qualityInspectionResults;
@ApiModelProperty("是否允许超收: 1-是 2-否")
@Excel(name = "是否允许超收: 1-是 2-否")
private Integer allowOvercharge;
@ApiModelProperty("超收比例")
@Excel(name = "超收比例")
private BigDecimal overchargeRatio;
@ApiModelProperty("批次号")
@Excel(name = "批次号")
private String batchNumber;
@ApiModelProperty("物料状态编码")
@Excel(name = "物料状态编码")
private String materialStatusCode;
@ApiModelProperty("物料状态名称")
@Excel(name = "物料状态名称")
private String materialStatusName;
@ApiModelProperty("分配规则id")
@Excel(name = "分配规则id")
private Long distributeRuleId;
@ApiModelProperty("分配规则编码")
@Excel(name = "分配规则编码")
private String distributeRuleCode;
@ApiModelProperty("分配规则名称")
@Excel(name = "分配规则名称")
private String distributeRuleName;
@ApiModelProperty("容器id")
@Excel(name = "容器id")
private Long containerId;
@ApiModelProperty("容器编码")
@Excel(name = "容器编码")
private String containerCode;
@ApiModelProperty("容器类型 数据字典")
@Excel(name = "容器类型 数据字典")
private String containerType;
@ApiModelProperty("容器类型名称 数据字典")
@Excel(name = "容器类型名称 数据字典")
private String containerTypeName;
@ApiModelProperty("上架仓库id")
private Long warehouseId;
@ApiModelProperty("上架仓库编码")
@Excel(name = "上架仓库编码")
private String warehouseCode;
@ApiModelProperty("仓库名称")
@Excel(name = "仓库名称")
private String warehouseName;
@ApiModelProperty("上架库区id")
@Excel(name = "上架库区id")
private Long storageSectionId;
@ApiModelProperty("上架库区编码")
@Excel(name = "上架库区编码")
private String storageCode;
@ApiModelProperty("上架库区名称")
@Excel(name = "上架库区名称")
private String storageName;
@ApiModelProperty("上架库位id")
@Excel(name = "上架库位id")
private Long storageLocationId;
@ApiModelProperty("上架库位编码")
@Excel(name = "上架库位编码")
private String storageLocationCode;
@ApiModelProperty("上架库位名称")
@Excel(name = "上架库位名称")
private String storageLocationName;
@ApiModelProperty("层级深度,从一级开始递增")
private Integer level;
@ApiModelProperty("父级唯一Id")
private Long parentUniqueId;
@ApiModelProperty("备注")
@Excel(name = "备注")
private String remark;
@ApiModelProperty("越库单id")
private Long overStockId;
@ApiModelProperty("越库单状态 0:无状态 1:处理中 2:越库完成")
@Excel(name = "越库单状态 0:无状态 1:处理中 2:越库完成")
private Integer overStockStatus;
@ApiModelProperty("越库类型:1-直接越库 2-分拨越库")
@Excel(name = "越库类型:1-直接越库 2-分拨越库")
private Long overStockType;
// ========== 报关相关明细字段 ==========
@ApiModelProperty("规格型号")
@Excel(name = "规格型号/ITEM")
private String specificationModel;
@ApiModelProperty("SKU码")
@Excel(name = "SKU码")
private String skuCode;
@ApiModelProperty("Invoice No.")
@Excel(name = "Invoice No.")
private String invoiceNo;
@ApiModelProperty("")
@Excel(name = "")
private BigDecimal liter;
@ApiModelProperty("尺寸")
@Excel(name = "尺寸")
private String dimensions;
@ApiModelProperty("申报单位")
@Excel(name = "申报单位")
private String declarationUnit;
@ApiModelProperty("Batch Ref NO's")
@Excel(name = "Batch Ref NO's")
private String batchRefNo;
@ApiModelProperty("Sheet Ref NO's")
@Excel(name = "Sheet Ref NO's")
private String sheetRefNo;
@ApiModelProperty("原产国")
@Excel(name = "原产国")
private String originCountry;
@ApiModelProperty("箱号/卡板号")
@Excel(name = "箱号/卡板号")
private String boxPalletNo;
@ApiModelProperty("币制")
@Excel(name = "币制")
private String currency;
@ApiModelProperty("单位")
@Excel(name = "单位")
private String unit;
@ApiModelProperty("申报数量")
@Excel(name = "申报数量")
private BigDecimal declaredQuantity;
@ApiModelProperty("箱数")
@Excel(name = "箱数")
private BigDecimal boxCount;
@ApiModelProperty("件数")
@Excel(name = "件数")
private BigDecimal pieceCount;
@ApiModelProperty("入库数量(输入大于等于0的数字,可以为小数)")
@Excel(name = "入库数量")
private BigDecimal inboundQuantity;
@ApiModelProperty("总净重(KG)")
@Excel(name = "总净重(KG)")
private BigDecimal totalNetWeight;
@ApiModelProperty("总毛重(KG)")
@Excel(name = "总毛重(KG)")
private BigDecimal totalGrossWeight;
@ApiModelProperty("总体积(CBM)")
@Excel(name = "总体积(CBM)")
private BigDecimal totalVolume;
@ApiModelProperty("总面积(SQM)")
@Excel(name = "总面积(SQM)")
private BigDecimal totalArea;
@ApiModelProperty("总价")
@Excel(name = "总价")
private BigDecimal totalPrice;
@ApiModelProperty("合同收费")
@Excel(name = "合同收费")
private BigDecimal contractFee;
@ApiModelProperty("每月仓租")
@Excel(name = "每月仓租")
private BigDecimal monthlyWarehouseFee;
@ApiModelProperty("半月仓租")
@Excel(name = "半月仓租")
private BigDecimal halfMonthWhFee;
@ApiModelProperty("折扣(%)")
@Excel(name = "折扣(%)")
private BigDecimal discountRate;
@ApiModelProperty("单体积(CBM)")
@Excel(name = "单体积(CBM)")
private BigDecimal singleVolume;
@ApiModelProperty("单毛重(KG)")
@Excel(name = "单毛重(KG)")
private BigDecimal singleGrossWeight;
@ApiModelProperty("lot编号")
@Excel(name = "lot编号")
private String lotNo;
@ApiModelProperty("oms入库单详情id")
@Excel(name = "oms入库单详情id")
private String omsInMaterialDetail;
}
@@ -0,0 +1,496 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* 物料明细对象 material_detail
*
* @author gen
* @date 2024-05-21
*/
@Data
public class OutMaterialDetailTZPD extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("订单物料明细id")
@TableId(type = IdType.AUTO)
private Long materialDetailId;
@ApiModelProperty("业务唯一id")
@JsonSerialize(using = ToStringSerializer.class)
private Long uniqueId;
@ApiModelProperty("组织表ID")
@Excel(name = "组织表ID")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("一级组织表ID")
@Excel(name = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty("出库单号")
@Excel(name = "出库单号")
private String outOrderNumber;
@ApiModelProperty("物料基础信息id")
@Excel(name = "物料基础信息id")
private Long materialBaseInfoId;
@ApiModelProperty("物料编码")
@Excel(name = "物料编码")
private String materialCode;
@ApiModelProperty("物料名称")
@Excel(name = "物料名称")
private String materialName;
@ApiModelProperty("物料条形码")
@Excel(name = "物料条形码")
private String barCode;
@ApiModelProperty("计划数量")
@Excel(name = "计划数量")
private BigDecimal quantity;
@ApiModelProperty("已分配数量")
@Excel(name = "已分配数量")
private BigDecimal alreadyAllocationQuantity;
@ApiModelProperty("本次分配数量")
@Excel(name = "本次分配数量")
@TableField(exist = false)
private BigDecimal nowAllocationQuantity;
@ApiModelProperty("分配数量")
@Excel(name = "分配数量")
private BigDecimal allocationQuantity;
@ApiModelProperty("拣货数量")
@Excel(name = "拣货数量")
private BigDecimal pickingQuantity;
@ApiModelProperty("复核数量")
@Excel(name = "复核数量")
private BigDecimal checkQuantity;
@ApiModelProperty("净重 单位:千克")
@Excel(name = "净重 单位:千克")
private BigDecimal weightLimit;
@ApiModelProperty("体积 单位:立方米")
@Excel(name = "体积 单位:立方米")
private BigDecimal volumeLimit;
@ApiModelProperty("包装规格id")
@Excel(name = "包装规格id")
private Long packId;
@ApiModelProperty("包装规格编码")
@Excel(name = "包装规格编码")
private String packCode;
@ApiModelProperty("包装规格名称")
@Excel(name = "包装规格名称")
private String packName;
@ApiModelProperty("包装详情id")
@Excel(name = "包装详情id")
private Long packDetailId;
@ApiModelProperty("单位代码:EA IP CS PL OT")
@Excel(name = "单位代码:EA IP CS PL OT")
private String unitCode;
@ApiModelProperty("单位名称")
@Excel(name = "单位名称")
private String unitName;
@ApiModelProperty("单位数量")
@Excel(name = "单位数量")
private BigDecimal unitNumber;
@ApiModelProperty("物料仓库控制信息id")
@Excel(name = "物料仓库控制信息id")
private Long materialWarehouseControlId;
@ApiModelProperty("是否序列号管理: 1-是 2-否")
@Excel(name = "是否序列号管理: 1-是 2-否")
private Integer serialNumberManage;
@ApiModelProperty("物料库存id")
@Excel(name = "物料库存id")
private Long materialInventoryId;
@ApiModelProperty("批次号")
@Excel(name = "批次号")
private String batchNumber;
@ApiModelProperty("物料状态编码")
@Excel(name = "物料状态编码")
private String materialStatusCode;
@ApiModelProperty("物料状态名称")
@Excel(name = "物料状态名称")
private String materialStatusName;
@ApiModelProperty("容器id")
@Excel(name = "容器id")
private Long containerId;
@ApiModelProperty("容器编码")
@Excel(name = "容器编码")
private String containerCode;
@ApiModelProperty("容器类型 数据字典")
@Excel(name = "容器类型 数据字典")
private String containerType;
@ApiModelProperty("容器类型名称 数据字典")
@Excel(name = "容器类型名称 数据字典")
private String containerTypeName;
@ApiModelProperty("分配仓库id")
private Long warehouseId;
@ApiModelProperty("分配仓库编码")
@Excel(name = "分配仓库编码")
private String warehouseCode;
@ApiModelProperty("仓库名称")
@Excel(name = "仓库名称")
private String warehouseName;
@ApiModelProperty("分配库区id")
@Excel(name = "分配库区id")
private Long storageSectionId;
@ApiModelProperty("分配库区编码")
@Excel(name = "分配库区编码")
private String storageCode;
@ApiModelProperty("分配库区名称")
@Excel(name = "分配库区名称")
private String storageName;
@ApiModelProperty("分配库位id")
@Excel(name = "分配库位id")
private Long storageLocationId;
@ApiModelProperty("分配库位编码")
@Excel(name = "分配库位编码")
private String storageLocationCode;
@ApiModelProperty("分配库位名称")
@Excel(name = "分配库位名称")
private String storageLocationName;
@ApiModelProperty("层级深度,从一级开始递增")
private Integer level;
@ApiModelProperty("父级唯一Id")
private Long parentUniqueId;
@ApiModelProperty("是否允许修改: 1-是 2-否 分配后 不再支持修改")
@Excel(name = "是否允许修改: 1-是 2-否")
private Integer allowModify;
@ApiModelProperty("是否生成拣货单: 1-是 2-否")
@Excel(name = "是否生成拣货单: 1-是 2-否")
private Integer genPickingOrder;
@ApiModelProperty("备注")
@Excel(name = "备注")
private String remark;
@ApiModelProperty("越库单id")
private Long overStockId;
@ApiModelProperty("越库单状态 0:无状态 1:处理中 2:越库完成")
@Excel(name = "越库单状态 0:无状态 1:处理中 2:越库完成")
private Integer overStockStatus;
@ApiModelProperty("越库类型:1-直接越库 2-分拨越库")
@Excel(name = "越库类型:1-直接越库 2-分拨越库")
private Long overStockType;
/**
* 商品名称
*/
@ApiModelProperty("商品名称")
@Excel(name = "商品名称")
private String commodityName;
/**
* 商品编码
*/
@ApiModelProperty("商品编码")
@Excel(name = "商品编码")
private String commodityNo;
/**
* 料号
*/
@ApiModelProperty("料号")
@Excel(name = "料号")
private String materialNo;
/**
* 规格型号
*/
@ApiModelProperty("规格型号")
@Excel(name = "规格型号")
private String specificationModel;
/**
* 商品SKU码
*/
@ApiModelProperty("商品SKU码")
@Excel(name = "商品SKU码")
private String skucode;
/**
* Invoice No
*/
@ApiModelProperty("Invoice No")
@Excel(name = "Invoice No")
private String invoiceNo;
/**
* 升
*/
@ApiModelProperty("")
@Excel(name = "")
private String liter;
/**
* 尺寸
*/
@ApiModelProperty("尺寸")
@Excel(name = "尺寸")
private String size;
/**
* 申报单位
*/
@ApiModelProperty("申报单位")
@Excel(name = "申报单位")
private String declareUnit;
/**
* Batch Ref NOs
*/
@ApiModelProperty("Batch Ref NOs")
@Excel(name = "Batch Ref NOs")
private String batchRefNo;
/**
* Sheet Ref NOs
*/
@ApiModelProperty("Sheet Ref NOs")
@Excel(name = "Sheet Ref NOs")
private String sheetRefNo;
/**
* 原产国
*/
@ApiModelProperty("原产国")
@Excel(name = "原产国")
private String countryOfOrigin;
/**
* 箱号/卡板号
*/
@ApiModelProperty("箱号/卡板号")
@Excel(name = "箱号/卡板号")
private String boxPalletNo;
/**
* 币制
*/
@ApiModelProperty("币制")
@Excel(name = "币制")
private String currency;
/**
* 申报数量
*/
@ApiModelProperty("申报数量")
@Excel(name = "申报数量")
private BigDecimal declareQuantity;
/**
* 箱数
*/
@ApiModelProperty("箱数")
@Excel(name = "箱数")
private BigDecimal caseCount;
/**
* 件数
*/
@ApiModelProperty("件数")
@Excel(name = "件数")
private BigDecimal pieceCount;
/**
* 出库数量
*/
@ApiModelProperty("出库数量")
@Excel(name = "出库数量")
private BigDecimal outboundQuantity;
/**
* 总净重(KG)
*/
@ApiModelProperty("总净重(KG)")
@Excel(name = "总净重(KG)")
private BigDecimal totalNetWeight;
/**
* 总毛重(KG)
*/
@ApiModelProperty("总毛重(KG)")
@Excel(name = "总毛重(KG)")
private BigDecimal totalGrossWeight;
/**
* 总体积(CBM)
*/
@ApiModelProperty("总体积(CBM)")
@Excel(name = "总体积(CBM)")
private BigDecimal totalVolume;
/**
* 总面积(SQM)
*/
@ApiModelProperty("总面积(SQM)")
@Excel(name = "总面积(SQM)")
private BigDecimal totalArea;
/**
* 总价
*/
@ApiModelProperty("总价")
@Excel(name = "总价")
private BigDecimal totalAmount;
/**
* 单位
*/
@ApiModelProperty("单位")
@Excel(name = "单位")
private String unit;
@ApiModelProperty("扩展属性1")
@Excel(name = "扩展属性1")
@TableField("ext_attr_1")
private String extAttr1;
@ApiModelProperty("扩展属性2")
@Excel(name = "扩展属性2")
@TableField("ext_attr_2")
private String extAttr2;
@ApiModelProperty("生产日期")
@Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date productionDate;
@ApiModelProperty("过期日期")
@Excel(name = "过期日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date expiryDate;
@ApiModelProperty("存货日期")
@Excel(name = "存货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date inventoryDate;
@ApiModelProperty("扩展属性3")
@Excel(name = "扩展属性3", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
@TableField("ext_attr_3")
private Date extAttr3;
@ApiModelProperty("扩展属性4")
@Excel(name = "扩展属性4", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
@TableField("ext_attr_4")
private Date extAttr4;
/**
* 库存数量(仅用于前端展示,从material_inventory表中带出)
*/
@ApiModelProperty("分配时库存数量")
private BigDecimal inventoryQuantity;
@TableField(exist = false)
private BigDecimal actualQuantity;
@ApiModelProperty("复核总净重(KG)")
@Excel(name = "复核总净重(KG)")
private BigDecimal checkNetWeight;
@ApiModelProperty("复核总毛重(KG)")
@Excel(name = "复核总毛重(KG)")
private BigDecimal checkGrossWeight;
@ApiModelProperty("复核总体积(CBM)")
@Excel(name = "复核总体积(CBM)")
private BigDecimal checkVolume;
@ApiModelProperty("复核总面积(SQM)")
@Excel(name = "复核总面积(SQM)")
private BigDecimal checkArea;
@ApiModelProperty("是否已分配")
@Excel(name = "是否已分配")
private String isAllocated;
@ApiModelProperty("合同收费")
@Excel(name = "合同收费")
private BigDecimal contractFee;
@ApiModelProperty("每月仓租")
@Excel(name = "每月仓租")
private BigDecimal monthlyWarehouseFee;
@ApiModelProperty("半月仓租")
@Excel(name = "半月仓租")
private BigDecimal halfMonthWhFee;
@ApiModelProperty("折扣(%)")
@Excel(name = "折扣(%)")
private BigDecimal discountRate;
@ApiModelProperty("单体积(CBM)")
@Excel(name = "单体积(CBM)")
private BigDecimal singleVolume;
@ApiModelProperty("单毛重(KG)")
@Excel(name = "单毛重(KG)")
private BigDecimal singleGrossWeight;
@ApiModelProperty("lot编号")
@Excel(name = "lot编号")
private String lotNo;
@ApiModelProperty("入库单号")
@Excel(name = "入库单号")
private String inOrderNumber;
@ApiModelProperty("库存单位")
@Excel(name = "库存单位")
private String stockUnit;
@ApiModelProperty("库存数量")
@Excel(name = "库存数量")
private BigDecimal stockQuantity;
}
@@ -0,0 +1,365 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
/**
* 入库单对象 stock_in_order
*
* @author gen
* @date 2024-05-21
*/
@Data
public class StockInOrderTZPD extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("入库单id")
@TableId(type = IdType.AUTO)
private Long inOrderId;
@ApiModelProperty("组织表ID")
@Excel(name = "组织表ID")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("一级组织表ID")
@Excel(name = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty("仓库id")
@Excel(name = "仓库id")
private Long warehouseId;
@ApiModelProperty("仓库编码")
@Excel(name = "仓库编码")
private String warehouseCode;
@ApiModelProperty("仓库名称")
@Excel(name = "仓库名称")
private String warehouseName;
@ApiModelProperty("通知单号")
@Excel(name = "通知单号")
private String noticeNumber;
@ApiModelProperty("入库单号")
@Excel(name = "入库单号")
private String inOrderNumber;
@ApiModelProperty("入库状态: 1-已创建 2-已审核 3-收货中 4-上架中 5-已入库 6-已取消 7-已关闭")
@Excel(name = "入库状态: 1-已创建 2-已审核 3-收货中 4-上架中 5-已入库 6-已取消 7-已关闭")
private Integer status;
@ApiModelProperty("入库单审核状态: 1-未审核 2-审核不通过 3-审核通过")
@Excel(name = "入库单审核状态: 1-未审核 2-审核不通过 3-审核通过")
private Integer auditStatus;
@ApiModelProperty("入库单审核备注")
@Excel(name = "入库单审核备注")
private String auditRemark;
@ApiModelProperty("入库单审核人")
@Excel(name = "入库单审核人")
private Long auditBy;
@ApiModelProperty("入库单审核人姓名")
@Excel(name = "入库单审核人姓名")
private String auditByName;
@ApiModelProperty("入库单审核时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "入库单审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date auditTime;
@ApiModelProperty("货主id")
@Excel(name = "货主id")
private Long shipperId;
@ApiModelProperty("货主编码")
@Excel(name = "货主编码")
private String shipperCode;
@ApiModelProperty("货主名称")
@Excel(name = "货主名称")
private String shipperName;
@ApiModelProperty("入库单类型编码")
@Excel(name = "入库单类型编码")
private String orderTypeCode;
@ApiModelProperty("入库单类型名称")
@Excel(name = "入库单类型名称")
private String orderTypeName;
@ApiModelProperty("供应商id")
@Excel(name = "供应商id")
private Long supplierId;
@ApiModelProperty("供应商编码")
@Excel(name = "供应商编码")
private String supplierCode;
@ApiModelProperty("供应商名称")
@Excel(name = "供应商名称")
private String supplierName;
@ApiModelProperty("预计到货时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "预计到货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date expectTime;
@ApiModelProperty("供应链订单号")
@Excel(name = "供应链订单号")
private String supplyChainNumber;
@ApiModelProperty("优先级别编码")
@Excel(name = "优先级别编码")
private String priorityLevelCode;
@ApiModelProperty("优先级别名称")
@Excel(name = "优先级别名称")
private String priorityLevelName;
@ApiModelProperty("是否直接入库: 1-是 2-否")
@Excel(name = "是否直接入库: 1-是 2-否")
private Integer directWarehouse;
@ApiModelProperty("附件url")
@Excel(name = "附件url")
private String annexUrl;
@ApiModelProperty("物料种数")
@Excel(name = "物料种数")
private Integer materialQuantity;
@ApiModelProperty("计划数量")
@Excel(name = "计划数量")
private BigDecimal quantity;
@ApiModelProperty("净重 单位:千克")
@Excel(name = "净重 单位:千克")
private BigDecimal weightLimit;
@ApiModelProperty("体积 单位:立方米")
@Excel(name = "体积 单位:立方米")
private BigDecimal volumeLimit;
@ApiModelProperty("是否取消订单: 1-是 2-否")
@Excel(name = "是否取消订单: 1-是 2-否")
private Integer cancelOrder;
@ApiModelProperty("取消订单备注")
@Excel(name = "取消订单备注")
private String cancelRemark;
@ApiModelProperty("取消订单人")
@Excel(name = "取消订单人")
private Long cancelBy;
@ApiModelProperty("取消订单人姓名")
@Excel(name = "取消订单人姓名")
private String cancelByName;
@ApiModelProperty("取消订单时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "取消订单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date cancelTime;
@ApiModelProperty("是否关闭订单: 1-是 2-否")
@Excel(name = "是否关闭订单: 1-是 2-否")
private Integer closeOrder;
@ApiModelProperty("关闭订单备注")
@Excel(name = "关闭订单备注")
private String closeRemark;
@ApiModelProperty("关闭订单人")
@Excel(name = "关闭订单人")
private Long closeBy;
@ApiModelProperty("关闭订单人姓名")
@Excel(name = "关闭订单人姓名")
private String closeByName;
@ApiModelProperty("关闭订单时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "关闭订单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date closeTime;
@ApiModelProperty("入库单来源: 1-正常录入 2-通知单生成 3-无单收货")
@Excel(name = "入库单来源: 1-正常录入 2-通知单生成 3-无单收货")
private Integer orderSource;
@ApiModelProperty("备注")
@Excel(name = "备注")
private String remark;
@ApiModelProperty("调度单号")
private String mobilizeCode;
@ApiModelProperty("越库单id")
private Long overStockId;
@ApiModelProperty("越库单状态 0:无状态 1:处理中 2:越库完成")
@Excel(name = "越库单状态 0:无状态 1:处理中 2:越库完成")
private Integer overStockStatus;
@ApiModelProperty("越库类型:1-直接越库 2-分拨越库")
@Excel(name = "越库类型:1-直接越库 2-分拨越库")
private Long overStockType;
// ========== 报关相关字段 ==========
@ApiModelProperty("To")
@Excel(name = "To")
@TableField(value = "\"TO\"")
private String to;
@ApiModelProperty("联系人")
@Excel(name = "联系人")
private String contactPerson;
@ApiModelProperty("车型及车牌")
@Excel(name = "车型及车牌")
private String vehicleInfo;
@ApiModelProperty("委托编号NO")
@Excel(name = "委托编号NO")
private String consignmentNo;
@ApiModelProperty("Tel")
@Excel(name = "Tel")
private String tel;
@ApiModelProperty("司机签名")
@Excel(name = "司机签名")
private String driverSignature;
@ApiModelProperty("Fax")
@Excel(name = "Fax")
private String fax;
@ApiModelProperty("申报地关区")
@Excel(name = "申报地关区")
private String declarationArea;
@ApiModelProperty("生产商")
@Excel(name = "生产商")
private String manufacturer;
@ApiModelProperty("报关员姓名及联系方式")
@Excel(name = "报关员姓名及联系方式")
private String customsBrokerInfo;
@ApiModelProperty("送货地址")
@Excel(name = "送货地址")
private String deliveryAddress;
@ApiModelProperty("进出境关别")
@Excel(name = "进出境关别")
private String entryExitCustoms;
@ApiModelProperty("起运/运抵国(地区)")
@Excel(name = "起运/运抵国(地区)")
private String originDestinationCountry;
@ApiModelProperty("承运商")
@Excel(name = "承运商")
private String carrier;
@ApiModelProperty("柜号")
@Excel(name = "柜号")
private String containerNo;
@ApiModelProperty("运输方式")
@Excel(name = "运输方式")
private String transportMethod;
@ApiModelProperty("监管方式")
@Excel(name = "监管方式")
private String supervisionMethod;
@ApiModelProperty("海关是否查验货物")
@Excel(name = "海关是否查验货物")
private Integer customsInspection;
@ApiModelProperty("是否需要报关")
@Excel(name = "是否需要报关")
private Integer needCustomsDeclaration;
@ApiModelProperty("是否需要运输")
@Excel(name = "是否需要运输")
private Integer needTransport;
@ApiModelProperty("入仓日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "入仓日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date warehouseDate;
@ApiModelProperty("完成时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date completionTime;
@ApiModelProperty("下单日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "下单日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date orderDate;
@ApiModelProperty("业务单号")
@Excel(name = "业务单号")
private String businessOrderNo;
@ApiModelProperty("业务类型")
@Excel(name = "业务类型")
private String businessType;
@ApiModelProperty("制单人")
@Excel(name = "制单人")
private String documentCreator;
@ApiModelProperty("制单人名称")
@Excel(name = "制单人名称")
private String documentCreatorName;
@ApiModelProperty("制单日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "制单日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date documentDate;
@ApiModelProperty("订单状态")
@Excel(name = "订单状态")
private String orderStatus;
@ApiModelProperty("oms入库单id")
@Excel(name = "oms入库单id")
private String omsStockInOrderId;
@ApiModelProperty("结算币种")
private String settlementCurrency;
@ApiModelProperty("业务员ID")
private String salesmanId;
@ApiModelProperty("业务员名称")
private String salesmanName;
}
@@ -0,0 +1,405 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
/**
* 出库单对象 stock_out_order
*
* @author gen
* @date 2024-05-28
*/
@Data
public class StockOutOrderTZPD extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("出库单id")
@TableId(type = IdType.AUTO)
private Long outOrderId;
@ApiModelProperty("组织表ID")
@Excel(name = "组织表ID")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("一级组织表ID")
@Excel(name = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty("通知单号")
@Excel(name = "通知单号")
private String noticeNumber;
@ApiModelProperty("出库单号")
@Excel(name = "出库单号")
private String outOrderNumber;
@ApiModelProperty("出库状态: 1-已创建 2-已审核 3-部分分配 4-已分配 5-波次中 6-拣货中 7-拣货完成 8-复核中 9-已出库 10-已取消 11-已关闭 12-已复核")
@Excel(name = "出库状态: 1-已创建 2-已审核 3-部分分配 4-已分配 5-波次中 6-拣货中 7-拣货完成 8-复核中 9-已出库 10-已取消 11-已关闭 12-已复核")
private Integer status;
@ApiModelProperty("出库单审核状态: 1-未审核 2-审核不通过 3-审核通过")
@Excel(name = "出库单审核状态: 1-未审核 2-审核不通过 3-审核通过")
private Integer auditStatus;
@ApiModelProperty("出库单审核备注")
@Excel(name = "出库单审核备注")
private String auditRemark;
@ApiModelProperty("出库单审核人")
@Excel(name = "出库单审核人")
private Long auditBy;
@ApiModelProperty("出库单审核人姓名")
@Excel(name = "出库单审核人姓名")
private String auditByName;
@ApiModelProperty("出库单审核时间")
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "出库单审核时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date auditTime;
@ApiModelProperty("仓库id")
@Excel(name = "仓库id")
private Long warehouseId;
@ApiModelProperty("仓库编码")
@Excel(name = "仓库编码")
private String warehouseCode;
@ApiModelProperty("仓库名称")
@Excel(name = "仓库名称")
private String warehouseName;
@ApiModelProperty("货主id")
@Excel(name = "货主id")
private Long shipperId;
@ApiModelProperty("货主编码")
@Excel(name = "货主编码")
private String shipperCode;
@ApiModelProperty("货主名称")
@Excel(name = "货主名称")
private String shipperName;
@ApiModelProperty("出库单类型编码")
@Excel(name = "出库单类型编码")
private String orderTypeCode;
@ApiModelProperty("出库单类型名称")
@Excel(name = "出库单类型名称")
private String orderTypeName;
@ApiModelProperty("客户id")
@Excel(name = "客户id")
private Long customerId;
@ApiModelProperty("客户编码")
@Excel(name = "客户编码")
private String customerCode;
@ApiModelProperty("客户名称")
@Excel(name = "客户名称")
private String customerName;
@ApiModelProperty("预计出货时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "预计出货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date expectTime;
@ApiModelProperty("供应链订单号")
@Excel(name = "供应链订单号")
private String supplyChainNumber;
@ApiModelProperty("优先级别编码")
@Excel(name = "优先级别编码")
private String priorityLevelCode;
@ApiModelProperty("优先级别名称")
@Excel(name = "优先级别名称")
private String priorityLevelName;
@ApiModelProperty("是否直接出库: 1-是 2-否")
@Excel(name = "是否直接出库: 1-是 2-否")
private Integer directWarehouse;
@ApiModelProperty("是否复核: 1-是 2-否")
@Excel(name = "是否复核: 1-是 2-否")
private Integer review;
@ApiModelProperty("附件url")
@Excel(name = "附件url")
private String annexUrl;
@ApiModelProperty("物料种数")
@Excel(name = "物料种数")
private Integer materialQuantity;
@ApiModelProperty("计划数量")
@Excel(name = "计划数量")
private BigDecimal quantity;
@ApiModelProperty("净重 单位:千克")
@Excel(name = "净重 单位:千克")
private BigDecimal weightLimit;
@ApiModelProperty("体积 单位:立方米")
@Excel(name = "体积 单位:立方米")
private BigDecimal volumeLimit;
@ApiModelProperty("分配数量")
@Excel(name = "分配数量")
private BigDecimal allocationQuantity;
@ApiModelProperty("已生成拣货单数量")
@Excel(name = "已生成拣货单分配数量")
private BigDecimal alreadyAllocationQuantity;
@ApiModelProperty("拣货数量")
@Excel(name = "拣货数量")
private BigDecimal pickingQuantity;
@ApiModelProperty("复核数量")
@Excel(name = "复核数量")
private BigDecimal checkQuantity;
@ApiModelProperty("是否取消订单: 1-是 2-否")
@Excel(name = "是否取消订单: 1-是 2-否")
private Integer cancelOrder;
@ApiModelProperty("取消订单备注")
@Excel(name = "取消订单备注")
private String cancelRemark;
@ApiModelProperty("取消订单人")
@Excel(name = "取消订单人")
private Long cancelBy;
@ApiModelProperty("取消订单人姓名")
@Excel(name = "取消订单人姓名")
private String cancelByName;
@ApiModelProperty("取消订单时间")
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "取消订单时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date cancelTime;
@ApiModelProperty("是否关闭订单: 1-是 2-否")
@Excel(name = "是否关闭订单: 1-是 2-否")
private Integer closeOrder;
@ApiModelProperty("关闭订单备注")
@Excel(name = "关闭订单备注")
private String closeRemark;
@ApiModelProperty("关闭订单人")
@Excel(name = "关闭订单人")
private Long closeBy;
@ApiModelProperty("关闭订单人姓名")
@Excel(name = "关闭订单人姓名")
private String closeByName;
@ApiModelProperty("关闭订单时间")
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "关闭订单时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date closeTime;
@ApiModelProperty("复核状态: 1-未复核 2-复核中 3-已复核")
@Excel(name = "复核状态: 1-未复核 2-复核中 3-已复核")
private Integer checkStatus;
@ApiModelProperty("复核任务是否下发: 1-是 2-否")
@Excel(name = "复核任务是否下发: 1-是 2-否")
private Integer checkTaskDistribution;
@ApiModelProperty("复核任务下发时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "复核任务下发时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date checkTaskDistributionTime;
@ApiModelProperty("复核作业人用户ID")
@Excel(name = "复核作业人用户ID")
private Long checkOperatorsBy;
@ApiModelProperty("复核作业人姓名")
@Excel(name = "复核作业人姓名")
private String checkOperatorsName;
@ApiModelProperty("调度单号")
@Excel(name = "调度单号")
private String mobilizeCode;
@ApiModelProperty("备注")
@Excel(name = "备注")
private String remark;
@ApiModelProperty("越库单id")
private Long overStockId;
@ApiModelProperty("越库单状态 0:无状态 1:处理中 2:越库完成")
@Excel(name = "越库单状态 0:无状态 1:处理中 2:越库完成")
private Integer overStockStatus;
@ApiModelProperty("越库类型:1-直接越库 2-分拨越库")
@Excel(name = "越库类型:1-直接越库 2-分拨越库")
private Long overStockType;
@ApiModelProperty("to")
@Excel(name = "to")
@TableField(value = "\"TO\"")
private String to;
@ApiModelProperty("联系人")
@Excel(name = "联系人")
private String contactPerson;
@ApiModelProperty("车型及车牌")
@Excel(name = "车型及车牌")
private String vehicleModelPlate;
@ApiModelProperty("委托编号")
@Excel(name = "委托编号")
private String entrustNo;
@ApiModelProperty("Tel")
@Excel(name = "Tel")
private String tel;
@ApiModelProperty("司机签名")
@Excel(name = "司机签名")
private String driverSign;
@ApiModelProperty("Fax")
@Excel(name = "Fax")
private String fax;
@ApiModelProperty("申报地关区")
@Excel(name = "申报地关区")
private String declareCustoms;
@ApiModelProperty("生产商")
@Excel(name = "生产商")
private String manufacturer;
@ApiModelProperty("报关员姓名及联系方式")
@Excel(name = "报关员姓名及联系方式")
private String customsDeclarerInfo;
@ApiModelProperty("送货地址")
@Excel(name = "送货地址")
private String deliveryAddr;
@ApiModelProperty("进出境关别")
@Excel(name = "进出境关别")
private String entryExitCustoms;
@ApiModelProperty("起运/运抵国(地区)")
@Excel(name = "起运/运抵国(地区)")
private String departureArrivalCountry;
@ApiModelProperty("承运商")
@Excel(name = "承运商")
private String carrier;
@ApiModelProperty("承运商名称")
@Excel(name = "承运商名称")
private String carrierName;
@ApiModelProperty("柜号")
@Excel(name = "柜号")
private String containerNo;
@ApiModelProperty("")
@Excel(name = "")
private String containerNoName;
@ApiModelProperty("出仓日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "出仓日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date outboundDate;
@ApiModelProperty("完成时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date completeTime;
@ApiModelProperty("orderDate")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "orderDate", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date orderDate;
@ApiModelProperty("运输方式")
@Excel(name = "运输方式")
private String transportModeCode;
@ApiModelProperty("运输方式")
@Excel(name = "运输方式")
private String transportModeName;
@ApiModelProperty("监管方式")
@Excel(name = "监管方式")
private String supervisionModeCode;
@ApiModelProperty("监管方式")
@Excel(name = "监管方式")
private String supervisionModeName;
@ApiModelProperty("海关是否查验货物")
@Excel(name = "海关是否查验货物")
private String customsInspectionFlag;
@ApiModelProperty("是否需要报关")
@Excel(name = "是否需要报关")
private String needDeclareFlag;
@ApiModelProperty("是否需要运输")
@Excel(name = "是否需要运输")
private String needTransportFlag;
@ApiModelProperty("app上传的图片")
private String pictureApp;
@ApiModelProperty("业务单号")
@Excel(name = "业务单号")
private String businessOrderNo;
@ApiModelProperty("业务类型")
@Excel(name = "业务类型")
private String businessType;
@ApiModelProperty("制单人")
@Excel(name = "制单人")
private String documentCreator;
@ApiModelProperty("制单人名称")
@Excel(name = "制单人名称")
private String documentCreatorName;
@ApiModelProperty("制单日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "制单日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date documentDate;
@ApiModelProperty("结算币种")
private String settlementCurrency;
@ApiModelProperty("业务员ID")
private String salesmanId;
@ApiModelProperty("业务员名称")
private String salesmanName;
}
@@ -0,0 +1,58 @@
package com.mhd.system.api.factory;
import com.mhd.common.core.domain.dto.BusinessDataPushDTO;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.system.api.BmsServiceFeign;
import com.mhd.system.api.OmsServiceFeign;
import com.mhd.system.api.domain.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import java.util.Set;
/**
* @Description
* @Author zg
* @Version 1.0
* @Date 2023/11/3 14:37
*/
@Component
public class RemoteOmsFeignFallbackFactory implements FallbackFactory<OmsServiceFeign> {
private static final Logger log = LoggerFactory.getLogger(RemoteOmsFeignFallbackFactory.class);
@Override
public OmsServiceFeign create(Throwable throwable) {
log.error("系统服务调用失败:{}", throwable.getMessage());
return new OmsServiceFeign() {
@Override
public AjaxResult pushInOrder(StockInOrderTZPD stockInOrder) {
return null;
}
@Override
public AjaxResult pushInOrderDetail(InMaterialDetailTZPD inMaterialDetail) {
return null;
}
@Override
public AjaxResult pushOutOrder(StockOutOrderTZPD stockOutOrder) {
return null;
}
@Override
public AjaxResult pushOutOrderDetail(OutMaterialDetailTZPD outMaterialDetail) {
return null;
}
@Override
public AjaxResult omsEdit(MaterialInventoryOmsParamDO materialInventoryOmsParamDO) {
return null;
}
};
}
}
@@ -42,6 +42,8 @@ import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.*;
import java.util.stream.Collectors;
@@ -161,13 +163,23 @@ public class LeaseApplicationService {
setWarehouseInfo(leaseDO);
Lease insert = leaseDomainService.insertReturn(leaseDO);
if (insert != null) {
// 指定时区获取当前日期(中国时区)
LocalDate now = LocalDate.now(ZoneId.of("Asia/Shanghai"));
int year = now.getYear();
int month = now.getMonthValue();
int day = now.getDayOfMonth();
System.out.println("年:" + year);
System.out.println("月:" + month);
System.out.println("日:" + day);
ScheduledTask scheduledTask = new ScheduledTask();
scheduledTask.setTaskType("shipperLeaseDetails");
scheduledTask.setTaskStatus("PENDING");
scheduledTask.setBusId(insert.getId());
scheduledTask.setTaskData(JSON.toJSONString(scheduledTask));
scheduledTask.setCreateTime(new Date());
scheduledTask.setBillDays(insert.getBillDays());
scheduledTask.setBillDays(insert.getBillDays() == null ? day : insert.getBillDays());
scheduledTask.setBillTime(insert.getBillTime());
scheduledTask.setRetryCount(0);
scheduledTask.setExecuteTime(DateUtil.beginOfDay(DateUtil.tomorrow()));
@@ -16,8 +16,8 @@ import com.mhd.oms.domain.reservationStockInOrder.repository.todo.ReservationSto
import com.mhd.oms.domain.reservationStockInOrder.repository.todo.ReservationStockInOrderDTO;
import com.mhd.system.api.SystemServiceFeign;
import com.mhd.system.api.UserServiceFeign;
import com.mhd.system.api.domain.InMaterialDetail;
import com.mhd.system.api.domain.StockInOrder;
import com.mhd.system.api.domain.InMaterialDetailTZPD;
import com.mhd.system.api.domain.StockInOrderTZPD;
import com.mhd.system.api.domain.SysDictData;
import com.mhd.system.api.domain.WarehouseFeignPO;
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
@@ -305,11 +305,11 @@ public class ReservationStockInOrderApplicationService {
return stockInOrderDomainService.closeOrder(stockInOrderDO);
}
public Boolean pushInOrder(StockInOrder stockInOrderDO){
public Boolean pushInOrder(StockInOrderTZPD stockInOrderDO){
return stockInOrderDomainService.pushInOrder(stockInOrderDO);
}
public Boolean pushInOrderDetail(InMaterialDetail inMaterialDetail){
public Boolean pushInOrderDetail(InMaterialDetailTZPD inMaterialDetail){
return stockInOrderDomainService.pushInOrderDetail(inMaterialDetail);
}
@@ -31,9 +31,7 @@ import com.mhd.oms.domain.reservationStockOutOrder.entity.ReservationStockOutOrd
import com.mhd.oms.domain.reservationStockOutOrder.repository.facade.IReservationStockOutOrderService;
import com.mhd.system.api.SystemServiceFeign;
import com.mhd.system.api.WmsServiceFeign;
import com.mhd.system.api.domain.InMaterialDetail;
import com.mhd.system.api.domain.PackDetailFeignPO;
import com.mhd.system.api.domain.StockInOrder;
import com.mhd.system.api.domain.*;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
@@ -542,14 +540,14 @@ public class ReservationStockInOrderDomainService {
.in(ReservationStockInOrder::getInOrderId, stockInOrderDO.getInOrderIds()));
}
public Boolean pushInOrder(StockInOrder stockInOrder) {
public Boolean pushInOrder(StockInOrderTZPD stockInOrder) {
ReservationStockInOrder reservationStockInOrder = new ReservationStockInOrder();
BeanUtils.copyProperties(stockInOrder, reservationStockInOrder);
reservationStockInOrder.setIssueStatus(4);
return stockInOrderService.save(reservationStockInOrder);
}
public Boolean pushInOrderDetail(InMaterialDetail inMaterialDetail) {
public Boolean pushInOrderDetail(InMaterialDetailTZPD inMaterialDetail) {
ReservationInMaterialDetail reservationInMaterialDetail = new ReservationInMaterialDetail();
BeanUtils.copyProperties(inMaterialDetail, reservationInMaterialDetail);
return materialDetailService.save(reservationInMaterialDetail);
@@ -234,11 +234,11 @@ public class ReservationStockOutOrderApplicationService {
}
public Boolean pushOutOrder(StockOutOrder stockOutOrderDO){
public Boolean pushOutOrder(StockOutOrderTZPD stockOutOrderDO){
return stockOutOrderDomainService.pushOutOrder(stockOutOrderDO);
}
public Boolean pushOutOrderDetail(OutMaterialDetail outMaterialDetail){
public Boolean pushOutOrderDetail(OutMaterialDetailTZPD outMaterialDetail){
return stockOutOrderDomainService.pushOutOrderDetail(outMaterialDetail);
}
@@ -229,14 +229,14 @@ public class ReservationStockOutOrderDomainService {
}
public Boolean pushOutOrder(StockOutOrder stockOutOrder) {
public Boolean pushOutOrder(StockOutOrderTZPD stockOutOrder) {
ReservationStockOutOrder reservationStockOutOrder = new ReservationStockOutOrder();
BeanUtils.copyProperties(stockOutOrder, reservationStockOutOrder);
reservationStockOutOrder.setIssueStatus(4);
return stockOutOrderService.save(reservationStockOutOrder);
}
public Boolean pushOutOrderDetail(OutMaterialDetail outMaterialDetail) {
public Boolean pushOutOrderDetail(OutMaterialDetailTZPD outMaterialDetail) {
ReservationOutMaterialDetail reservationOutMaterialDetail = new ReservationOutMaterialDetail();
BeanUtils.copyProperties(outMaterialDetail, reservationOutMaterialDetail);
return outMaterialDetailService.save(reservationOutMaterialDetail);
@@ -14,12 +14,10 @@ import com.mhd.oms.domain.reservationStockOutOrder.repository.todo.ReservationSt
import com.mhd.oms.domain.reservationStockOutOrder.repository.todo.ReservationStockOutOrderDTO;
import com.mhd.oms.domain.reservationStockOutOrder.service.ReservationStockOutOrderApplicationService;
import com.mhd.oms.domain.reservationStockOutOrder.service.ReservationStockOutOrderAssembler;
import com.mhd.system.api.domain.InMaterialDetail;
import com.mhd.system.api.domain.OutMaterialDetail;
import com.mhd.system.api.domain.StockInOrder;
import com.mhd.system.api.domain.StockOutOrder;
import com.mhd.system.api.domain.*;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -186,13 +184,13 @@ public class ReservationStockOutOrderApi extends BaseController {
@ApiOperation("wms推送入库单")
@PostMapping(value = "/pushOutOrder")
public AjaxResult pushOutOrder(@RequestBody StockOutOrder stockOutOrder) {
public AjaxResult pushOutOrder(@RequestBody StockOutOrderTZPD stockOutOrder) {
return AjaxResult.success(stockOutOrderApplicationService.pushOutOrder(stockOutOrder));
}
@ApiOperation("wms推送入库单明细")
@PostMapping(value = "/pushOutOrderDetail")
public AjaxResult pushOutOrderDetail(@RequestBody OutMaterialDetail outMaterialDetail) {
public AjaxResult pushOutOrderDetail(@RequestBody OutMaterialDetailTZPD outMaterialDetail) {
return AjaxResult.success(stockOutOrderApplicationService.pushOutOrderDetail(outMaterialDetail));
}
@@ -10,7 +10,9 @@ import com.mhd.oms.domain.reservationStockInOrder.repository.todo.ReservationSto
import com.mhd.oms.domain.reservationStockInOrder.service.ReservationStockInOrderApplicationService;
import com.mhd.oms.domain.reservationStockInOrder.service.ReservationStockInOrderAssembler;
import com.mhd.system.api.domain.InMaterialDetail;
import com.mhd.system.api.domain.InMaterialDetailTZPD;
import com.mhd.system.api.domain.StockInOrder;
import com.mhd.system.api.domain.StockInOrderTZPD;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -155,13 +157,13 @@ public class ReservationStockInOrderApi extends BaseController {
@ApiOperation("wms推送入库单")
@PostMapping(value = "/pushInOrder")
public AjaxResult pushInOrder(@RequestBody StockInOrder stockInOrder) {
public AjaxResult pushInOrder(@RequestBody StockInOrderTZPD stockInOrder) {
return AjaxResult.success(stockInOrderApplicationService.pushInOrder(stockInOrder));
}
@ApiOperation("wms推送入库单明细")
@PostMapping(value = "/pushInOrderDetail")
public AjaxResult pushInOrderDetail(@RequestBody InMaterialDetail inMaterialDetail) {
public AjaxResult pushInOrderDetail(@RequestBody InMaterialDetailTZPD inMaterialDetail) {
return AjaxResult.success(stockInOrderApplicationService.pushInOrderDetail(inMaterialDetail));
}
@@ -94,6 +94,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="directorName" column="DIRECTOR_NAME" />
<result property="reservationOrderSource" column="RESERVATION_ORDER_SOURCE" />
<result property="outboundTime" column="OUTBOUND_TIME" />
<result property="businessOrderNo" column="BUSINESS_ORDER_NO" />
</resultMap>
@@ -111,7 +112,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
a.COMPLETE_TIME,a.ORDER_DATE,a.TRANSPORT_MODE_CODE,a.TRANSPORT_MODE_NAME,a.SUPERVISION_MODE_CODE,a.SUPERVISION_MODE_NAME,
a.CUSTOMS_INSPECTION_FLAG,a.NEED_DECLARE_FLAG,a.NEED_TRANSPORT_FLAG,a.picture_app,a.reservation_audit_time,a.reservation_audit_name
,a.reservation_audit_id,a.issue_name,a.issue_id,a.issue_time,a.issue_status,a.tms_order_number,
a.DIRECTOR_NAME ,a.DIRECTOR_PHONE,a.DIRECTOR_ID,a.RESERVATION_ORDER_SOURCE,a.OUTBOUND_TIME
a.DIRECTOR_NAME ,a.DIRECTOR_PHONE,a.DIRECTOR_ID,a.RESERVATION_ORDER_SOURCE,a.OUTBOUND_TIME,a.BUSINESS_ORDER_NO
</sql>
@@ -2084,11 +2084,14 @@ public class StockReceiptOrderApplicationService {
continue;
}
ReceiptMaterialDetailDO firstChild = children.get(0);
// 主行已携带本次收货/抄码数据时不再被 children[0] 覆盖避免 copyDetails/copyQuantity 被清空
// 主行已携带本次收货/抄码数据时不再被 children[0] 整行覆盖避免 copyDetails/copyQuantity 被清空
if (!hasPdaSubmittedReceiptOrCopyData(parent)) {
// 将第一条子项的值赋给主项含批次属性收货数量等
BeanUtils.copyProperties(firstChild, parent, "children", "parentUniqueId", "uniqueId", "materialDetailId",
"organizationIdList", "permissionMenuId", "receiptOrderNumberList", "compoundOrQuery");
} else {
// PDA 常把件数挂在主行把毛净重体面积/批次仅挂在 parent_copy 子行若此处不合并assign 后删掉子行会导致装配增量全为 0
mergePdaParentCopyScalarFieldsFromFirstChild(parent, firstChild);
}
// 删除 children 中的第一条
List<ReceiptMaterialDetailDO> newChildren = new ArrayList<>();
@@ -2099,6 +2102,75 @@ public class StockReceiptOrderApplicationService {
}
}
/**
* getInfoByApp parent_copy 挂在 children[0]PDA 常在子行填毛净重体面积/批次主行只带回件数
* 若主行已有 receiptQuantity 会跳过整段 {@link BeanUtils#copyProperties}须把子行实绩字段补到主行否则删掉子行后装配增量为 0
*/
private static void mergePdaParentCopyScalarFieldsFromFirstChild(ReceiptMaterialDetailDO parent, ReceiptMaterialDetailDO child) {
if (parent == null || child == null) {
return;
}
if (parent.getReceiptNetWeight() == null) {
parent.setReceiptNetWeight(child.getReceiptNetWeight());
}
if (parent.getReceiptGrossWeight() == null) {
parent.setReceiptGrossWeight(child.getReceiptGrossWeight());
}
if (parent.getReceiptVolume() == null) {
parent.setReceiptVolume(child.getReceiptVolume());
}
if (parent.getReceiptArea() == null) {
parent.setReceiptArea(child.getReceiptArea());
}
if (parent.getTotalNetWeight() == null) {
parent.setTotalNetWeight(child.getTotalNetWeight());
}
if (parent.getTotalGrossWeight() == null) {
parent.setTotalGrossWeight(child.getTotalGrossWeight());
}
if (parent.getTotalVolume() == null) {
parent.setTotalVolume(child.getTotalVolume());
}
if (parent.getTotalArea() == null) {
parent.setTotalArea(child.getTotalArea());
}
if (StringUtils.isBlank(parent.getLotNo()) && StringUtils.isNotBlank(child.getLotNo())) {
parent.setLotNo(child.getLotNo());
}
if (StringUtils.isBlank(parent.getBatchNumber()) && StringUtils.isNotBlank(child.getBatchNumber())) {
parent.setBatchNumber(child.getBatchNumber());
}
if (StringUtils.isBlank(parent.getDimensions()) && StringUtils.isNotBlank(child.getDimensions())) {
parent.setDimensions(child.getDimensions());
}
mergeMaterialMoreDetailAttributeValuesFromChild(parent, child);
}
/** 主行与子行 batchDetailId 相同的批次属性:子行有 attributeValue 时补到主行(主行为空时) */
private static void mergeMaterialMoreDetailAttributeValuesFromChild(ReceiptMaterialDetailDO parent, ReceiptMaterialDetailDO child) {
List<MaterialMoreDetailDO> childList = child.getMaterialMoreDetailList();
if (CollectionUtils.isEmpty(childList)) {
return;
}
List<MaterialMoreDetailDO> parentList = parent.getMaterialMoreDetailList();
if (CollectionUtils.isEmpty(parentList)) {
parent.setMaterialMoreDetailList(new ArrayList<>(childList));
return;
}
for (MaterialMoreDetailDO c : childList) {
if (c == null || c.getBatchDetailId() == null || StringUtils.isBlank(c.getAttributeValue())) {
continue;
}
for (MaterialMoreDetailDO p : parentList) {
if (p != null && c.getBatchDetailId().equals(p.getBatchDetailId())
&& StringUtils.isBlank(p.getAttributeValue())) {
p.setAttributeValue(c.getAttributeValue());
break;
}
}
}
}
private static boolean hasPdaSubmittedReceiptOrCopyData(ReceiptMaterialDetailDO line) {
if (line == null) {
return false;
@@ -1301,6 +1301,8 @@ public class StockShelfOrderApplicationService {
shelfMaterialDetailDO.setStorageSectionId(firstChild.getStorageSectionId());
shelfMaterialDetailDO.setStorageLocationId(firstChild.getStorageLocationId());
shelfMaterialDetailDO.setContainerId(firstChild.getContainerId());
// PDA 常把毛净重体面积挂在 parent_copy 子行主行 total* 0本分支若不合并assemble 增量全为 0
mergePdaShelfParentCopyMetricsFromFirstChild(shelfMaterialDetailDO, firstChild);
// 不把子行 level 复制到主项assembleParamByShelf 会以库表主行 level 为准
shelfMaterialDetailDO.setMaterialDetailSerialNumberList(firstChild.getMaterialDetailSerialNumberList());
// 保留其余子项从索引1开始统一设为 level 2
@@ -1420,6 +1422,8 @@ public class StockShelfOrderApplicationService {
continue;
}
BeanUtils.copyProperties(firstChild, parent, "children", "parentUniqueId", "uniqueId", "materialDetailId");
// 与收货 merge 一致主行若仍为 0/空而子行有实绩 total* / 尺寸 / 批次避免 copy 未生效或主行显式 0 盖住子行
mergePdaShelfParentCopyMetricsFromFirstChild(parent, firstChild);
List<ShelfMaterialDetailDO> newChildren = new ArrayList<>();
for (int i = 1; i < children.size(); i++) {
ShelfMaterialDetailDO c = children.get(i);
@@ -1430,6 +1434,41 @@ public class StockShelfOrderApplicationService {
}
}
/**
* getInfoByApp parent_copy 挂在 children[0]PDA 常在子行填毛净重体面积主行 total* 0 或仅占位
* assign/分支合并库位与数量后若主行仍为 0/空则必须用子行补全否则去掉子行或走 inject 后装配增量为 0回显也为空
*/
private static void mergePdaShelfParentCopyMetricsFromFirstChild(ShelfMaterialDetailDO parent, ShelfMaterialDetailDO child) {
if (parent == null || child == null) {
return;
}
if (isZeroOrNullBigDecimal(parent.getTotalNetWeight()) && !isZeroOrNullBigDecimal(child.getTotalNetWeight())) {
parent.setTotalNetWeight(child.getTotalNetWeight());
}
if (isZeroOrNullBigDecimal(parent.getTotalGrossWeight()) && !isZeroOrNullBigDecimal(child.getTotalGrossWeight())) {
parent.setTotalGrossWeight(child.getTotalGrossWeight());
}
if (isZeroOrNullBigDecimal(parent.getTotalVolume()) && !isZeroOrNullBigDecimal(child.getTotalVolume())) {
parent.setTotalVolume(child.getTotalVolume());
}
if (isZeroOrNullBigDecimal(parent.getTotalArea()) && !isZeroOrNullBigDecimal(child.getTotalArea())) {
parent.setTotalArea(child.getTotalArea());
}
if (StringUtils.isBlank(parent.getDimensions()) && StringUtils.isNotBlank(child.getDimensions())) {
parent.setDimensions(child.getDimensions());
}
if (StringUtils.isBlank(parent.getBatchNumber()) && StringUtils.isNotBlank(child.getBatchNumber())) {
parent.setBatchNumber(child.getBatchNumber());
}
if (StringUtils.isBlank(parent.getLotNumber()) && StringUtils.isNotBlank(child.getLotNumber())) {
parent.setLotNumber(child.getLotNumber());
}
}
private static boolean isZeroOrNullBigDecimal(BigDecimal v) {
return v == null || v.compareTo(BigDecimal.ZERO) == 0;
}
/**
* 判断第一条子项是否为 parent_copy主项拷贝与主项同 materialDetailId/uniqueId 则为 parent_copy
*/
@@ -11,9 +11,7 @@ import com.mhd.common.core.utils.uuid.IdGenerator;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.OmsServiceFeign;
import com.mhd.system.api.SystemServiceFeign;
import com.mhd.system.api.domain.InMaterialDetail;
import com.mhd.system.api.domain.OutMaterialDetail;
import com.mhd.system.api.domain.StockOutOrder;
import com.mhd.system.api.domain.*;
import com.mhd.system.api.model.LoginUser;
import com.mhd.wms.domain.differentManage.entity.DifferentManage;
import com.mhd.wms.domain.differentManage.repository.facade.IDifferentManageService;
@@ -243,7 +241,7 @@ public class DifferentManageImpl extends ServiceImpl<DifferentManageMapper, Diff
Integer investigationResult = investigetionManageDetail.getInvestigationResult();
if (investigationResult != null&&investigationResult == 1) {
//入库
com.mhd.system.api.domain.StockInOrder stockInOrder = new com.mhd.system.api.domain.StockInOrder();
com.mhd.system.api.domain.StockInOrderTZPD stockInOrder = new com.mhd.system.api.domain.StockInOrderTZPD();
stockInOrder.setOrganizationId(loginUser.getUserPo().getOrganizationId());
stockInOrder.setOrganizationName(loginUser.getUserPo().getOrganizationName());
stockInOrder.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
@@ -275,7 +273,7 @@ public class DifferentManageImpl extends ServiceImpl<DifferentManageMapper, Diff
InMaterialDetail inMaterialDetail = new InMaterialDetail();
InMaterialDetailTZPD inMaterialDetail = new InMaterialDetailTZPD();
//组织信息
inMaterialDetail.setOrganizationId(loginUser.getUserPo().getOrganizationId());
inMaterialDetail.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
@@ -311,7 +309,7 @@ public class DifferentManageImpl extends ServiceImpl<DifferentManageMapper, Diff
omsServiceFeign.pushInOrderDetail(inMaterialDetail);
} else if (investigationResult != null && investigationResult == 2) {
//出库
StockOutOrder stockOutOrder = new StockOutOrder();
StockOutOrderTZPD stockOutOrder = new StockOutOrderTZPD();
stockOutOrder.setOrganizationId(loginUser.getUserPo().getOrganizationId());
stockOutOrder.setOrganizationName(loginUser.getUserPo().getOrganizationName());
stockOutOrder.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
@@ -343,7 +341,7 @@ public class DifferentManageImpl extends ServiceImpl<DifferentManageMapper, Diff
OutMaterialDetail outMaterialDetail = new OutMaterialDetail();
OutMaterialDetailTZPD outMaterialDetail = new OutMaterialDetailTZPD();
//组织信息
outMaterialDetail.setOrganizationId(loginUser.getUserPo().getOrganizationId());
outMaterialDetail.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
@@ -10,10 +10,7 @@ import com.mhd.common.core.utils.uuid.IdGenerator;
import com.mhd.common.core.web.domain.BaseVOEntity;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.OmsServiceFeign;
import com.mhd.system.api.domain.InMaterialDetail;
import com.mhd.system.api.domain.MaterialInventoryOmsParamDO;
import com.mhd.system.api.domain.OutMaterialDetail;
import com.mhd.system.api.domain.StockOutOrder;
import com.mhd.system.api.domain.*;
import com.mhd.system.api.model.LoginUser;
import com.mhd.wms.domain.inventoryAdjustmentRecord.repository.facade.IInventoryAdjustmentRecordService;
import com.mhd.wms.domain.inventoryAdjustmentRecord.repository.po.InventoryAdjustmentRecordPO;
@@ -268,7 +265,7 @@ public class InventoryAdjustmentRecordDomainService {
MaterialBaseInfo materialBaseInfo = materialBaseInfoService.getById(materialInventory.getMaterialBaseInfoId());
Long adjustDirection = inventoryAdjustmentRecordDO.getAdjustDirection();
if (adjustDirection == 1) {
com.mhd.system.api.domain.StockInOrder stockInOrder = new com.mhd.system.api.domain.StockInOrder();
com.mhd.system.api.domain.StockInOrderTZPD stockInOrder = new com.mhd.system.api.domain.StockInOrderTZPD();
stockInOrder.setOrganizationId(loginUser.getUserPo().getOrganizationId());
stockInOrder.setOrganizationName(loginUser.getUserPo().getOrganizationName());
stockInOrder.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
@@ -298,7 +295,7 @@ public class InventoryAdjustmentRecordDomainService {
InMaterialDetail inMaterialDetail = new InMaterialDetail();
InMaterialDetailTZPD inMaterialDetail = new InMaterialDetailTZPD();
//组织信息
inMaterialDetail.setOrganizationId(loginUser.getUserPo().getOrganizationId());
inMaterialDetail.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
@@ -333,7 +330,7 @@ public class InventoryAdjustmentRecordDomainService {
omsServiceFeign.pushInOrder(stockInOrder);
omsServiceFeign.pushInOrderDetail(inMaterialDetail);
} else {
StockOutOrder stockOutOrder = new StockOutOrder();
StockOutOrderTZPD stockOutOrder = new StockOutOrderTZPD();
stockOutOrder.setOrganizationId(loginUser.getUserPo().getOrganizationId());
stockOutOrder.setOrganizationName(loginUser.getUserPo().getOrganizationName());
stockOutOrder.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
@@ -362,7 +359,7 @@ public class InventoryAdjustmentRecordDomainService {
OutMaterialDetail outMaterialDetail = new OutMaterialDetail();
OutMaterialDetailTZPD outMaterialDetail = new OutMaterialDetailTZPD();
//组织信息
outMaterialDetail.setOrganizationId(loginUser.getUserPo().getOrganizationId());
outMaterialDetail.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
@@ -19,10 +19,7 @@ import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.OmsServiceFeign;
import com.mhd.system.api.SystemServiceFeign;
import com.mhd.system.api.UserServiceFeign;
import com.mhd.system.api.domain.InMaterialDetail;
import com.mhd.system.api.domain.OutMaterialDetail;
import com.mhd.system.api.domain.StockOutOrder;
import com.mhd.system.api.domain.WarehouseFeignPO;
import com.mhd.system.api.domain.*;
import com.mhd.system.api.model.LoginUser;
import com.mhd.wms.domain.deliveTask.repository.facade.IDeliveTaskTypeService;
import com.mhd.wms.domain.deliveTask.repository.todo.DeliveTaskDO;
@@ -432,7 +429,7 @@ public class InvestigationManageImpl extends ServiceImpl<InvestigationManageMapp
Integer investigationResult = investigetionManageDetail.getInvestigationResult();
if (investigationResult != null&&investigationResult == 1) {
//入库
com.mhd.system.api.domain.StockInOrder stockInOrder = new com.mhd.system.api.domain.StockInOrder();
com.mhd.system.api.domain.StockInOrderTZPD stockInOrder = new com.mhd.system.api.domain.StockInOrderTZPD();
stockInOrder.setOrganizationId(loginUser.getUserPo().getOrganizationId());
stockInOrder.setOrganizationName(loginUser.getUserPo().getOrganizationName());
stockInOrder.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
@@ -459,7 +456,7 @@ public class InvestigationManageImpl extends ServiceImpl<InvestigationManageMapp
InMaterialDetail inMaterialDetail = new InMaterialDetail();
InMaterialDetailTZPD inMaterialDetail = new InMaterialDetailTZPD();
//组织信息
inMaterialDetail.setOrganizationId(loginUser.getUserPo().getOrganizationId());
inMaterialDetail.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
@@ -494,7 +491,7 @@ public class InvestigationManageImpl extends ServiceImpl<InvestigationManageMapp
omsServiceFeign.pushInOrderDetail(inMaterialDetail);
} else if (investigationResult != null && investigationResult == 2) {
//出库
StockOutOrder stockOutOrder = new StockOutOrder();
StockOutOrderTZPD stockOutOrder = new StockOutOrderTZPD();
stockOutOrder.setOrganizationId(loginUser.getUserPo().getOrganizationId());
stockOutOrder.setOrganizationName(loginUser.getUserPo().getOrganizationName());
stockOutOrder.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
@@ -521,7 +518,7 @@ public class InvestigationManageImpl extends ServiceImpl<InvestigationManageMapp
OutMaterialDetail outMaterialDetail = new OutMaterialDetail();
OutMaterialDetailTZPD outMaterialDetail = new OutMaterialDetailTZPD();
//组织信息
outMaterialDetail.setOrganizationId(loginUser.getUserPo().getOrganizationId());
outMaterialDetail.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
@@ -217,6 +217,7 @@ public class ReviewOrderDomainService {
d.setPackCode(line.getPackCode());
d.setPackName(line.getPackName());
d.setPackDetailId(String.valueOf(line.getPackDetailId()));
d.setReceiptOrderNumber(line.getInOrderNumber());
BigDecimal pending = line.getPickingQuantity() != null ? line.getPickingQuantity() : line.getQuantity();
if (pending == null) {
@@ -899,6 +899,9 @@ public class ShiftManageDomainService {
materialInventoryDONow.setCreateBy(loginUser.getUserid());
materialInventoryDONow.setCreateByName(loginUser.getUsername());
materialInventoryDONow.setCreateTime(new Date());
materialInventoryDONow.setUpdateBy(loginUser.getUserid());
materialInventoryDONow.setUpdateByName(loginUser.getUsername());
materialInventoryDONow.setUpdateTime(new Date());
return materialInventoryDONow;
}else {
MaterialInventoryDO materialInventoryDONow = new MaterialInventoryDO();
@@ -772,7 +772,6 @@ public class ShiftMaterialDetailImpl extends ServiceImpl<ShiftMaterialDetailMapp
UserPo userPo = loginUser.getUserPo();
if (userPo != null) inventoryAdjustmentRecord.setCreateByName(userPo.getUserName());
inventoryAdjustmentRecord.setCreateTime(new Date());
inventoryAdjustmentRecord.setInventoryAfterQuantity(shiftMaterialDetailDO.getShiftQuantity());
inventoryAdjustmentRecord.setAllocationBeforeQuantity(materialInventory1.getAllocationQuantity() == null ? BigDecimal.ZERO : materialInventory1.getAllocationQuantity());
inventoryAdjustmentRecord.setFreezeBeforeQuantity(materialInventory1.getFreezeQuantity() == null ? BigDecimal.ZERO : materialInventory1.getFreezeQuantity());
inventoryAdjustmentRecord.setFreezeAfterQuantity(materialInventory1.getFreezeQuantity() == null ? BigDecimal.ZERO : materialInventory1.getFreezeQuantity());
@@ -826,7 +825,8 @@ public class ShiftMaterialDetailImpl extends ServiceImpl<ShiftMaterialDetailMapp
inventoryAdjustmentRecord2.setFreezeBeforeQuantity(newFreezeBefore);
inventoryAdjustmentRecord2.setFreezeAfterQuantity(newFreezeBefore);
inventoryAdjustmentRecord2.setInventoryAfterQuantity(newInvBefore.add(shiftQty));
inventoryAdjustmentRecord2.setAllocationAfterQuantity(materialInventory1.getAllocationQuantity().subtract(shiftMaterialDetailDO.getShiftQuantity()));
// 新库位移入调整后可用数量 = 新库位调整前可用 + 移入数量与调整后库存数量一致均为移入可用量
inventoryAdjustmentRecord2.setAllocationAfterQuantity(newAllocBefore.add(shiftQty));
inventoryAdjustmentRecordMapper.insert(inventoryAdjustmentRecord2);//移位后物料记录新库位增加
}
@@ -59,7 +59,6 @@ public class StockReceiptOrderAppApi extends BaseController {
startPage();
LoginUser loginUser = SecurityUtils.getLoginUser();
stockReceiptOrderDO.setOperatorsBy(loginUser.getUserPo().getUserId());
// PDA 出库复核列表一致按当前用户关联仓库过滤 StockOutOrderAppApi#list
AssociationWarehouseCacheDO associationWarehouseCacheDO =
SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
if (associationWarehouseCacheDO != null) {
@@ -82,9 +81,9 @@ public class StockReceiptOrderAppApi extends BaseController {
}
/**
* PDA按收货单行查询是否抄码 PC 物料主数据 copyCode 一致列表未拉 {@link #getInfoByApp} 点击收货前调用本接口即可分流抄码页/普通收货页
* PDA按收货单行查询是否抄码
*
* @return data copyCode(1- 2-)materialBaseInfoIdmaterialDetailId
* @return data copyCode(1- 2-)
*/
@ApiOperation("按收货明细行查询是否抄码(与PC同源,供跳转抄码收货页)")
@GetMapping("/getCopyCodeForReceiptLine")
@@ -96,7 +95,7 @@ public class StockReceiptOrderAppApi extends BaseController {
}
/**
* PDA仅已知物料基础信息 ID 时查询是否抄码 PC 一致列表若已带 materialBaseInfoId 可直调无需整单详情
* PDA仅已知物料基础信息 ID 时查询是否抄码
*/
@ApiOperation("按物料基础信息ID查询是否抄码")
@GetMapping("/getCopyCodeByMaterialBaseInfoId")
@@ -121,7 +120,7 @@ public class StockReceiptOrderAppApi extends BaseController {
}
/**
* 收货 PC 同源抄码物料请在对应明细上传 copyBatchpalletNumbercopyQuantitycopyDetails
* 收货抄码物料请在对应明细上传 copyBatchpalletNumbercopyQuantitycopyDetails
* copyDetails JSON序号 单件净重(KG) {"1":1.343,"2":1.343}抄码对照表在上架完成入账后写入非本接口直接写
*/
@ApiOperation("收货(抄码明细字段见 materialDetailList.copyDetails 等,与 PC 一致)")