Browse Source

add:新增需求

master1
gengby 3 days ago
parent
commit
7fed8d5192
  1. 2
      wms/nlsso-server/src/main/java/org/nl/wms/database/eas/service/IeasOutInBillService.java
  2. 179
      wms/nlsso-server/src/main/java/org/nl/wms/database/eas/service/impl/EasOutInBillDetailServiceImpl.java
  3. 28
      wms/nlsso-server/src/main/java/org/nl/wms/database/eas/service/impl/EasOutInBillServiceImpl.java
  4. 364
      wms/nlsso-server/src/main/java/org/nl/wms/database/eas/service/impl/ReceiptBillServiceImpl.java
  5. 88
      wms/nlsso-server/src/main/java/org/nl/wms/ivt/service/impl/StIvtStockAssignDtlServiceImpl.java
  6. 24
      wms/nlsso-server/src/main/java/org/nl/wms/schedule/service/dao/VWmsRkinfobydhinfoThird.java
  7. 11
      wms/nlsso-server/src/main/java/org/nl/wms/schedule/service/dao/mapper/SrmDataSyncMapper.java
  8. 2
      wms/nlsso-server/src/main/java/org/nl/wms/schedule/service/impl/EasDataSyncServiceImpl.java
  9. 95
      wms/nlsso-server/src/main/java/org/nl/wms/schedule/service/impl/SrmDataSyncServiceImpl.java

2
wms/nlsso-server/src/main/java/org/nl/wms/database/eas/service/IeasOutInBillService.java

@ -107,7 +107,7 @@ public interface IeasOutInBillService extends IService<EasOutInBill> {
*
* @param djbhList /
*/
void audit(List<String> djbhList);
void audit(List<String> djbhList,boolean flag);
/**

179
wms/nlsso-server/src/main/java/org/nl/wms/database/eas/service/impl/EasOutInBillDetailServiceImpl.java

@ -23,6 +23,9 @@ import org.nl.wms.database.eas.dto.ReceiptBillDetailVO;
import org.nl.wms.database.eas.service.*;
import org.nl.wms.ivt.service.*;
import org.nl.wms.ivt.service.dao.*;
import org.nl.wms.ivt.service.dao.mapper.StIvtStockAssignDtlMapper;
import org.nl.wms.schedule.service.dao.VWmsRkinfobydhinfoThird;
import org.nl.wms.schedule.service.dao.mapper.SrmDataSyncMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
@ -60,6 +63,10 @@ public class EasOutInBillDetailServiceImpl extends ServiceImpl<EasOutInBillDetai
@Lazy
@Autowired
private IreceiptBillService ireceiptBillService;
@Autowired
private SrmDataSyncMapper srmDataSyncMapper;
@Autowired
private StIvtStockAssignDtlMapper stockAssignDtlMapper;
// @Autowired
// private IallocationBillService iallocationBillService;
@ -620,6 +627,176 @@ public class EasOutInBillDetailServiceImpl extends ServiceImpl<EasOutInBillDetai
}
}
updateAssignStatus(list);
} else {
// TODO 处理采购入库单审核逻辑
//如果单据是采购入库单的单据类型的话,就根据rkbid查找shdhbid
VWmsRkinfobydhinfoThird vWmsRkinfobydhinfoThird = srmDataSyncMapper.getShbidByRkbid(easOutInBillDetailVO.getFlid());
if (ObjectUtil.isNotEmpty(vWmsRkinfobydhinfoThird)){
String shdhbid = vWmsRkinfobydhinfoThird.getShdhbid();
list = stockAssignDtlService.list(new LambdaQueryWrapper<StIvtStockAssignDtl>()
.eq(StIvtStockAssignDtl::getDetail_id, shdhbid)
.eq(StIvtStockAssignDtl::getStatus, false));
if (CollectionUtils.isNotEmpty(list)){
//查询该单据已经分配了多少数量
BigDecimal totalAmount = list.stream()
.map(StIvtStockAssignDtl::getAssign_qty)
.filter(Objects::nonNull)
.reduce(BigDecimal.ZERO, BigDecimal::add);
//
if (easOutInBillDetailVO.getSl().compareTo(totalAmount) < 0){
BigDecimal subtract = totalAmount.subtract(easOutInBillDetailVO.getSl());
for (StIvtStockAssignDtl stIvtStockAssignDtl : list) {
BigDecimal assignQty = stIvtStockAssignDtl.getAssign_qty();
if (assignQty.compareTo(subtract) <= 0) {
// 当前明细的数量小于等于需要减的,直接清零
subtract = subtract.subtract(assignQty);
stIvtStockAssignDtl.setAssign_qty(BigDecimal.ZERO);
stockAssignDtlMapper.deleteById(stIvtStockAssignDtl.getId());
} else {
// 当前明细够减,部分减少后退出
stIvtStockAssignDtl.setAssign_qty(assignQty.subtract(subtract));
stockAssignDtlMapper.updateById(stIvtStockAssignDtl);
break;
}
}
}
Map<String, Map<String, Map<String, BigDecimal>>> storMap = list.stream()
.collect(Collectors.groupingBy(
StIvtStockAssignDtl::getStor_code,
Collectors.groupingBy(
StIvtStockAssignDtl::getStruct_code,
Collectors.groupingBy(
StIvtStockAssignDtl::getDetail_id,
Collectors.reducing(BigDecimal.ZERO, StIvtStockAssignDtl::getAssign_qty, BigDecimal::add)
)
)
));
if (ObjectUtil.isNotEmpty(storMap)) {
Map<String, Map<String, BigDecimal>> structMap = storMap.get(easOutInBillDetailVO.getCkbm());
if (ObjectUtil.isNotEmpty(structMap)) {
structMap.forEach((structCode, detailMap) -> {
//获取仓位信息
StIvtStructattr structOne = structattrService.getOne(new LambdaQueryWrapper<StIvtStructattr>()
.eq(StIvtStructattr::getStruct_code, structCode)
.eq(StIvtStructattr::getStor_code, easOutInBillDetailVO.getCkbm()));
if (ObjectUtil.isNotEmpty(structOne)) {
//判断仓位是否已经有货
if (StrUtil.isEmpty(structOne.getVehicle_code())) {
//无货直接新增库存明细
//使用仓库编码 + "." + "库位编码"作为载具号
String vehicle_code = structOne.getStor_code() + "." + structCode.replace("-", "").trim();
detailMap.forEach(
(detail_id, qty) -> {
//新增库存明细
StIvtStockDtl stockDtl = new StIvtStockDtl();
stockDtl.setId(IdUtil.getLongId().toString());
stockDtl.setVehicle_code(vehicle_code);
stockDtl.setMaterial_code(easOutInBillDetailVO.getWlbm());
stockDtl.setMaterial_name(easOutInBillDetailVO.getWlmc());
stockDtl.setQty(qty);
stockDtl.setStorage_time(DateUtil.today());
stockDtl.setUnit(easOutInBillDetailVO.getJldw());
stockDtl.setBill_code(easOutInBillDetailVO.getDjbh());
stockDtl.setDetail_id(detail_id);
stockDtl.setTrack_no(easOutInBillDetailVO.getGzhbm());
stockDtl.setUpdate_id(SecurityUtils.getCurrentUserId());
stockDtl.setUpdate_name(SecurityUtils.getCurrentNickName());
stockDtl.setUpdate_time(DateUtil.now());
stockDtlService.save(stockDtl);
}
);
//修改库位载具编码
structOne.setVehicle_code(vehicle_code);
structOne.setUpdate_id(SecurityUtils.getCurrentUserId());
structOne.setUpdate_name(SecurityUtils.getCurrentNickName());
structOne.setUpdate_time(DateUtil.now());
structattrService.updateById(structOne);
} else {
//有货 则修改库存明细相关信息
detailMap.forEach(
(detail_id, qty) -> {
//修改库存明细
StIvtStockDtl dtlOne = stockDtlService.getOne(new LambdaQueryWrapper<StIvtStockDtl>()
.eq(StIvtStockDtl::getVehicle_code, structOne.getVehicle_code())
.eq(StIvtStockDtl::getDetail_id, detail_id));
//存在该单据明细的库存明细则修改数量
if (ObjectUtil.isNotEmpty(dtlOne)) {
dtlOne.setQty(dtlOne.getQty().add(qty));
dtlOne.setUpdate_id(SecurityUtils.getCurrentUserId());
dtlOne.setUpdate_name(SecurityUtils.getCurrentNickName());
dtlOne.setUpdate_time(DateUtil.now());
stockDtlService.updateById(dtlOne);
} else {
if (qty.compareTo(BigDecimal.ZERO) > 0) {
//不存在该单据明细的库存明细则新增库存明细
StIvtStockDtl stockDtl = new StIvtStockDtl();
stockDtl.setId(IdUtil.getLongId().toString());
stockDtl.setVehicle_code(structOne.getVehicle_code());
stockDtl.setMaterial_code(easOutInBillDetailVO.getWlbm());
stockDtl.setMaterial_name(easOutInBillDetailVO.getWlmc());
stockDtl.setStorage_time(DateUtil.today());
stockDtl.setQty(qty);
stockDtl.setUnit(easOutInBillDetailVO.getJldw());
stockDtl.setBill_code(easOutInBillDetailVO.getDjbh());
stockDtl.setDetail_id(detail_id);
stockDtl.setTrack_no(easOutInBillDetailVO.getGzhbm());
stockDtl.setUpdate_id(SecurityUtils.getCurrentUserId());
stockDtl.setUpdate_name(SecurityUtils.getCurrentNickName());
stockDtl.setUpdate_time(DateUtil.now());
stockDtlService.save(stockDtl);
} else if (qty.compareTo(BigDecimal.ZERO) < 0) {
//写个sql去查询该明细下对应的仓库的物料的库存明细信息
List<Map<String, Object>> smsList = stockDtlService.getListBySMS(structCode, easOutInBillDetailVO.getWlbm(), easOutInBillDetailVO.getCkbm());
//临时变量
BigDecimal tempQty = qty;
for (Map<String, Object> sms : smsList) {
if (tempQty.compareTo(BigDecimal.ZERO) >= 0) {
break;
}
String id = sms.get("id") != null ? sms.get("id").toString() : "";
//库位库存数量
BigDecimal kcQty = sms.get("qty") != null ? new BigDecimal(sms.get("qty").toString()) : BigDecimal.ZERO;
BigDecimal minQty = kcQty.min(tempQty.abs());
//修改库存明细中的库存数量
StIvtStockDtl stockDtl = stockDtlService.getOne(new LambdaQueryWrapper<StIvtStockDtl>()
.eq(StIvtStockDtl::getId, id));
if (ObjectUtil.isNotEmpty(stockDtl)) {
BigDecimal sysl = stockDtl.getQty().subtract(minQty);
if (sysl.compareTo(BigDecimal.ZERO) == 0) {
stockDtlService.removeById(stockDtl);
} else {
stockDtl.setQty(sysl);
stockDtl.setUpdate_id(SecurityUtils.getCurrentUserId());
stockDtl.setUpdate_name(SecurityUtils.getCurrentNickName());
stockDtl.setUpdate_time(DateUtil.now());
stockDtlService.updateById(stockDtl);
}
tempQty = tempQty.subtract(minQty.negate());
}
List<StIvtStockDtl> newDtls = stockDtlService.list(new LambdaQueryWrapper<StIvtStockDtl>()
.eq(StIvtStockDtl::getVehicle_code, (String) sms.get("vehicle_code")));
if (CollectionUtils.isEmpty(newDtls)) {
structOne.setVehicle_code("");
structOne.setUpdate_id(SecurityUtils.getCurrentUserId());
structOne.setUpdate_name(SecurityUtils.getCurrentNickName());
structOne.setUpdate_time(DateUtil.now());
structattrService.update(structOne);
}
}
}
}
}
);
}
}
});
}
}
updateAssignStatus(list);
}
}
}
}
);
@ -865,7 +1042,7 @@ public class EasOutInBillDetailServiceImpl extends ServiceImpl<EasOutInBillDetai
}
if (CollectionUtils.isNotEmpty(auditableList)) {
//调用审核方法
ieasOutInBillService.audit(auditableList);
ieasOutInBillService.audit(auditableList,true);
}
}

28
wms/nlsso-server/src/main/java/org/nl/wms/database/eas/service/impl/EasOutInBillServiceImpl.java

@ -603,7 +603,7 @@ public class EasOutInBillServiceImpl extends ServiceImpl<EasOutInBillMapper, Eas
@Override
@Transactional(rollbackFor = Exception.class)
public void audit(List<String> djbhList) {
public void audit(List<String> djbhList, boolean flag) {
final List<EasOutInBillDto> easBills = new ArrayList<>();
final List<EasOutInBillDto> srmBills = new ArrayList<>();
djbhList.forEach(
@ -616,7 +616,7 @@ public class EasOutInBillServiceImpl extends ServiceImpl<EasOutInBillMapper, Eas
easOutInBillDto.setDjly(easOutInBillOne.getDjlx());
easOutInBillDto.setInWhUser(SecurityUtils.getCurrentNickName() == null ? "admin" : SecurityUtils.getCurrentNickName());
easOutInBillDto.setBizDate(easOutInBillOne.getYwrq());
if (easOutInBillOne.getDjlx().equals("LLCKD")){
if (easOutInBillOne.getDjlx().equals("LLCKD") && !flag){
easOutInBillDto.setIsCF(1);
}
List<EasOutInBillDetailDto> entrys = new ArrayList<>();
@ -718,7 +718,7 @@ public class EasOutInBillServiceImpl extends ServiceImpl<EasOutInBillMapper, Eas
//调用审核接口
List<EasOutInBill> bills = this.list(new LambdaQueryWrapper<EasOutInBill>()
.in(EasOutInBill::getDjid, ids));
auditMethod(bills);
auditMethod(bills,true);
}
}
}
@ -741,19 +741,19 @@ public class EasOutInBillServiceImpl extends ServiceImpl<EasOutInBillMapper, Eas
//调用审核接口
List<EasOutInBill> bills = this.list(new LambdaQueryWrapper<EasOutInBill>()
.in(EasOutInBill::getDjid, ids));
auditMethod(bills);
auditMethod(bills,false);
}
}
}
private void auditMethod(List<EasOutInBill> bills) {
private void auditMethod(List<EasOutInBill> bills,boolean flag) {
if (CollectionUtils.isNotEmpty(bills)) {
List<String> djbhList = bills.stream()
.map(EasOutInBill::getDjbh)
.distinct()
.collect(Collectors.toList());
audit(djbhList);
audit(djbhList,flag);
}
}
@ -839,37 +839,53 @@ public class EasOutInBillServiceImpl extends ServiceImpl<EasOutInBillMapper, Eas
if (StrUtil.equals(type, "ALLO")) {
List<AllocationBill> allocationBillList = allocationBillMapper.selectList(new LambdaQueryWrapper<AllocationBill>().in(AllocationBill::getDjid, djids));
for (AllocationBill allocationBill : allocationBillList) {
if (StrUtil.isEmpty(allocationBill.getShjg())){
continue;
}
allocationBill.setDjzt("审核");
allocationBill.setUpdate_id(currentUserId);
allocationBill.setUpdate_name(currentNickName);
allocationBill.setUpdate_time(now);
allocationBill.setBtbz("手动删除," + allocationBill.getShjg());
allocationBillMapper.updateById(allocationBill);
}
} else if (StrUtil.equals(type, "RECE")) {
List<ReceiptBill> receiptBillList = receiptBillMapper.selectList(new LambdaQueryWrapper<ReceiptBill>().in(ReceiptBill::getDjid, djids));
for (ReceiptBill receiptBill : receiptBillList) {
if (StrUtil.isEmpty(receiptBill.getShjg())){
continue;
}
receiptBill.setDjzt("2");
receiptBill.setUpdate_id(currentUserId);
receiptBill.setUpdate_name(currentNickName);
receiptBill.setUpdate_time(now);
receiptBill.setBtbz("手动删除," + receiptBill.getShjg());
receiptBillMapper.updateById(receiptBill);
}
} else if (StrUtil.equals(type, "SRMINOUT")) {
List<EasOutInBill> easOutInBills = easOutInBillMapper.selectList(new LambdaQueryWrapper<EasOutInBill>().in(EasOutInBill::getDjid, djids));
for (EasOutInBill easOutInBill : easOutInBills) {
if (StrUtil.isEmpty(easOutInBill.getShjg())){
continue;
}
easOutInBill.setDjzt("审核");
easOutInBill.setUpdate_id(currentUserId);
easOutInBill.setUpdate_name(currentNickName);
easOutInBill.setUpdate_time(now);
easOutInBill.setBtbz("手动删除," + easOutInBill.getShjg());
easOutInBillMapper.updateById(easOutInBill);
}
} else if (StrUtil.equals(type, "EASINOUT")) {
List<EasOutInBill> easOutInBills = easOutInBillMapper.selectList(new LambdaQueryWrapper<EasOutInBill>().in(EasOutInBill::getDjid, djids));
for (EasOutInBill easOutInBill : easOutInBills) {
if (StrUtil.isEmpty(easOutInBill.getShjg())){
continue;
}
easOutInBill.setDjzt("审核");
easOutInBill.setUpdate_id(currentUserId);
easOutInBill.setUpdate_name(currentNickName);
easOutInBill.setUpdate_time(now);
easOutInBill.setBtbz("手动删除," + easOutInBill.getShjg());
easOutInBillMapper.updateById(easOutInBill);
}
}

364
wms/nlsso-server/src/main/java/org/nl/wms/database/eas/service/impl/ReceiptBillServiceImpl.java

@ -160,118 +160,114 @@ public class ReceiptBillServiceImpl extends ServiceImpl<ReceiptBillMapper, Recei
@Override
public void warehouseCommit(List<ReceiptBillDetailVO> receiptBillDetailVOS, boolean flag) {
if (CollectionUtils.isNotEmpty(receiptBillDetailVOS)) {
receiptBillDetailVOS.stream()
.forEach(
receiptBillDetailVO -> {
//查询已分配未提交库存的分配记录
List<StIvtStockAssignDtl> list = stockAssignDtlService.list(new LambdaQueryWrapper<StIvtStockAssignDtl>()
.eq(StIvtStockAssignDtl::getDetail_id, receiptBillDetailVO.getFlid())
.eq(StIvtStockAssignDtl::getStatus, false));
if (CollectionUtils.isNotEmpty(list)) {
Map<String, Map<String, Map<String, BigDecimal>>> storMap = list.stream()
.collect(Collectors.groupingBy(
StIvtStockAssignDtl::getStor_code,
Collectors.groupingBy(
StIvtStockAssignDtl::getStruct_code,
Collectors.groupingBy(
StIvtStockAssignDtl::getDetail_id,
Collectors.reducing(BigDecimal.ZERO, StIvtStockAssignDtl::getAssign_qty, BigDecimal::add)
)
)
));
if (ObjectUtil.isNotEmpty(storMap)) {
Map<String, Map<String, BigDecimal>> structMap = storMap.get(receiptBillDetailVO.getCkbm());
if (ObjectUtil.isNotEmpty(structMap)) {
structMap.forEach((structCode, detailMap) -> {
//获取仓位信息
StIvtStructattr structOne = structattrService.getOne(new LambdaQueryWrapper<StIvtStructattr>()
.eq(StIvtStructattr::getStruct_code, structCode)
.eq(StIvtStructattr::getStor_code, receiptBillDetailVO.getCkbm()));
if (ObjectUtil.isNotEmpty(structOne)) {
//判断仓位是否已经有货
if (StrUtil.isEmpty(structOne.getVehicle_code())) {
//无货直接新增库存明细
//使用仓库编码 + "." + "库位编码"作为载具号
String vehicle_code = structOne.getStor_code() + "." + structCode.replace("-", "").trim();
detailMap.forEach(
(detail_id, qty) -> {
//新增库存明细
StIvtStockDtl stockDtl = new StIvtStockDtl();
stockDtl.setId(IdUtil.getLongId().toString());
stockDtl.setVehicle_code(vehicle_code);
stockDtl.setMaterial_code(receiptBillDetailVO.getWlbm());
stockDtl.setMaterial_name(receiptBillDetailVO.getWlmc());
stockDtl.setQty(qty);
stockDtl.setStorage_time(DateUtil.today());
stockDtl.setUnit(receiptBillDetailVO.getJldw());
stockDtl.setBill_code(receiptBillDetailVO.getDjbh());
stockDtl.setDetail_id(detail_id);
stockDtl.setUpdate_id(SecurityUtils.getCurrentUserId());
stockDtl.setUpdate_name(SecurityUtils.getCurrentNickName());
stockDtl.setUpdate_time(DateUtil.now());
stockDtlService.save(stockDtl);
}
);
//修改库位载具编码
structOne.setVehicle_code(vehicle_code);
structOne.setUpdate_id(SecurityUtils.getCurrentUserId());
structOne.setUpdate_name(SecurityUtils.getCurrentNickName());
structOne.setUpdate_time(DateUtil.now());
structattrService.updateById(structOne);
} else {
//有货 则修改库存明细相关信息
detailMap.forEach(
(detail_id, qty) -> {
//修改库存明细
StIvtStockDtl dtlOne = stockDtlService.getOne(new LambdaQueryWrapper<StIvtStockDtl>()
.eq(StIvtStockDtl::getVehicle_code, structOne.getVehicle_code())
.eq(StIvtStockDtl::getDetail_id, detail_id));
//存在该单据明细的库存明细则修改数量
if (ObjectUtil.isNotEmpty(dtlOne)) {
dtlOne.setQty(dtlOne.getQty().add(qty));
dtlOne.setUpdate_id(SecurityUtils.getCurrentUserId());
dtlOne.setUpdate_name(SecurityUtils.getCurrentNickName());
dtlOne.setUpdate_time(DateUtil.now());
stockDtlService.updateById(dtlOne);
//TODO 新增库存变动记录信息
} else {
if (qty.compareTo(BigDecimal.ZERO) > 0) {
//不存在该单据明细的库存明细则新增库存明细
StIvtStockDtl stockDtl = new StIvtStockDtl();
stockDtl.setId(IdUtil.getLongId().toString());
stockDtl.setVehicle_code(structOne.getVehicle_code());
stockDtl.setMaterial_code(receiptBillDetailVO.getWlbm());
stockDtl.setMaterial_name(receiptBillDetailVO.getWlmc());
stockDtl.setStorage_time(DateUtil.today());
stockDtl.setQty(qty);
stockDtl.setUnit(receiptBillDetailVO.getJldw());
stockDtl.setBill_code(receiptBillDetailVO.getDjbh());
stockDtl.setDetail_id(detail_id);
stockDtl.setUpdate_id(SecurityUtils.getCurrentUserId());
stockDtl.setUpdate_name(SecurityUtils.getCurrentNickName());
stockDtl.setUpdate_time(DateUtil.now());
stockDtlService.save(stockDtl);
}
}
}
);
}
}
});
}
}
updateAssignStatus(list);
}
}
);
// receiptBillDetailVOS.stream()
// .forEach(
// receiptBillDetailVO -> {
// //查询已分配未提交库存的分配记录
// List<StIvtStockAssignDtl> list = stockAssignDtlService.list(new LambdaQueryWrapper<StIvtStockAssignDtl>()
// .eq(StIvtStockAssignDtl::getDetail_id, receiptBillDetailVO.getFlid())
// .eq(StIvtStockAssignDtl::getStatus, false));
// if (CollectionUtils.isNotEmpty(list)) {
// Map<String, Map<String, Map<String, BigDecimal>>> storMap = list.stream()
// .collect(Collectors.groupingBy(
// StIvtStockAssignDtl::getStor_code,
// Collectors.groupingBy(
// StIvtStockAssignDtl::getStruct_code,
// Collectors.groupingBy(
// StIvtStockAssignDtl::getDetail_id,
// Collectors.reducing(BigDecimal.ZERO, StIvtStockAssignDtl::getAssign_qty, BigDecimal::add)
// )
// )
// ));
// if (ObjectUtil.isNotEmpty(storMap)) {
// Map<String, Map<String, BigDecimal>> structMap = storMap.get(receiptBillDetailVO.getCkbm());
// if (ObjectUtil.isNotEmpty(structMap)) {
// structMap.forEach((structCode, detailMap) -> {
// //获取仓位信息
// StIvtStructattr structOne = structattrService.getOne(new LambdaQueryWrapper<StIvtStructattr>()
// .eq(StIvtStructattr::getStruct_code, structCode)
// .eq(StIvtStructattr::getStor_code, receiptBillDetailVO.getCkbm()));
// if (ObjectUtil.isNotEmpty(structOne)) {
// //判断仓位是否已经有货
// if (StrUtil.isEmpty(structOne.getVehicle_code())) {
// //无货直接新增库存明细
// //使用仓库编码 + "." + "库位编码"作为载具号
// String vehicle_code = structOne.getStor_code() + "." + structCode.replace("-", "").trim();
// detailMap.forEach(
// (detail_id, qty) -> {
// //新增库存明细
// StIvtStockDtl stockDtl = new StIvtStockDtl();
// stockDtl.setId(IdUtil.getLongId().toString());
// stockDtl.setVehicle_code(vehicle_code);
// stockDtl.setMaterial_code(receiptBillDetailVO.getWlbm());
// stockDtl.setMaterial_name(receiptBillDetailVO.getWlmc());
// stockDtl.setQty(qty);
// stockDtl.setStorage_time(DateUtil.today());
// stockDtl.setUnit(receiptBillDetailVO.getJldw());
// stockDtl.setBill_code(receiptBillDetailVO.getDjbh());
// stockDtl.setDetail_id(detail_id);
// stockDtl.setUpdate_id(SecurityUtils.getCurrentUserId());
// stockDtl.setUpdate_name(SecurityUtils.getCurrentNickName());
// stockDtl.setUpdate_time(DateUtil.now());
// stockDtlService.save(stockDtl);
// }
// );
// //修改库位载具编码
// structOne.setVehicle_code(vehicle_code);
// structOne.setUpdate_id(SecurityUtils.getCurrentUserId());
// structOne.setUpdate_name(SecurityUtils.getCurrentNickName());
// structOne.setUpdate_time(DateUtil.now());
// structattrService.updateById(structOne);
// } else {
// //有货 则修改库存明细相关信息
// detailMap.forEach(
// (detail_id, qty) -> {
// //修改库存明细
// StIvtStockDtl dtlOne = stockDtlService.getOne(new LambdaQueryWrapper<StIvtStockDtl>()
// .eq(StIvtStockDtl::getVehicle_code, structOne.getVehicle_code())
// .eq(StIvtStockDtl::getDetail_id, detail_id));
// //存在该单据明细的库存明细则修改数量
// if (ObjectUtil.isNotEmpty(dtlOne)) {
// dtlOne.setQty(dtlOne.getQty().add(qty));
// dtlOne.setUpdate_id(SecurityUtils.getCurrentUserId());
// dtlOne.setUpdate_name(SecurityUtils.getCurrentNickName());
// dtlOne.setUpdate_time(DateUtil.now());
// stockDtlService.updateById(dtlOne);
// } else {
// if (qty.compareTo(BigDecimal.ZERO) > 0) {
// //不存在该单据明细的库存明细则新增库存明细
// StIvtStockDtl stockDtl = new StIvtStockDtl();
// stockDtl.setId(IdUtil.getLongId().toString());
// stockDtl.setVehicle_code(structOne.getVehicle_code());
// stockDtl.setMaterial_code(receiptBillDetailVO.getWlbm());
// stockDtl.setMaterial_name(receiptBillDetailVO.getWlmc());
// stockDtl.setStorage_time(DateUtil.today());
// stockDtl.setQty(qty);
// stockDtl.setUnit(receiptBillDetailVO.getJldw());
// stockDtl.setBill_code(receiptBillDetailVO.getDjbh());
// stockDtl.setDetail_id(detail_id);
// stockDtl.setUpdate_id(SecurityUtils.getCurrentUserId());
// stockDtl.setUpdate_name(SecurityUtils.getCurrentNickName());
// stockDtl.setUpdate_time(DateUtil.now());
// stockDtlService.save(stockDtl);
// }
// }
// }
// );
// }
// }
// });
// }
// }
// updateAssignStatus(list);
// }
// }
// );
updateDetailSl(receiptBillDetailVOS);
if (flag) {
Set<String> djids = receiptBillDetailVOS.stream().map(ReceiptBillDetailVO::getDjid).collect(Collectors.toSet());
djids.forEach(
@ -346,158 +342,6 @@ public class ReceiptBillServiceImpl extends ServiceImpl<ReceiptBillMapper, Recei
//分组
Map<String, List<ReceiptBillDetailVO>> groupedByDjid = params.stream()
.collect(Collectors.groupingBy(ReceiptBillDetailVO::getDjid));
//遍历 从数据库中查询明细数量
params.forEach(
receiptBillDetailVO -> {
//查询已分配未提交库存的分配记录
List<StIvtStockAssignDtl> list = stockAssignDtlService.list(new LambdaQueryWrapper<StIvtStockAssignDtl>()
.eq(StIvtStockAssignDtl::getDetail_id, receiptBillDetailVO.getFlid())
.eq(StIvtStockAssignDtl::getStatus, false));
if (CollectionUtils.isNotEmpty(list)) {
Map<String, Map<String, Map<String, BigDecimal>>> storMap = list.stream()
.collect(Collectors.groupingBy(
StIvtStockAssignDtl::getStor_code,
Collectors.groupingBy(
StIvtStockAssignDtl::getStruct_code,
Collectors.groupingBy(
StIvtStockAssignDtl::getDetail_id,
Collectors.reducing(BigDecimal.ZERO, StIvtStockAssignDtl::getAssign_qty, BigDecimal::add)
)
)
));
if (ObjectUtil.isNotEmpty(storMap)) {
Map<String, Map<String, BigDecimal>> structMap = storMap.get(receiptBillDetailVO.getCkbm());
if (ObjectUtil.isNotEmpty(structMap)) {
structMap.forEach((structCode, detailMap) -> {
//获取仓位信息
StIvtStructattr structOne = structattrService.getOne(new LambdaQueryWrapper<StIvtStructattr>()
.eq(StIvtStructattr::getStruct_code, structCode)
.eq(StIvtStructattr::getStor_code, receiptBillDetailVO.getCkbm()));
if (ObjectUtil.isNotEmpty(structOne)) {
//判断仓位是否已经有货
if (StrUtil.isEmpty(structOne.getVehicle_code())) {
//无货直接新增库存明细
//使用仓库编码 + "." + "库位编码"作为载具号
String vehicle_code = structOne.getStor_code() + "." + structCode.replace("-", "").trim();
detailMap.forEach(
(detail_id, qty) -> {
//新增库存明细
StIvtStockDtl stockDtl = new StIvtStockDtl();
stockDtl.setId(IdUtil.getLongId().toString());
stockDtl.setVehicle_code(vehicle_code);
stockDtl.setMaterial_code(receiptBillDetailVO.getWlbm());
stockDtl.setMaterial_name(receiptBillDetailVO.getWlmc());
stockDtl.setPcsn(DateUtil.today());
stockDtl.setQty(qty);
stockDtl.setStorage_time(DateUtil.today());
stockDtl.setUnit(receiptBillDetailVO.getJldw());
stockDtl.setBill_code(receiptBillDetailVO.getDjbh());
stockDtl.setDetail_id(detail_id);
stockDtl.setUpdate_id(SecurityUtils.getCurrentUserId());
stockDtl.setUpdate_name(SecurityUtils.getCurrentNickName());
stockDtl.setUpdate_time(DateUtil.now());
stockDtlService.save(stockDtl);
//TODO 新增库存变动记录信息
}
);
//修改库位载具编码
structOne.setVehicle_code(vehicle_code);
structOne.setUpdate_id(SecurityUtils.getCurrentUserId());
structOne.setUpdate_name(SecurityUtils.getCurrentNickName());
structOne.setUpdate_time(DateUtil.now());
structattrService.updateById(structOne);
} else {
//有货 则修改库存明细相关信息
detailMap.forEach(
(detail_id, qty) -> {
//修改库存明细
StIvtStockDtl dtlOne = stockDtlService.getOne(new LambdaQueryWrapper<StIvtStockDtl>()
.eq(StIvtStockDtl::getVehicle_code, structOne.getVehicle_code())
.eq(StIvtStockDtl::getDetail_id, detail_id));
//存在该单据明细的库存明细则修改数量
if (ObjectUtil.isNotEmpty(dtlOne)) {
dtlOne.setQty(dtlOne.getQty().add(qty));
dtlOne.setUpdate_id(SecurityUtils.getCurrentUserId());
dtlOne.setUpdate_name(SecurityUtils.getCurrentNickName());
dtlOne.setUpdate_time(DateUtil.now());
stockDtlService.updateById(dtlOne);
} else {
if (qty.compareTo(BigDecimal.ZERO) > 0) {
//不存在该单据明细的库存明细则新增库存明细
StIvtStockDtl stockDtl = new StIvtStockDtl();
stockDtl.setId(IdUtil.getLongId().toString());
stockDtl.setVehicle_code(structOne.getVehicle_code());
stockDtl.setMaterial_code(receiptBillDetailVO.getWlbm());
stockDtl.setMaterial_name(receiptBillDetailVO.getWlmc());
stockDtl.setStorage_time(DateUtil.today());
stockDtl.setPcsn(DateUtil.today());
stockDtl.setQty(qty);
stockDtl.setUnit(receiptBillDetailVO.getJldw());
stockDtl.setBill_code(receiptBillDetailVO.getDjbh());
stockDtl.setDetail_id(detail_id);
stockDtl.setUpdate_id(SecurityUtils.getCurrentUserId());
stockDtl.setUpdate_name(SecurityUtils.getCurrentNickName());
stockDtl.setUpdate_time(DateUtil.now());
stockDtlService.save(stockDtl);
//TODO 新增库存变动记录信息
} else if (qty.compareTo(BigDecimal.ZERO) < 0) {
//写个sql去查询该明细下对应的仓库的物料的库存明细信息
List<Map<String, Object>> smsList = stockDtlService.getListBySMS(structCode, receiptBillDetailVO.getWlbm(), receiptBillDetailVO.getCkbm());
//临时变量
BigDecimal tempQty = qty;
for (Map<String, Object> sms : smsList) {
if (tempQty.compareTo(BigDecimal.ZERO) >= 0) {
break;
}
String id = sms.get("id") != null ? sms.get("id").toString() : "";
//库位库存数量
BigDecimal kcQty = sms.get("qty") != null ? new BigDecimal(sms.get("qty").toString()) : BigDecimal.ZERO;
BigDecimal minQty = kcQty.min(tempQty.abs());
//修改库存明细中的库存数量
StIvtStockDtl stockDtl = stockDtlService.getOne(new LambdaQueryWrapper<StIvtStockDtl>()
.eq(StIvtStockDtl::getId, id));
if (ObjectUtil.isNotEmpty(stockDtl)) {
BigDecimal sysl = stockDtl.getQty().subtract(minQty);
if (sysl.compareTo(BigDecimal.ZERO) == 0) {
stockDtlService.removeById(stockDtl);
} else {
stockDtl.setQty(sysl);
stockDtl.setUpdate_id(SecurityUtils.getCurrentUserId());
stockDtl.setUpdate_name(SecurityUtils.getCurrentNickName());
stockDtl.setUpdate_time(DateUtil.now());
stockDtlService.updateById(stockDtl);
}
tempQty = tempQty.subtract(minQty.negate());
}
List<StIvtStockDtl> newDtls = stockDtlService.list(new LambdaQueryWrapper<StIvtStockDtl>()
.eq(StIvtStockDtl::getVehicle_code, (String) sms.get("vehicle_code")));
if (CollectionUtils.isEmpty(newDtls)) {
structOne.setVehicle_code("");
structOne.setUpdate_id(SecurityUtils.getCurrentUserId());
structOne.setUpdate_name(SecurityUtils.getCurrentNickName());
structOne.setUpdate_time(DateUtil.now());
structattrService.update(structOne);
}
}
//TODO 新增库存变动记录信息
}
}
}
);
}
}
});
}
}
updateAssignStatus(list);
}
}
);
//修改明细数量
updateDetailSl(params);

88
wms/nlsso-server/src/main/java/org/nl/wms/ivt/service/impl/StIvtStockAssignDtlServiceImpl.java

@ -27,6 +27,8 @@ import org.nl.wms.ivt.service.dao.StIvtStructattr;
import org.nl.wms.ivt.service.dao.mapper.StIvtStockAssignDtlMapper;
import org.nl.wms.ivt.service.IStIvtStockAssignDtlService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.wms.schedule.service.dao.VWmsRkinfobydhinfoThird;
import org.nl.wms.schedule.service.dao.mapper.SrmDataSyncMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -58,6 +60,8 @@ public class StIvtStockAssignDtlServiceImpl extends ServiceImpl<StIvtStockAssign
private IreceiptBillDetailService receiptBillDetailService;
@Autowired
private IAllocationBillDetailService allocationBillDetailService;
@Autowired
private SrmDataSyncMapper srmDataSyncMapper;
@Override
@ -1007,6 +1011,90 @@ public class StIvtStockAssignDtlServiceImpl extends ServiceImpl<StIvtStockAssign
resp.add(detail);
}
);
} else {
//先去采购入库和收货确认关系视图中根据采购入库的flid查询收货确认的flid
VWmsRkinfobydhinfoThird vWmsRkinfobydhinfoThird = srmDataSyncMapper.getShbidByRkbid(flid);
if (ObjectUtil.isNotEmpty(vWmsRkinfobydhinfoThird)) {
String shdhbid = vWmsRkinfobydhinfoThird.getShdhbid();
//再根据收货确认的flid去查找去分配明细中查找分配明细集合
assignDtlsByFlId = this.list(new LambdaQueryWrapper<StIvtStockAssignDtl>()
.eq(StIvtStockAssignDtl::getDetail_id, shdhbid));
//如果采购入库单的总数量小于收货确认分配明细的数量,则将收货确认的分配明细数量减少到与采购入库单数量一致
if (CollectionUtils.isNotEmpty(assignDtlsByFlId)) {
BigDecimal totalAmount = assignDtlsByFlId.stream()
.map(StIvtStockAssignDtl::getAssign_qty)
.filter(Objects::nonNull)
.reduce(BigDecimal.ZERO, BigDecimal::add);
EasOutInBillDetail easOutInBillDetail = easOutInBillDetailService.getOne(new LambdaQueryWrapper<EasOutInBillDetail>().eq(EasOutInBillDetail::getFlid, flid));
if (ObjectUtil.isNotEmpty(easOutInBillDetail)) {
//返回给前端
if (easOutInBillDetail.getSl().compareTo(totalAmount) < 0) {
BigDecimal subtract = totalAmount.subtract(easOutInBillDetail.getSl());
for (StIvtStockAssignDtl stIvtStockAssignDtl : assignDtlsByFlId) {
BigDecimal assignQty = stIvtStockAssignDtl.getAssign_qty();
if (assignQty.compareTo(subtract) <= 0) {
// 当前明细的数量小于等于需要减的,直接清零
subtract = subtract.subtract(assignQty);
stIvtStockAssignDtl.setAssign_qty(BigDecimal.ZERO);
stockAssignDtlMapper.deleteById(stIvtStockAssignDtl.getId());
} else {
// 当前明细够减,部分减少后退出
stIvtStockAssignDtl.setAssign_qty(assignQty.subtract(subtract));
stockAssignDtlMapper.updateById(stIvtStockAssignDtl);
break;
}
}
// assignDtlsByFlId = this.list(new LambdaQueryWrapper<StIvtStockAssignDtl>()
// .eq(StIvtStockAssignDtl::getDetail_id, shdhbid));
assignDtlsByFlId.forEach(
stIvtStockAssignDtl -> {
Map<String, Object> detail = new HashMap<>();
detail.put("id", stIvtStockAssignDtl.getId());
detail.put("flid", flid);
detail.put("djbh", detailVo.get("djbh"));
detail.put("flxh", detailVo.get("flxh"));
detail.put("io_type", stIvtStockAssignDtl.getIo_type());
detail.put("wlbm", stIvtStockAssignDtl.getMaterial_code());
detail.put("wlmc", stIvtStockAssignDtl.getMaterial_name());
detail.put("kwbm", stIvtStockAssignDtl.getStruct_code());
detail.put("kwmc", stIvtStockAssignDtl.getStruct_name());
detail.put("ckbm", stIvtStockAssignDtl.getStor_code());
detail.put("ckmc", stIvtStockAssignDtl.getStor_name());
detail.put("status", true);
detail.put("fpsl", stIvtStockAssignDtl.getAssign_qty());
BigDecimal kcsl = stockDtlService.queryTotalQtyByMaterialCode((String) detailVo.get("wlbm"), stIvtStockAssignDtl.getStor_code());
detail.put("kcsl", kcsl);
detail.put("bz", "");
resp.add(detail);
}
);
} else if (easOutInBillDetail.getSl().compareTo(totalAmount) == 0){
assignDtlsByFlId.forEach(
stIvtStockAssignDtl -> {
Map<String, Object> detail = new HashMap<>();
detail.put("id", stIvtStockAssignDtl.getId());
detail.put("flid", flid);
detail.put("djbh", detailVo.get("djbh"));
detail.put("flxh", detailVo.get("flxh"));
detail.put("io_type", stIvtStockAssignDtl.getIo_type());
detail.put("wlbm", stIvtStockAssignDtl.getMaterial_code());
detail.put("wlmc", stIvtStockAssignDtl.getMaterial_name());
detail.put("kwbm", stIvtStockAssignDtl.getStruct_code());
detail.put("kwmc", stIvtStockAssignDtl.getStruct_name());
detail.put("ckbm", stIvtStockAssignDtl.getStor_code());
detail.put("ckmc", stIvtStockAssignDtl.getStor_name());
detail.put("status", true);
detail.put("fpsl", stIvtStockAssignDtl.getAssign_qty());
BigDecimal kcsl = stockDtlService.queryTotalQtyByMaterialCode((String) detailVo.get("wlbm"), stIvtStockAssignDtl.getStor_code());
detail.put("kcsl", kcsl);
detail.put("bz", "");
resp.add(detail);
}
);
}
}
}
}
}
}
);

24
wms/nlsso-server/src/main/java/org/nl/wms/schedule/service/dao/VWmsRkinfobydhinfoThird.java

@ -0,0 +1,24 @@
package org.nl.wms.schedule.service.dao;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
/**
* @Description TODO
* @Author Gengby
* @Date 2024/11/12
*/
@Data
@ToString
@EqualsAndHashCode(callSuper = false)
@TableName("nuoli_v1.0.v_wms_rkinfobydhinfo_third")
public class VWmsRkinfobydhinfoThird {
private String rkdh;
private String rkid;
private String rkbid;
private String shdh;
private String shdhid;
private String shdhbid;
}

11
wms/nlsso-server/src/main/java/org/nl/wms/schedule/service/dao/mapper/SrmDataSyncMapper.java

@ -1,6 +1,7 @@
package org.nl.wms.schedule.service.dao.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.nl.wms.schedule.service.dao.*;
@ -54,4 +55,14 @@ public interface SrmDataSyncMapper {
@Select("SELECT * FROM `nuoli_v1.0`.v_wms_recbill_third WHERE djzt = '1' AND ywrq >= '2024-11-01'")
List<VWmsRecbillThird> getFullReceiptBills();
/**
* 根据入库id
* @param rkbid
* @return
*/
@DS("mysql_srm")
@Select("SELECT * FROM `nuoli_v1.0`.v_wms_rkinfobydhinfo_third WHERE rkbid = #{rkbid}")
VWmsRkinfobydhinfoThird getShbidByRkbid(@Param("rkbid") String rkbid);
}

2
wms/nlsso-server/src/main/java/org/nl/wms/schedule/service/impl/EasDataSyncServiceImpl.java

@ -700,6 +700,7 @@ public class EasDataSyncServiceImpl implements IEasDataSyncService {
allocationBillDetailOne.setSysl(vTransferBillDetail.getSl());
allocationBillDetailOne.setGzh(vTransferBillDetail.getGzh());
allocationBillDetailOne.setFlbz(vTransferBillDetail.getFlbz());
allocationBillDetailOne.setXgsj(vTransferBillDetail.getXgsj());
allocationBillDetailList.add(allocationBillDetailOne);
}
});
@ -899,6 +900,7 @@ public class EasDataSyncServiceImpl implements IEasDataSyncService {
allocationBillDetailOne.setSysl(vTransferBillDetail.getSl());
allocationBillDetailOne.setGzh(vTransferBillDetail.getGzh());
allocationBillDetailOne.setFlbz(vTransferBillDetail.getFlbz());
allocationBillDetailOne.setXgsj(vTransferBillDetail.getXgsj());
allocationBillDetailList.add(allocationBillDetailOne);
}
});

95
wms/nlsso-server/src/main/java/org/nl/wms/schedule/service/impl/SrmDataSyncServiceImpl.java

@ -1,5 +1,6 @@
package org.nl.wms.schedule.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
@ -459,6 +460,7 @@ public class SrmDataSyncServiceImpl implements ISrmDataSyncService {
receiptBillDetailOne.setCkmc("三期电动原材料库");
receiptBillDetailOne.setKwbm(vWmsRecDetail.getKwbm());
receiptBillDetailOne.setKwmc(vWmsRecDetail.getKwmc());
receiptBillDetailOne.setXgsj(vWmsRecDetail.getXgsj());
receiptBillDetailOne.setSfzj("1".equals(vWmsRecDetail.getSfzj()) ? true : false);
receiptBillDetailOne.setPcgl(vWmsRecDetail.getPcgl());
receiptBillDetailList.add(receiptBillDetailOne);
@ -555,6 +557,7 @@ public class SrmDataSyncServiceImpl implements ISrmDataSyncService {
receiptBillDetailOne.setCkmc("三期电动原材料库");
receiptBillDetailOne.setKwbm(vWmsRecDetail.getKwbm());
receiptBillDetailOne.setKwmc(vWmsRecDetail.getKwmc());
receiptBillDetailOne.setXgsj(vWmsRecDetail.getXgsj());
receiptBillDetailOne.setSfzj("1".equals(vWmsRecDetail.getSfzj()) ? true : false);
receiptBillDetailOne.setPcgl(vWmsRecDetail.getPcgl());
receiptBillDetailList.add(receiptBillDetailOne);
@ -658,9 +661,10 @@ public class SrmDataSyncServiceImpl implements ISrmDataSyncService {
private void executeUpdateLogic(EasOutInBillDetail easOutInBillDetail, VWmsInBillThird vWmsInBillThird,
List<EasOutInBillDetail> updWmsOutInBills, Set<EasOutInBill> easOutInBills) {
List<StIvtStockAssignDtl> list = stockAssignDtlService.list(new LambdaQueryWrapper<StIvtStockAssignDtl>()
.eq(StIvtStockAssignDtl::getDetail_id, easOutInBillDetail.getFlid()));
if (CollectionUtils.isEmpty(list)) {
// List<StIvtStockAssignDtl> list = stockAssignDtlService.list(new LambdaQueryWrapper<StIvtStockAssignDtl>()
// .eq(StIvtStockAssignDtl::getDetail_id, easOutInBillDetail.getFlid()));
EasOutInBill one = easOutInBillService.getOne(new LambdaQueryWrapper<EasOutInBill>().eq(EasOutInBill::getDjid, easOutInBillDetail.getDjid()));
if (one != null && StrUtil.isEmpty(one.getShjg())) {
easOutInBillDetail.setXgsj(vWmsInBillThird.getXgsj().replace("/", "-"));
easOutInBillDetail.setJldw(vWmsInBillThird.getJldw());
easOutInBillDetail.setWlbm(vWmsInBillThird.getWlbm());
@ -706,34 +710,44 @@ public class SrmDataSyncServiceImpl implements ISrmDataSyncService {
VWmsRecbillThird vWmsRecbillThird = groupedBills.get(receiptBillDetail.getFlid()).get(0);
String easxgsj = vWmsRecbillThird.getXgsj();
String wmseasxgsj = receiptBillDetail.getXgsj();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); // easxgsj 格式
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // wmseasxgsj 格式
if (easxgsj == null && wmseasxgsj == null) {
log.info("srmxgsj 和 wmssrmxgsj 都为空, flid: {}, 跳过处理", receiptBillDetail.getFlid());
return;
}
if (easxgsj != null && wmseasxgsj == null) {
executeUpdateLogic(receiptBillDetail, vWmsRecbillThird, updWmsReceBills, wmsReceBills);
return;
}
if (easxgsj != null && wmseasxgsj != null) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // wmseasxgsj 格式
try {
Date easxgdata = sdf1.parse(easxgsj);
Date wmseasxgdata = sdf2.parse(wmseasxgsj);
Date easxgdata = sdf.parse(easxgsj);
Date wmseasxgdata = sdf.parse(wmseasxgsj);
if (easxgdata.after(wmseasxgdata)) {
List<StIvtStockAssignDtl> list = stockAssignDtlService.list(new LambdaQueryWrapper<StIvtStockAssignDtl>().eq(StIvtStockAssignDtl::getDetail_id, receiptBillDetail.getFlid()));
if (CollectionUtils.isEmpty(list)) {
receiptBillDetail.setXgsj(easxgsj.replace("/", "-"));
receiptBillDetail.setJldw(vWmsRecbillThird.getJldw());
receiptBillDetail.setWlbm(vWmsRecbillThird.getWlbm());
receiptBillDetail.setWlmc(vWmsRecbillThird.getWlmc());
receiptBillDetail.setGgxh(vWmsRecbillThird.getGgxh());
receiptBillDetail.setDdsl(vWmsRecbillThird.getDdsl());
receiptBillDetail.setBcshsl(vWmsRecbillThird.getBcshsl());
receiptBillDetail.setShsl(vWmsRecbillThird.getShsl());
receiptBillDetail.setPcgl(vWmsRecbillThird.getPcgl());
receiptBillDetail.setNum(vWmsRecbillThird.getNum());
receiptBillDetail.setCzsl(BigDecimal.ZERO);
receiptBillDetail.setAssign_qty(BigDecimal.ZERO);
updWmsReceBills.add(receiptBillDetail);
ReceiptBill bill = ireceiptBillService.getOne(new LambdaQueryWrapper<ReceiptBill>().eq(ReceiptBill::getDjid, receiptBillDetail.getDjid()));
bill.setYwrq(vWmsRecbillThird.getYwrq());
wmsReceBills.add(bill);
}
executeUpdateLogic(receiptBillDetail, vWmsRecbillThird, updWmsReceBills, wmsReceBills);
// List<StIvtStockAssignDtl> list = stockAssignDtlService.list(new LambdaQueryWrapper<StIvtStockAssignDtl>().eq(StIvtStockAssignDtl::getDetail_id, receiptBillDetail.getFlid()));
// if (CollectionUtils.isEmpty(list)) {
// receiptBillDetail.setXgsj(easxgsj.replace("/", "-"));
// receiptBillDetail.setJldw(vWmsRecbillThird.getJldw());
// receiptBillDetail.setWlbm(vWmsRecbillThird.getWlbm());
// receiptBillDetail.setWlmc(vWmsRecbillThird.getWlmc());
// receiptBillDetail.setGgxh(vWmsRecbillThird.getGgxh());
// receiptBillDetail.setDdsl(vWmsRecbillThird.getDdsl());
// receiptBillDetail.setBcshsl(vWmsRecbillThird.getBcshsl());
// receiptBillDetail.setShsl(vWmsRecbillThird.getShsl());
// receiptBillDetail.setPcgl(vWmsRecbillThird.getPcgl());
// receiptBillDetail.setNum(vWmsRecbillThird.getNum());
// receiptBillDetail.setCzsl(BigDecimal.ZERO);
// receiptBillDetail.setAssign_qty(BigDecimal.ZERO);
// updWmsReceBills.add(receiptBillDetail);
// ReceiptBill bill = ireceiptBillService.getOne(new LambdaQueryWrapper<ReceiptBill>().eq(ReceiptBill::getDjid, receiptBillDetail.getDjid()));
// bill.setYwrq(vWmsRecbillThird.getYwrq());
// wmsReceBills.add(bill);
// }
}
} catch (ParseException e) {
e.printStackTrace();
log.error("日期解析失败, easxgsj: {}, wmseasxgsj: {}, flid: {}", easxgsj, wmseasxgsj, receiptBillDetail.getFlid(), e);
}
}
}
);
@ -751,4 +765,31 @@ public class SrmDataSyncServiceImpl implements ISrmDataSyncService {
}
}
private void executeUpdateLogic(ReceiptBillDetail receiptBillDetail, VWmsRecbillThird vWmsRecbillThird,
List<ReceiptBillDetail> updWmsReceBills, Set<ReceiptBill> wmsReceBills) {
List<StIvtStockAssignDtl> list = stockAssignDtlService.list(new LambdaQueryWrapper<StIvtStockAssignDtl>()
.eq(StIvtStockAssignDtl::getDetail_id, receiptBillDetail.getFlid()));
if (CollectionUtils.isEmpty(list)) {
receiptBillDetail.setXgsj(vWmsRecbillThird.getXgsj());
receiptBillDetail.setWlbm(vWmsRecbillThird.getWlbm());
receiptBillDetail.setWlmc(vWmsRecbillThird.getWlmc());
receiptBillDetail.setGgxh(vWmsRecbillThird.getGgxh());
receiptBillDetail.setJldw(vWmsRecbillThird.getJldw());
receiptBillDetail.setBz(vWmsRecbillThird.getBz());
receiptBillDetail.setDdsl(vWmsRecbillThird.getDdsl());
receiptBillDetail.setBcshsl(vWmsRecbillThird.getBcshsl());
receiptBillDetail.setShsl(vWmsRecbillThird.getShsl());
receiptBillDetail.setNum(vWmsRecbillThird.getNum());
receiptBillDetail.setSysl(vWmsRecbillThird.getShsl());
receiptBillDetail.setCzsl(BigDecimal.ZERO);
receiptBillDetail.setAssign_qty(BigDecimal.ZERO);
updWmsReceBills.add(receiptBillDetail);
ReceiptBill bill = ireceiptBillService.getOne(new LambdaQueryWrapper<ReceiptBill>().eq(ReceiptBill::getDjid, receiptBillDetail.getDjid()));
bill.setYwrq(vWmsRecbillThird.getYwrq());
wmsReceBills.add(bill);
}
}
}
Loading…
Cancel
Save