提货单打印修改

This commit is contained in:
秦鸿展
2026-05-06 11:06:12 +08:00
parent a9c27b9d4c
commit 0ec7e9b703
4 changed files with 193 additions and 178 deletions
@@ -16,8 +16,7 @@ import java.util.List;
* @author gen * @author gen
* @date 2024-05-28 * @date 2024-05-28
*/ */
public interface StockOutOrderMapper extends BaseMapper<StockOutOrder> public interface StockOutOrderMapper extends BaseMapper<StockOutOrder> {
{
/** /**
* 查询出库单列表 * 查询出库单列表
*/ */
@@ -441,4 +441,10 @@ public class StockOutOrderDTO extends StockOutOrderBaseDTO {
private String salesmanName; private String salesmanName;
@ApiModelProperty("费用") @ApiModelProperty("费用")
List<ReceiptOrderAccount> receiptOrderAccountList; List<ReceiptOrderAccount> receiptOrderAccountList;
/**
* 提货单打印所选模版(与图5单选项文案一致即可)。可传副标题如「谷丰--营销部」,或整段「提货单--谷丰--营销部」;不传则标题为「提货单」
*/
@ApiModelProperty("提货单打印模版名/弹窗选项全文;后端生成 printTitle(-- 会规范为 ——)")
private String noticePrintTemplateName;
} }
@@ -64,14 +64,40 @@ public class StockOutOrderApi extends BaseController {
@Autowired @Autowired
private IStockOutOrderService stockOutOrderService; private IStockOutOrderService stockOutOrderService;
@Autowired
private ExcelParseService excelParseService;
/**
* 提货单大标题:未选时为「提货单」;可传副标题如「谷丰--营销部」,或与弹窗一致传整段「提货单--谷丰--营销部」(后者原样作标题,并将 -- 规范为 ——)。
*/
private static void fillNoticePrintTitle(Map<String, Object> result, StockOutOrderDTO dto) {
String templateName = dto != null ? dto.getNoticePrintTemplateName() : null;
if (templateName != null) {
templateName = templateName.trim();
if (templateName.isEmpty()) {
templateName = null;
}
}
result.put("noticePrintTemplateName", templateName);
if (templateName == null) {
result.put("printTitle", "提货单");
return;
}
String printTitle;
if (templateName.startsWith("提货单")) {
printTitle = templateName.replace("--", "——");
} else {
printTitle = "提货单——" + templateName.replace("--", "——");
}
result.put("printTitle", printTitle);
}
/** /**
* 分页查询出库单列表 * 分页查询出库单列表
*/ */
@ApiOperation("查询出库单列表") @ApiOperation("查询出库单列表")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(StockOutOrderDTO stockOutOrderDTO) public TableDataInfo list(StockOutOrderDTO stockOutOrderDTO) {
{
//转换实体 //转换实体
StockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO); StockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO);
startPage(); startPage();
@@ -79,9 +105,6 @@ public class StockOutOrderApi extends BaseController {
return getDataTable(list); return getDataTable(list);
} }
@Autowired
private ExcelParseService excelParseService;
/** /**
* 上传并解析出仓委托单Excel * 上传并解析出仓委托单Excel
*/ */
@@ -122,8 +145,7 @@ public class StockOutOrderApi extends BaseController {
*/ */
@ApiOperation("编辑出库单") @ApiOperation("编辑出库单")
@PostMapping("/edit") @PostMapping("/edit")
public AjaxResult edit(@RequestBody StockOutOrderDTO stockOutOrderDTO) public AjaxResult edit(@RequestBody StockOutOrderDTO stockOutOrderDTO) {
{
//转换实体 //转换实体
StockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDOByEdit(stockOutOrderDTO); StockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDOByEdit(stockOutOrderDTO);
if (stockOutOrderDTO.getOutOrderId() != null) { if (stockOutOrderDTO.getOutOrderId() != null) {
@@ -138,8 +160,7 @@ public class StockOutOrderApi extends BaseController {
*/ */
@ApiOperation("批量删除出库单") @ApiOperation("批量删除出库单")
@DeleteMapping("/deleteByIds/{outOrderIds}") @DeleteMapping("/deleteByIds/{outOrderIds}")
public AjaxResult delete(@PathVariable Long[] outOrderIds) public AjaxResult delete(@PathVariable Long[] outOrderIds) {
{
return toAjax(stockOutOrderApplicationService.delete(outOrderIds)); return toAjax(stockOutOrderApplicationService.delete(outOrderIds));
} }
@@ -148,17 +169,16 @@ public class StockOutOrderApi extends BaseController {
*/ */
@ApiOperation("获取出库单") @ApiOperation("获取出库单")
@GetMapping(value = "/getInfo/{outOrderId}") @GetMapping(value = "/getInfo/{outOrderId}")
public AjaxResult getInfo(@PathVariable("outOrderId") Long outOrderId) public AjaxResult getInfo(@PathVariable("outOrderId") Long outOrderId) {
{
return AjaxResult.success(stockOutOrderApplicationService.getInfoChildren(outOrderId)); return AjaxResult.success(stockOutOrderApplicationService.getInfoChildren(outOrderId));
} }
/** /**
* 根据出库单号获取出库单详细信息 * 根据出库单号获取出库单详细信息
*/ */
@ApiOperation("获取出库单") @ApiOperation("获取出库单")
@GetMapping(value = "/getInfoOutOrderNumber") @GetMapping(value = "/getInfoOutOrderNumber")
public AjaxResult getInfoOutOrderNumber(String outOrderNumber) public AjaxResult getInfoOutOrderNumber(String outOrderNumber) {
{
// 根据出库单号查询出库单,再按出库单ID查询详情,保证与出库管理页面一致 // 根据出库单号查询出库单,再按出库单ID查询详情,保证与出库管理页面一致
StockOutOrder stockOutOrder = stockOutOrderService.getOne(new LambdaQueryWrapper<StockOutOrder>() StockOutOrder stockOutOrder = stockOutOrderService.getOne(new LambdaQueryWrapper<StockOutOrder>()
.eq(StockOutOrder::getOutOrderNumber, outOrderNumber)); .eq(StockOutOrder::getOutOrderNumber, outOrderNumber));
@@ -210,7 +230,6 @@ public class StockOutOrderApi extends BaseController {
return toAjax(stockOutOrderApplicationService.manualAssign(stockOutOrderDO)); return toAjax(stockOutOrderApplicationService.manualAssign(stockOutOrderDO));
} }
/** /**
* 手动分配 * 手动分配
*/ */
@@ -285,7 +304,6 @@ public class StockOutOrderApi extends BaseController {
return toAjax(stockOutOrderApplicationService.genPickingOrder(stockOutOrderDO)); return toAjax(stockOutOrderApplicationService.genPickingOrder(stockOutOrderDO));
} }
/** /**
* 复核下发 * 复核下发
*/ */
@@ -303,8 +321,7 @@ public class StockOutOrderApi extends BaseController {
*/ */
@ApiOperation("获取出库单复核详细信息") @ApiOperation("获取出库单复核详细信息")
@GetMapping(value = "/getCheckInfo") @GetMapping(value = "/getCheckInfo")
public AjaxResult getCheckInfo(StockOutOrderDTO stockOutOrderDTO) public AjaxResult getCheckInfo(StockOutOrderDTO stockOutOrderDTO) {
{
//转换实体 //转换实体
StockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO); StockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO);
return AjaxResult.success(stockOutOrderApplicationService.getCheckInfo(stockOutOrderDO)); return AjaxResult.success(stockOutOrderApplicationService.getCheckInfo(stockOutOrderDO));
@@ -320,7 +337,6 @@ public class StockOutOrderApi extends BaseController {
return AjaxResult.success(stockOutOrderApplicationService.singleCheck(stockOutOrderDO)); return AjaxResult.success(stockOutOrderApplicationService.singleCheck(stockOutOrderDO));
} }
/** /**
* 批量复核 * 批量复核
*/ */
@@ -331,7 +347,6 @@ public class StockOutOrderApi extends BaseController {
return toAjax(stockOutOrderApplicationService.batchCheck(stockOutOrderDO)); return toAjax(stockOutOrderApplicationService.batchCheck(stockOutOrderDO));
} }
/** /**
* 批量取消复核 * 批量取消复核
*/ */
@@ -342,7 +357,6 @@ public class StockOutOrderApi extends BaseController {
return toAjax(stockOutOrderApplicationService.batchCancelCheck(stockOutOrderDO)); return toAjax(stockOutOrderApplicationService.batchCancelCheck(stockOutOrderDO));
} }
/** /**
* 批量复核确认 * 批量复核确认
*/ */
@@ -353,7 +367,6 @@ public class StockOutOrderApi extends BaseController {
return toAjax(stockOutOrderApplicationService.checkConfirm(stockOutOrderDO)); return toAjax(stockOutOrderApplicationService.checkConfirm(stockOutOrderDO));
} }
/** /**
* 根据指定规则生成波次单 * 根据指定规则生成波次单
*/ */
@@ -382,12 +395,9 @@ public class StockOutOrderApi extends BaseController {
StockOutOrderDO stockOutOrderDO = JSONUtil.toBean(JSONUtil.toJsonStr(stockOutOrderDTO), StockOutOrderDO.class); StockOutOrderDO stockOutOrderDO = JSONUtil.toBean(JSONUtil.toJsonStr(stockOutOrderDTO), StockOutOrderDO.class);
return toAjax(stockOutOrderApplicationService.autoAssign(stockOutOrderDO)); return toAjax(stockOutOrderApplicationService.autoAssign(stockOutOrderDO));
}*/ }*/
@ApiOperation("关闭出库单") @ApiOperation("关闭出库单")
@PostMapping("/close") @PostMapping("/close")
public AjaxResult close(@RequestBody StockOutOrderDTO stockOutOrderDTO) public AjaxResult close(@RequestBody StockOutOrderDTO stockOutOrderDTO) {
{
//转换实体 //转换实体
StockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDOByEdit(stockOutOrderDTO); StockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDOByEdit(stockOutOrderDTO);
return toAjax(stockOutOrderApplicationService.close(stockOutOrderDO)); return toAjax(stockOutOrderApplicationService.close(stockOutOrderDO));
@@ -411,28 +421,24 @@ public class StockOutOrderApi extends BaseController {
stockOutOrderApplicationService.omsOrderAddDetail(outMaterialDetails); stockOutOrderApplicationService.omsOrderAddDetail(outMaterialDetails);
} }
@ApiOperation("出库单提货单打印") @ApiOperation("出库单提货单打印")
@PostMapping("/queryOutStockNoticePrint") @PostMapping("/queryOutStockNoticePrint")
public AjaxResult queryOutStockNoticePrint(@RequestBody StockOutOrderDTO stockOutOrderDTO) { public AjaxResult queryOutStockNoticePrint(@RequestBody StockOutOrderDTO stockOutOrderDTO) {
List<StockOutOrderPO> headerList = stockOutOrderApplicationService.queryOutStockNoticePrint(stockOutOrderDTO); return AjaxResult.success(buildOutStockNoticePrintData(stockOutOrderDTO));
List<OutMaterialDetailPO> detailList = stockOutOrderApplicationService.queryOutStockNoticePrintDetail(stockOutOrderDTO);
Map<String, Object> result = new HashMap<>();
if (!headerList.isEmpty()) {
result.put("header", headerList.get(0));
} }
result.put("detailList", detailList);
return AjaxResult.success(result);
}
@ApiOperation("出库单提货单打印") @ApiOperation("出库单提货单打印")
@PostMapping("/queryOutStockNoticePrintGF") @PostMapping("/queryOutStockNoticePrintGF")
public AjaxResult queryOutStockNoticePrintGF(@RequestBody StockOutOrderDTO stockOutOrderDTO) { public AjaxResult queryOutStockNoticePrintGF(@RequestBody StockOutOrderDTO stockOutOrderDTO) {
return AjaxResult.success(buildOutStockNoticePrintData(stockOutOrderDTO));
}
/**
* 提货单打印统一数据
*/
private Map<String, Object> buildOutStockNoticePrintData(StockOutOrderDTO stockOutOrderDTO) {
List<StockOutOrderPO> headerList = stockOutOrderApplicationService.queryOutStockNoticePrint(stockOutOrderDTO); List<StockOutOrderPO> headerList = stockOutOrderApplicationService.queryOutStockNoticePrint(stockOutOrderDTO);
List<OutMaterialDetailPO> detailList = stockOutOrderApplicationService.queryOutStockNoticePrintDetailGF(stockOutOrderDTO); List<OutMaterialDetailPO> detailList = stockOutOrderApplicationService.queryOutStockNoticePrintDetailGF(stockOutOrderDTO);
for (OutMaterialDetailPO detail : detailList) { for (OutMaterialDetailPO detail : detailList) {
if (detail.getCopyCode() != null && detail.getCopyCode() == 1) { if (detail.getCopyCode() != null && detail.getCopyCode() == 1) {
List<CopyCodeReferencePO> weightList = stockOutOrderApplicationService.queryCopyCodeWeightListByBatch( List<CopyCodeReferencePO> weightList = stockOutOrderApplicationService.queryCopyCodeWeightListByBatch(
@@ -445,7 +451,8 @@ public class StockOutOrderApi extends BaseController {
result.put("header", headerList.get(0)); result.put("header", headerList.get(0));
} }
result.put("detailList", detailList); result.put("detailList", detailList);
return AjaxResult.success(result); fillNoticePrintTitle(result, stockOutOrderDTO);
return result;
} }
} }
@@ -98,7 +98,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="selectStockOutOrderPo"> <sql id="selectStockOutOrderPo">
a.out_order_id, a.organization_id, a.organization_name, a.top_organization_id, a.receipt_notice_id, a.notice_number, a.out_order_number, a.status, a
.
out_order_id
, a.organization_id, a.organization_name, a.top_organization_id, a.receipt_notice_id, a.notice_number, a.out_order_number, a.status,
a.audit_status, a.audit_remark, a.audit_by, a.audit_by_name, a.audit_time, a.warehouse_id, a.warehouse_code, a.warehouse_name, a.shipper_id, a.shipper_code, a.audit_status, a.audit_remark, a.audit_by, a.audit_by_name, a.audit_time, a.warehouse_id, a.warehouse_code, a.warehouse_name, a.shipper_id, a.shipper_code,
a.shipper_name, a.order_type_code, a.order_type_name, a.customer_id, a.customer_code, a.customer_name, a.expect_time, a.supply_chain_number, a.priority_level_code, a.shipper_name, a.order_type_code, a.order_type_name, a.customer_id, a.customer_code, a.customer_name, a.expect_time, a.supply_chain_number, a.priority_level_code,
a.priority_level_name, a.direct_warehouse, a.review, a.annex_url, a.material_quantity, a.quantity, a.weight_limit, a.volume_limit, a.priority_level_name, a.direct_warehouse, a.review, a.annex_url, a.material_quantity, a.quantity, a.weight_limit, a.volume_limit,
@@ -328,7 +331,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</choose> </choose>
</sql> </sql>
<select id="queryList" parameterType="com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO" resultMap="StockOutOrderResult"> <select id="queryList" parameterType="com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO"
resultMap="StockOutOrderResult">
select select
<include refid="selectStockOutOrderPo"/> <include refid="selectStockOutOrderPo"/>
from stock_out_order a from stock_out_order a
@@ -340,9 +344,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="queryOutStockNoticePrint" resultMap="StockOutOrderResult"> <select id="queryOutStockNoticePrint" resultMap="StockOutOrderResult">
SELECT SELECT a.notice_number,
a.notice_number,
a.out_order_number, a.out_order_number,
a.business_order_no,
a.supply_chain_number, a.supply_chain_number,
a.shipper_name, a.shipper_name,
a.expect_time, a.expect_time,
@@ -357,8 +361,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="queryOutStockNoticePrintDetail" resultMap="OutMaterialDetailPOResult"> <select id="queryOutStockNoticePrintDetail" resultMap="OutMaterialDetailPOResult">
SELECT SELECT b.lot_no,
b.lot_no,
b.warehouse_code, b.warehouse_code,
b.warehouse_name, b.warehouse_name,
b.material_name, b.material_name,
@@ -368,12 +371,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
b.unit_name b.unit_name
FROM out_material_detail b FROM out_material_detail b
WHERE b.del_flag = 1 WHERE b.del_flag = 1
AND b.out_order_number = (SELECT out_order_number FROM stock_out_order WHERE out_order_id = #{outOrderId} AND del_flag = 1) AND b.out_order_number =
(SELECT out_order_number FROM stock_out_order WHERE out_order_id = #{outOrderId} AND del_flag = 1)
ORDER BY b.material_detail_id ORDER BY b.material_detail_id
</select> </select>
<resultMap type="com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialDetailPO" id="OutMaterialDetailPOResult"> <resultMap type="com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialDetailPO"
id="OutMaterialDetailPOResult">
<result property="lotNo" column="lot_no"/> <result property="lotNo" column="lot_no"/>
<result property="warehouseCode" column="warehouse_code"/> <result property="warehouseCode" column="warehouse_code"/>
<result property="warehouseName" column="warehouse_name"/> <result property="warehouseName" column="warehouse_name"/>
@@ -395,8 +400,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<resultMap type="com.mhd.wms.domain.copyCodeReference.repository.po.CopyCodeReferencePO" id="CopyCodeWeightResult"> <resultMap type="com.mhd.wms.domain.copyCodeReference.repository.po.CopyCodeReferencePO" id="CopyCodeWeightResult">
<result property="netWeight" column="net_weight"/> <result property="netWeight" column="net_weight"/>
<result property="grossWeight" column="gross_weight"/> <result property="grossWeight" column="gross_weight"/>
@@ -406,8 +409,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<select id="queryCopyCodeWeightListByBatch" resultMap="CopyCodeWeightResult"> <select id="queryCopyCodeWeightListByBatch" resultMap="CopyCodeWeightResult">
SELECT SELECT ccr.net_weight,
ccr.net_weight,
ccr.gross_weight, ccr.gross_weight,
ccr.inventory_quantity, ccr.inventory_quantity,
ccr.lot_number, ccr.lot_number,
@@ -422,15 +424,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="queryOutStockNoticePrintDetailGF" resultMap="OutMaterialDetailPOResult"> <select id="queryOutStockNoticePrintDetailGF" resultMap="OutMaterialDetailPOResult">
SELECT SELECT b.batch_number,
b.batch_number,
b.material_code, b.material_code,
b.material_name, b.material_name,
b.specification_model, COALESCE(b.specification_model, b.size, b.liter, mbi.specification_model) AS specification_model,
b.quantity, b.quantity,
b.unit_name, b.unit_name,
b.pack_name, b.pack_name,
b.warehouse_code, b.warehouse_code,
b.warehouse_name,
b.warehouse_id, b.warehouse_id,
b.storage_location_name, b.storage_location_name,
b.lot_no, b.lot_no,
@@ -442,7 +444,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
FROM out_material_detail b FROM out_material_detail b
LEFT JOIN material_base_info mbi ON b.material_base_info_id = mbi.material_base_info_id LEFT JOIN material_base_info mbi ON b.material_base_info_id = mbi.material_base_info_id
WHERE b.del_flag = 1 WHERE b.del_flag = 1
AND b.out_order_number = (SELECT out_order_number FROM stock_out_order WHERE out_order_id = #{outOrderId} AND del_flag = 1) AND b.out_order_number =
(SELECT out_order_number FROM stock_out_order WHERE out_order_id = #{outOrderId} AND del_flag = 1)
ORDER BY b.material_detail_id ORDER BY b.material_detail_id
</select> </select>