|
|
|
|
@ -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.lang.Pair;
|
|
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
|
|
import cn.hutool.core.util.NumberUtil;
|
|
|
|
|
import cn.hutool.core.util.RandomUtil;
|
|
|
|
|
@ -15,9 +16,7 @@ import com.alibaba.excel.metadata.data.ImageData;
|
|
|
|
|
import com.alibaba.excel.metadata.data.WriteCellData;
|
|
|
|
|
import com.alibaba.excel.write.metadata.WriteSheet;
|
|
|
|
|
import com.alibaba.excel.write.metadata.fill.FillConfig;
|
|
|
|
|
import com.nflg.wms.admin.pojo.dto.PdfPageDTO;
|
|
|
|
|
import com.nflg.wms.admin.pojo.dto.SAPMaterialInfoInOrderDTO;
|
|
|
|
|
import com.nflg.wms.admin.pojo.dto.StructuralPackageOrderImportDTO;
|
|
|
|
|
import com.nflg.wms.admin.pojo.dto.*;
|
|
|
|
|
import com.nflg.wms.admin.repository.PackageMaterialScanRecordRepository;
|
|
|
|
|
import com.nflg.wms.admin.service.BasdeSerialNumberControllerService;
|
|
|
|
|
import com.nflg.wms.admin.service.BinService;
|
|
|
|
|
@ -35,7 +34,6 @@ import com.nflg.wms.common.pojo.PageData;
|
|
|
|
|
import com.nflg.wms.common.pojo.document.PackageMaterialScanRecord;
|
|
|
|
|
import com.nflg.wms.common.pojo.dto.PackageMaterialDTO;
|
|
|
|
|
import com.nflg.wms.common.pojo.dto.SAPOrderDTO;
|
|
|
|
|
import com.nflg.wms.common.pojo.dto.SAPSyncFromDTO;
|
|
|
|
|
import com.nflg.wms.common.pojo.dto.StructuralPackageMaterialQRCodeContentDTO;
|
|
|
|
|
import com.nflg.wms.common.pojo.qo.*;
|
|
|
|
|
import com.nflg.wms.common.pojo.vo.*;
|
|
|
|
|
@ -821,109 +819,139 @@ public class StructuralPackageOrderController extends BaseController {
|
|
|
|
|
SAPMaterialInfoInOrderDTO dto = CollectionUtil.get(sapService.zim004(order.getExternalOrderNo(), order.getSupplierCode(), order.getPackageNo()), 0);
|
|
|
|
|
VUtil.trueThrowBusinessError(Objects.isNull(dto)).throwMessage("ZIM_004未查询到数据");
|
|
|
|
|
VUtil.trueThrowBusinessError(StrUtil.isBlank(dto.getWarehouseNo())).throwMessage("ZIM_004接口查询到仓库为空");
|
|
|
|
|
//创建上架任务
|
|
|
|
|
VUtil.trueThrowBusinessError(!inTaskService.generateTask(List.of(new WmsInTaskItem()
|
|
|
|
|
.setPoNum(order.getExternalOrderNo())
|
|
|
|
|
.setPoLineNumber(order.getRowNo())
|
|
|
|
|
.setLineNumber(String.valueOf(order.getId()))
|
|
|
|
|
.setNoteNum(structuralPackageDeliverOrderService.getNoByOrderId(request.getId()))
|
|
|
|
|
.setItemCode(order.getPackageNo())
|
|
|
|
|
.setItemName(order.getPackageDesc())
|
|
|
|
|
.setUnit(order.getUnit())
|
|
|
|
|
.setIsQuality(false)
|
|
|
|
|
.setKzkri(order.getKzkri())
|
|
|
|
|
.setUnqualifiedQty(BigDecimal.ZERO)
|
|
|
|
|
.setQualifiedQty(BigDecimal.valueOf(order.getNum()))
|
|
|
|
|
.setInspectionQty(BigDecimal.valueOf(order.getNum()))
|
|
|
|
|
.setFactory(dto.getWerks())
|
|
|
|
|
.setDataStatus((short) 0)
|
|
|
|
|
.setReceivedWarehouse(dto.getWarehouseNo())
|
|
|
|
|
.setOperationUserId(UserUtil.getUserId())
|
|
|
|
|
.setOperationUserName(UserUtil.getUserName())
|
|
|
|
|
.setBatchNumber(order.getWorkbenchCode())
|
|
|
|
|
.setSupplierNum(order.getSupplierCode())), (short) 1)
|
|
|
|
|
BigDecimal num = BigDecimal.valueOf(order.getNum());
|
|
|
|
|
Pair<Pair<String, String>, Pair<String, String>> pair = sapService.zwm3a17(new ZWM3A17DTO()
|
|
|
|
|
.setEbeln(order.getExternalOrderNo())
|
|
|
|
|
.setUsnam(UserUtil.getUserName())
|
|
|
|
|
.setItem1(List.of(new ZWM3A17Item1DTO()
|
|
|
|
|
.setEBELP(order.getRowNo())
|
|
|
|
|
.setCHARG("")
|
|
|
|
|
.setERFMG(num)
|
|
|
|
|
.setKZKRI(dto.getKzkri())
|
|
|
|
|
.setLGORT(request.getWarehouse())
|
|
|
|
|
.setMATNR(order.getPackageNo())
|
|
|
|
|
.setWERKS(order.getFactoryNo())
|
|
|
|
|
.setMEINS(order.getUnit())
|
|
|
|
|
)
|
|
|
|
|
.throwMessage("创建上架任务失败");
|
|
|
|
|
return ApiResult.success();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 搜索上架任务列表(PDA使用)
|
|
|
|
|
* @param no 任务单号或原始单号
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping("searchIn")
|
|
|
|
|
public ApiResult<List<InTaskVO>> searchIn(@Valid @RequestParam(required = false) String no) {
|
|
|
|
|
return ApiResult.success(inTaskService.searchForIn(no));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取上架任务详情(PDA使用)
|
|
|
|
|
* @param taskNo 上架任务单号
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping("getInTaskInfo")
|
|
|
|
|
public ApiResult<List<InTaskInfoVO>> getInTaskInfo(@Valid @RequestParam @NotBlank String taskNo) {
|
|
|
|
|
WmsInTask task = inTaskService.getByNo(taskNo);
|
|
|
|
|
VUtil.trueThrowBusinessError(Objects.isNull(task)).throwMessage("任务不存在");
|
|
|
|
|
VUtil.trueThrowBusinessError(!Objects.equals(task.getTaskStatus(), (short) 0)).throwMessage("请勿重复上架");
|
|
|
|
|
List<WmsInTaskItem> list = inTaskItemService.getListForStorage(taskNo);
|
|
|
|
|
List<InTaskInfoVO> datas = Convert.toList(InTaskInfoVO.class, list);
|
|
|
|
|
for (InTaskInfoVO item : datas) {
|
|
|
|
|
SAPSyncFromDTO dto = sapService.zwm3A01(item.getFactory(), item.getReceivedWarehouse(), item.getItemCode());
|
|
|
|
|
if (Objects.nonNull(dto)) {
|
|
|
|
|
item.setBinNos(dto.getBinNos());
|
|
|
|
|
}
|
|
|
|
|
item.setTrayNos(structuralPackageDeliverOrderService.getTrayNos(task.getOrderNumber(), item.getItemCode()));
|
|
|
|
|
}
|
|
|
|
|
return ApiResult.success(datas);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 上架(PDA使用)
|
|
|
|
|
* @param request 请求参数
|
|
|
|
|
*/
|
|
|
|
|
@Transactional
|
|
|
|
|
@PostMapping("materialStorage")
|
|
|
|
|
public ApiResult<Void> materialStorage(@Valid @RequestBody @NotNull MaterialStorageQO request) {
|
|
|
|
|
WmsInTask task = inTaskService.getByNo(request.getTaskNo());
|
|
|
|
|
VUtil.trueThrowBusinessError(Objects.isNull(task)).throwMessage("任务不存在");
|
|
|
|
|
VUtil.trueThrowBusinessError(!Objects.equals(task.getTaskStatus(), (short) 0)).throwMessage("请勿重复上架");
|
|
|
|
|
List<WmsInTaskItem> datas = inTaskItemService.getForIn(request);
|
|
|
|
|
if (CollectionUtil.isNotEmpty(datas)) {
|
|
|
|
|
datas.forEach(it -> {
|
|
|
|
|
MaterialStorageItemQO qo = request.getItems().stream().filter(r -> StrUtil.equals(r.getMaterialNo(), it.getItemCode())).findFirst().get();
|
|
|
|
|
it.setReceivedQty(it.getInspectionQty().subtract(qo.getNum()));
|
|
|
|
|
it.setBins(StrUtil.join(",", qo.getBinNos()));
|
|
|
|
|
it.setDataStatus((short) 1);
|
|
|
|
|
it.setReceivedWarehouse(qo.getReceivedWarehouse());
|
|
|
|
|
});
|
|
|
|
|
inTaskItemService.updateBatchById(datas);
|
|
|
|
|
inTaskService.updateState(request.getTaskNo());
|
|
|
|
|
datas.stream()
|
|
|
|
|
.filter(it -> request.getItems().stream().anyMatch(r -> StrUtil.equals(r.getMaterialNo(), it.getItemCode())))
|
|
|
|
|
.collect(Collectors.groupingBy(WmsInTaskItem::getPoNum))
|
|
|
|
|
.values()
|
|
|
|
|
.forEach(it -> structuralPackageControllerService.materialStorage(it, request.getItems()));
|
|
|
|
|
)
|
|
|
|
|
.setItem2(List.of(
|
|
|
|
|
new ZWM3A17Item2DTO()
|
|
|
|
|
.setEBELP(order.getRowNo())
|
|
|
|
|
.setSERNR("")
|
|
|
|
|
.setFLAG("X")
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
if (StrUtil.equalsIgnoreCase(dto.getKzkri(), "X")) {
|
|
|
|
|
sapService.zwm3a18(new ZWM3A18DTO()
|
|
|
|
|
.setEbeln(order.getExternalOrderNo())
|
|
|
|
|
.setUsnam(UserUtil.getUserName())
|
|
|
|
|
.setMblnr(pair.getValue().getKey())
|
|
|
|
|
.setMjahr(pair.getValue().getValue())
|
|
|
|
|
.setItem1(List.of(
|
|
|
|
|
new ZWM3A18Item1DTO()
|
|
|
|
|
.setErfmg(num)
|
|
|
|
|
.setErfmg1(num)
|
|
|
|
|
.setErfmg2(BigDecimal.ZERO)
|
|
|
|
|
.setEbelp(order.getRowNo())
|
|
|
|
|
.setMatnr(order.getPackageNo())
|
|
|
|
|
.setMeins(order.getUnit())
|
|
|
|
|
.setCharg("")
|
|
|
|
|
.setLgort(request.getWarehouse())
|
|
|
|
|
.setSgtxt("")
|
|
|
|
|
.setWerks(order.getFactoryNo())
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
.setItem2(
|
|
|
|
|
List.of(
|
|
|
|
|
new ZWM3A17Item2DTO()
|
|
|
|
|
.setEBELP(order.getRowNo())
|
|
|
|
|
.setSERNR("")
|
|
|
|
|
.setFLAG("X")
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
return ApiResult.success();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 搜索上架任务列表
|
|
|
|
|
* @param request 请求参数
|
|
|
|
|
*/
|
|
|
|
|
@PostMapping("searchTicket")
|
|
|
|
|
public ApiResult<PageData<InTaskVO>> searchTicket(@Valid @RequestBody @NotNull InTaskSearchQO request) {
|
|
|
|
|
return ApiResult.success(inTaskService.search(request));
|
|
|
|
|
}
|
|
|
|
|
// /**
|
|
|
|
|
// * 搜索上架任务列表(PDA使用)
|
|
|
|
|
// * @param no 任务单号或原始单号
|
|
|
|
|
// */
|
|
|
|
|
// @GetMapping("searchIn")
|
|
|
|
|
// public ApiResult<List<InTaskVO>> searchIn(@Valid @RequestParam(required = false) String no) {
|
|
|
|
|
// return ApiResult.success(inTaskService.searchForIn(no));
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取上架任务明细
|
|
|
|
|
* @param taskNo 上架任务单号
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping("getTicketItems")
|
|
|
|
|
public ApiResult<List<WmsInTaskItem>> getTicketItems(@Valid @RequestParam @NotBlank String taskNo) {
|
|
|
|
|
return ApiResult.success(inTaskItemService.getByNo(taskNo));
|
|
|
|
|
}
|
|
|
|
|
// /**
|
|
|
|
|
// * 获取上架任务详情(PDA使用)
|
|
|
|
|
// * @param taskNo 上架任务单号
|
|
|
|
|
// */
|
|
|
|
|
// @GetMapping("getInTaskInfo")
|
|
|
|
|
// public ApiResult<List<InTaskInfoVO>> getInTaskInfo(@Valid @RequestParam @NotBlank String taskNo) {
|
|
|
|
|
// WmsInTask task = inTaskService.getByNo(taskNo);
|
|
|
|
|
// VUtil.trueThrowBusinessError(Objects.isNull(task)).throwMessage("任务不存在");
|
|
|
|
|
// VUtil.trueThrowBusinessError(!Objects.equals(task.getTaskStatus(), (short) 0)).throwMessage("请勿重复上架");
|
|
|
|
|
// List<WmsInTaskItem> list = inTaskItemService.getListForStorage(taskNo);
|
|
|
|
|
// List<InTaskInfoVO> datas = Convert.toList(InTaskInfoVO.class, list);
|
|
|
|
|
// for (InTaskInfoVO item : datas) {
|
|
|
|
|
// SAPSyncFromDTO dto = sapService.zwm3A01(item.getFactory(), item.getReceivedWarehouse(), item.getItemCode());
|
|
|
|
|
// if (Objects.nonNull(dto)) {
|
|
|
|
|
// item.setBinNos(dto.getBinNos());
|
|
|
|
|
// }
|
|
|
|
|
// item.setTrayNos(structuralPackageDeliverOrderService.getTrayNos(task.getOrderNumber(), item.getItemCode()));
|
|
|
|
|
// }
|
|
|
|
|
// return ApiResult.success(datas);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// /**
|
|
|
|
|
// * 上架(PDA使用)
|
|
|
|
|
// * @param request 请求参数
|
|
|
|
|
// */
|
|
|
|
|
// @Transactional
|
|
|
|
|
// @PostMapping("materialStorage")
|
|
|
|
|
// public ApiResult<Void> materialStorage(@Valid @RequestBody @NotNull MaterialStorageQO request) {
|
|
|
|
|
// WmsInTask task = inTaskService.getByNo(request.getTaskNo());
|
|
|
|
|
// VUtil.trueThrowBusinessError(Objects.isNull(task)).throwMessage("任务不存在");
|
|
|
|
|
// VUtil.trueThrowBusinessError(!Objects.equals(task.getTaskStatus(), (short) 0)).throwMessage("请勿重复上架");
|
|
|
|
|
// List<WmsInTaskItem> datas = inTaskItemService.getForIn(request);
|
|
|
|
|
// if (CollectionUtil.isNotEmpty(datas)) {
|
|
|
|
|
// datas.forEach(it -> {
|
|
|
|
|
// MaterialStorageItemQO qo = request.getItems().stream().filter(r -> StrUtil.equals(r.getMaterialNo(), it.getItemCode())).findFirst().get();
|
|
|
|
|
// it.setReceivedQty(it.getInspectionQty().subtract(qo.getNum()));
|
|
|
|
|
// it.setBins(StrUtil.join(",", qo.getBinNos()));
|
|
|
|
|
// it.setDataStatus((short) 1);
|
|
|
|
|
// it.setReceivedWarehouse(qo.getReceivedWarehouse());
|
|
|
|
|
// });
|
|
|
|
|
// inTaskItemService.updateBatchById(datas);
|
|
|
|
|
// inTaskService.updateState(request.getTaskNo());
|
|
|
|
|
// datas.stream()
|
|
|
|
|
// .filter(it -> request.getItems().stream().anyMatch(r -> StrUtil.equals(r.getMaterialNo(), it.getItemCode())))
|
|
|
|
|
// .collect(Collectors.groupingBy(WmsInTaskItem::getPoNum))
|
|
|
|
|
// .values()
|
|
|
|
|
// .forEach(it -> structuralPackageControllerService.materialStorage(it, request.getItems()));
|
|
|
|
|
// }
|
|
|
|
|
// return ApiResult.success();
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// /**
|
|
|
|
|
// * 搜索上架任务列表
|
|
|
|
|
// * @param request 请求参数
|
|
|
|
|
// */
|
|
|
|
|
// @PostMapping("searchTicket")
|
|
|
|
|
// public ApiResult<PageData<InTaskVO>> searchTicket(@Valid @RequestBody @NotNull InTaskSearchQO request) {
|
|
|
|
|
// return ApiResult.success(inTaskService.search(request));
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// /**
|
|
|
|
|
// * 获取上架任务明细
|
|
|
|
|
// * @param taskNo 上架任务单号
|
|
|
|
|
// */
|
|
|
|
|
// @GetMapping("getTicketItems")
|
|
|
|
|
// public ApiResult<List<WmsInTaskItem>> getTicketItems(@Valid @RequestParam @NotBlank String taskNo) {
|
|
|
|
|
// return ApiResult.success(inTaskItemService.getByNo(taskNo));
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 导出钢构件订单导入模板
|
|
|
|
|
|