Merge remote-tracking branch 'origin/master-hlq20260506ganggoubao' into develop
# Conflicts: # nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/StructuralPackageOrderController.java
This commit is contained in:
commit
7285d359ee
File diff suppressed because it is too large
Load Diff
|
|
@ -109,7 +109,8 @@
|
|||
<tr>
|
||||
<td>订单号:<span th:text="${info.externalOrderNo}">12255665451615</span></td>
|
||||
<td>行号:<span th:text="${info.rowNo}">1111</span></td>
|
||||
<td>托盘号:<span th:text="${info.trayNo}">1111</span></td>
|
||||
<!-- 托盘号已移除,保留空单元格 -->
|
||||
<td></td>
|
||||
<td colspan="2">供应商:<span th:text="${info.supplierName}">1111</span></td>
|
||||
<td rowspan="3" class="cell-img" style="width: 130px;">
|
||||
<img alt="" style="width: 100px;" th:src="${info.qrCode}" src="../img/logo1.png"/>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,52 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 差异项QO
|
||||
*/
|
||||
@Data
|
||||
public class DiffItemQO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 物料编号
|
||||
*/
|
||||
@NotBlank(message = "物料编号不能为空")
|
||||
private String materialNo;
|
||||
|
||||
/**
|
||||
* 物料描述
|
||||
*/
|
||||
@NotBlank(message = "物料描述不能为空")
|
||||
private String materialDesc;
|
||||
|
||||
/**
|
||||
* 出货数量
|
||||
*/
|
||||
@NotNull(message = "出货数量不能为空")
|
||||
private Integer shipmentNum;
|
||||
|
||||
/**
|
||||
* 已装数量
|
||||
*/
|
||||
@NotNull(message = "已装数量不能为空")
|
||||
private Integer actualQty;
|
||||
|
||||
/**
|
||||
* 差异数量
|
||||
*/
|
||||
@NotNull(message = "差异数量不能为空")
|
||||
private Integer diffQty;
|
||||
|
||||
/**
|
||||
* 差异原因描述(必填)
|
||||
*/
|
||||
@NotBlank(message = "差异原因不能为空")
|
||||
private String remark;
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
|
|
@ -14,6 +15,12 @@ public class GenerateTrayQO {
|
|||
@NotNull
|
||||
private Long packageId;
|
||||
|
||||
/**
|
||||
* 供应商代码(6位数字)
|
||||
*/
|
||||
@NotBlank
|
||||
private String supplierCode;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 物料汇总QO(按物料编号统计)
|
||||
*/
|
||||
@Data
|
||||
public class MaterialSummaryQO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 物料编号
|
||||
*/
|
||||
@NotBlank(message = "物料编号不能为空")
|
||||
private String materialNo;
|
||||
|
||||
/**
|
||||
* 物料描述
|
||||
*/
|
||||
@NotBlank(message = "物料描述不能为空")
|
||||
private String materialDesc;
|
||||
|
||||
/**
|
||||
* 所有托盘该物料的总数量
|
||||
*/
|
||||
@NotNull(message = "物料总数量不能为空")
|
||||
private Integer totalQty;
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 钢构件打包提交QO
|
||||
*/
|
||||
@Data
|
||||
public class PackTraySubmitQO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 采购单号/钢构件订单号
|
||||
*/
|
||||
@NotBlank(message = "订单号不能为空")
|
||||
private String orderNo;
|
||||
|
||||
/**
|
||||
* 托盘列表
|
||||
*/
|
||||
@NotEmpty(message = "托盘列表不能为空")
|
||||
@Valid
|
||||
private List<TraySubmitQO> trays;
|
||||
|
||||
/**
|
||||
* 物料汇总列表(按物料编号统计的总数量)
|
||||
*/
|
||||
@NotEmpty(message = "物料汇总列表不能为空")
|
||||
@Valid
|
||||
private List<MaterialSummaryQO> materialSummary;
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 钢构件打包提交带差异原因QO
|
||||
*/
|
||||
@Data
|
||||
public class PackTraySubmitWithDiffQO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 采购单号/钢构件订单号
|
||||
*/
|
||||
@NotBlank(message = "订单号不能为空")
|
||||
private String orderNo;
|
||||
|
||||
/**
|
||||
* 托盘列表
|
||||
*/
|
||||
@NotEmpty(message = "托盘列表不能为空")
|
||||
@Valid
|
||||
private List<TraySubmitQO> trays;
|
||||
|
||||
/**
|
||||
* 差异列表
|
||||
*/
|
||||
@NotEmpty(message = "差异列表不能为空")
|
||||
@Valid
|
||||
private List<DiffItemQO> diffList;
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 托盘物料QO
|
||||
*/
|
||||
@Data
|
||||
public class TrayMaterialQO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 物料编号
|
||||
*/
|
||||
@NotBlank(message = "物料编号不能为空")
|
||||
private String materialNo;
|
||||
|
||||
/**
|
||||
* 物料描述
|
||||
*/
|
||||
@NotBlank(message = "物料描述不能为空")
|
||||
private String materialDesc;
|
||||
|
||||
/**
|
||||
* 二维码列表(该物料的所有条码)
|
||||
*/
|
||||
private List<String> qrCodes;
|
||||
|
||||
/**
|
||||
* 该物料的总数量
|
||||
*/
|
||||
@NotNull(message = "物料数量不能为空")
|
||||
private Integer totalQty;
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 托盘提交QO
|
||||
*/
|
||||
@Data
|
||||
public class TraySubmitQO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 托盘号
|
||||
*/
|
||||
@NotBlank(message = "托盘号不能为空")
|
||||
private String trayNo;
|
||||
|
||||
/**
|
||||
* 订单号
|
||||
*/
|
||||
@NotBlank(message = "订单号不能为空")
|
||||
private String orderNo;
|
||||
|
||||
/**
|
||||
* 托盘内物料明细
|
||||
*/
|
||||
@NotEmpty(message = "物料明细不能为空")
|
||||
@Valid
|
||||
private List<TrayMaterialQO> items;
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 修改钢构包订单托盘数量请求对象
|
||||
*/
|
||||
@Data
|
||||
public class UpdatePackageTrayNumQO {
|
||||
|
||||
/**
|
||||
* 钢构包订单ID
|
||||
*/
|
||||
@NotNull(message = "钢构包订单ID不能为空")
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 托盘数量
|
||||
*/
|
||||
@NotNull(message = "托盘数量不能为空")
|
||||
private BigDecimal trayNum;
|
||||
}
|
||||
|
|
@ -5,6 +5,7 @@ import lombok.Data;
|
|||
import lombok.experimental.Accessors;
|
||||
import org.ttzero.excel.annotation.ExcelColumn;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Objects;
|
||||
|
||||
@Data
|
||||
|
|
@ -63,6 +64,11 @@ public class DeliverStructuralPackageOrderExtendVO extends DeliverStructuralPack
|
|||
*/
|
||||
private Short totalNum;
|
||||
|
||||
/**
|
||||
* 托盘数量
|
||||
*/
|
||||
private BigDecimal trayNum;
|
||||
|
||||
public String getStateDesc() {
|
||||
if (Objects.isNull(state)) {
|
||||
return "";
|
||||
|
|
|
|||
|
|
@ -8,6 +8,11 @@ import java.util.List;
|
|||
@Data
|
||||
public class DeliverStructuralPackageOrderTrayVO {
|
||||
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 供应商代码
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -0,0 +1,43 @@
|
|||
package com.nflg.wms.common.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 差异项VO
|
||||
*/
|
||||
@Data
|
||||
public class DiffItemVO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 物料编号
|
||||
*/
|
||||
private String materialNo;
|
||||
|
||||
/**
|
||||
* 物料描述
|
||||
*/
|
||||
private String materialDesc;
|
||||
|
||||
/**
|
||||
* 出货数量
|
||||
*/
|
||||
private Integer shipmentNum;
|
||||
|
||||
/**
|
||||
* 已装数量
|
||||
*/
|
||||
private Integer actualQty;
|
||||
|
||||
/**
|
||||
* 差异数量
|
||||
*/
|
||||
private Integer diffQty;
|
||||
|
||||
/**
|
||||
* 差异原因描述(必填)
|
||||
*/
|
||||
private String remark;
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
package com.nflg.wms.common.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 打包提交返回结果VO
|
||||
*/
|
||||
@Data
|
||||
public class PackTraySubmitResultVO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 是否有差异
|
||||
*/
|
||||
private Boolean hasDiff;
|
||||
|
||||
/**
|
||||
* 差异列表(如果有差异)
|
||||
*/
|
||||
private List<DiffItemVO> diffList;
|
||||
|
||||
/**
|
||||
* 提示信息
|
||||
*/
|
||||
private String message;
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
package com.nflg.wms.common.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 钢构件打包提交带差异原因VO
|
||||
*/
|
||||
@Data
|
||||
public class PackTraySubmitWithDiffVO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 采购单号/钢构件订单号
|
||||
*/
|
||||
private String orderNo;
|
||||
|
||||
/**
|
||||
* 托盘列表
|
||||
*/
|
||||
private List<TrayItemVO2> trays;
|
||||
|
||||
/**
|
||||
* 差异列表
|
||||
*/
|
||||
private List<DiffItemVO> diffList;
|
||||
}
|
||||
|
|
@ -58,6 +58,11 @@ public class PackageVO {
|
|||
*/
|
||||
private BigDecimal weight;
|
||||
|
||||
/**
|
||||
* 托盘数量
|
||||
*/
|
||||
private BigDecimal trayNum;
|
||||
|
||||
/**
|
||||
* 种类
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -0,0 +1,30 @@
|
|||
package com.nflg.wms.common.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 托盘项VO
|
||||
*/
|
||||
@Data
|
||||
public class TrayItemVO2 implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 托盘号
|
||||
*/
|
||||
private String trayNo;
|
||||
|
||||
/**
|
||||
* 订单号
|
||||
*/
|
||||
private String orderNo;
|
||||
|
||||
/**
|
||||
* 托盘内物料明细
|
||||
*/
|
||||
private List<TrayMaterialVO> items;
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
package com.nflg.wms.common.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 托盘物料VO
|
||||
*/
|
||||
@Data
|
||||
public class TrayMaterialVO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 物料编号
|
||||
*/
|
||||
private String materialNo;
|
||||
|
||||
/**
|
||||
* 物料描述
|
||||
*/
|
||||
private String materialDesc;
|
||||
|
||||
/**
|
||||
* 二维码列表(该物料的所有条码)
|
||||
*/
|
||||
private List<String> qrCodes;
|
||||
|
||||
/**
|
||||
* 该物料的总数量
|
||||
*/
|
||||
private Integer totalQty;
|
||||
}
|
||||
|
|
@ -20,4 +20,9 @@ public interface WmsStructuralPackageOrderTrayItemMapper extends BaseMapper<WmsS
|
|||
List<DeliverStructuralPackageOrderTrayItemVO> getListByTrayId(Long id);
|
||||
|
||||
List<DeliverStructuralPackageOrderTrayItemSimpleVO> getSimpleListByTrayNo(String trayNo);
|
||||
|
||||
/**
|
||||
* 根据订单ID获取物料项列表(不依赖托盘关联)
|
||||
*/
|
||||
List<DeliverStructuralPackageOrderTrayItemVO> getListByOrderId(Long orderId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,4 +31,9 @@ public interface IWmsStructuralPackageOrderTrayItemService extends IService<WmsS
|
|||
List<DeliverStructuralPackageOrderTrayItemSimpleVO> getSimpleListByTrayNo(@Valid @NotBlank String trayNo);
|
||||
|
||||
List<WmsStructuralPackageOrderTrayItem> getListByTrayId(Long id);
|
||||
|
||||
/**
|
||||
* 根据订单ID获取物料项列表(不依赖托盘关联)
|
||||
*/
|
||||
List<DeliverStructuralPackageOrderTrayItemVO> getListVOByOrderId(@Valid @NotNull Long orderId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,4 +54,9 @@ public class WmsStructuralPackageOrderTrayItemServiceImpl extends ServiceImpl<Wm
|
|||
public List<WmsStructuralPackageOrderTrayItem> getListByTrayId(Long id) {
|
||||
return lambdaQuery().eq(WmsStructuralPackageOrderTrayItem::getTrayId, id).list();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DeliverStructuralPackageOrderTrayItemVO> getListVOByOrderId(Long orderId) {
|
||||
return baseMapper.getListByOrderId(orderId);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,4 +21,16 @@
|
|||
where ot.no=#{trayNo}
|
||||
order by oti.id
|
||||
</select>
|
||||
|
||||
<select id="getListByOrderId" resultType="com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderTrayItemVO">
|
||||
SELECT ROW_NUMBER() OVER (ORDER BY oti.id) AS "index",m.image,m.drawing_no,oti.*,
|
||||
'' as "tray_no",0 as "state",
|
||||
sp."no" as "package_no",sp."name" as "package_desc"
|
||||
FROM wms_structural_package_order o
|
||||
INNER JOIN wms_structural_package_order_tray_item oti ON o."id"=oti.order_id
|
||||
LEFT JOIN wms_structural_package sp ON o.package_id=sp."id"
|
||||
LEFT JOIN wms_material m ON oti.material_no=m."no" and oti."version"=m."version"
|
||||
where o.id=#{orderId}
|
||||
order by oti.id
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -3,17 +3,19 @@
|
|||
<mapper namespace="com.nflg.wms.repository.mapper.WmsStructuralPackageOrderTrayMapper">
|
||||
|
||||
<select id="searchByState" resultType="com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderExtendVO">
|
||||
SELECT ROW_NUMBER() OVER (ORDER BY o.id desc) AS "index",ot.id,o.*,m.no||wb."no" AS "workbench_code"
|
||||
SELECT ROW_NUMBER() OVER (ORDER BY o.id desc) AS "index",o.*,m.no||wb."no" AS "workbench_code"
|
||||
,us.supplier_code,us.supplier_name,sp.order_no AS "package_order_no",sp."no" AS "package_no"
|
||||
,sp."name" AS "package_desc",m."no" AS "model_no",ot.no as "tray_no",ot.tray,ot.station,ot.state,spdom.deliver_id
|
||||
,sp."name" AS "package_desc",sp.tray_num,m."no" AS "model_no",'' as "tray_no",null as "tray",spdom.deliver_id
|
||||
FROM wms_structural_package_order o
|
||||
LEFT JOIN wms_workbench wb ON o.workbench_id=wb."id"
|
||||
LEFT JOIN user_supplier us ON o.supplier_id=us.id
|
||||
LEFT JOIN wms_structural_package sp ON o.package_id=sp."id"
|
||||
LEFT JOIN wms_model m on o.model_id=m."id"
|
||||
inner join wms_structural_package_order_tray ot on o.id=ot.order_id
|
||||
left join wms_structural_package_deliver_order_map spdom on o.id=spdom.order_id
|
||||
where ot.state=#{request.state}
|
||||
where 1=1
|
||||
<if test="request.state!=null">
|
||||
and exists (select 1 from wms_structural_package_order_tray ot where ot.order_id=o.id and ot.state=#{request.state})
|
||||
</if>
|
||||
<if test="request.orderNo!=null and request.orderNo!=''">
|
||||
and o.order_no=#{request.orderNo}
|
||||
</if>
|
||||
|
|
@ -27,7 +29,7 @@
|
|||
and o.external_order_no=#{request.externalOrderNo}
|
||||
</if>
|
||||
<if test="request.trayNo!=null and request.trayNo!=''">
|
||||
and ot.no=#{request.trayNo}
|
||||
and exists (select 1 from wms_structural_package_order_tray ot where ot.order_id=o.id and ot.no=#{request.trayNo})
|
||||
</if>
|
||||
<if test="request.startDate!=null">
|
||||
and o.create_time>= #{request.startDate}
|
||||
|
|
@ -81,7 +83,7 @@
|
|||
</select>
|
||||
|
||||
<select id="getInfoByNo" resultType="com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderTrayVO">
|
||||
SELECT o.external_order_no,o.row_no,sp."no" AS "package_no",sp."name" AS "package_desc",ot.num,us.supplier_name
|
||||
SELECT ot.order_id,o.external_order_no,o.row_no,sp."no" AS "package_no",sp."name" AS "package_desc",ot.num,us.supplier_name
|
||||
,us.supplier_code,ot.state
|
||||
FROM wms_structural_package_order o
|
||||
LEFT JOIN wms_workbench wb ON o.workbench_id=wb."id"
|
||||
|
|
|
|||
Loading…
Reference in New Issue