diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/StructattrMapper.xml b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/StructattrMapper.xml
index 3e4ecbb..ad8ae03 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/StructattrMapper.xml
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/StructattrMapper.xml
@@ -44,7 +44,7 @@
- and ivt.lock_type = '00'
+ and ivt.lock_type = '0'
and gro.frozen_qty = 0
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java
index e29cc4c..2fbc4bf 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java
@@ -145,13 +145,15 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl().lambda()
- .eq(MdMeMaterialbase::getMaterial_code, material_code)
- );
+ new QueryWrapper().lambda().nested(r -> {
+ r.eq(MdMeMaterialbase::getMaterial_id, materialCode)
+ .or()
+ .eq(MdMeMaterialbase::getMaterial_code, materialCode);
+ }));
if (ObjectUtil.isEmpty(one)) {
- throw new BadRequestException("物料编码为【"+material_code+"】不存在!");
+ throw new BadRequestException("物料信息为【" + materialCode + "】不存在!");
}
return one;
}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosInServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosInServiceImpl.java
index 9c91e0f..a8fd9ae 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosInServiceImpl.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosInServiceImpl.java
@@ -144,7 +144,7 @@ public class PdaIosInServiceImpl implements PdaIosInService {
// 数量
String qty = whereJson.getString("qty");
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getByCode(whereJson.getString("vehicle_code"));
- MdMeMaterialbase materDao = iMdMeMaterialbaseService.getById(materialId);
+ MdMeMaterialbase materDao = iMdMeMaterialbaseService.getByCode(materialId);
MdPbMeasureunit unitDao = iMdPbMeasureunitService.getById(materDao.getBase_unit_id());
// 校验
if (ObjectUtil.isEmpty(vehicleDao) || ObjectUtil.isEmpty(materDao) || ObjectUtil.isEmpty(materDao)) {
@@ -376,6 +376,8 @@ public class PdaIosInServiceImpl implements PdaIosInService {
} else {
//空载具入库
whereJson.put("qty", 1);
+ String materialCode = "1".equals(whereJson.getString("material_id")) ? StatusEnum.VEHICLE_TYPE.code("空托盘") : StatusEnum.VEHICLE_TYPE.code("空料箱");
+ whereJson.put("material_id", materialCode);
//组盘
groupPlate(whereJson);
// 生成空载具入库任务
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosOutServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosOutServiceImpl.java
index 872d29d..5b205ab 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosOutServiceImpl.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosOutServiceImpl.java
@@ -187,7 +187,7 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
//创建出库单/明细/分配
GroupPlate plateDao = mdPbGroupplateMapper.selectOne(
new LambdaQueryWrapper()
- .eq(GroupPlate::getStoragevehicle_code, whereJson.getString("group_id")));
+ .eq(GroupPlate::getGroup_id, whereJson.getString("group_id")));
Structattr sectDao = iStructattrService.getOne(new LambdaQueryWrapper()
.eq(Structattr::getStruct_code, whereJson.getString("struct_code")));
MdMeMaterialbase materDao = iMdMeMaterialbaseService.getById(plateDao.getMaterial_id());
@@ -224,7 +224,7 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
);
//更新组盘记录表
mdPbGroupplateMapper.update(new GroupPlate(), new LambdaUpdateWrapper<>(GroupPlate.class)
- .set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库"))
+ .set(GroupPlate::getFrozen_qty, plateDao.getQty())
.eq(GroupPlate::getGroup_id, whereJson.getString("group_id"))
);
return PdaResponse.requestOk();
@@ -240,19 +240,24 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
@Transactional
public PdaResponse vehicleOutConfirm(JSONObject whereJson) {
long qty = 1L;
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
//空料箱出库
if (StringUtils.isNotBlank(whereJson.getString("qty"))) {
qty = whereJson.getLongValue("qty");
if (qty > 6) {
- throw new BadRequestException("请输入小于7以内的载具数量");
+ throw new BadRequestException("一次性只能输入小于7以内的载具数量");
}
- whereJson.put("material_id", "2");
- whereJson.put("material_code", "2");
+ queryWrapper.eq(MdMeMaterialbase::getMaterial_id, StatusEnum.VEHICLE_TYPE.code("空料箱"));
} else {
- //空托盘出库
- whereJson.put("material_id", "1");
- whereJson.put("material_code", "1");
+ queryWrapper.eq(MdMeMaterialbase::getMaterial_id, StatusEnum.VEHICLE_TYPE.code("空托盘"));
+
}
+ MdMeMaterialbase materDao = iMdMeMaterialbaseService.getOne(queryWrapper);
+ if (materDao == null) {
+ throw new BadRequestException("未找到空载具物料信息!");
+ }
+ whereJson.put("material_id", materDao.getMaterial_id());
+ whereJson.put("material_code", materDao.getMaterial_code());
Sectattr sectattr = iSectattrService.getById(new LambdaQueryWrapper<>(Sectattr.class)
.eq(Sectattr::getSect_id, whereJson.getString("sect_id"))
.eq(Sectattr::getIs_used, BaseDataEnum.IS_YES_NOT.code("是"))
@@ -284,9 +289,9 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
taskForm.put("PickingLocation", r.getStruct_code());
taskForm.put("PlacedLocation", whereJson.getString("siteCode"));
taskForm.put("vehicle_code", r.getStoragevehicle_code());
- VehicleOutTask VehicleOutTask = SpringContextHolder.getBean("VehicleOutTask");
+ VehicleOutTask vehicleOutTask = SpringContextHolder.getBean("VehicleOutTask");
applyTaskMap.get(IOSConstant.VEHICLE_IN_TASK).create(whereJson);
- VehicleOutTask.create(taskForm);
+ vehicleOutTask.create(taskForm);
});
//更新组盘记录表
Set vehicleCodeSet = structList.stream()
@@ -419,9 +424,16 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
}
+ /**
+ * 1.库存载具绑定到出库点位
+ * 2.更新组盘记录为出库
+ */
@Override
@Transactional
public PdaResponse outStorageConfirm(JSONObject whereJson) {
+ String currentUserId = SecurityUtils.getCurrentUserId();
+ String nickName = SecurityUtils.getCurrentNickName();
+ String now = DateUtil.now();
//获取终点
SchBasePoint pointDao = iSchBasePointService.getOne(new LambdaQueryWrapper().eq(SchBasePoint::getVehicle_code, whereJson.getString("storagevehicle_code")));
if (ObjectUtil.isEmpty(pointDao)) {
@@ -431,16 +443,26 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
//更新组盘信息
LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>();
//出库确认
- if ("1" .equals(whereJson.getString("type"))) {
+ if ("1".equals(whereJson.getString("type"))) {
BigDecimal qty = groupPlate.getQty().subtract(groupPlate.getFrozen_qty()).abs();
updateWrapper.set(GroupPlate::getQty, qty).set(GroupPlate::getFrozen_qty, 0);
} else {
//强制确认
updateWrapper.set(GroupPlate::getQty, 0).set(GroupPlate::getFrozen_qty, 0);
}
- updateWrapper.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库")).eq(GroupPlate::getGroup_id, whereJson.getString("group_id"));
- // 释放点位
- // iSchBasePointService.unLockPoint(pointDao.getPoint_code());
+ updateWrapper.set(GroupPlate::getUpdate_optid, currentUserId + "")
+ .set(GroupPlate::getUpdate_optname, nickName)
+ .set(GroupPlate::getUpdate_time, now)
+ .set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库"))
+ .eq(GroupPlate::getGroup_id, whereJson.getString("group_id"));
+ //更新组盘记录表
+ mdPbGroupplateMapper.update(new GroupPlate(), updateWrapper);
+ //库存绑定到出库点。
+ iSchBasePointService.update(new SchBasePoint(), new LambdaUpdateWrapper<>(SchBasePoint.class)
+ .set(SchBasePoint::getVehicle_code, groupPlate.getStoragevehicle_code())
+ .set(SchBasePoint::getIos_id, BaseDataEnum.IS_YES_NOT.code("是"))
+ .eq(SchBasePoint::getPoint_code, pointDao.getPoint_code())
+ );
return PdaResponse.requestOk();
}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/enums/StatusEnum.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/enums/StatusEnum.java
index 2fde70a..221a6ce 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/enums/StatusEnum.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/enums/StatusEnum.java
@@ -95,7 +95,11 @@ public enum StatusEnum {
)),
BIND_TYPE(ForkMap.of(
"解绑", "0", null, "绑定", "1", null, "不操作", "3", null
+ )),
+ VEHICLE_TYPE(ForkMap.of(
+ "空托盘", "KT001", null, "空料箱", "KL001", null
));
+
/**
* L:label
* M:编码
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java
index 6cd0226..ea35a8e 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java
@@ -67,7 +67,6 @@ public enum IOSEnum {
// 盘点明细状态
CHECK_DTL_STATUS(MapOf.of("生成", "10", "盘点中", "20", "已盘点", "30", "完成", "99")),
-
;
private Map code;
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java
index a0f8291..b567307 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.warehouse_management.service.dao.GroupPlate;
+import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -32,4 +33,19 @@ public interface IMdPbGroupplateService extends IService {
* @param ids 标识集合
*/
void delete(Set ids);
+
+ /**
+ * 更新库存以及仓位状态
+ * @param updateIvtList :{
+ * type: 更新类型
+ * storagevehicle_code: 载具编码
+ * material_id: 物料标识
+ * pcsn: 批次
+ * qty_unit_id: 计量单位标识
+ * qty_unit_name: 计量单位名称
+ * change_qty: 变动数量
+ * remark: 备注
+ * }
+ */
+ void updateIvt(List updateIvtList);
}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/GroupPlate.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/GroupPlate.java
index 8886bc4..5313397 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/GroupPlate.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/GroupPlate.java
@@ -88,6 +88,21 @@ public class GroupPlate implements Serializable {
*/
private String create_time;
+ /**
+ * 修改人
+ */
+ private String update_optid;
+
+ /**
+ * 修改人姓名
+ */
+ private String update_optname;
+
+ /**
+ * 修改时间
+ */
+ private String update_time;
+
/**
* 来源单据号
*/
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java
index feedf28..d2d9117 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java
@@ -8,9 +8,12 @@ import org.nl.common.domain.query.PageQuery;
import org.nl.wms.warehouse_management.service.IMdPbGroupplateService;
import org.nl.wms.warehouse_management.service.dao.GroupPlate;
import org.nl.wms.warehouse_management.service.dao.mapper.MdPbGroupplateMapper;
+import org.nl.wms.warehouse_management.service.util.UpdateIvtUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -24,6 +27,11 @@ import java.util.Set;
*/
@Service
public class MdPbGroupplateServiceImpl extends ServiceImpl implements IMdPbGroupplateService {
+ /**
+ * 更新库存工具类
+ */
+ @Autowired
+ private UpdateIvtUtils updateIvtUtils;
@Override
public IPage queryAll(Map whereJson, PageQuery page) {
@@ -36,4 +44,25 @@ public class MdPbGroupplateServiceImpl extends ServiceImpl ids) {
this.baseMapper.deleteBatchIds(ids);
}
+
+
+ /**
+ * 更新库存以及仓位状态
+ * @param updateIvtList :{
+ * type: 更新类型
+ * storagevehicle_code: 载具编码
+ * material_id: 物料标识
+ * pcsn: 批次
+ * qty_unit_id: 计量单位标识
+ * qty_unit_name: 计量单位名称
+ * change_qty: 变动数量
+ * remark: 备注
+ * }
+ */
+ @Override
+ public void updateIvt(List updateIvtList) {
+ for (JSONObject json : updateIvtList) {
+ updateIvtUtils.updateIvt(json);
+ }
+ }
}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java
index b3ed96d..2311f1d 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java
@@ -2,7 +2,6 @@ package org.nl.wms.warehouse_management.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapUtil;
-import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
@@ -24,8 +23,6 @@ import org.nl.wms.basedata_manage.service.IBsrealStorattrService;
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService;
import org.nl.wms.basedata_manage.service.IStructattrService;
import org.nl.wms.basedata_manage.service.dao.BsrealStorattr;
-import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext;
-import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper;
import org.nl.wms.basedata_manage.service.dto.MdPbStoragevehicleextDto;
import org.nl.wms.sch_manage.enums.TaskStatus;
@@ -33,10 +30,10 @@ import org.nl.wms.sch_manage.service.ISchBaseTaskService;
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
import org.nl.wms.sch_manage.service.dao.mapper.SchBasePointMapper;
-import org.nl.wms.sch_manage.service.util.tasks.StInTask;
import org.nl.wms.sch_manage.service.util.tasks.StOutTask;
import org.nl.wms.warehouse_management.enums.IOSConstant;
import org.nl.wms.warehouse_management.enums.IOSEnum;
+import org.nl.wms.warehouse_management.service.IMdPbGroupplateService;
import org.nl.wms.warehouse_management.service.IOutBillService;
import org.nl.wms.warehouse_management.service.dao.GroupPlate;
import org.nl.wms.warehouse_management.service.dao.IOStorInv;
@@ -99,10 +96,12 @@ public class OutBillServiceImpl extends ServiceImpl i
private IOStorInvDtlMapper ioStorInvDtlMapper;
-
@Resource
private SchBasePointMapper schBasePointMapper;
+ @Resource
+ private IMdPbGroupplateService iMdPbGroupPlateService;
+
@Override
public IPage pageQuery(Map whereJson, PageQuery page, String[] stor_id, String[] bill_status, String[] bill_type) {
@@ -934,7 +933,6 @@ public class OutBillServiceImpl extends ServiceImpl i
}
for (IOStorInvDis ioStorInvDis:ioStorInvDisList){
-
//更新库存 减冻结加可用
List updateIvtList = new ArrayList<>();
JSONObject jsonIvt = new JSONObject();
@@ -1145,21 +1143,21 @@ public class OutBillServiceImpl extends ServiceImpl i
}
//更新出库明细单状态
- for (String dtlId:dtlSet){
- ioStorInvDtlMapper.update(new IOStorInvDtl(),new LambdaUpdateWrapper<>(IOStorInvDtl.class)
- .set(IOStorInvDtl::getBill_status,IOSEnum.BILL_STATUS.code("完成"))
- .set(IOStorInvDtl::getReal_qty,BigDecimal.ZERO)
- .eq(IOStorInvDtl::getIostorinvdtl_id,dtlId)
+ for (String dtlId : dtlSet) {
+ ioStorInvDtlMapper.update(new IOStorInvDtl(), new LambdaUpdateWrapper<>(IOStorInvDtl.class)
+ .set(IOStorInvDtl::getBill_status, IOSEnum.BILL_STATUS.code("完成"))
+ .set(IOStorInvDtl::getReal_qty, BigDecimal.ZERO)
+ .eq(IOStorInvDtl::getIostorinvdtl_id, dtlId)
);
}
//更新主表状态
- ioStorInvMapper.update(ioStorInv,new LambdaUpdateWrapper<>(IOStorInv.class)
- .set(IOStorInv::getBill_status,IOSEnum.BILL_STATUS.code("完成"))
- .set(IOStorInv::getConfirm_optid,currentUserId)
- .set(IOStorInv::getConfirm_optname,nickName)
- .set(IOStorInv::getConfirm_time,now)
- .eq(IOStorInv::getIostorinv_id,whereJson.get("iostorinv_id"))
+ ioStorInvMapper.update(ioStorInv, new LambdaUpdateWrapper<>(IOStorInv.class)
+ .set(IOStorInv::getBill_status, IOSEnum.BILL_STATUS.code("完成"))
+ .set(IOStorInv::getConfirm_optid, currentUserId)
+ .set(IOStorInv::getConfirm_optname, nickName)
+ .set(IOStorInv::getConfirm_time, now)
+ .eq(IOStorInv::getIostorinv_id, whereJson.get("iostorinv_id"))
);
}
@@ -1169,27 +1167,31 @@ public class OutBillServiceImpl extends ServiceImpl i
return ioStorInvDisMapper.getBillTaskDtl(iostorinvdtl_id);
}
+
+ /**
+ * 任务完成,减库存
+ * 1.解锁库位
+ * 2.修改库存
+ * 3.完成当前分配明细
+ * 4.更新所有出库单明细及主表
+ */
@Override
@Transactional(rollbackFor = Exception.class)
public void taskFinish(SchBaseTask task) {
-
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
-
IOStorInvDis ioStorInvDis = ioStorInvDisMapper.selectOne(new LambdaQueryWrapper<>(IOStorInvDis.class)
- .eq(IOStorInvDis::getTask_id,task.getTask_id())
+ .eq(IOStorInvDis::getTask_id, task.getTask_id())
);
- if (ObjectUtil.isEmpty(ioStorInvDis)){
+ if (ObjectUtil.isEmpty(ioStorInvDis)) {
throw new BadRequestException("未找到任务对应的分配明细");
}
-
// 完成当前分配明细
ioStorInvDisMapper.update(ioStorInvDis,new LambdaUpdateWrapper<>(IOStorInvDis.class)
.set(IOStorInvDis::getWork_status,IOSEnum.INBILL_DIS_STATUS.code("完成"))
.eq(IOStorInvDis::getIostorinvdis_id,ioStorInvDis.getIostorinvdis_id())
);
-
//解锁库位
JSONObject finish_map = new JSONObject();
finish_map.put("struct_code",ioStorInvDis.getStruct_code());
@@ -1198,7 +1200,6 @@ public class OutBillServiceImpl extends ServiceImpl i
finish_map.put("inv_id", null);
finish_map.put("inv_code", null);
iStructattrService.updateStatusByCode("1",finish_map);
-
//修改库存 恢复库存 手持进行减扣
List updateIvtList = new ArrayList<>();
JSONObject jsonIvt = new JSONObject();
@@ -1210,29 +1211,12 @@ public class OutBillServiceImpl extends ServiceImpl i
jsonIvt.put("qty_unit_name", ioStorInvDis.getQty_unit_name());
jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty());
updateIvtList.add(jsonIvt);
- iMdPbStoragevehicleextService.updateIvt(updateIvtList);
-
- //库存绑定到出库点。
- schBasePointMapper.update(new SchBasePoint(),new LambdaUpdateWrapper<>(SchBasePoint.class)
- .set(SchBasePoint::getVehicle_code,ioStorInvDis.getStoragevehicle_code())
- .set(SchBasePoint::getIos_id,ioStorInvDis.getIostorinvdis_id())
- .eq(SchBasePoint::getPoint_code,ioStorInvDis.getPoint_code())
- );
-
- //更新组盘记录表
- mdPbGroupplateMapper.update(new GroupPlate(),new LambdaUpdateWrapper<>(GroupPlate.class)
- .set(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("出库"))
- .eq(GroupPlate::getPcsn,ioStorInvDis.getPcsn())
- .eq(GroupPlate::getMaterial_id,ioStorInvDis.getMaterial_id())
- .eq(GroupPlate::getStoragevehicle_code,ioStorInvDis.getStoragevehicle_code())
- );
-
+ iMdPbGroupPlateService.updateIvt(updateIvtList);
// 查询该明细下是否还有未完成的分配明细
int countDis = ioStorInvDisMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDis.class)
.eq(IOStorInvDis::getIostorinvdtl_id,ioStorInvDis.getIostorinvdtl_id())
.ne(IOStorInvDis::getWork_status,IOSEnum.INBILL_DIS_STATUS.code("完成"))
);
-
// 明细
IOStorInvDtl ioStorInvDtl = ioStorInvDtlMapper.selectById(ioStorInvDis.getIostorinvdtl_id());
if (ObjectUtil.isEmpty(ioStorInvDtl)){
@@ -1243,13 +1227,11 @@ public class OutBillServiceImpl extends ServiceImpl i
// 更新明细表状态
ioStorInvDtl.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
ioStorInvDtlMapper.updateById(ioStorInvDtl);
-
// 查看明细是否全部完成
int countDtl = ioStorInvDtlMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDtl.class)
.eq(IOStorInvDtl::getIostorinv_id,ioStorInvDtl.getIostorinv_id())
.ne(IOStorInvDtl::getBill_status,IOSEnum.BILL_STATUS.code("完成"))
);
-
// 如果明细全部完成则更新主表状态
if (countDtl == 0){
//更新主表状态
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/util/UpdateIvtUtils.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/util/UpdateIvtUtils.java
index beb5c1d..3cd9af3 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/util/UpdateIvtUtils.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/util/UpdateIvtUtils.java
@@ -11,6 +11,9 @@ import org.nl.common.utils.SecurityUtils;
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService;
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext;
import org.nl.wms.warehouse_management.enums.IOSConstant;
+import org.nl.wms.warehouse_management.enums.IOSEnum;
+import org.nl.wms.warehouse_management.service.IMdPbGroupplateService;
+import org.nl.wms.warehouse_management.service.dao.GroupPlate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -31,6 +34,12 @@ public class UpdateIvtUtils {
@Autowired
private IMdPbStoragevehicleextService iMdPbStoragevehicleextService;
+ /**
+ * 组盘信息服务
+ */
+ @Autowired
+ private IMdPbGroupplateService iMdPbGroupPlateService;
+
/**
* 更新库存
* @param where: {
@@ -206,30 +215,35 @@ public class UpdateIvtUtils {
*/
private void updateSubFrozenAddIvt(JSONObject where) {
// 找当前托盘物料库存
- MdPbStoragevehicleext extDao = iMdPbStoragevehicleextService.getOne(
- new QueryWrapper().lambda()
- .eq(MdPbStoragevehicleext::getStoragevehicle_code, where.getString("storagevehicle_code"))
- .eq(MdPbStoragevehicleext::getMaterial_id, where.getString("material_id"))
- .eq(MdPbStoragevehicleext::getPcsn, where.getString("pcsn"))
+ // MdPbStoragevehicleext extDao = iMdPbStoragevehicleextService.getOne(
+ // new QueryWrapper().lambda()
+ // .eq(MdPbStoragevehicleext::getStoragevehicle_code, where.getString("storagevehicle_code"))
+ // .eq(MdPbStoragevehicleext::getMaterial_id, where.getString("material_id"))
+ // .eq(MdPbStoragevehicleext::getPcsn, where.getString("pcsn"))
+ // );
+ GroupPlate extDao = iMdPbGroupPlateService.getOne(
+ new QueryWrapper().lambda()
+ .eq(GroupPlate::getStoragevehicle_code, where.getString("storagevehicle_code"))
+ .eq(GroupPlate::getMaterial_id, where.getString("material_id"))
+ .eq(GroupPlate::getPcsn, where.getString("pcsn")).eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
);
if (ObjectUtil.isEmpty(extDao)) {
- throw new BadRequestException("当前载具【"+extDao.getStoragevehicle_code()+"】不存在相关物料批次库存,请检查数据!");
+ throw new BadRequestException("当前载具【" + extDao.getStoragevehicle_code() + "】不存在相关物料批次库存,请检查数据!");
}
-
// 减冻结
- double frozen_qty = NumberUtil.sub(extDao.getFrozen_qty(), where.getDoubleValue("change_qty")).doubleValue();
- if (frozen_qty < 0) {
- throw new BadRequestException("冻结数不能为负数,请检查变动数量!当前冻结数为【"+extDao.getFrozen_qty()+"】当前变动数为【"+where.getDoubleValue("change_qty")+"】");
+ double qty = NumberUtil.sub(extDao.getQty(), extDao.getFrozen_qty()).doubleValue();
+ if (qty < 0) {
+ throw new BadRequestException("冻结数不能为负数,请检查变动数量!当前冻结数为【" + extDao.getFrozen_qty() + "】当前变动数为【" + where.getDoubleValue("change_qty") + "】");
}
// 加可用
- double canuse_qty = NumberUtil.add(extDao.getCanuse_qty(), where.getDoubleValue("change_qty")).doubleValue();
- extDao.setFrozen_qty(BigDecimal.valueOf(frozen_qty));
- extDao.setCanuse_qty(BigDecimal.valueOf(canuse_qty));
+ // double canuse_qty = NumberUtil.add(extDao.getCanuse_qty(), where.getDoubleValue("change_qty")).doubleValue();
+ extDao.setFrozen_qty(BigDecimal.ZERO);
+ extDao.setQty(BigDecimal.valueOf(qty));
extDao.setUpdate_optid(SecurityUtils.getCurrentUserId());
extDao.setUpdate_optname(SecurityUtils.getCurrentNickName());
extDao.setUpdate_time(DateUtil.now());
extDao.setRemark(where.getString("remark"));
- iMdPbStoragevehicleextService.updateById(extDao);
+ iMdPbGroupPlateService.updateById(extDao);
}
/**