Merge remote-tracking branch '惠信/dev_zhangke' into rakor
This commit is contained in:
commit
4c1d36e6ba
|
|
@ -196,17 +196,18 @@ public class NormalPGIController extends BaseController {
|
|||
|
||||
//数量验证(判断收货数量是否大于了未收数量)
|
||||
VUtil.trueThrowBusinessError(item.getReceiptNum().compareTo(materialInfoInOrder.getTransportNum()) > 0).throwMessage("物料收货数量[" + item.getReceiptNum() + "]大于了未收数量[" + materialInfoInOrder.getTransportNum() + "],订单号:" + item.getPoNum());
|
||||
Long orderItemId = IdUtil.getSnowflakeNextId();
|
||||
//序列号和批次号验证
|
||||
List<SrmMaterialReceiptScanCodes> codes = normalPGIControllerService.validateScanCodes(item, materialInfoInOrder);
|
||||
List<SrmMaterialReceiptScanCodes> codes = normalPGIControllerService.validateScanCodes(item, materialInfoInOrder, orderItemId);
|
||||
if (CollectionUtil.isNotEmpty(codes)) {
|
||||
srmMaterialReceiptScanCodes.addAll(codes);
|
||||
}
|
||||
boolean isQuality = materialInfoInOrder.getKzkri().equals("X");
|
||||
// 如果是质检单
|
||||
if (isQuality) {
|
||||
setQcMaterialSyncDto(qcMaterialSyncDTOS, item, order, codes, materialInfoInOrder, wmsQcReceiveItems, wmsQcReceive.getId());
|
||||
setQcMaterialSyncDto(qcMaterialSyncDTOS, item, order, codes, materialInfoInOrder, wmsQcReceiveItems, wmsQcReceive.getId(), orderItemId);
|
||||
} else {
|
||||
setPoReceive(item, wmsPoReceiptItems, wmsPoReceipt.getId(), materialInfoInOrder);
|
||||
setPoReceive(item, wmsPoReceiptItems, wmsPoReceipt.getId(), materialInfoInOrder, orderItemId);
|
||||
}
|
||||
}
|
||||
// 盘点条码是否重复
|
||||
|
|
@ -333,7 +334,7 @@ public class NormalPGIController extends BaseController {
|
|||
List<ZWM3A17Item1DTO> item1 = zwm3A17DTO.getItem1();
|
||||
List<ZWM3A17Item2DTO> item2 = zwm3A17DTO.getItem2();
|
||||
|
||||
List<SrmMaterialReceiptScanCodes> scanCode = srmMaterialReceiptScanCodesRepository.findByOrderItemId(item.getOrderItemId());
|
||||
List<SrmMaterialReceiptScanCodes> scanCode = srmMaterialReceiptScanCodesRepository.findByReceiveItemId(item.getId());
|
||||
if (CollectionUtil.isNotEmpty(scanCode)) {
|
||||
scanCode = scanCode.stream().filter(code -> code.getIsIntoStorage() == false)
|
||||
.toList();
|
||||
|
|
@ -438,11 +439,12 @@ public class NormalPGIController extends BaseController {
|
|||
private void setPoReceive(SrmMaterialReceiptQO item,
|
||||
List<WmsPoReceiptItem> wmsPoReceiptItems,
|
||||
Long receiveId,
|
||||
SAPSyncParamsDTO materialInfoInOrder
|
||||
SAPSyncParamsDTO materialInfoInOrder,
|
||||
Long receiveItemId
|
||||
) {
|
||||
|
||||
WmsPoReceiptItem receiptItem = new WmsPoReceiptItem()
|
||||
.setId(IdUtil.getSnowflakeNextId())
|
||||
.setId(receiveItemId)
|
||||
.setLineNumber(item.getLineNumber())
|
||||
.setItemCode(item.getItemCode())
|
||||
.setUomCode(materialInfoInOrder.getMeins())
|
||||
|
|
@ -570,7 +572,8 @@ public class NormalPGIController extends BaseController {
|
|||
List<SrmMaterialReceiptScanCodes> codes,
|
||||
SAPSyncParamsDTO materialInfoInOrder,
|
||||
List<WmsQcReceiveItem> wmsQcReceiveItems,
|
||||
Long receiveId
|
||||
Long receiveId,
|
||||
Long receiveItemId
|
||||
) {
|
||||
ZWM3A17DTO zwm3A17DTO = null;
|
||||
QCMaterialSyncDTO qcDto = null;
|
||||
|
|
@ -619,7 +622,7 @@ public class NormalPGIController extends BaseController {
|
|||
setSrmData(srmPushDto, codes, item, materialInfoInOrder);
|
||||
|
||||
WmsQcReceiveItem qmsReceiptItem = new WmsQcReceiveItem()
|
||||
.setId(IdUtil.getSnowflakeNextId())
|
||||
.setId(receiveItemId)
|
||||
.setLineNumber(item.getLineNumber())
|
||||
.setItemCode(item.getItemCode())
|
||||
.setUomCode(materialInfoInOrder.getMeins())
|
||||
|
|
@ -657,10 +660,20 @@ public class NormalPGIController extends BaseController {
|
|||
@ApiMark(moduleName = "送货单管理", apiName = "一键收货查询")
|
||||
public ApiResult<List<BarcodeLessReceivingVO>> getDeliveryByNoScan(@Valid @RequestBody BarcodeLessReceivingSearchQO request) {
|
||||
List<BarcodeLessReceivingVO> list = new ArrayList<>();
|
||||
List<WmsSrmOrder> orders = wmsSrmOrderService.lambdaQuery()
|
||||
.in(WmsSrmOrder::getId, request.getId())
|
||||
List<WmsSrmOrder> orders = null;
|
||||
if (Objects.nonNull(request.getId()) && request.getId() > 0) {
|
||||
orders = wmsSrmOrderService.lambdaQuery()
|
||||
.eq(WmsSrmOrder::getId, request.getId())
|
||||
.eq(WmsSrmOrder::getIsCompleted, false)
|
||||
.list();
|
||||
} else {
|
||||
orders = wmsSrmOrderService.lambdaQuery()
|
||||
.eq(WmsSrmOrder::getNoteNum, request.getOrderNo())
|
||||
.eq(WmsSrmOrder::getIsCompleted, false)
|
||||
.list();
|
||||
request.setId(CollectionUtil.isNotEmpty(orders) ? orders.get(0).getId() : 0L);
|
||||
}
|
||||
|
||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(orders)).throwMessage("不存在未完成收货的物料!");
|
||||
// 查找订单信息
|
||||
List<WmsSrmOrderItem> items = wmsSrmOrderItemService.lambdaQuery()
|
||||
|
|
@ -692,10 +705,12 @@ public class NormalPGIController extends BaseController {
|
|||
order.getSupplierNum(),
|
||||
item.getItemCode(), item.getPoLineNumber());
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(materialInfoInOrder)).throwMessage("当前物料信息【" + item.getItemCode() + "】,订单号【" + item.getPoNum() + "】,供应商【" + order.getSupplierName() + "】在SAP中搜索不到有效信息");
|
||||
String batchNumber = (materialInfoInOrder.getLbprt().equals("2")
|
||||
|| materialInfoInOrder.getLbprt().equals("4")) ? NoUtil.getBatchNo(order.getSupplierNum()) : "";
|
||||
qo.setItemName(materialInfoInOrder.getMaktx());
|
||||
qo.setUomCode(materialInfoInOrder.getMeins());
|
||||
qo.setReceivedWarehouse(materialInfoInOrder.getWarehouseNo());
|
||||
qo.setBatchNumber(NoUtil.getBatchNo(order.getSupplierNum()));
|
||||
qo.setBatchNumber(batchNumber);
|
||||
qo.setBinNos(materialInfoInOrder.getBinNos());
|
||||
qo.setTransportNum(materialInfoInOrder.getTransportNum());
|
||||
qo.setLbprt(materialInfoInOrder.getLbprt());
|
||||
|
|
@ -707,7 +722,9 @@ public class NormalPGIController extends BaseController {
|
|||
|
||||
private List<SrmMaterialReceiptNoScanCodes> validateNoScanCodes(BarcodeLessReceivingVO item,
|
||||
SAPSyncParamsDTO materialInfoInOrder,
|
||||
List<SrmMaterialReceiptScanCodes> scanCodeQOS) {
|
||||
List<SrmMaterialReceiptScanCodes> scanCodeQOS
|
||||
, Long receiveItemId
|
||||
) {
|
||||
String lbprt = materialInfoInOrder.getLbprt();
|
||||
//判断序列号、批次号是否规范
|
||||
// 1 - 批次号为空,序列号为空
|
||||
|
|
@ -728,19 +745,22 @@ public class NormalPGIController extends BaseController {
|
|||
}
|
||||
List<SrmMaterialReceiptNoScanCodes> srmMaterialReceiptScanCodes = new ArrayList<>();
|
||||
List<String> codeIds = new ArrayList<>();
|
||||
String batchCode = Objects.isNull(item.getBatchNumber()) ? "" : item.getBatchNumber();
|
||||
if (StrUtil.isBlank(item.getSerialNumbers())) {
|
||||
String codeContent = item.getItemCode() + "&" + item.getPoNum() + "&" + item.getPoLineNumber() + "&" + item.getLineNumber()
|
||||
+ "&" + item.getNoteNum() + "&" + item.getIuCode() + "&" + item.getSupplierNum() + "&" + item.getUnRecieveQty()
|
||||
+ "&" + item.getUomCode() + "&" + item.getReceivedWarehouse() + "&" + item.getBatchNumber()
|
||||
+ "&" + item.getUomCode() + "&" + item.getReceivedWarehouse() + "&" + batchCode
|
||||
+ "&" + item.getSerialNumbers() + "&" + LocalDateTime.now();
|
||||
String codeId = DigestUtil.md5Hex(codeContent);
|
||||
srmMaterialReceiptScanCodes.add(new SrmMaterialReceiptNoScanCodes()
|
||||
.setCodeId(codeId)
|
||||
.setOrderNo(item.getNoteNum())
|
||||
.setOrderItemId(item.getId())
|
||||
.setBatchNumber(batchCode)
|
||||
.setCodeNum(item.getUnRecieveQty())
|
||||
.setSerialNumbers(item.getSerialNumbers())
|
||||
.setCodeContent(codeContent)
|
||||
.setReceiveItemId(receiveItemId)
|
||||
.setIsIntoStorage(false));
|
||||
|
||||
scanCodeQOS.add(new SrmMaterialReceiptScanCodes()
|
||||
|
|
@ -748,6 +768,8 @@ public class NormalPGIController extends BaseController {
|
|||
.setOrderNo(item.getNoteNum())
|
||||
.setOrderItemId(item.getId())
|
||||
.setIsIntoStorage(false)
|
||||
.setBatchNumber(batchCode)
|
||||
.setReceiveItemId(receiveItemId)
|
||||
.setCodeNum(item.getUnRecieveQty())
|
||||
.setBatchNumber(item.getBatchNumber())
|
||||
.setSerialNumbers(item.getSerialNumbers())
|
||||
|
|
@ -762,24 +784,29 @@ public class NormalPGIController extends BaseController {
|
|||
String codeContent = item.getItemCode() + "&" + item.getPoNum() + "&" + item.getPoLineNumber()
|
||||
+ "&" + item.getLineNumber()
|
||||
+ "&" + item.getNoteNum() + "&" + item.getIuCode() + "&" + item.getSupplierNum() + "&1"
|
||||
+ "&" + item.getUomCode() + "&" + item.getReceivedWarehouse() + "&" + item.getBatchNumber()
|
||||
+ "&" + item.getUomCode() + "&" + item.getReceivedWarehouse() + "&" + batchCode
|
||||
+ "&" + serialNumbers[i] + "&" + LocalDateTime.now();
|
||||
String codeId = DigestUtil.md5Hex(codeContent);
|
||||
srmMaterialReceiptScanCodes.add(new SrmMaterialReceiptNoScanCodes()
|
||||
.setCodeId(codeId)
|
||||
.setOrderNo(item.getNoteNum())
|
||||
.setOrderItemId(item.getId())
|
||||
.setBatchNumber(batchCode)
|
||||
.setCodeNum(new BigDecimal(1))
|
||||
.setSerialNumbers(serialNumbers[i])
|
||||
.setCodeContent(codeContent)
|
||||
.setReceiveItemId(receiveItemId)
|
||||
.setIsIntoStorage(false));
|
||||
|
||||
scanCodeQOS.add(new SrmMaterialReceiptScanCodes()
|
||||
.setCodeId(codeId)
|
||||
.setOrderNo(item.getNoteNum())
|
||||
.setOrderItemId(item.getId())
|
||||
.setBatchNumber(batchCode)
|
||||
.setIsIntoStorage(false)
|
||||
.setCodeNum(new BigDecimal(1))
|
||||
.setBatchNumber(item.getBatchNumber())
|
||||
.setReceiveItemId(receiveItemId)
|
||||
.setSerialNumbers(serialNumbers[i])
|
||||
.setCodeContent(codeContent)
|
||||
);
|
||||
|
|
@ -851,8 +878,9 @@ public class NormalPGIController extends BaseController {
|
|||
VUtil.trueThrowBusinessError(item.getUnRecieveQty().compareTo(materialInfoInOrder.getTransportNum()) > 0)
|
||||
.throwMessage("物料收货数量[" + item.getUnRecieveQty() + "]大于了未收数量[" + materialInfoInOrder.getTransportNum() + "],订单号:" + item.getPoNum());
|
||||
//序列号和批次号验证以及条码信息的组装
|
||||
Long receiveItemId = IdUtil.getSnowflakeNextId();
|
||||
List<SrmMaterialReceiptScanCodes> scanCodeQOS = new ArrayList<>();
|
||||
List<SrmMaterialReceiptNoScanCodes> itemCodes = validateNoScanCodes(item, materialInfoInOrder, scanCodeQOS);
|
||||
List<SrmMaterialReceiptNoScanCodes> itemCodes = validateNoScanCodes(item, materialInfoInOrder, scanCodeQOS, receiveItemId);
|
||||
if (CollectionUtil.isNotEmpty(itemCodes)) {
|
||||
codes.addAll(itemCodes);
|
||||
}
|
||||
|
|
@ -876,18 +904,16 @@ public class NormalPGIController extends BaseController {
|
|||
.setReceiptNum(item.getUnRecieveQty());
|
||||
// 如果是质检单
|
||||
if (isQuality) {
|
||||
setQcMaterialSyncDto(qcMaterialSyncDTOS, materialSyncDTO, order, scanCodeQOS, materialInfoInOrder, wmsQcReceiveItems, wmsQcReceive.getId());
|
||||
setQcMaterialSyncDto(qcMaterialSyncDTOS, materialSyncDTO, order, scanCodeQOS, materialInfoInOrder, wmsQcReceiveItems, wmsQcReceive.getId(), receiveItemId);
|
||||
} else {
|
||||
WmsPoReceipt wmsPoReceipt = wmsPoReceipts.stream().filter(it -> it.getOrderNo().equals(item.getNoteNum()))
|
||||
.findFirst().orElse(null);
|
||||
if (Objects.isNull(wmsPoReceipt)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
setPoReceive(materialSyncDTO, wmsPoReceiptItems, wmsPoReceipt.getId(), materialInfoInOrder);
|
||||
setPoReceive(materialSyncDTO, wmsPoReceiptItems, wmsPoReceipt.getId(), materialInfoInOrder, receiveItemId);
|
||||
}
|
||||
}
|
||||
|
||||
// 盘点条码是否重复
|
||||
Map<String, Long> duplicateCodes = codes.stream()
|
||||
.collect(Collectors.groupingBy(
|
||||
|
|
@ -961,7 +987,7 @@ public class NormalPGIController extends BaseController {
|
|||
|
||||
List<ZWM3A17Item1DTO> item1 = zwm3A17DTO.getItem1();
|
||||
List<ZWM3A17Item2DTO> item2 = zwm3A17DTO.getItem2();
|
||||
List<SrmMaterialReceiptNoScanCodes> scanCode = srmMaterialReceiptNoScanCodesRepository.findByOrderItemId(item.getOrderItemId());
|
||||
List<SrmMaterialReceiptNoScanCodes> scanCode = srmMaterialReceiptNoScanCodesRepository.findByReceiveItemId(item.getId());
|
||||
if (CollectionUtil.isNotEmpty(scanCode)) {
|
||||
scanCode = scanCode.stream().filter(code -> code.getIsIntoStorage() == false)
|
||||
.toList();
|
||||
|
|
@ -972,7 +998,7 @@ public class NormalPGIController extends BaseController {
|
|||
// 库存
|
||||
InventoryDTO inventoryDTO = inventories.stream()
|
||||
.filter(inventoriesDTO -> inventoriesDTO.getMaterialNo().equals(item.getItemCode())
|
||||
&& inventoriesDTO.getBatchNumber().equals(code.getBatchNumber())
|
||||
&& inventoriesDTO.getBatchNumber().equals(Objects.isNull(code.getBatchNumber()) ? "" : code.getBatchNumber())
|
||||
&& inventoriesDTO.getFactoryNo().equals(wmsPoReceipt.getFactoryCode())
|
||||
&& inventoriesDTO.getWarehouseNo().equals(item.getReceivedWarehouse())
|
||||
).findFirst().orElse(null);
|
||||
|
|
@ -982,7 +1008,7 @@ public class NormalPGIController extends BaseController {
|
|||
.setMaterialNo(item.getItemCode())
|
||||
.setFactoryNo(wmsPoReceipt.getFactoryCode())
|
||||
.setWarehouseNo(item.getReceivedWarehouse())
|
||||
.setBatchNumber(code.getBatchNumber())
|
||||
.setBatchNumber(Objects.isNull(code.getBatchNumber()) ? "" : code.getBatchNumber())
|
||||
.setNum(code.getCodeNum());
|
||||
inventories.add(inventoryDTO);
|
||||
} else {
|
||||
|
|
@ -993,7 +1019,7 @@ public class NormalPGIController extends BaseController {
|
|||
dto1.getEBELP().equals(item.getPoLineNumber())
|
||||
&& dto1.getMATNR().equals(item.getItemCode())
|
||||
&& dto1.getMeins().equals(item.getUomCode())
|
||||
&& dto1.getCHARG().equals(code.getBatchNumber())
|
||||
&& dto1.getCHARG().equals(Objects.isNull(code.getBatchNumber()) ? "" : code.getBatchNumber())
|
||||
&& dto1.getWERKS().equals(wmsPoReceipt.getFactoryCode())
|
||||
&& dto1.getLGORT().equals(item.getReceivedWarehouse())
|
||||
).findFirst().orElse(null);
|
||||
|
|
@ -1003,7 +1029,7 @@ public class NormalPGIController extends BaseController {
|
|||
.setMATNR(item.getItemCode())
|
||||
.setERFMG(code.getCodeNum())
|
||||
.setMEINS(item.getUomCode())
|
||||
.setCHARG(code.getBatchNumber())
|
||||
.setCHARG(Objects.isNull(code.getBatchNumber()) ? "" : code.getBatchNumber())
|
||||
.setWERKS(wmsPoReceipt.getFactoryCode())
|
||||
.setLGORT(item.getReceivedWarehouse())
|
||||
.setKZKRI("")
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ public class POReceiptController {
|
|||
@GetMapping("getScanCodes")
|
||||
@ApiMark(moduleName = "采购单入库管理", apiName = "获取扫码的详情信息")
|
||||
public ApiResult<List<PDAScanCodeVO>> getScanCodes(@RequestParam Long orderItemId) {
|
||||
List<SrmMaterialReceiptScanCodes> scanCodes = srmMaterialReceiptCanCodesRepository.findByOrderItemId(orderItemId);
|
||||
List<SrmMaterialReceiptScanCodes> scanCodes = srmMaterialReceiptCanCodesRepository.findByReceiveItemId(orderItemId);
|
||||
List<PDAScanCodeVO> pdas = Convert.toList(PDAScanCodeVO.class, scanCodes);
|
||||
return ApiResult.success(pdas);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ public class QCReceiptController {
|
|||
@GetMapping("getScanCodes")
|
||||
@ApiMark(moduleName = "质检物料入库单", apiName = "获取扫码的详情信息")
|
||||
public ApiResult<List<PDAScanCodeVO>> getScanCodes(@RequestParam Long orderItemId) {
|
||||
List<SrmMaterialReceiptScanCodes> scanCodes = srmMaterialReceiptCanCodesRepository.findByOrderItemId(orderItemId);
|
||||
List<SrmMaterialReceiptScanCodes> scanCodes = srmMaterialReceiptCanCodesRepository.findByReceiveItemId(orderItemId);
|
||||
List<PDAScanCodeVO> pdas = Convert.toList(PDAScanCodeVO.class, scanCodes);
|
||||
return ApiResult.success(pdas);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package com.nflg.wms.admin.controller;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.nflg.wms.admin.service.UserControllerService;
|
||||
import com.nflg.wms.common.pojo.ApiResult;
|
||||
import com.nflg.wms.common.pojo.PageData;
|
||||
|
|
@ -7,12 +9,14 @@ import com.nflg.wms.common.pojo.qo.*;
|
|||
import com.nflg.wms.common.pojo.vo.RoleSimpleVO;
|
||||
import com.nflg.wms.common.pojo.vo.UserSupplierItemVO;
|
||||
import com.nflg.wms.common.pojo.vo.UserSupplierVO;
|
||||
import com.nflg.wms.common.util.VUtil;
|
||||
import com.nflg.wms.repository.entity.DictionaryItem;
|
||||
import com.nflg.wms.starter.BaseController;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import org.postgresql.core.Utils;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
|
@ -155,4 +159,16 @@ public class SupplierController extends BaseController {
|
|||
public void exportSelect(HttpServletResponse response, @RequestBody(required = false) List<Long> ids) throws Exception {
|
||||
userControllerService.exportSupplier(response, ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出供应商
|
||||
* @param request 搜索参数
|
||||
*/
|
||||
@PostMapping("exportall")
|
||||
public void exportALL(HttpServletResponse response, @Valid @RequestBody UserSupplierSearchQO request) throws Exception {
|
||||
request.setPageSize(Integer.MAX_VALUE);
|
||||
IPage<UserSupplierVO> data = userControllerService.searchSupplier(request);
|
||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(data.getRecords())).throwMessage("数据不存在");
|
||||
userControllerService.exportSupplierByFilter(response, data.getRecords());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,12 +17,12 @@ public class SrmMaterialReceiptNoScanCodes {
|
|||
private String id;
|
||||
|
||||
/**
|
||||
* 收货单的单号
|
||||
* 发货单的单号
|
||||
*/
|
||||
private String orderNo;
|
||||
|
||||
/***
|
||||
* 收货单的单行ID号
|
||||
* 发货单的单行ID号
|
||||
*
|
||||
*/
|
||||
private Long orderItemId;
|
||||
|
|
@ -62,4 +62,9 @@ public class SrmMaterialReceiptNoScanCodes {
|
|||
* 是否已上架
|
||||
*/
|
||||
private Boolean IsIntoStorage;
|
||||
|
||||
/**
|
||||
* 收货单的单行ID号
|
||||
*/
|
||||
private Long receiveItemId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,4 +63,8 @@ public class SrmMaterialReceiptScanCodes {
|
|||
*/
|
||||
private Boolean IsIntoStorage;
|
||||
|
||||
/**
|
||||
* 收货单的单行ID号
|
||||
*/
|
||||
private Long receiveItemId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import java.util.List;
|
|||
public interface SrmMaterialReceiptNoScanCodesRepository
|
||||
extends MongoRepository<SrmMaterialReceiptNoScanCodes, String> {
|
||||
List<SrmMaterialReceiptNoScanCodes> findByOrderItemId(Long orderItemId);
|
||||
|
||||
List<SrmMaterialReceiptNoScanCodes> findByReceiveItemId(Long receiveItemId);
|
||||
List<SrmMaterialReceiptNoScanCodes> findByCodeIdIn(List<String> attr0);
|
||||
|
||||
@Query("{ 'codeId' : { $in : ?0 } }")
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import java.util.List;
|
|||
public interface SrmMaterialReceiptScanCodesRepository
|
||||
extends MongoRepository<SrmMaterialReceiptScanCodes, String> {
|
||||
List<SrmMaterialReceiptScanCodes> findByOrderItemId(Long orderItemId);
|
||||
List<SrmMaterialReceiptScanCodes> findByReceiveItemId(Long receiveItemId);
|
||||
|
||||
List<SrmMaterialReceiptScanCodes> findByCodeIdIn(List<String> attr0);
|
||||
|
||||
|
|
|
|||
|
|
@ -167,7 +167,8 @@ public class NormalPGIControllerService {
|
|||
}
|
||||
|
||||
|
||||
public List<SrmMaterialReceiptScanCodes> validateScanCodes(SrmMaterialReceiptQO item, SAPSyncParamsDTO materialInfoInOrder) {
|
||||
public List<SrmMaterialReceiptScanCodes> validateScanCodes(SrmMaterialReceiptQO item
|
||||
, SAPSyncParamsDTO materialInfoInOrder, Long receiveItemId) {
|
||||
String lbprt = materialInfoInOrder.getLbprt();
|
||||
//判断序列号、批次号是否规范
|
||||
// 1 - 批次号为空,序列号为空
|
||||
|
|
@ -199,6 +200,7 @@ public class NormalPGIControllerService {
|
|||
.setCodeId(scanCode.getCodeId())
|
||||
.setCodeNum(scanCode.getCodeNum())
|
||||
.setBatchNumber(scanCode.getBatchNumber())
|
||||
.setReceiveItemId(receiveItemId)
|
||||
.setSerialNumbers(scanCode.getSerialNumbers())
|
||||
.setIsIntoStorage(false)
|
||||
.setCodeContent(scanCode.getCodeContent()));
|
||||
|
|
@ -325,15 +327,15 @@ public class NormalPGIControllerService {
|
|||
.update();
|
||||
}
|
||||
}
|
||||
//修改二维码的入库状态
|
||||
if (CollectionUtil.isNotEmpty(scanCodes)) {
|
||||
List<String> codeIds = scanCodes.stream().map(SrmMaterialReceiptScanCodes::getId).toList();
|
||||
srmMaterialReceiptCanCodesRepository.updateIsIntoStorage(codeIds, true);
|
||||
}
|
||||
// //修改二维码的入库状态
|
||||
// if (CollectionUtil.isNotEmpty(scanCodes)) {
|
||||
// List<String> codeIds = scanCodes.stream().map(SrmMaterialReceiptScanCodes::getId).toList();
|
||||
// srmMaterialReceiptCanCodesRepository.updateIsIntoStorage(codeIds, true);
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Transactional
|
||||
public void takeNoScanDelivery(List<WmsPoReceipt> wmsPoReceipts, List<WmsQcReceive> wmsQcReceives
|
||||
, List<WmsPoReceiptItem> wmsPoReceiptItems
|
||||
, List<WmsQcReceiveItem> wmsQcReceiveItems, List<SrmMaterialReceiptNoScanCodes> codes
|
||||
|
|
@ -355,7 +357,6 @@ public class NormalPGIControllerService {
|
|||
for (WmsPoReceiptItem wmsPoReceiptItem : items) {
|
||||
wmsSrmOrderItemService.addReceiveQty(wmsPoReceiptItem.getOrderItemId(), wmsPoReceiptItem.getReceiptNum());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -378,7 +379,6 @@ public class NormalPGIControllerService {
|
|||
}
|
||||
|
||||
|
||||
|
||||
for (Long orderId : orderIds) {
|
||||
//更新收货单的完结状态
|
||||
List<WmsSrmOrder> orders = wmsSrmOrderService.getUnCompletedItem(orderId);
|
||||
|
|
@ -415,7 +415,7 @@ public class NormalPGIControllerService {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
@Transactional
|
||||
public void takeDeliveryConfirmUnScan(List<WmsPoReceiptItem> receiptItems, List<StorageLocationDTO> storageLocationDTOS,
|
||||
List<InventoryDTO> inventories, List<ZWM3A17DTO> zwm3A17DTOS, Long id,
|
||||
List<SrmMaterialReceiptNoScanCodes> scanCodes) {
|
||||
|
|
@ -460,10 +460,10 @@ public class NormalPGIControllerService {
|
|||
}
|
||||
}
|
||||
//修改二维码的入库状态
|
||||
if (CollectionUtil.isNotEmpty(scanCodes)) {
|
||||
List<String> codeIds = scanCodes.stream().map(SrmMaterialReceiptNoScanCodes::getId).toList();
|
||||
srmMaterialReceiptNoCodesRepository.updateIsIntoStorage(codeIds, true);
|
||||
}
|
||||
// if (CollectionUtil.isNotEmpty(scanCodes)) {
|
||||
// List<String> codeIds = scanCodes.stream().map(SrmMaterialReceiptNoScanCodes::getId).toList();
|
||||
// srmMaterialReceiptNoCodesRepository.updateIsIntoStorage(codeIds, true);
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -542,19 +542,16 @@ public class UserControllerService {
|
|||
List<DictionaryItem> suppliersCategory = dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_SUPPLIERS_CATEGORY);
|
||||
List<UserSupplier> userSuppliers = new ArrayList<>();
|
||||
for (SupplierExcelDTO dto : data) {
|
||||
UserSupplier userSupplier = new UserSupplier();
|
||||
Long typeId = 0L;
|
||||
UserSupplier userSupplier = null;// new UserSupplier();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (Objects.isNull(dto.getSupplierCode())) {
|
||||
sb.append("供应商编号不能为空;");
|
||||
} else if (data.stream().filter(item -> StrUtil.equals(item.getSupplierCode(), dto.getSupplierCode())).count() > 1) {
|
||||
sb.append("供应商编号重复;");
|
||||
} else {
|
||||
userSupplier = userSupplierService.lambdaQuery().eq(UserSupplier::getSupplierCode, dto.getSupplierCode()).one();
|
||||
}
|
||||
if (StrUtil.isBlank(dto.getSupplierName())) {
|
||||
sb.append("供应商名称不能为空;");
|
||||
} else {
|
||||
userSupplier.setSupplierName(dto.getSupplierName());
|
||||
}
|
||||
if (StrUtil.isBlank(dto.getTypeName())) {
|
||||
sb.append("供应商类别不能为空;");
|
||||
|
|
@ -563,24 +560,38 @@ public class UserControllerService {
|
|||
if (Objects.isNull(type)) {
|
||||
sb.append("供应商类别无效;");
|
||||
} else {
|
||||
userSupplier.setTypeId(type.getId());
|
||||
typeId = type.getId();
|
||||
}
|
||||
}
|
||||
if (sb.length() > 0) {
|
||||
dto.setResult(sb.toString());
|
||||
continue;
|
||||
}
|
||||
// if (data.stream().noneMatch(it -> StrUtil.isBlank(it.getResult()))) {
|
||||
// return false;
|
||||
// }
|
||||
userSupplier = userSupplierService.lambdaQuery().eq(UserSupplier::getSupplierCode, dto.getSupplierCode()).one();
|
||||
if (Objects.isNull(userSupplier)) {
|
||||
userSupplier = new UserSupplier();
|
||||
userSupplier.setUserId(0L);
|
||||
userSupplier.setAbbreviation(dto.getAbbreviation());
|
||||
userSupplier.setAbbreviation1(StringUtil.toPinYin(dto.getAbbreviation()));
|
||||
userSupplier.setAbbreviation2(StringUtil.getPinYinFirstLetter(dto.getAbbreviation()));
|
||||
userSupplier.setPciName(dto.getUserName());
|
||||
userSupplier.setPciPhone(dto.getPhone());
|
||||
userSupplier.setDefaultLanguage("");
|
||||
userSupplier.setAvatar("");
|
||||
userSupplier.setState(1);
|
||||
userSupplier.setIsOpenAccount(false);
|
||||
userSupplier.setRemark(dto.getRemark());
|
||||
userSupplier.setCreateBy(UserUtil.getUserName());
|
||||
userSupplier.setCreateTime(LocalDateTime.now());
|
||||
userSupplier.setUpdateBy(UserUtil.getUserName());
|
||||
userSupplier.setUpdateTime(LocalDateTime.now());
|
||||
}
|
||||
userSupplier.setSupplierName(dto.getSupplierName());
|
||||
userSupplier.setTypeId(typeId);
|
||||
userSupplier.setSupplierCode(dto.getSupplierCode());
|
||||
userSupplier.setPciName(dto.getUserName());
|
||||
userSupplier.setPciPhone(dto.getPhone());
|
||||
userSupplier.setAbbreviation(dto.getAbbreviation());
|
||||
userSupplier.setAbbreviation1(StringUtil.toPinYin(dto.getAbbreviation()));
|
||||
userSupplier.setAbbreviation2(StringUtil.getPinYinFirstLetter(dto.getAbbreviation()));
|
||||
userSupplier.setRemark(dto.getRemark());
|
||||
dto.setResult(sb.toString());
|
||||
userSuppliers.add(userSupplier);
|
||||
}
|
||||
|
|
@ -604,7 +615,7 @@ public class UserControllerService {
|
|||
DictionaryItem type = suppliersCategory.stream().filter(it -> Objects.equals(it.getId(), vu.getTypeId())).findFirst().get();
|
||||
dto.setTypeName(type.getName());
|
||||
dto.setRemark(vu.getRemark());
|
||||
dto.setUserCode(vu.getUserCode());
|
||||
// dto.setUserCode(vu.getUserCode());
|
||||
return dto;
|
||||
}).collect(Collectors.toList());
|
||||
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
||||
|
|
@ -615,7 +626,7 @@ public class UserControllerService {
|
|||
.setSupplierName("供应商名称")
|
||||
.setTypeName("供应商类别")
|
||||
.setUserName("负责人姓名")
|
||||
.setUserCode("登录账号,不填则不开通账号")
|
||||
// .setUserCode("登录账号,不填则不开通账号")
|
||||
.setPhone("负责人电话")
|
||||
.setAbbreviation("供应商简称")
|
||||
.setRemark("备注信息,此行为提示信息,导入时请删除"));
|
||||
|
|
@ -717,4 +728,35 @@ public class UserControllerService {
|
|||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
public void exportSupplierByFilter(HttpServletResponse response, List<UserSupplierVO> records) throws IOException {
|
||||
List<SupplierExcelExportDTO> datas = records.stream().map(vu -> {
|
||||
SupplierExcelExportDTO dto = new SupplierExcelExportDTO();
|
||||
dto.setSupplierCode(vu.getSupplierCode());
|
||||
dto.setSupplierName(vu.getSupplierName());
|
||||
dto.setAbbreviation(vu.getAbbreviation());
|
||||
dto.setUserName(vu.getPciName());
|
||||
dto.setPhone(vu.getPciPhone());
|
||||
//DictionaryItem type = suppliersCategory.stream().filter(it -> Objects.equals(it.getId(), vu.getTypeId())).findFirst().get();
|
||||
dto.setTypeName(vu.getTypeName());
|
||||
dto.setRemark(vu.getRemark());
|
||||
// dto.setUserCode(vu.getSupplierCode());
|
||||
return dto;
|
||||
}).collect(Collectors.toList());
|
||||
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
||||
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("供应商导出.xlsx", StandardCharsets.UTF_8));
|
||||
if (CollectionUtil.isEmpty(datas)) {
|
||||
datas.add(new SupplierExcelExportDTO()
|
||||
.setSupplierCode("供应商编号")
|
||||
.setSupplierName("供应商名称")
|
||||
.setTypeName("供应商类别")
|
||||
.setUserName("负责人姓名")
|
||||
.setPhone("负责人电话")
|
||||
.setAbbreviation("供应商简称")
|
||||
.setRemark("备注信息,此行为提示信息,导入时请删除"));
|
||||
}
|
||||
new Workbook()
|
||||
.addSheet(new ListSheet<>(datas))
|
||||
.writeTo(response.getOutputStream());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ public class DeployTest {
|
|||
//处理字体目录
|
||||
handleDir(sshUtil, localPath, remotePath, "fonts");
|
||||
//处理lib目录
|
||||
handleDir(sshUtil, localPath, remotePath, "lib");
|
||||
// handleDir(sshUtil, localPath, remotePath, "lib");
|
||||
//执行脚本启动服务
|
||||
sshUtil.exec("cd " + remotePath + " && ./restart.sh");
|
||||
sshUtil.disconnect();
|
||||
|
|
|
|||
|
|
@ -47,8 +47,8 @@ public class SupplierExcelExportDTO {
|
|||
/**
|
||||
* 登录账号
|
||||
*/
|
||||
@ExcelColumn("登录账号")
|
||||
private String userCode;
|
||||
// @ExcelColumn("登录账号")
|
||||
// private String userCode;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
|
|
|
|||
|
|
@ -10,4 +10,9 @@ public class BarcodeLessReceivingSearchQO {
|
|||
* 送货单Id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 订单号 ,和送货单号二选一
|
||||
*/
|
||||
private String orderNo;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ import com.nflg.wms.common.pojo.qo.UserSupplierSearchQO;
|
|||
import com.nflg.wms.common.pojo.vo.UserSupplierVO;
|
||||
import com.nflg.wms.repository.entity.UserSupplier;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
|
|
@ -18,4 +20,5 @@ import com.nflg.wms.repository.entity.UserSupplier;
|
|||
public interface UserSupplierMapper extends BaseMapper<UserSupplier> {
|
||||
|
||||
IPage<UserSupplierVO> search(UserSupplierSearchQO request, Page<Object> objectPage);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ import com.nflg.wms.repository.entity.UserSupplier;
|
|||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
|
|
@ -27,4 +29,5 @@ public interface IUserSupplierService extends IService<UserSupplier> {
|
|||
UserSupplier getByUserId(Long id);
|
||||
|
||||
UserSupplier getByCode(@NotBlank String supplierNo);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ import jakarta.annotation.Resource;
|
|||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务实现类
|
||||
|
|
@ -65,4 +67,5 @@ public class UserSupplierServiceImpl extends ServiceImpl<UserSupplierMapper, Use
|
|||
public UserSupplier getByCode(String supplierNo) {
|
||||
return lambdaQuery().eq(UserSupplier::getSupplierCode, supplierNo).one();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue