feat: 添加功能

This commit is contained in:
曹鹏飞 2025-07-29 18:14:15 +08:00
parent e404326626
commit 2d963c0ffd
20 changed files with 324 additions and 60 deletions

View File

@ -2,6 +2,7 @@ package com.nflg.wms.admin.controller;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.collect.Sets;
@ -16,11 +17,16 @@ import com.nflg.wms.common.pojo.dto.DeliverNormalOrderItemDTO;
import com.nflg.wms.common.pojo.qo.DeliverNormalOrderSaveItemQO;
import com.nflg.wms.common.pojo.qo.DeliverNormalOrderSaveQO;
import com.nflg.wms.common.pojo.qo.DeliverNormalOrderSearchQO;
import com.nflg.wms.common.pojo.qo.SearchDeliverOrderQO;
import com.nflg.wms.common.pojo.vo.DeliverNormalOrderVO;
import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.common.util.VUtil;
import com.nflg.wms.repository.entity.WmsNormalPrintOrder;
import com.nflg.wms.repository.entity.WmsSrmOrder;
import com.nflg.wms.repository.entity.WmsSrmOrderItem;
import com.nflg.wms.repository.entity.WmsWorkbench;
import com.nflg.wms.repository.service.IWmsSrmOrderItemService;
import com.nflg.wms.repository.service.IWmsSrmOrderService;
import com.nflg.wms.repository.service.IWmsWorkbenchService;
import com.nflg.wms.repository.service.WmsNormalPrintOrderService;
import com.nflg.wms.starter.BaseController;
@ -28,15 +34,14 @@ import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.io.ClassPathResource;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.net.URL;
import java.text.DecimalFormat;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@ -44,6 +49,7 @@ import java.util.stream.Collectors;
/**
* 普通物料订单管理
*/
@Slf4j
@RestController
@RequestMapping("/deliver/order/normal")
public class NormalOrderController extends BaseController {
@ -54,6 +60,12 @@ public class NormalOrderController extends BaseController {
@Resource
private IWmsWorkbenchService workbenchService;
private static final DecimalFormat DF = new DecimalFormat("0.00");
@Resource
private IWmsSrmOrderService srmOrderService;
@Resource
private IWmsSrmOrderItemService srmOrderItemService;
/**
* 保存
*/
@ -113,6 +125,7 @@ public class NormalOrderController extends BaseController {
/**
* 搜索
* @param request 请求参数
*/
@PostMapping("search")
public ApiResult<PageData<DeliverNormalOrderVO>> search(@Valid @RequestBody @NotNull DeliverNormalOrderSearchQO request){
@ -124,6 +137,7 @@ public class NormalOrderController extends BaseController {
/**
* 删除
* @param id 要删除的id
*/
@PostMapping("delete")
public ApiResult<Void> delete(@Valid @RequestBody @NotNull Long id){
@ -132,22 +146,66 @@ public class NormalOrderController extends BaseController {
}
/**
* 导出
* 逐个打印采购单
* @param ids 要打印的id列表
*/
@PostMapping("exportPdf")
public void exportPdf(HttpServletResponse response, @Valid @RequestBody @NotNull List<Long> ids) throws Exception {
List<DeliverNormalOrderVO> orders = deliverNormalOrderService.getList(ids);
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(orders)).throwMessage("没有需要导出的数据");
// List<WmsDeliverNormalOrderItem> orders=new ArrayList<>();
// orders.add(new WmsDeliverNormalOrderItem()
// .setMaterialNo("TEST00001")
// .setMaterialDesc("测试物料")
// .setBatchNum(new BigDecimal("36"))
// .setLableNum(4)
// .setMinPackageNum(new BigDecimal("10"))
// .setUniqNo(DateTimeUtil.getForDeliverOrderItemNo())
// .setBatchNo("TEST00001")
// );
@PostMapping("exportPdfPerPage")
public void exportPdfPerPage(HttpServletResponse response, @Valid @RequestBody @NotNull List<Long> ids) throws Exception {
List<DeliverNormalOrderVO> orders=new ArrayList<>();
for (int i = 0,count=RandomUtil.randomInt(1,50); i < count; i++) {
BigDecimal batchNum = RandomUtil.randomBigDecimal(new BigDecimal("10"));
BigDecimal minPackageNum = RandomUtil.randomBigDecimal(new BigDecimal("1"),new BigDecimal("3"));
BigDecimal[] result = batchNum.divideAndRemainder(minPackageNum);
orders.add(new DeliverNormalOrderVO()
.setId(IdUtil.getSnowflakeNextId())
.setMaterialNo(RandomUtil.randomNumbers(10))
.setMaterialDesc(RandomUtil.randomString(10))
.setBatchNum(batchNum)
.setMinPackageNum(minPackageNum)
.setSupplierCode(RandomUtil.randomString(10))
.setSupplierName(RandomUtil.randomString(10))
.setExternalOrderNo(RandomUtil.randomNumbers(10))
.setRowNo(RandomUtil.randomString(10))
.setIndexNo(RandomUtil.randomString(10))
.setLableNum(result[1].compareTo(BigDecimal.ZERO)==0?result[0].intValue():result[0].intValue()+1)
);
}
// List<DeliverNormalOrderVO> orders = deliverNormalOrderService.getList(ids);
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(orders)).throwMessage("没有需要打印的数据");
exportPdfPerPage(convert(orders),response);
}
/**
* 整张打印采购单
* @param ids 要打印的id列表
*/
@PostMapping("exportPdfOnePage")
public void exportPdfOnePage(HttpServletResponse response, @Valid @RequestBody @NotNull List<Long> ids) throws Exception {
List<DeliverNormalOrderVO> orders=new ArrayList<>();
for (int i = 0,count=RandomUtil.randomInt(1,50); i < count; i++) {
BigDecimal batchNum = RandomUtil.randomBigDecimal(new BigDecimal("10"));
BigDecimal minPackageNum = RandomUtil.randomBigDecimal(new BigDecimal("1"),new BigDecimal("3"));
BigDecimal[] result = batchNum.divideAndRemainder(minPackageNum);
orders.add(new DeliverNormalOrderVO()
.setId(IdUtil.getSnowflakeNextId())
.setMaterialNo(RandomUtil.randomNumbers(10))
.setMaterialDesc(RandomUtil.randomString(10))
.setBatchNum(batchNum)
.setMinPackageNum(minPackageNum)
.setSupplierCode(RandomUtil.randomString(10))
.setSupplierName(RandomUtil.randomString(10))
.setExternalOrderNo(RandomUtil.randomNumbers(10))
.setRowNo(RandomUtil.randomString(10))
.setIndexNo(RandomUtil.randomString(10))
.setLableNum(result[1].compareTo(BigDecimal.ZERO)==0?result[0].intValue():result[0].intValue()+1)
);
}
// List<DeliverNormalOrderVO> orders = deliverNormalOrderService.getList(ids);
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(orders)).throwMessage("没有需要打印的数据");
exportPdfInAll(convert(orders),response);
}
private List<DeliverNormalOrderItemDTO> convert(List<DeliverNormalOrderVO> orders) throws Exception {
List<DeliverNormalOrderItemDTO> datas = new ArrayList<>();
for (DeliverNormalOrderVO order : orders) {
for (int i = 0; i < order.getLableNum(); i++) {
@ -155,23 +213,110 @@ public class NormalOrderController extends BaseController {
dto.setIndex(i);
dto.setPrintNo(order.getId() + "-" + i);
if (i == order.getLableNum() - 1) {
dto.setPrintNum(order.getBatchNum().divideAndRemainder(order.getMinPackageNum())[1]);
dto.setPrintNum(DF.format(order.getBatchNum().divideAndRemainder(order.getMinPackageNum())[1]));
} else {
dto.setPrintNum(order.getMinPackageNum());
dto.setPrintNum(DF.format(order.getMinPackageNum()));
}
dto.setQrCode("data:image/png;base64,"+Base64.getEncoder().encodeToString(QRCodeUtil.generateQRCode(generateQRContent(order,dto.getPrintNo(),dto.getPrintNum()), 100, 100)));
dto.setQrCode("data:image/png;base64,"+Base64.getEncoder().encodeToString(QRCodeUtil.generateQRCode(generateQRContent(dto), 100, 100)));
datas.add(dto);
}
}
Map<String, Object> variables = new HashMap<>();
variables.put("list", datas);
String html = ThymeleafUtil.generator("/template/qrcode/", "dp", ".html", variables);
URL baseUrl = new ClassPathResource("template/qrcode/").getURL();
PdfGeneratorUtil.generatePdf("普通物料条码", html,baseUrl.toString(), response);
return datas;
}
private String generateQRContent(DeliverNormalOrderVO order, String printNo, BigDecimal num){
return StrUtil.format("{}${}${}${}${}${}${}${}"
, printNo, order.getExternalOrderNo(),order.getRowNo(),order.getMaterialNo(),num,order.getMaterialDesc(),order.getSupplierCode(),order.getIndexNo());
private String generateQRContent(DeliverNormalOrderItemDTO order){
String content=StrUtil.format("{}${}${}${}${}${}${}${}"
, order.getPrintNo(), order.getExternalOrderNo(),order.getRowNo(),order.getMaterialNo(),order.getPrintNum(),order.getMaterialDesc(),order.getSupplierCode(),order.getIndexNo());
log.debug("二维码内容:"+ content);
return content;
}
/**
* 搜索送货单
* @param request 请求参数
*/
@PostMapping("searchDeliverOrder")
public ApiResult<PageData<WmsSrmOrder>> searchDeliverOrder(@Valid @RequestBody @NotNull SearchDeliverOrderQO request){
return ApiResult.success(srmOrderService.search(request));
}
/**
* 获取送货单详情
* @param id 送货单id
*/
@GetMapping("getDeliverOrderItems")
public ApiResult<List<WmsSrmOrderItem>> getDeliverOrderItems(@Valid @RequestParam @NotNull Long id){
return ApiResult.success(srmOrderItemService.getByDeliverOrderId(id));
}
/**
* 逐个打印送货单
* @param id 要打印的送货单id
*/
@GetMapping("deliver/exportPdfPerPage")
public void exportDeliverOrderPdfPerPage(HttpServletResponse response, @Valid @RequestParam @NotNull Long id) throws Exception {
// List<WmsSrmOrderItem> orders=new ArrayList<>();
// for (int i = 0,count=RandomUtil.randomInt(1,50); i < count; i++) {
// orders.add(new WmsSrmOrderItem()
// .setId(IdUtil.getSnowflakeNextId())
// .setItemCode(RandomUtil.randomNumbers(10))
// .setItemName(RandomUtil.randomString(10))
// .setOrderQty(RandomUtil.randomBigDecimal(new BigDecimal("1"),new BigDecimal("100")))
// );
// }
List<WmsSrmOrderItem> orders = srmOrderItemService.getByDeliverOrderId(id);
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(orders)).throwMessage("没有需要打印的数据");
exportPdfPerPage(convert1(orders),response);
}
/**
* 整张打印送货单
* @param id 要打印的送货单id
*/
@GetMapping("deliver/exportPdfOnePage")
public void exportDeliverOrderPdfOnePage(HttpServletResponse response, @Valid @RequestParam @NotNull Long id) throws Exception {
// List<WmsSrmOrderItem> orders=new ArrayList<>();
// for (int i = 0,count=RandomUtil.randomInt(1,50); i < count; i++) {
// orders.add(new WmsSrmOrderItem()
// .setId(IdUtil.getSnowflakeNextId())
// .setItemCode(RandomUtil.randomNumbers(10))
// .setItemName(RandomUtil.randomString(10))
// .setOrderQty(RandomUtil.randomBigDecimal(new BigDecimal("1"),new BigDecimal("100")))
// );
// }
List<WmsSrmOrderItem> orders = srmOrderItemService.getByDeliverOrderId(id);
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(orders)).throwMessage("没有需要打印的数据");
exportPdfInAll(convert1(orders),response);
}
private List<DeliverNormalOrderItemDTO> convert1(List<WmsSrmOrderItem> orders) throws Exception {
List<DeliverNormalOrderItemDTO> datas = new ArrayList<>();
for (WmsSrmOrderItem order : orders) {
DeliverNormalOrderItemDTO dto = new DeliverNormalOrderItemDTO();
dto.setMaterialNo(order.getItemCode());
dto.setMaterialDesc(order.getItemName());
dto.setIndex(0);
dto.setPrintNo(order.getId() + "-" + 0);
dto.setPrintNum(DF.format(order.getOrderQty()));
dto.setQrCode("data:image/png;base64,"+Base64.getEncoder().encodeToString(QRCodeUtil.generateQRCode(generateQRContent(dto), 100, 100)));
datas.add(dto);
}
return datas;
}
private void exportPdfPerPage(List<DeliverNormalOrderItemDTO> datas, HttpServletResponse response) throws Exception {
Map<String, Object> variables = new HashMap<>();
variables.put("list", datas);
String html = ThymeleafUtil.generator("/template/qrcode/", "dp-1", ".html", variables);
URL baseUrl = new ClassPathResource("template/qrcode/").getURL();
PdfGeneratorUtil.generatePdf("普通物料条码(逐个)", html, baseUrl.toString(), response);
}
private void exportPdfInAll(List<DeliverNormalOrderItemDTO> datas, HttpServletResponse response) throws Exception {
Map<String, Object> variables = new HashMap<>();
variables.put("list", datas);
String html = ThymeleafUtil.generator("/template/qrcode/", "dp-2", ".html", variables);
URL baseUrl = new ClassPathResource("template/qrcode/").getURL();
PdfGeneratorUtil.generatePdf("普通物料条码(整张)", html, baseUrl.toString(), response);
}
}

View File

@ -16,7 +16,7 @@ public class QRCodeUtil {
// 配置二维码参数
Hashtable<EncodeHintType, Object> hints = new Hashtable<>();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
hints.put(EncodeHintType.MARGIN, 0);
// 生成二维码矩阵

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

View File

@ -20,7 +20,7 @@
<body>
<div class="package-diagram">
<div class="package-logo">
<img src="../img/homeLogo1.png" />
<img src="../img/logo1.png" />
</div>
<table class="el-table el-table--small">
<td class="el-table__cell">

View File

@ -7,11 +7,12 @@
<style>
@media print {
body {
font-size: 12pt;
font-size: 9pt;
}
}
body {
font-family: SimSun, Arial, sans-serif;
font-size: 9pt;
margin: 0;
padding: 0;
}
@ -19,29 +20,36 @@
margin: 0 auto;
border-collapse: collapse;
}
table, th, td {
border: 1px solid #333;
}
.title {
font-weight: bold;
font-size: 1.2em;
text-align: center;
display: table-cell;
vertical-align: middle;
}
.div-with-border {
border-bottom: 1px solid #000;
padding: 5px;
width: 200px;
text-align: left;
}
</style>
</head>
<body>
<table th:each="item, iterStat : ${list}" th:style="${iterStat.index == 0} ? 'page-break-before: auto;' : 'page-break-before: always;'">
<tr>
<td style="width: 150px;text-align: center">
<td style="width: 150px;text-align: center;padding: 5px;">
<img height="120" th:src="${item.qrCode}" width="120"/>
<div th:text="${item.printNo}">20250227100950-0</div>
</td>
<td style="padding: 10px;width: 200px;text-align: left;vertical-align: top">
<div class="title"><img alt="二维码" height="20" src="../../img/ico.png" style="margin-right: 5px;" width="20"/>NFLG</div>
<div>SAP编码: <span th:text="${item.materialNo}"></span></div>
<div>名称: <span th:text="${item.materialDesc}"></span></div>
<div>数量: <span th:text="${item.printNum}"></span></div>
<div>批次号: <span th:text="${item.batchNo}"></span></div>
<td style="width: 200px;text-align: left;vertical-align: top">
<div class="title div-with-border"><img alt="logo" height="20" src="../../img/logo2.png" style="margin-right: 5px;" /></div>
<div class="div-with-border">SAP编码: <span th:text="${item.materialNo}"></span></div>
<div class="div-with-border">名称: <span th:text="${item.materialDesc}"></span></div>
<div class="div-with-border">数量: <span th:text="${item.printNum}"></span></div>
<div style="padding: 5px;">批次号: <span th:text="${item.batchNo}"></span></div>
</td>
</tr>
</table>

View File

@ -0,0 +1,73 @@
<!DOCTYPE html>
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<title>普通物料标签</title>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<style>
body {
font-size: 9px;
font-family: SimSun, Arial, sans-serif;
font-weight: normal;
font-style: normal;
}
.container {
width: 100%;
overflow: hidden; /* 清除浮动 */
}
.item {
float: left;
width: 23%;
box-sizing: border-box;
margin: 5px;
page-break-inside: avoid;
}
/* 清除浮动 */
.container::after {
content: "";
display: table;
clear: both;
}
table {
border-collapse: collapse;
width: 100%;
}
table, th, td {
border: 1px solid #333;
}
th, td {
padding: 5px;
text-align: left;
}
</style>
</head>
<body>
<div style="width: 100%">
<div style="text-align: center">
<img alt="" src="../../img/logo1.png" style="width: 300px;" />
</div>
<div class="container">
<div class="item" th:each="item : ${list}">
<table>
<tr>
<td style="text-align: center"><img alt="" style="height: 100px;margin: 5px;" th:src="${item.qrCode}"/></td>
</tr>
<tr>
<td><span>SAP编码: <span style="display: inline;" th:text="${item.materialNo}"></span></span></td>
</tr>
<tr>
<td><span>名称: <span style="display: inline;" th:text="${item.materialDesc}"></span></span></td>
</tr>
<tr>
<td><span>数量: <span style="display: inline;" th:text="${item.printNum}"></span></span></td>
</tr>
</table>
</div>
</div>
</div>
</body>
</html>

View File

@ -7,7 +7,6 @@ public interface ThrowBusinessExceptionFunction {
* 抛出异常信息
*
* @param message 异常信息
* @return void
**/
void throwMessage(String message);
}

View File

@ -1,10 +1,12 @@
package com.nflg.wms.common.pojo.dto;
import lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
@Data
@Accessors(chain = true)
public class DeliverNormalOrderItemDTO {
/**
@ -27,6 +29,11 @@ public class DeliverNormalOrderItemDTO {
*/
private Long workbenchId;
/**
* 供应商代码
*/
private String supplierCode;
/**
* 物料编号
*/
@ -90,7 +97,7 @@ public class DeliverNormalOrderItemDTO {
/**
* 打印数量
*/
private BigDecimal printNum;
private String printNum;
/**
* 打印编号

View File

@ -24,4 +24,9 @@ public class DeliverNormalOrderSearchQO extends SearchBaseQO {
* 订单号
*/
private String externalOrderNo;
/**
* 物料编号
*/
private String materialNo;
}

View File

@ -0,0 +1,12 @@
package com.nflg.wms.common.pojo.qo;
import lombok.Data;
@Data
public class SearchDeliverOrderQO extends SearchBaseQO {
/**
* 送货单号
*/
private String orderNo;
}

View File

@ -1,11 +1,13 @@
package com.nflg.wms.common.pojo.vo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@Accessors(chain = true)
public class DeliverNormalOrderVO {
private Long id;
@ -23,7 +25,7 @@ public class DeliverNormalOrderVO {
/**
* 供应商代码
*/
private Long supplierCode;
private String supplierCode;
/**
* 供应商名称

View File

@ -1,17 +1,21 @@
package com.nflg.wms.repository.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.wms.common.pojo.vo.SRMOrderItemVO;
import com.nflg.wms.repository.entity.WmsSrmOrderItem;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import java.util.List;
/**
* <p>
* 服务类
* 服务类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface IWmsSrmOrderItemService extends IService<WmsSrmOrderItem> {
SRMOrderItemVO getOrderItem(Long orderId);
List<WmsSrmOrderItem> getByDeliverOrderId(@Valid @NotNull Long id);
}

View File

@ -2,11 +2,10 @@ package com.nflg.wms.repository.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.wms.common.pojo.PageData;
import com.nflg.wms.common.pojo.qo.SRMOrderSearchQO;
import com.nflg.wms.common.pojo.vo.SrmOrderVO;
import com.nflg.wms.common.pojo.qo.SearchDeliverOrderQO;
import com.nflg.wms.repository.entity.WmsSrmOrder;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
/**
* <p>
@ -18,5 +17,5 @@ import jakarta.validation.Valid;
*/
public interface IWmsSrmOrderService extends IService<WmsSrmOrder> {
IPage<SrmOrderVO> search(@Valid SRMOrderSearchQO request);
IPage<WmsSrmOrder> search(@Valid @NotNull SearchDeliverOrderQO request);
}

View File

@ -1,12 +1,13 @@
package com.nflg.wms.repository.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.wms.common.pojo.vo.SRMOrderItemVO;
import com.nflg.wms.repository.entity.WmsSrmOrderItem;
import com.nflg.wms.repository.mapper.WmsSrmOrderItemMapper;
import com.nflg.wms.repository.service.IWmsSrmOrderItemService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 服务实现类
@ -19,7 +20,7 @@ import org.springframework.stereotype.Service;
public class WmsSrmOrderItemServiceImpl extends ServiceImpl<WmsSrmOrderItemMapper, WmsSrmOrderItem> implements IWmsSrmOrderItemService {
@Override
public SRMOrderItemVO getOrderItem(Long orderId) {
return baseMapper.getOrderItem(orderId);
public List<WmsSrmOrderItem> getByDeliverOrderId(Long id) {
return lambdaQuery().eq(WmsSrmOrderItem::getOrderId, id).list();
}
}

View File

@ -1,18 +1,20 @@
package com.nflg.wms.repository.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.wms.common.pojo.qo.SRMOrderSearchQO;
import com.nflg.wms.common.pojo.vo.SrmOrderVO;
import com.nflg.wms.common.pojo.qo.SearchDeliverOrderQO;
import com.nflg.wms.repository.entity.WmsSrmOrder;
import com.nflg.wms.repository.mapper.WmsSrmOrderMapper;
import com.nflg.wms.repository.service.IWmsSrmOrderService;
import org.springframework.stereotype.Service;
import java.util.Objects;
/**
* <p>
* 服务实现类
* 服务实现类
* </p>
*
* @author 代码生成器生成
@ -22,7 +24,11 @@ import org.springframework.stereotype.Service;
public class WmsSrmOrderServiceImpl extends ServiceImpl<WmsSrmOrderMapper, WmsSrmOrder> implements IWmsSrmOrderService {
@Override
public IPage<SrmOrderVO> search(SRMOrderSearchQO request) {
return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize()));
public IPage<WmsSrmOrder> search(SearchDeliverOrderQO request) {
return lambdaQuery()
.eq(StrUtil.isNotBlank(request.getOrderNo()),WmsSrmOrder::getNoteNum, request.getOrderNo())
.ge(Objects.nonNull(request.getStartDate()), WmsSrmOrder::getCreateTime, request.getStartDate())
.le(Objects.nonNull(request.getEndDate()), WmsSrmOrder::getCreateTime, request.getEndDate())
.page(new Page<>(request.getPage(),request.getPageSize()));
}
}

View File

@ -25,6 +25,9 @@
<if test="request.endDate!=null">
and o.create_time &lt;= #{request.endDate}
</if>
<if test="request.materialNo!=null and request.materialNo!=''">
and o.material_no like concat('%', #{request.materialNo}, '%')
</if>
</where>
</select>