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