修改质检物料收货的条码逻辑,更改了user的vo
This commit is contained in:
parent
df144e410c
commit
1080638f20
|
|
@ -18,10 +18,7 @@ import com.nflg.wms.admin.service.SAPCommonService;
|
||||||
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.dto.*;
|
import com.nflg.wms.common.pojo.dto.*;
|
||||||
import com.nflg.wms.common.pojo.qo.PoReceiveTaskConfirmQO;
|
import com.nflg.wms.common.pojo.qo.*;
|
||||||
import com.nflg.wms.common.pojo.qo.PoReceiveTaskItemConfirmQO;
|
|
||||||
import com.nflg.wms.common.pojo.qo.SRMOrderSearchQO;
|
|
||||||
import com.nflg.wms.common.pojo.qo.SrmMaterialReceiptQO;
|
|
||||||
import com.nflg.wms.common.pojo.vo.*;
|
import com.nflg.wms.common.pojo.vo.*;
|
||||||
import com.nflg.wms.common.util.DateTimeUtil;
|
import com.nflg.wms.common.util.DateTimeUtil;
|
||||||
import com.nflg.wms.common.util.UserUtil;
|
import com.nflg.wms.common.util.UserUtil;
|
||||||
|
|
@ -38,10 +35,7 @@ import org.springframework.web.bind.annotation.*;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -173,8 +167,8 @@ public class NormalPGIController extends BaseController {
|
||||||
List<SrmMaterialReceiptScanCodes> srmMaterialReceiptScanCodes = new ArrayList<>();
|
List<SrmMaterialReceiptScanCodes> srmMaterialReceiptScanCodes = new ArrayList<>();
|
||||||
List<QCMaterialSyncDTO> qcMaterialSyncDTOS = new ArrayList<>();
|
List<QCMaterialSyncDTO> qcMaterialSyncDTOS = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
for (SrmMaterialReceiptQO item : request) {
|
for (SrmMaterialReceiptQO item : request) {
|
||||||
|
|
||||||
if (item.getReceiptNum().equals(BigDecimal.ZERO))
|
if (item.getReceiptNum().equals(BigDecimal.ZERO))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
@ -200,6 +194,22 @@ public class NormalPGIController extends BaseController {
|
||||||
setPoReceive(item, wmsPoReceiptItems, wmsPoReceipt.getId(), materialInfoInOrder);
|
setPoReceive(item, wmsPoReceiptItems, wmsPoReceipt.getId(), materialInfoInOrder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 盘点条码是否重复
|
||||||
|
Map<String, Long> duplicateCodes = srmMaterialReceiptScanCodes.stream()
|
||||||
|
.collect(Collectors.groupingBy(
|
||||||
|
SrmMaterialReceiptScanCodes::getCodeId,
|
||||||
|
Collectors.counting()
|
||||||
|
))
|
||||||
|
.entrySet()
|
||||||
|
.stream()
|
||||||
|
.filter(entry -> entry.getValue() > 1)
|
||||||
|
.collect(Collectors.toMap(
|
||||||
|
Map.Entry::getKey,
|
||||||
|
Map.Entry::getValue
|
||||||
|
));
|
||||||
|
|
||||||
|
VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(duplicateCodes)).throwMessage("存在重复条码");
|
||||||
|
|
||||||
normalPGIControllerService.takeDelivery(wmsPoReceipt, wmsQcReceive, wmsPoReceiptItems, wmsQcReceiveItems, srmMaterialReceiptScanCodes, qcMaterialSyncDTOS, order.getId());
|
normalPGIControllerService.takeDelivery(wmsPoReceipt, wmsQcReceive, wmsPoReceiptItems, wmsQcReceiveItems, srmMaterialReceiptScanCodes, qcMaterialSyncDTOS, order.getId());
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
@ -448,23 +458,29 @@ public class NormalPGIController extends BaseController {
|
||||||
SrmMaterialReceiptQO item,
|
SrmMaterialReceiptQO item,
|
||||||
SAPSyncParamsDTO materialInfoInOrder
|
SAPSyncParamsDTO materialInfoInOrder
|
||||||
) {
|
) {
|
||||||
|
|
||||||
if (CollectionUtil.isNotEmpty(codes)) {
|
if (CollectionUtil.isNotEmpty(codes)) {
|
||||||
codes.forEach(code -> {
|
// 根据 BatchNumber 和 SerialNumbers 分组并汇总 CodeNum
|
||||||
|
Map<String, BigDecimal> batchNumbers = codes.stream()
|
||||||
|
.collect(Collectors.groupingBy(SrmMaterialReceiptScanCodes::getKey,
|
||||||
|
Collectors.mapping(SrmMaterialReceiptScanCodes::getCodeNum, Collectors.reducing(BigDecimal.ZERO, BigDecimal::add))));
|
||||||
|
for (Map.Entry<String, BigDecimal> entry : batchNumbers.entrySet()) {
|
||||||
|
String[] keys = entry.getKey().split(";", -1);
|
||||||
SRMLineVOListItem srmItem = new SRMLineVOListItem();
|
SRMLineVOListItem srmItem = new SRMLineVOListItem();
|
||||||
srmItem.setItemCode(item.getItemCode());
|
srmItem.setItemCode(item.getItemCode());
|
||||||
srmItem.setItemName(materialInfoInOrder.getMaktx());
|
srmItem.setItemName(materialInfoInOrder.getMaktx());
|
||||||
srmItem.setUnit(materialInfoInOrder.getMeins());
|
srmItem.setUnit(materialInfoInOrder.getMeins());
|
||||||
srmItem.setFactory(materialInfoInOrder.getWerks());
|
srmItem.setFactory(materialInfoInOrder.getWerks());
|
||||||
srmItem.setReceivedWarehouse(materialInfoInOrder.getWarehouseNo());
|
srmItem.setReceivedWarehouse(materialInfoInOrder.getWarehouseNo());
|
||||||
srmItem.setReceiveBatchNum(code.getBatchNumber());
|
srmItem.setReceiveBatchNum(keys[0]);
|
||||||
srmItem.setReceivedQty(code.getCodeNum());
|
srmItem.setReceivedQty(entry.getValue());
|
||||||
srmItem.setSerialNum(code.getSerialNumbers());
|
srmItem.setSerialNum(keys[1]);
|
||||||
srmItem.setLineNumber(Integer.valueOf(item.getLineNumber()));
|
srmItem.setLineNumber(Integer.valueOf(item.getLineNumber()));
|
||||||
srmItem.setNoteNum(item.getNoteNum());
|
srmItem.setNoteNum(item.getNoteNum());
|
||||||
srmItem.setReceivedDate(DateTimeUtil.format(LocalDate.now(), "yyyy-MM-dd"));
|
srmItem.setReceivedDate(DateTimeUtil.format(LocalDate.now(), "yyyy-MM-dd"));
|
||||||
srmItem.setInspectionFlag("Y");
|
srmItem.setInspectionFlag("Y");
|
||||||
pushDto.getContent().getLineVOList().add(srmItem);
|
pushDto.getContent().getLineVOList().add(srmItem);
|
||||||
});
|
}
|
||||||
} else {
|
} else {
|
||||||
SRMLineVOListItem srmItem = new SRMLineVOListItem();
|
SRMLineVOListItem srmItem = new SRMLineVOListItem();
|
||||||
srmItem.setItemCode(item.getItemCode());
|
srmItem.setItemCode(item.getItemCode());
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.nflg.wms.admin.pojo.document;
|
package com.nflg.wms.admin.pojo.document;
|
||||||
|
|
||||||
|
import com.nflg.wms.common.pojo.dto.SRMTokenInputDTO;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
@ -11,7 +12,7 @@ import java.math.BigDecimal;
|
||||||
@Data
|
@Data
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
@Document(collection = "SrmMaterialReceiptScanCodes")
|
@Document(collection = "SrmMaterialReceiptScanCodes")
|
||||||
public class SrmMaterialReceiptScanCodes{
|
public class SrmMaterialReceiptScanCodes {
|
||||||
@Id
|
@Id
|
||||||
private String id;
|
private String id;
|
||||||
|
|
||||||
|
|
@ -50,4 +51,10 @@ public class SrmMaterialReceiptScanCodes{
|
||||||
* 二维码内容
|
* 二维码内容
|
||||||
*/
|
*/
|
||||||
private String codeContent;
|
private String codeContent;
|
||||||
|
|
||||||
|
private String key;
|
||||||
|
|
||||||
|
public String getKey() {
|
||||||
|
return this.batchNumber + ";" + this.serialNumbers;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,4 +9,6 @@ import java.util.List;
|
||||||
@Repository
|
@Repository
|
||||||
public interface SrmMaterialReceiptScanCodesRepository extends MongoRepository<SrmMaterialReceiptScanCodes, String> {
|
public interface SrmMaterialReceiptScanCodesRepository extends MongoRepository<SrmMaterialReceiptScanCodes, String> {
|
||||||
List<SrmMaterialReceiptScanCodes> findByOrderItemId(String orderItemId);
|
List<SrmMaterialReceiptScanCodes> findByOrderItemId(String orderItemId);
|
||||||
|
|
||||||
|
List<SrmMaterialReceiptScanCodes> findByCodeIdIn(List<String> attr0);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -183,7 +183,10 @@ public class NormalPGIControllerService {
|
||||||
).throwMessage("此物料[" + item.getItemCode() + "]必须填写序列号,订单号:" + item.getPoNum());
|
).throwMessage("此物料[" + item.getItemCode() + "]必须填写序列号,订单号:" + item.getPoNum());
|
||||||
}
|
}
|
||||||
List<SrmMaterialReceiptScanCodes> srmMaterialReceiptScanCodes = new ArrayList<>();
|
List<SrmMaterialReceiptScanCodes> srmMaterialReceiptScanCodes = new ArrayList<>();
|
||||||
|
List<String> codeIds = new ArrayList<>();
|
||||||
for (PDAScanCodeQO scanCode : item.getScanCodes()) {
|
for (PDAScanCodeQO scanCode : item.getScanCodes()) {
|
||||||
|
VUtil.trueThrowBusinessError(codeIds.contains(scanCode.getCodeId())).throwMessage("此物料[" + item.getItemCode() + "]中存在重复的条码" + scanCode.getCodeId());
|
||||||
|
codeIds.add(scanCode.getCodeId());
|
||||||
srmMaterialReceiptScanCodes.add(
|
srmMaterialReceiptScanCodes.add(
|
||||||
new SrmMaterialReceiptScanCodes()
|
new SrmMaterialReceiptScanCodes()
|
||||||
.setOrderItemId(item.getId())
|
.setOrderItemId(item.getId())
|
||||||
|
|
@ -194,6 +197,11 @@ public class NormalPGIControllerService {
|
||||||
.setSerialNumbers(scanCode.getSerialNumbers())
|
.setSerialNumbers(scanCode.getSerialNumbers())
|
||||||
.setCodeContent(scanCode.getCodeContent()));
|
.setCodeContent(scanCode.getCodeContent()));
|
||||||
}
|
}
|
||||||
|
//查看是否有重复的条码
|
||||||
|
|
||||||
|
List<SrmMaterialReceiptScanCodes> existingCodes = srmMaterialReceiptCanCodesRepository.findByCodeIdIn(codeIds);
|
||||||
|
VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(existingCodes)).throwMessage("存在已使用的条码,不能重复使用");
|
||||||
|
|
||||||
return srmMaterialReceiptScanCodes;
|
return srmMaterialReceiptScanCodes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -253,8 +261,8 @@ public class NormalPGIControllerService {
|
||||||
//修改收货单的物料凭证和年度物料凭证
|
//修改收货单的物料凭证和年度物料凭证
|
||||||
if (CollectionUtil.isNotEmpty(ids)) {
|
if (CollectionUtil.isNotEmpty(ids)) {
|
||||||
wmsQcReceiveItemService.lambdaUpdate()
|
wmsQcReceiveItemService.lambdaUpdate()
|
||||||
.set(WmsQcReceiveItem::getMaterialDoc, zwm3A17ReturnDTO.getKey().getKey())
|
.set(WmsQcReceiveItem::getMaterialDoc, zwm3A17ReturnDTO.getValue().getKey())
|
||||||
.set(WmsQcReceiveItem::getMaterialDocYear, zwm3A17ReturnDTO.getKey().getValue())
|
.set(WmsQcReceiveItem::getMaterialDocYear, zwm3A17ReturnDTO.getValue().getValue())
|
||||||
.in(WmsQcReceiveItem::getId, ids)
|
.in(WmsQcReceiveItem::getId, ids)
|
||||||
.update();
|
.update();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -404,7 +404,7 @@ public class UserControllerService {
|
||||||
|
|
||||||
public IPage<UserSupplierVO> searchSupplier(@Valid UserSupplierSearchQO request) {
|
public IPage<UserSupplierVO> searchSupplier(@Valid UserSupplierSearchQO request) {
|
||||||
IPage<UserSupplierVO> pu = userSupplierService.search(request);
|
IPage<UserSupplierVO> pu = userSupplierService.search(request);
|
||||||
pu.getRecords().forEach(userVO -> userVO.setRoles(userRoleMapService.getAuthorizeRole(userVO.getId())));
|
pu.getRecords().forEach(userVO -> userVO.setRoleIds(userRoleMapService.getAuthorizeRole(userVO.getId())));
|
||||||
return pu;
|
return pu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.nflg.wms.admin;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
public class DataTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test() {
|
||||||
|
// SapMetaPrintTest sapMetaPrintTest = new SapMetaPrintTest();
|
||||||
|
// sapMetaPrintTest.ZIM_001();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -62,7 +62,7 @@ public class UserAddQO {
|
||||||
/**
|
/**
|
||||||
* 初始化密码后是否强制要求登录后重设密码
|
* 初始化密码后是否强制要求登录后重设密码
|
||||||
*/
|
*/
|
||||||
private Boolean enableMustResetPwd;
|
private Boolean enableMustResetPwd=false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 默认语言
|
* 默认语言
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ public class UserUpdateQO {
|
||||||
/**
|
/**
|
||||||
* 部门id
|
* 部门id
|
||||||
*/
|
*/
|
||||||
@NotBlank
|
@NotNull
|
||||||
private Long deptId;
|
private Long deptId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -57,12 +57,10 @@ public class UserUpdateQO {
|
||||||
/**
|
/**
|
||||||
* 初始化密码后是否强制要求登录后重设密码
|
* 初始化密码后是否强制要求登录后重设密码
|
||||||
*/
|
*/
|
||||||
@NotNull
|
private Boolean enableMustResetPwd = false;
|
||||||
private Boolean enableMustResetPwd;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 默认语言
|
* 默认语言
|
||||||
*/
|
*/
|
||||||
@NotBlank
|
|
||||||
private String languageCode;
|
private String languageCode;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -116,5 +116,5 @@ public class UserSupplierVO {
|
||||||
private Boolean enableMustResetPwd;
|
private Boolean enableMustResetPwd;
|
||||||
|
|
||||||
//所属角色
|
//所属角色
|
||||||
private Collection<RoleSimpleVO> roles;
|
private Collection<RoleSimpleVO> roleIds;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -57,4 +57,6 @@ public class UserVO {
|
||||||
|
|
||||||
//最后更新时间
|
//最后更新时间
|
||||||
private LocalDateTime updateTime;
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
private String remark;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue