This commit is contained in:
parent
57377c33c5
commit
9cd3aae9a6
|
|
@ -1,19 +1,29 @@
|
||||||
package com.nflg.wms.admin.controller;
|
package com.nflg.wms.admin.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.core.convert.Convert;
|
||||||
|
import com.nflg.wms.admin.service.CenterOutboundControllerService;
|
||||||
|
import com.nflg.wms.admin.service.CenterReturnControllerService;
|
||||||
import com.nflg.wms.common.pojo.ApiResult;
|
import com.nflg.wms.common.pojo.ApiResult;
|
||||||
import com.nflg.wms.common.pojo.PageData;
|
import com.nflg.wms.common.pojo.PageData;
|
||||||
import com.nflg.wms.common.pojo.qo.C_MaterialOutboundItemQO;
|
import com.nflg.wms.common.pojo.qo.*;
|
||||||
import com.nflg.wms.common.pojo.qo.C_MaterialOutboundSearchQO;
|
import com.nflg.wms.common.pojo.vo.*;
|
||||||
import com.nflg.wms.common.pojo.qo.C_MaterialReturnSearchQO;
|
import com.nflg.wms.common.util.PageUtil;
|
||||||
import com.nflg.wms.common.pojo.vo.C_MaterialOutboundVO;
|
import com.nflg.wms.repository.entity.WmsCenterOutboundItem;
|
||||||
import com.nflg.wms.common.pojo.vo.C_MaterialReturnItemVO;
|
import com.nflg.wms.repository.entity.WmsCenterOutboundScan;
|
||||||
import com.nflg.wms.common.pojo.vo.C_MaterialReturnVO;
|
import com.nflg.wms.repository.entity.WmsCenterReturnItem;
|
||||||
import com.nflg.wms.common.pojo.vo.ScanCodeVO;
|
import com.nflg.wms.repository.service.IWmsCenterOutboundItemService;
|
||||||
|
import com.nflg.wms.repository.service.IWmsCenterOutboundScanService;
|
||||||
|
import com.nflg.wms.repository.service.IWmsCenterOutboundService;
|
||||||
import com.nflg.wms.starter.annotation.ApiMark;
|
import com.nflg.wms.starter.annotation.ApiMark;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 中心领料单
|
* 中心领料单
|
||||||
|
|
@ -21,35 +31,169 @@ import java.util.List;
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/center/outbound")
|
@RequestMapping("/center/outbound")
|
||||||
public class CeneterOutboundControlelr {
|
public class CeneterOutboundControlelr {
|
||||||
|
@Resource
|
||||||
|
private IWmsCenterOutboundService wmsCenterOutboundService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IWmsCenterOutboundItemService wmsCenterOutboundItemService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IWmsCenterOutboundScanService wmsCenterOutboundScanService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CenterOutboundControllerService outboundControllerService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询领料单列表
|
||||||
|
*
|
||||||
|
* @param request 领料单搜索请求参数对象,包含分页信息和搜索条件
|
||||||
|
* @return 返回分页的领料单数据,包含领料单列表和分页信息
|
||||||
|
*/
|
||||||
@PostMapping("search")
|
@PostMapping("search")
|
||||||
@ApiMark(moduleName = "中心领料单管理", apiName = "领料单列表")
|
@ApiMark(moduleName = "中心领料单管理", apiName = "领料单列表")
|
||||||
public ApiResult<PageData<C_MaterialOutboundVO>> search(@Valid @RequestBody C_MaterialOutboundSearchQO request) {
|
public ApiResult<PageData<C_MaterialOutboundVO>> search(@Valid @RequestBody C_MaterialOutboundSearchQO request) {
|
||||||
// return ApiResult.success(wmsSrmOrderService.search(request));
|
// 调用服务层查询领料单数据,并转换为前端需要的VO对象格式
|
||||||
return null;
|
PageData<C_MaterialOutboundVO> pageData = PageUtil.convert(wmsCenterOutboundService.search(request), d -> Convert.convert(C_MaterialOutboundVO.class, d));
|
||||||
|
return ApiResult.success(pageData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取领料单详情
|
||||||
|
*
|
||||||
|
* @param orderId 领料单ID
|
||||||
|
* @return 领料单明细项列表
|
||||||
|
*/
|
||||||
//收货单详情
|
//收货单详情
|
||||||
@GetMapping("getOrderItem")
|
@GetMapping("getOrderItem")
|
||||||
@ApiMark(moduleName = "中心领料单管理", apiName = "领料单详情")
|
@ApiMark(moduleName = "中心领料单管理", apiName = "领料单详情")
|
||||||
public ApiResult<C_MaterialOutboundItemQO> getOrderItem(@RequestParam Long orderId) {
|
public ApiResult<List<C_MaterialOutboundItemVO>> getOrderItem(@RequestParam Long orderId) {
|
||||||
return null;
|
// 查询退库单对应的明细项
|
||||||
// return ApiResult.success(wmsSrmOrderItemService.getOrderItem(orderId));
|
List<WmsCenterOutboundItem> items = wmsCenterOutboundItemService.lambdaQuery()
|
||||||
|
.eq(WmsCenterOutboundItem::getOrderId, orderId)
|
||||||
|
.list();
|
||||||
|
|
||||||
|
// 如果明细项为空,返回空列表
|
||||||
|
if (CollectionUtil.isEmpty(items)) {
|
||||||
|
return ApiResult.success(Collections.emptyList());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将明细项转换为VO对象
|
||||||
|
List<C_MaterialOutboundItemVO> vos = items.stream()
|
||||||
|
.map(this::convertToVO)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
return ApiResult.success(vos);
|
||||||
|
}
|
||||||
|
|
||||||
|
private C_MaterialOutboundItemVO convertToVO(WmsCenterOutboundItem item) {
|
||||||
|
C_MaterialOutboundItemVO vo = new C_MaterialOutboundItemVO();
|
||||||
|
if (item != null) {
|
||||||
|
vo.setId(item.getId());
|
||||||
|
vo.setOrderId(item.getOrderId());
|
||||||
|
vo.setReservedNumberId(item.getReservedNumberId());
|
||||||
|
vo.setMaterialNo(item.getMaterialNo());
|
||||||
|
vo.setMaterialDesc(item.getMaterialDesc());
|
||||||
|
vo.setUnit(item.getUnit());
|
||||||
|
vo.setFactory(item.getFactory());
|
||||||
|
vo.setQty(item.getQty());
|
||||||
|
vo.setWarehouseNumber(item.getWarehouseNumber());
|
||||||
|
vo.setQty(item.getQty());
|
||||||
|
}
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取物料的扫码信息
|
||||||
|
*
|
||||||
|
* @param orderItemId 订单项ID
|
||||||
|
* @return 返回扫码信息列表
|
||||||
|
*/
|
||||||
|
@GetMapping("getScanCodes")
|
||||||
|
@ApiMark(moduleName = "中心领料单管理", apiName = "条码详情")
|
||||||
|
public ApiResult<List<ScanCodeVO>> getScanCodes(@RequestParam String orderItemId) {
|
||||||
|
// 查询退库单对应的明细项
|
||||||
|
List<WmsCenterOutboundScan> items = wmsCenterOutboundScanService.lambdaQuery()
|
||||||
|
.eq(WmsCenterOutboundScan::getItemId, orderItemId)
|
||||||
|
.list();
|
||||||
|
|
||||||
|
// 如果明细项为空,返回空列表
|
||||||
|
if (CollectionUtil.isEmpty(items)) {
|
||||||
|
return ApiResult.success(Collections.emptyList());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将明细项转换为VO对象
|
||||||
|
List<ScanCodeVO> vos = items.stream()
|
||||||
|
.map(this::convertToScanCodeVO)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
return ApiResult.success(vos);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private ScanCodeVO convertToScanCodeVO(WmsCenterOutboundScan item) {
|
||||||
|
ScanCodeVO vo = new ScanCodeVO();
|
||||||
|
if (item != null) {
|
||||||
|
vo.setCodeId(item.getCodeId());
|
||||||
|
vo.setCodeNum(item.getCodeNum());
|
||||||
|
vo.setBatchNumber(item.getBatchNumber());
|
||||||
|
vo.setSerialNumber(item.getSerialNumber());
|
||||||
|
vo.setCodeContent(item.getCodeContent());
|
||||||
|
}
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据预留单号查询出库信息
|
||||||
|
*
|
||||||
|
* @param reservedNumber 预留单号
|
||||||
|
* @return 出库信息列表的API结果
|
||||||
|
*/
|
||||||
|
@PostMapping("getOutboundItems")
|
||||||
|
@ApiMark(moduleName = "中心领料单管理", apiName = "从SAP查询中心领料单信息")
|
||||||
|
public ApiResult<List<C_MaterialOutboundSAPItemVO>> getOutboundItems(@RequestParam String reservedNumber) {
|
||||||
|
// 查询预留单对应的出库项信息
|
||||||
|
List<C_MaterialOutboundSAPItemVO> sapItems = outboundControllerService.getOrderItem(reservedNumber);
|
||||||
|
|
||||||
|
// 如果查询结果为空,则返回空列表
|
||||||
|
if (Objects.isNull(sapItems) || CollectionUtil.isEmpty(sapItems)) {
|
||||||
|
return ApiResult.success(Collections.emptyList());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 返回查询到的出库信息列表
|
||||||
|
return ApiResult.success(sapItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 根据预留单号查询出库信息
|
|
||||||
|
|
||||||
//确认出库
|
//确认出库
|
||||||
|
|
||||||
// 获取出库单列表信息
|
/**
|
||||||
|
* 确认出库操作
|
||||||
// 获取出库单详情信息
|
*
|
||||||
|
* @param request 出库请求参数,包含出库物料信息,必须经过验证
|
||||||
//获取物料的扫码信息
|
* @return ApiResult<Void> 操作结果,成功时返回空数据的API结果
|
||||||
@GetMapping("getScanCodes")
|
*/
|
||||||
@ApiMark(moduleName = "中心领料单管理", apiName = "条码详情")
|
@PostMapping("confirmOutbound")
|
||||||
public List<ScanCodeVO> getScanCodes(@RequestParam String orderItemId) {
|
@ApiMark(moduleName = "中心领料单管理", apiName = "出库确认")
|
||||||
return null;
|
public ApiResult<Void> confirmOutbound(@Valid @RequestBody C_MaterialOutboundQO request) {
|
||||||
// return wmsSrmOrderItemService.getScanCodes(orderItemId);
|
// 调用出库服务执行确认出库操作
|
||||||
|
outboundControllerService.confirmOutbound(request);
|
||||||
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
// 获取物料出库的推荐批次(根据物料编号+仓库+工厂+数量 按照有效期和批次号进行升序排序)
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取推荐物料出库项列表
|
||||||
|
*
|
||||||
|
* @param request 推荐项查询参数对象,包含查询条件
|
||||||
|
* @return ApiResult<List < C_MaterialOutboundreCommendationItemVO>> 包含推荐物料出库项列表的API结果对象
|
||||||
|
*/
|
||||||
|
@PostMapping("getCommendationItems")
|
||||||
|
@ApiMark(moduleName = "中心领料单管理", apiName = "获取出库的建议内容")
|
||||||
|
public ApiResult<List<C_MaterialOutboundreCommendationItemVO>> getCommendationItems(@Valid @RequestBody CommendationItemQO request) {
|
||||||
|
// 调用出库控制器服务获取推荐项数据并返回成功结果
|
||||||
|
return ApiResult.success(outboundControllerService.getCommendationItems(request));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ public class CenterReturnController {
|
||||||
@ApiMark(moduleName = "中心物料退库管理", apiName = "退库单列表")
|
@ApiMark(moduleName = "中心物料退库管理", apiName = "退库单列表")
|
||||||
public ApiResult<PageData<C_MaterialReturnVO>> search(@Valid @RequestBody C_MaterialReturnSearchQO request) {
|
public ApiResult<PageData<C_MaterialReturnVO>> search(@Valid @RequestBody C_MaterialReturnSearchQO request) {
|
||||||
// 调用服务层查询退库单数据,并转换为前端需要的VO对象格式
|
// 调用服务层查询退库单数据,并转换为前端需要的VO对象格式
|
||||||
PageData<C_MaterialReturnVO> pageData = PageUtil.convert(wmsCenterReturnService.searchDictionary(request), d -> Convert.convert(C_MaterialReturnVO.class, d));
|
PageData<C_MaterialReturnVO> pageData = PageUtil.convert(wmsCenterReturnService.search(request), d -> Convert.convert(C_MaterialReturnVO.class, d));
|
||||||
return ApiResult.success(pageData);
|
return ApiResult.success(pageData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -147,6 +147,7 @@ public class CenterReturnController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据预留单号查询退货信息
|
* 根据预留单号查询退货信息
|
||||||
|
*
|
||||||
* @param reservedNumber 预留单号
|
* @param reservedNumber 预留单号
|
||||||
* @return ApiResult<C_SAPMaterialReturnVO> 退货信息结果封装
|
* @return ApiResult<C_SAPMaterialReturnVO> 退货信息结果封装
|
||||||
* @throws JCoException SAP连接异常
|
* @throws JCoException SAP连接异常
|
||||||
|
|
|
||||||
|
|
@ -26,20 +26,19 @@ public class BasdeSerialNumberControllerService {
|
||||||
)
|
)
|
||||||
public String generateSerialNumber(Integer businessType) {
|
public String generateSerialNumber(Integer businessType) {
|
||||||
String currentDate = LocalDate.now().format(DATE_FORMATTER);
|
String currentDate = LocalDate.now().format(DATE_FORMATTER);
|
||||||
int retryCount = 0;
|
|
||||||
LambdaQueryWrapper<BasdeSerialNumber> queryWrapper = new LambdaQueryWrapper<>();
|
|
||||||
queryWrapper.eq(BasdeSerialNumber::getBusinessType, businessType)
|
|
||||||
.eq(BasdeSerialNumber::getCurrentDateStr, currentDate);
|
|
||||||
|
|
||||||
BasdeSerialNumber serialNumber = basdeSerialNumberService.lambdaQuery()
|
BasdeSerialNumber serialNumber = basdeSerialNumberService.lambdaQuery()
|
||||||
.eq(BasdeSerialNumber::getBusinessType, businessType)
|
.eq(BasdeSerialNumber::getBusinessType, businessType)
|
||||||
.eq(BasdeSerialNumber::getCurrentDateStr, currentDate)
|
|
||||||
.one();
|
.one();
|
||||||
|
|
||||||
if (Objects.isNull(serialNumber)) {
|
if (Objects.isNull(serialNumber)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
int nextSerial = serialNumber.getMaxSerial() + 1;
|
int nextSerial = 0;
|
||||||
|
if (serialNumber.getCurrentDateStr().equals(currentDate)) {
|
||||||
|
nextSerial = serialNumber.getMaxSerial();
|
||||||
|
}
|
||||||
|
nextSerial = nextSerial + 1;
|
||||||
serialNumber.setMaxSerial(nextSerial);
|
serialNumber.setMaxSerial(nextSerial);
|
||||||
serialNumber.setCurrentDateStr(currentDate);
|
serialNumber.setCurrentDateStr(currentDate);
|
||||||
basdeSerialNumberService.updateById(serialNumber);
|
basdeSerialNumberService.updateById(serialNumber);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
package com.nflg.wms.admin.service;
|
||||||
|
|
||||||
|
import com.nflg.wms.common.pojo.dto.SapImportResultDTO;
|
||||||
|
import com.nflg.wms.common.pojo.qo.C_MaterialOutboundQO;
|
||||||
|
import com.nflg.wms.common.pojo.qo.CommendationItemQO;
|
||||||
|
import com.nflg.wms.common.pojo.vo.C_MaterialOutboundSAPItemVO;
|
||||||
|
import com.nflg.wms.common.pojo.vo.C_MaterialOutboundreCommendationItemVO;
|
||||||
|
import com.nflg.wms.repository.service.IWmsCenterOutboundItemService;
|
||||||
|
import com.nflg.wms.repository.service.IWmsCenterOutboundScanService;
|
||||||
|
import com.nflg.wms.repository.service.IWmsCenterOutboundService;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class CenterOutboundControllerService {
|
||||||
|
@Resource
|
||||||
|
private IWmsCenterOutboundService wmsCenterOutboundService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IWmsCenterOutboundItemService wmsCenterOutboundItemService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IWmsCenterOutboundScanService wmsCenterOutboundScanService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SapService sapService;
|
||||||
|
|
||||||
|
public List<C_MaterialOutboundSAPItemVO> getOrderItem(String reservedNumber) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void confirmOutbound(C_MaterialOutboundQO request) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<C_MaterialOutboundreCommendationItemVO> getCommendationItems(CommendationItemQO request) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
package com.nflg.wms.common.pojo.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class SapImportResultDTO {
|
||||||
|
//SAP同步的结果
|
||||||
|
private boolean syncStatus;
|
||||||
|
|
||||||
|
//SAP同步失败的错误信息
|
||||||
|
private String syncMsg;
|
||||||
|
}
|
||||||
|
|
@ -3,6 +3,7 @@ package com.nflg.wms.common.pojo.qo;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
|
@ -28,7 +29,7 @@ public class C_MaterialOutboundItemQO {
|
||||||
private String resbMeins;
|
private String resbMeins;
|
||||||
|
|
||||||
// 实际出库数量
|
// 实际出库数量
|
||||||
private String resbErfmg;
|
private BigDecimal resbErfmg;
|
||||||
|
|
||||||
//扫码信息
|
//扫码信息
|
||||||
private List<ScanCodeQO> scanCodes;
|
private List<ScanCodeQO> scanCodes;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
package com.nflg.wms.common.pojo.qo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class CommendationItemQO {
|
||||||
|
//工厂
|
||||||
|
private String factory;
|
||||||
|
//物料编号
|
||||||
|
private String materialNo;
|
||||||
|
// 仓库编号
|
||||||
|
private String warehouseNumber;
|
||||||
|
//出库数量
|
||||||
|
private BigDecimal qty;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,57 @@
|
||||||
|
package com.nflg.wms.common.pojo.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class C_MaterialOutboundSAPItemVO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预留单行号
|
||||||
|
*/
|
||||||
|
private String reservedNumberId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料编号
|
||||||
|
*/
|
||||||
|
private String materialNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料描述
|
||||||
|
*/
|
||||||
|
private String materialDesc;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单位
|
||||||
|
*/
|
||||||
|
private String unit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工厂
|
||||||
|
*/
|
||||||
|
private String factory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 领料数量
|
||||||
|
*/
|
||||||
|
private BigDecimal qty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 默认仓库
|
||||||
|
*/
|
||||||
|
private String warehouseNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 货位编号
|
||||||
|
*/
|
||||||
|
private String binNos;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 推荐物料出库列表
|
||||||
|
*/
|
||||||
|
private List<C_MaterialOutboundreCommendationItemVO> recommendationItems;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
package com.nflg.wms.common.pojo.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class C_MaterialOutboundreCommendationItemVO {
|
||||||
|
/**
|
||||||
|
* 推荐的批次号
|
||||||
|
*/
|
||||||
|
private String recommendationBatchCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 推荐的数量
|
||||||
|
*/
|
||||||
|
private BigDecimal recommendationBatchNum;
|
||||||
|
}
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
package com.nflg.wms.repository.service;
|
package com.nflg.wms.repository.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.nflg.wms.common.pojo.qo.C_MaterialOutboundSearchQO;
|
||||||
import com.nflg.wms.repository.entity.WmsCenterOutbound;
|
import com.nflg.wms.repository.entity.WmsCenterOutbound;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import jakarta.validation.Valid;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
|
|
@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
*/
|
*/
|
||||||
public interface IWmsCenterOutboundService extends IService<WmsCenterOutbound> {
|
public interface IWmsCenterOutboundService extends IService<WmsCenterOutbound> {
|
||||||
|
|
||||||
|
IPage<WmsCenterOutbound> search(@Valid C_MaterialOutboundSearchQO request);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public interface IWmsCenterReturnService extends IService<WmsCenterReturn> {
|
public interface IWmsCenterReturnService extends IService<WmsCenterReturn> {
|
||||||
|
|
||||||
IPage<WmsCenterReturn> searchDictionary(@Valid C_MaterialReturnSearchQO request);
|
IPage<WmsCenterReturn> search(@Valid C_MaterialReturnSearchQO request);
|
||||||
|
|
||||||
void saveReturns(WmsCenterReturn wmsCenterReturn, List<WmsCenterReturnItem> wmsCenterReturnItems, List<WmsCenterReturnScan> wmsCenterReturnScans);
|
void saveReturns(WmsCenterReturn wmsCenterReturn, List<WmsCenterReturnItem> wmsCenterReturnItems, List<WmsCenterReturnScan> wmsCenterReturnScans);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,12 @@
|
||||||
package com.nflg.wms.repository.service.impl;
|
package com.nflg.wms.repository.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.nflg.wms.common.pojo.qo.C_MaterialOutboundSearchQO;
|
||||||
import com.nflg.wms.repository.entity.WmsCenterOutbound;
|
import com.nflg.wms.repository.entity.WmsCenterOutbound;
|
||||||
|
import com.nflg.wms.repository.entity.WmsCenterReturn;
|
||||||
import com.nflg.wms.repository.mapper.WmsCenterOutboundMapper;
|
import com.nflg.wms.repository.mapper.WmsCenterOutboundMapper;
|
||||||
import com.nflg.wms.repository.service.IWmsCenterOutboundService;
|
import com.nflg.wms.repository.service.IWmsCenterOutboundService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
|
@ -17,4 +23,29 @@ import org.springframework.stereotype.Service;
|
||||||
@Service
|
@Service
|
||||||
public class WmsCenterOutboundServiceImpl extends ServiceImpl<WmsCenterOutboundMapper, WmsCenterOutbound> implements IWmsCenterOutboundService {
|
public class WmsCenterOutboundServiceImpl extends ServiceImpl<WmsCenterOutboundMapper, WmsCenterOutbound> implements IWmsCenterOutboundService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IPage<WmsCenterOutbound> search(C_MaterialOutboundSearchQO request) {
|
||||||
|
// 参数非空校验
|
||||||
|
if (request == null) {
|
||||||
|
throw new IllegalArgumentException("请求参数不能为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 分页参数校验
|
||||||
|
int page = request.getPage() <= 0 ? 1 : request.getPage();
|
||||||
|
int pageSize = request.getPageSize() <= 0 ? 10 : request.getPageSize();
|
||||||
|
|
||||||
|
LambdaQueryWrapper<WmsCenterOutbound> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
if (StrUtil.isNotBlank(request.getOrderNumber())) {
|
||||||
|
// 对用户输入进行转义,防止SQL注入
|
||||||
|
String orderNumber = request.getOrderNumber().replace("\\", "\\\\").replace("%", "\\%").replace("_", "\\_");
|
||||||
|
queryWrapper.like(WmsCenterOutbound::getOrderNumber, orderNumber);
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(request.getReservedNumber())) {
|
||||||
|
// 对用户输入进行转义,防止SQL注入
|
||||||
|
String reservedNumber = request.getReservedNumber().replace("\\", "\\\\").replace("%", "\\%").replace("_", "\\_");
|
||||||
|
queryWrapper.like(WmsCenterOutbound::getReservedNumber, reservedNumber);
|
||||||
|
}
|
||||||
|
queryWrapper.orderByDesc(WmsCenterOutbound::getId);
|
||||||
|
return baseMapper.selectPage(new Page<>(page, pageSize), queryWrapper);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ public class WmsCenterReturnServiceImpl extends ServiceImpl<WmsCenterReturnMappe
|
||||||
* @throws IllegalArgumentException 当请求参数为空时抛出异常
|
* @throws IllegalArgumentException 当请求参数为空时抛出异常
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public IPage<WmsCenterReturn> searchDictionary(C_MaterialReturnSearchQO request) {
|
public IPage<WmsCenterReturn> search(C_MaterialReturnSearchQO request) {
|
||||||
// 参数非空校验
|
// 参数非空校验
|
||||||
if (request == null) {
|
if (request == null) {
|
||||||
throw new IllegalArgumentException("请求参数不能为空");
|
throw new IllegalArgumentException("请求参数不能为空");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue