一些优化

This commit is contained in:
曹鹏飞 2025-09-03 14:31:52 +08:00
parent 7e9dc3e702
commit c7d2e64583
27 changed files with 303 additions and 217 deletions

View File

@ -167,17 +167,14 @@ public class InCostCenterBackController extends BaseController {
.filter(item -> item.getLeft().compareTo(BigDecimal.ZERO) > 0)
.map(item -> {
OutProduceItemVO vo = new OutProduceItemVO()
.setLgort2(item.getLgort())
.setId(item.getId())
.setLgort2(order.getLgort())
.setLgpbe(item.getLgpbe())
.setMaktx2(item.getMaktx())
.setMatnr(item.getMatnr())
.setNum(item.getLeft());
if (StrUtil.isBlank(vo.getLgort2())) {
String warehouseNo = storageService.getWarehouseNo(order.getWerks(), item.getMatnr());
if (StrUtil.isBlank(warehouseNo)) {
warehouseNo = order.getLgort();
}
vo.setLgort2(warehouseNo);
vo.setLgort2(storageService.getWarehouseNo(order.getWerks(), item.getMatnr()));
}
if (StrUtil.isNotBlank(vo.getLgort2()) && StrUtil.isBlank(vo.getLgpbe())) {
vo.setLgpbe(StrUtil.join("/", storageService.getBinNos(item.getMatnr(), order.getWerks(), vo.getLgort2())));
@ -193,7 +190,7 @@ public class InCostCenterBackController extends BaseController {
*/
@Transactional
@PostMapping("pda/submit")
public ApiResult<Void> submit(@Valid @RequestBody OutProduceSubmitQO request) {
public ApiResult<Void> submit(@Valid @RequestBody InCostcenterBackSubmitQO request) {
WmsInCostcenterBack order = inCostcenterBackService.lambdaQuery().eq(WmsInCostcenterBack::getNo, request.getNo()).one();
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在");
VUtil.trueThrowBusinessError(Objects.equals(order.getState(), 2)).throwMessage("该订单已完成");
@ -201,47 +198,45 @@ public class InCostCenterBackController extends BaseController {
.setId(IdUtil.getSnowflakeNextId())
.setNo(NoUtil.getOutProduceTicketNo())
.setOrderId(order.getId())
.setLgort(request.getLgort())
.setCreateBy(UserUtil.getUserName())
.setCreateTime(LocalDateTime.now());
List<WmsInCostcenterBackItem> datas = inCostcenterBackItemService.getList(order.getId());
List<InMaterialScanRecord> records = new ArrayList<>();
List<MaterialQRCodeContentDTO> dtos = new ArrayList<>();
List<WmsInCostcenterBackTicketItem> ticketItems = new ArrayList<>();
request.getQrCodes().forEach(qrCode -> {
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode);
dtos.add(qrCodeContent);
String materialNo = qrCodeContent.getMaterialNo();
WmsInCostcenterBackItem item = datas.stream().filter(d -> StrUtil.equals(d.getMatnr(), materialNo)).findFirst().orElse(null);
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要退料");
WmsInCostcenterBackTicketItem pti = ticketItems.stream()
.filter(ti -> Objects.equals(ti.getOrderItemId(), item.getId()))
.findFirst()
.orElseGet(() -> {
WmsInCostcenterBackTicketItem ti = new WmsInCostcenterBackTicketItem()
.setId(IdUtil.getSnowflakeNextId())
.setTicketId(ticket.getId())
.setOrderItemId(item.getId())
.setNum(BigDecimal.ZERO);
ticketItems.add(ti);
return ti;
});
item.setLeft(item.getLeft().subtract(qrCodeContent.getNum()));
VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0)
.throwMessage("物料" + materialNo + "的入库数量超出申请数量");
pti.setNum(pti.getNum().add(qrCodeContent.getNum()));
records.add(new InMaterialScanRecord()
.setSource(2)
.setSourceId(item.getId())
.setTicketItemId(pti.getId())
.setMaterialNo(materialNo)
.setContent(qrCode)
.setBatchNo(qrCodeContent.getBatchNo())
.setSerialNo(qrCodeContent.getSerialNo())
.setUniqNo(qrCodeContent.getUniqNo())
.setNum(qrCodeContent.getNum())
.setCreateBy(UserUtil.getUserName())
.setCreateTime(Instant.now())
);
request.getItems().forEach(it -> {
WmsInCostcenterBackItem item = datas.stream().filter(d -> Objects.equals(it.getOrderItemId(), d.getId())).findFirst().orElse(null);
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("订单项无效");
WmsInCostcenterBackTicketItem ti = new WmsInCostcenterBackTicketItem()
.setId(IdUtil.getSnowflakeNextId())
.setTicketId(ticket.getId())
.setOrderItemId(item.getId())
.setLgpbe(StrUtil.join(",", it.getLgpbe()))
.setNum(BigDecimal.ZERO);
ticketItems.add(ti);
it.getQrCodes().forEach(qrCode -> {
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode);
dtos.add(qrCodeContent);
String materialNo = qrCodeContent.getMaterialNo();
item.setLeft(item.getLeft().subtract(qrCodeContent.getNum()));
VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0)
.throwMessage("物料" + materialNo + "的入库数量超出申请数量");
ti.setNum(ti.getNum().add(qrCodeContent.getNum()));
records.add(new InMaterialScanRecord()
.setSource(2)
.setSourceId(item.getId())
.setTicketItemId(ti.getId())
.setMaterialNo(materialNo)
.setContent(qrCode)
.setBatchNo(qrCodeContent.getBatchNo())
.setSerialNo(qrCodeContent.getSerialNo())
.setUniqNo(qrCodeContent.getUniqNo())
.setNum(qrCodeContent.getNum())
.setCreateBy(UserUtil.getUserName())
.setCreateTime(Instant.now())
);
});
});
inCostcenterBackItemService.updateBatchById(datas);
inMaterialScanRecordRespository.saveAll(records);

View File

@ -7,14 +7,12 @@ import com.nflg.wms.admin.util.NoUtil;
import com.nflg.wms.admin.util.PdfGeneratorUtil;
import com.nflg.wms.admin.util.QRCodeUtil;
import com.nflg.wms.admin.util.ThymeleafUtil;
import com.nflg.wms.common.constant.UserType;
import com.nflg.wms.common.pojo.ApiResult;
import com.nflg.wms.common.pojo.PageData;
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;
@ -36,6 +34,7 @@ import org.springframework.core.io.ClassPathResource;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.net.URL;
import java.text.DecimalFormat;
import java.time.LocalDateTime;
@ -131,9 +130,6 @@ public class NormalOrderController extends BaseController {
*/
@PostMapping("search")
public ApiResult<PageData<DeliverNormalOrderVO>> search(@Valid @RequestBody @NotNull DeliverNormalOrderSearchQO request) {
if (Objects.equals(UserUtil.getType(), UserType.Supplier)) {
request.setSupplierId(UserUtil.getUserId());
}
return ApiResult.success(deliverNormalOrderService.search(request));
}
@ -216,7 +212,12 @@ public class NormalOrderController extends BaseController {
dto.setIndex(i);
dto.setPrintNo(order.getId() + "-" + i);
if (i == order.getLableNum() - 1) {
dto.setPrintNum(DF.format(order.getBatchNum().divideAndRemainder(order.getMinPackageNum())[1]));
BigDecimal n = order.getBatchNum().divideAndRemainder(order.getMinPackageNum())[1];
if (n.compareTo(BigDecimal.ZERO) == 0) {
dto.setPrintNum(DF.format(order.getMinPackageNum()));
} else {
dto.setPrintNum(DF.format(n));
}
} else {
dto.setPrintNum(DF.format(order.getMinPackageNum()));
}
@ -235,23 +236,23 @@ public class NormalOrderController extends BaseController {
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 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));
// }
/**
* 逐个打印送货单

View File

@ -426,7 +426,7 @@ public class NormalPGIController extends BaseController {
item2.add(new ZWM3A17Item2DTO()
.setEBELP(item.getPoLineNumber())
.setFLAG("")
.setFLAG(code.getSerialNumbers()));
.setSERNR(code.getSerialNumbers()));
});
} else {
item1.add(new ZWM3A17Item1DTO()

View File

@ -3,7 +3,6 @@ package com.nflg.wms.admin.controller;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import com.nflg.wms.admin.pojo.document.OutMaterialScanRecord;
import com.nflg.wms.admin.pojo.dto.PdfPageDTO;
@ -23,7 +22,10 @@ import com.nflg.wms.common.pojo.qo.*;
import com.nflg.wms.common.pojo.vo.*;
import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.common.util.VUtil;
import com.nflg.wms.repository.entity.*;
import com.nflg.wms.repository.entity.WmsOutProduce;
import com.nflg.wms.repository.entity.WmsOutProduceItem;
import com.nflg.wms.repository.entity.WmsOutProduceTicket;
import com.nflg.wms.repository.entity.WmsOutProduceTicketItem;
import com.nflg.wms.repository.service.*;
import com.nflg.wms.starter.BaseController;
import jakarta.annotation.Resource;
@ -38,7 +40,6 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.Instant;
import java.time.LocalDateTime;
import java.util.*;
@ -82,53 +83,52 @@ public class OutProduceController extends BaseController {
*/
@PostMapping("0/searchSAP")
public ApiResult<List<Zwm3a07VO>> searchSAP0(@Valid @RequestBody Zwm3a07QO request) {
// List<Zwm3a07VO> vos = sapService.zwm3a07(request);
// Map<String, List<Zwm3a07VO>> maps = vos.stream().collect(Collectors.groupingBy(Zwm3a07VO::getKey1));
// maps.forEach((key, items) -> {
// Map<String, BigDecimal> imaps = inventoryService.getNum(items.get(0).getDwerk(), items.get(0).getLgort2(), items.stream().map(Zwm3a07VO::getMatnr).toList());
// items.forEach(item -> item.setLeftNum(imaps.getOrDefault(item.getMatnr(), BigDecimal.ZERO)));
// });
// return ApiResult.success(vos);
// inventoryService.search()
List<WmsInventory> inventories = inventoryService.list();
List<Zwm3a07VO> vos = new ArrayList<>();
for (int i = 0, count = inventories.size(); i < count; i++) {
WmsInventory inventory = inventories.get(i);
vos.add(new Zwm3a07VO()
.setInsme(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
.setDwerk(inventory.getFactoryNo())
.setMatnr(inventory.getMaterialNo())
.setAufnr(RandomUtil.randomNumbers(10))
.setMaktx(RandomUtil.randomString(20))
.setLgort2(inventory.getWarehouseNo())
.setLgpbe(RandomUtil.randomString(10))
.setMeins(RandomUtil.randomString(2))
.setName(RandomUtil.randomString(10))
.setQlsl(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
.setSqsl(RandomUtil.randomBigDecimal(BigDecimal.ZERO, inventory.getNum().divide(new BigDecimal("5"), RoundingMode.HALF_UP)))
.setSqsl2(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
.setSqsl3(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
.setBdmng(RandomUtil.randomBigDecimal(new BigDecimal("50"), new BigDecimal("100")))
.setLabst(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
.setKcqls(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
.setKtext(RandomUtil.randomString(20))
.setRsnum(RandomUtil.randomNumbers(10))
.setRsnum2(RandomUtil.randomNumbers(10))
.setPlnbez(RandomUtil.randomString(20))
.setEkgrp(RandomUtil.randomString(10))
.setDispo(RandomUtil.randomString(10))
.setCusn(RandomUtil.randomNumbers(10))
.setBdter(DateUtil.format(DateUtil.date(), "yyyy-MM-dd"))
.setVornr(RandomUtil.randomNumbers(10))
.setSernr(RandomUtil.randomNumbers(10))
.setJtsn(RandomUtil.randomNumbers(10))
.setRspos(RandomUtil.randomNumbers(10))
.setEnmng(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("50")))
.setMaktx2(RandomUtil.randomString(20))
.setLeftNum(inventory.getNum())
);
}
List<Zwm3a07VO> vos = sapService.zwm3a07(request);
Map<String, List<Zwm3a07VO>> maps = vos.stream().collect(Collectors.groupingBy(Zwm3a07VO::getKey1));
maps.forEach((key, items) -> {
Map<String, BigDecimal> imaps = inventoryService.getNum(items.get(0).getDwerk(), items.get(0).getLgort2(), items.stream().map(Zwm3a07VO::getMatnr).toList());
items.forEach(item -> item.setLeftNum(imaps.getOrDefault(item.getMatnr(), BigDecimal.ZERO)));
});
return ApiResult.success(vos);
// List<WmsInventory> inventories = inventoryService.list();
// List<Zwm3a07VO> vos = new ArrayList<>();
// for (int i = 0, count = inventories.size(); i < count; i++) {
// WmsInventory inventory = inventories.get(i);
// vos.add(new Zwm3a07VO()
// .setInsme(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
// .setDwerk(inventory.getFactoryNo())
// .setMatnr(inventory.getMaterialNo())
// .setAufnr(RandomUtil.randomNumbers(10))
// .setMaktx(RandomUtil.randomString(20))
// .setLgort2(inventory.getWarehouseNo())
// .setLgpbe(RandomUtil.randomString(10))
// .setMeins(RandomUtil.randomString(2))
// .setName(RandomUtil.randomString(10))
// .setQlsl(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
// .setSqsl(RandomUtil.randomBigDecimal(BigDecimal.ZERO, inventory.getNum().divide(new BigDecimal("5"), RoundingMode.HALF_UP)))
// .setSqsl2(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
// .setSqsl3(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
// .setBdmng(RandomUtil.randomBigDecimal(new BigDecimal("50"), new BigDecimal("100")))
// .setLabst(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
// .setKcqls(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
// .setKtext(RandomUtil.randomString(20))
// .setRsnum(RandomUtil.randomNumbers(10))
// .setRsnum2(RandomUtil.randomNumbers(10))
// .setPlnbez(RandomUtil.randomString(20))
// .setEkgrp(RandomUtil.randomString(10))
// .setDispo(RandomUtil.randomString(10))
// .setCusn(RandomUtil.randomNumbers(10))
// .setBdter(DateUtil.format(DateUtil.date(), "yyyy-MM-dd"))
// .setVornr(RandomUtil.randomNumbers(10))
// .setSernr(RandomUtil.randomNumbers(10))
// .setJtsn(RandomUtil.randomNumbers(10))
// .setRspos(RandomUtil.randomNumbers(10))
// .setEnmng(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("50")))
// .setMaktx2(RandomUtil.randomString(20))
// .setLeftNum(inventory.getNum())
// );
// }
// return ApiResult.success(vos);
}
/**
@ -136,52 +136,52 @@ public class OutProduceController extends BaseController {
*/
@PostMapping("1/searchSAP")
public ApiResult<List<Zwm3a07VO>> searchSAP1(@Valid @RequestBody Zwm3a08QO request) {
// List<Zwm3a07VO> vos = sapService.zwm3a08(request);
// Map<String, List<Zwm3a07VO>> maps = vos.stream().collect(Collectors.groupingBy(Zwm3a07VO::getKey1));
// maps.forEach((key, items) -> {
// Map<String, BigDecimal> imaps = inventoryService.getNum(items.get(0).getDwerk(), items.get(0).getLgort2(), items.stream().map(Zwm3a07VO::getMatnr).toList());
// items.forEach(item -> item.setLeftNum(imaps.getOrDefault(item.getMatnr(), BigDecimal.ZERO)));
// });
// return ApiResult.success(vos);
List<WmsInventory> inventories = inventoryService.list();
List<Zwm3a07VO> vos = new ArrayList<>();
for (int i = 0, count = inventories.size(); i < count; i++) {
WmsInventory inventory = inventories.get(i);
vos.add(new Zwm3a07VO()
.setInsme(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
.setMatnr(inventory.getMaterialNo())
.setAufnr(RandomUtil.randomNumbers(10))
.setMaktx(RandomUtil.randomString(20))
.setLgort2(inventory.getWarehouseNo())
.setLgpbe(RandomUtil.randomString(6))
.setMeins(RandomUtil.randomString(2))
.setName(RandomUtil.randomString(10))
.setQlsl(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
.setSqsl(RandomUtil.randomBigDecimal(BigDecimal.ZERO, inventory.getNum().divide(new BigDecimal("5"), RoundingMode.HALF_UP)))
.setSqsl2(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
.setSqsl3(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
.setBdmng(RandomUtil.randomBigDecimal(new BigDecimal("50"), new BigDecimal("100")))
.setLabst(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
.setKcqls(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
.setKtext(RandomUtil.randomString(20))
.setDwerk(inventory.getFactoryNo())
.setRsnum(RandomUtil.randomNumbers(10))
.setRsnum2(RandomUtil.randomNumbers(10))
.setPlnbez(RandomUtil.randomString(20))
.setEkgrp(RandomUtil.randomString(10))
.setDispo(RandomUtil.randomString(10))
.setCusn(RandomUtil.randomNumbers(10))
.setBdter(DateUtil.format(DateUtil.date(), "yyyy-MM-dd"))
.setVornr(RandomUtil.randomNumbers(10))
.setSernr(RandomUtil.randomNumbers(10))
.setJtsn(RandomUtil.randomNumbers(10))
.setRspos(RandomUtil.randomNumbers(10))
.setEnmng(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("50")))
.setMaktx2(RandomUtil.randomString(20))
.setLeftNum(inventory.getNum())
);
}
List<Zwm3a07VO> vos = sapService.zwm3a08(request);
Map<String, List<Zwm3a07VO>> maps = vos.stream().collect(Collectors.groupingBy(Zwm3a07VO::getKey1));
maps.forEach((key, items) -> {
Map<String, BigDecimal> imaps = inventoryService.getNum(items.get(0).getDwerk(), items.get(0).getLgort2(), items.stream().map(Zwm3a07VO::getMatnr).toList());
items.forEach(item -> item.setLeftNum(imaps.getOrDefault(item.getMatnr(), BigDecimal.ZERO)));
});
return ApiResult.success(vos);
// List<WmsInventory> inventories = inventoryService.list();
// List<Zwm3a07VO> vos = new ArrayList<>();
// for (int i = 0, count = inventories.size(); i < count; i++) {
// WmsInventory inventory = inventories.get(i);
// vos.add(new Zwm3a07VO()
// .setInsme(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
// .setMatnr(inventory.getMaterialNo())
// .setAufnr(RandomUtil.randomNumbers(10))
// .setMaktx(RandomUtil.randomString(20))
// .setLgort2(inventory.getWarehouseNo())
// .setLgpbe(RandomUtil.randomString(6))
// .setMeins(RandomUtil.randomString(2))
// .setName(RandomUtil.randomString(10))
// .setQlsl(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
// .setSqsl(RandomUtil.randomBigDecimal(BigDecimal.ZERO, inventory.getNum().divide(new BigDecimal("5"), RoundingMode.HALF_UP)))
// .setSqsl2(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
// .setSqsl3(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
// .setBdmng(RandomUtil.randomBigDecimal(new BigDecimal("50"), new BigDecimal("100")))
// .setLabst(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
// .setKcqls(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("100")))
// .setKtext(RandomUtil.randomString(20))
// .setDwerk(inventory.getFactoryNo())
// .setRsnum(RandomUtil.randomNumbers(10))
// .setRsnum2(RandomUtil.randomNumbers(10))
// .setPlnbez(RandomUtil.randomString(20))
// .setEkgrp(RandomUtil.randomString(10))
// .setDispo(RandomUtil.randomString(10))
// .setCusn(RandomUtil.randomNumbers(10))
// .setBdter(DateUtil.format(DateUtil.date(), "yyyy-MM-dd"))
// .setVornr(RandomUtil.randomNumbers(10))
// .setSernr(RandomUtil.randomNumbers(10))
// .setJtsn(RandomUtil.randomNumbers(10))
// .setRspos(RandomUtil.randomNumbers(10))
// .setEnmng(RandomUtil.randomBigDecimal(BigDecimal.ZERO, new BigDecimal("50")))
// .setMaktx2(RandomUtil.randomString(20))
// .setLeftNum(inventory.getNum())
// );
// }
// return ApiResult.success(vos);
}
/**

View File

@ -143,6 +143,7 @@ public class StructuralPackageOrderController extends BaseController {
.setTransportNum(order.getTransportNum())
.setLbprt(order.getLbprt())
.setUnit(order.getMeins())
.setKzkri(order.getKzkri())
)
.toList();
if (Objects.equals(request.getType(), 1)) {

View File

@ -246,7 +246,7 @@ public class NormalPGIControllerService {
Pair<Pair<String, String>, Pair<String, String>> zwm3A17ReturnDTO = sapService.zwm3a17(dto.getZwm3A17DTO());
//推入srm
SRMInspectionContentDTO content = dto.getPushDto().getContent();
content.setReceiveNum(zwm3A17ReturnDTO.getKey().getKey());
content.setReceiveNum(zwm3A17ReturnDTO.getValue().getKey());
pushInspectionMaterialsToSRM(dto.getPushDto());
//修改收货单的物料凭证和年度物料凭证
List<Long> ids = dto.getReceiptIds();

View File

@ -3,6 +3,7 @@ package com.nflg.wms.admin.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Pair;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.nflg.wms.admin.pojo.dto.SAPMaterialInfoInOrderDTO;
import com.nflg.wms.admin.pojo.dto.ZWM3A17DTO;
@ -216,6 +217,7 @@ public class SapService {
JCoFunction function = exec("ZWM3A17", parameters, tables);
JCoStructure structure = function.getExportParameterList().getStructure("OUTPUT1");
print("OUTPUT1", structure);
VUtil.trueThrowBusinessError(!StrUtil.equals(structure.getString("TYPE"), "S"))
.throwMessage("SAP错误" + structure.getString("MSG"));
@ -1217,4 +1219,19 @@ public ZWM00MB113DTO zwm00_mb113(ZWM00MB113QO query) {
throw new NflgException(STATE.BusinessError, "SAP调用异常:" + MDC.get(Constant.TRACE_ID));
}
}
private void print(String name, JCoStructure structure) {
log.info(name);
if (Objects.nonNull(structure)) {
JCoRecordFieldIterator iterator = structure.getRecordFieldIterator();
if (Objects.nonNull(iterator)) {
JSONObject json = new JSONObject();
while (iterator.hasNextField()) {
JCoField field = iterator.nextField();
json.put(field.getName(), field.getValue());
}
log.info(json.toString());
}
}
}
}

View File

@ -1,5 +1,6 @@
package com.nflg.wms.common.pojo.qo;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
@ -11,6 +12,7 @@ public class DeliverNormalOrderSaveQO {
/**
* 要保存的数据
*/
@Valid
@NotEmpty
private List<DeliverNormalOrderSaveItemQO> items;
@ -18,4 +20,4 @@ public class DeliverNormalOrderSaveQO {
* 要删除的数据
*/
private List<Long> deleteIds;
}
}

View File

@ -11,9 +11,9 @@ public class DeliverNormalOrderSearchQO extends SearchBaseQO {
private String orderNo;
/**
* 供应商ID
* 供应商编号
*/
private Long supplierId;
private String supplierNo;
/**
* 送货单号

View File

@ -0,0 +1,29 @@
package com.nflg.wms.common.pojo.qo;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.List;
@Data
public class InCostcenterBackSubmitItemQO {
/**
* 订单项ID
*/
@NotNull
private Long orderItemId;
/**
* 实际入库储位编号列表
*/
@NotEmpty
private List<String> lgpbe;
/**
* 二维码列表
*/
@NotEmpty
private List<String> qrCodes;
}

View File

@ -0,0 +1,28 @@
package com.nflg.wms.common.pojo.qo;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
import java.util.List;
@Data
public class InCostcenterBackSubmitQO {
@NotBlank
private String no;
/**
* 实际入库仓库编号
*/
@NotBlank
private String lgort;
/**
* 订单项列表
*/
@Valid
@NotEmpty
private List<InCostcenterBackSubmitItemQO> items;
}

View File

@ -74,11 +74,11 @@ public class PackageDeliverOrderSaveItemQO {
@NotBlank
private String unit;
/**
* 标志关键部件
*/
@NotBlank
private String kzkri;
// /**
// * 标志关键部件
// */
// @NotBlank
// private String kzkri;
@JsonIgnore
private String key1;

View File

@ -16,7 +16,7 @@ public class StructuralPackageDeliverOrderSearchQO extends SearchBaseQO{
private String externalOrderNo;
/**
* 供应商id
* 供应商编号
*/
private Long supplierId;
private String supplierNo;
}

View File

@ -25,9 +25,9 @@ public class StructuralPackageOrderSearchByStateQO extends SearchBaseQO{
private String materialNo;
/**
* 供应商id
* 供应商编号
*/
private Long supplierId;
private String supplierNo;
/**
* 采购单订单号

View File

@ -16,9 +16,9 @@ public class StructuralPackageOrderSearchQO extends SearchBaseQO {
private String materialNo;
/**
* 供应商id
* 供应商编号
*/
private Long supplierId;
private String supplierNo;
/**
* 采购单订单号

View File

@ -25,7 +25,7 @@ public class DeliverNormalOrderVO {
/**
* 供应商代码
*/
private String supplierCode;
private String supplierNo;
/**
* 供应商名称

View File

@ -9,6 +9,11 @@ import java.math.BigDecimal;
@Accessors(chain = true)
public class OutProduceItemVO {
/**
* 订单项id
*/
private Long id;
/**
* 领料物料号
*/

View File

@ -61,10 +61,10 @@ public class WmsInCostcenterBackItem implements Serializable {
*/
private String meins;
/**
* 库存地点
*/
private String lgort;
// /**
// * 库存地点
// */
// private String lgort;
/**
* 库存仓位

View File

@ -59,4 +59,9 @@ public class WmsInCostcenterBackTicket implements Serializable {
* 物料凭证年度
*/
private String docYear;
/**
* 实际入库仓库编号
*/
private String lgort;
}

View File

@ -44,4 +44,9 @@ public class WmsInCostcenterBackTicketItem implements Serializable {
* 退料数量
*/
private BigDecimal num;
/**
* 实际入库储位
*/
private String lgpbe;
}

View File

@ -2,12 +2,12 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nflg.wms.repository.mapper.WmsNormalPrintOrderMapper">
<select id="search" resultType="com.nflg.wms.common.pojo.vo.DeliverNormalOrderVO">
select o.*,us.supplier_name,us.supplier_code
select o.*,us.supplier_name,us.supplier_code as "supplier_no"
from wms_normal_print_order o
left join user_supplier us on o.supplier_id=us.user_id
<where>
<if test="request.supplierId!=null">
and o.supplier_id=#{request.supplierId}
<if test="request.supplierNo!=null and request.supplierNo!=''">
and us.supplier_code=#{request.supplierNo}
</if>
<if test="request.orderNo!=null and request.orderNo!=''">
and o.order_no like concat('%', #{request.orderNo}, '%')
@ -31,7 +31,7 @@
</select>
<select id="getList" resultType="com.nflg.wms.common.pojo.vo.DeliverNormalOrderVO">
select o.*,us.supplier_name,us.supplier_code, wb.no as workbench_no
select o.*,us.supplier_name,us.supplier_code as "supplier_no", wb.no as workbench_no
from wms_normal_print_order o
left join user_supplier us on o.supplier_id=us.user_id
left join wms_workbench wb on o.workbench_id=wb.id

View File

@ -3,27 +3,30 @@
<mapper namespace="com.nflg.wms.repository.mapper.WmsSrmOrderMapper">
<select id="search" resultType="com.nflg.wms.common.pojo.vo.SrmOrderVO">
select a.*,b.supplier_name
from wms_srm_order a left join user_supplier b on a.supplier_num=b.supplier_code
<if test="request.noteNum !=null and request.noteNum !='' ">
and a.note_num like concat('%', #{request.noteNum}, '%')
</if>
<if test="request.supplierNum !=null and request.supplierNum !='' ">
and a.supplier_num =#{request.supplierNum}
</if>
<if test="request.poNum !=null and request.poNum !='' ">
and EXISTS (select 1 from wms_srm_order_item where a.id=wms_srm_order_item.order_id and
wms_srm_order_item.po_num like concat('%', #{request.poNum}, '%')
</if>
<if test="request.itemCode !=null and request.itemCode !='' ">
and EXISTS (select 1 from wms_srm_order_item where a.id=wms_srm_order_item.order_id and
wms_srm_order_item.item_code like concat('%', #{request.itemCode}, '%')
</if>
<if test="request.startDate !=null and request.startDate !='' ">
and a.delivery_note_date >= #{request.startDate}
</if>
<if test="request.endDate !=null and request.endDate !='' ">
and a.delivery_note_date &lt; #{request.endDate}
</if>
from wms_srm_order a
left join user_supplier b on a.supplier_num=b.supplier_code
<where>
<if test="request.noteNum !=null and request.noteNum !='' ">
and a.note_num like concat('%', #{request.noteNum}, '%')
</if>
<if test="request.supplierNum !=null and request.supplierNum !='' ">
and a.supplier_num =#{request.supplierNum}
</if>
<if test="request.poNum !=null and request.poNum !='' ">
and EXISTS (select 1 from wms_srm_order_item where a.id=wms_srm_order_item.order_id and
wms_srm_order_item.po_num like concat('%', #{request.poNum}, '%'))
</if>
<if test="request.itemCode !=null and request.itemCode !='' ">
and EXISTS (select 1 from wms_srm_order_item where a.id=wms_srm_order_item.order_id and
wms_srm_order_item.item_code like concat('%', #{request.itemCode}, '%'))
</if>
<if test="request.startDate !=null">
and a.delivery_note_date >= #{request.startDate}
</if>
<if test="request.endDate !=null">
and a.delivery_note_date &lt; #{request.endDate}
</if>
</where>
order by a.delivery_note_date desc
</select>

View File

@ -14,8 +14,8 @@
#{item}
</foreach>
</if>
<if test="request.supplierId!=null">
and pdo.supplier_id=#{request.supplierId}
<if test="request.supplierNo!=null and request.supplierNo!=''">
and us.supplier_code=#{request.supplierNo}
</if>
<if test="request.no!=null and request.no!=''">
and pdo.no like concat('%',#{request.no},'%')

View File

@ -17,8 +17,8 @@
<if test="request.materialNo!=null and request.materialNo!=''">
and sp.no=#{request.materialNo}
</if>
<if test="request.supplierId!=null">
and o.supplier_id=#{request.supplierId}
<if test="request.supplierNo!=null and request.supplierNo!=''">
and us.supplier_code=#{request.supplierNo}
</if>
<if test="request.externalOrderNo!=null and request.externalOrderNo!=''">
and o.external_order_no=#{request.externalOrderNo}

View File

@ -18,8 +18,8 @@
<if test="request.materialNo!=null and request.materialNo!=''">
and sp.no=#{request.materialNo}
</if>
<if test="request.supplierId!=null">
and o.supplier_id=#{request.supplierId}
<if test="request.supplierNo!=null and request.supplierNo!=''">
and us.supplier_code=#{request.supplierNo}
</if>
<if test="request.externalOrderNo!=null and request.externalOrderNo!=''">
and o.external_order_no=#{request.externalOrderNo}

View File

@ -130,11 +130,6 @@
<artifactId>minio</artifactId>
<version>8.5.17</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.15.2</version>
</dependency>
</dependencies>
<build>

View File

@ -26,9 +26,9 @@ public class JacksonConfig {
@Bean
public ObjectMapper objectMapper() {
return new ObjectMapper()
.registerModule(new JavaTimeModule())
.registerModule(customDateTimeModule())
.registerModule(bigDecimalModule())
.registerModule(new JavaTimeModule())
.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
.configure(SerializationFeature.INDENT_OUTPUT, false);