Browse Source

opt:出库完成相关逻辑修改。

feature/forewarning_management
龚宝雄 4 weeks ago
parent
commit
054e2a7b17
  1. 2
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/StructattrMapper.xml
  2. 12
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java
  3. 4
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosInServiceImpl.java
  4. 48
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosOutServiceImpl.java
  5. 4
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/enums/StatusEnum.java
  6. 1
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java
  7. 16
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java
  8. 15
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/GroupPlate.java
  9. 29
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java
  10. 44
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java
  11. 38
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/util/UpdateIvtUtils.java

2
nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/StructattrMapper.xml

@ -44,7 +44,7 @@
</foreach> </foreach>
</if> </if>
<if test="is_lock != null and is_lock != ''"> <if test="is_lock != null and is_lock != ''">
and ivt.lock_type = '00' and ivt.lock_type = '0'
and gro.frozen_qty = 0 and gro.frozen_qty = 0
</if> </if>
<if test="order_by != null and order_by != ''"> <if test="order_by != null and order_by != ''">

12
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<MdMeMaterialbaseMap
} }
@Override @Override
public MdMeMaterialbase getByCode(String material_code) { public MdMeMaterialbase getByCode(String materialCode) {
MdMeMaterialbase one = this.getOne( MdMeMaterialbase one = this.getOne(
new QueryWrapper<MdMeMaterialbase>().lambda() new QueryWrapper<MdMeMaterialbase>().lambda().nested(r -> {
.eq(MdMeMaterialbase::getMaterial_code, material_code) r.eq(MdMeMaterialbase::getMaterial_id, materialCode)
); .or()
.eq(MdMeMaterialbase::getMaterial_code, materialCode);
}));
if (ObjectUtil.isEmpty(one)) { if (ObjectUtil.isEmpty(one)) {
throw new BadRequestException("物料编码为【"+material_code+"】不存在!"); throw new BadRequestException("物料信息为【" + materialCode + "】不存在!");
} }
return one; return one;
} }

4
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"); String qty = whereJson.getString("qty");
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getByCode(whereJson.getString("vehicle_code")); 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()); MdPbMeasureunit unitDao = iMdPbMeasureunitService.getById(materDao.getBase_unit_id());
// 校验 // 校验
if (ObjectUtil.isEmpty(vehicleDao) || ObjectUtil.isEmpty(materDao) || ObjectUtil.isEmpty(materDao)) { if (ObjectUtil.isEmpty(vehicleDao) || ObjectUtil.isEmpty(materDao) || ObjectUtil.isEmpty(materDao)) {
@ -376,6 +376,8 @@ public class PdaIosInServiceImpl implements PdaIosInService {
} else { } else {
//空载具入库 //空载具入库
whereJson.put("qty", 1); 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); groupPlate(whereJson);
// 生成空载具入库任务 // 生成空载具入库任务

48
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( GroupPlate plateDao = mdPbGroupplateMapper.selectOne(
new LambdaQueryWrapper<GroupPlate>() new LambdaQueryWrapper<GroupPlate>()
.eq(GroupPlate::getStoragevehicle_code, whereJson.getString("group_id"))); .eq(GroupPlate::getGroup_id, whereJson.getString("group_id")));
Structattr sectDao = iStructattrService.getOne(new LambdaQueryWrapper<Structattr>() Structattr sectDao = iStructattrService.getOne(new LambdaQueryWrapper<Structattr>()
.eq(Structattr::getStruct_code, whereJson.getString("struct_code"))); .eq(Structattr::getStruct_code, whereJson.getString("struct_code")));
MdMeMaterialbase materDao = iMdMeMaterialbaseService.getById(plateDao.getMaterial_id()); MdMeMaterialbase materDao = iMdMeMaterialbaseService.getById(plateDao.getMaterial_id());
@ -224,7 +224,7 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
); );
//更新组盘记录表 //更新组盘记录表
mdPbGroupplateMapper.update(new GroupPlate(), new LambdaUpdateWrapper<>(GroupPlate.class) 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")) .eq(GroupPlate::getGroup_id, whereJson.getString("group_id"))
); );
return PdaResponse.requestOk(); return PdaResponse.requestOk();
@ -240,19 +240,24 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
@Transactional @Transactional
public PdaResponse vehicleOutConfirm(JSONObject whereJson) { public PdaResponse vehicleOutConfirm(JSONObject whereJson) {
long qty = 1L; long qty = 1L;
LambdaQueryWrapper<MdMeMaterialbase> queryWrapper = new LambdaQueryWrapper<>();
//空料箱出库 //空料箱出库
if (StringUtils.isNotBlank(whereJson.getString("qty"))) { if (StringUtils.isNotBlank(whereJson.getString("qty"))) {
qty = whereJson.getLongValue("qty"); qty = whereJson.getLongValue("qty");
if (qty > 6) { if (qty > 6) {
throw new BadRequestException("输入小于7以内的载具数量"); throw new BadRequestException("一次性只能输入小于7以内的载具数量");
} }
whereJson.put("material_id", "2"); queryWrapper.eq(MdMeMaterialbase::getMaterial_id, StatusEnum.VEHICLE_TYPE.code("空料箱"));
whereJson.put("material_code", "2");
} else { } else {
//空托盘出库 queryWrapper.eq(MdMeMaterialbase::getMaterial_id, StatusEnum.VEHICLE_TYPE.code("空托盘"));
whereJson.put("material_id", "1");
whereJson.put("material_code", "1");
} }
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) Sectattr sectattr = iSectattrService.getById(new LambdaQueryWrapper<>(Sectattr.class)
.eq(Sectattr::getSect_id, whereJson.getString("sect_id")) .eq(Sectattr::getSect_id, whereJson.getString("sect_id"))
.eq(Sectattr::getIs_used, BaseDataEnum.IS_YES_NOT.code("是")) .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("PickingLocation", r.getStruct_code());
taskForm.put("PlacedLocation", whereJson.getString("siteCode")); taskForm.put("PlacedLocation", whereJson.getString("siteCode"));
taskForm.put("vehicle_code", r.getStoragevehicle_code()); 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); applyTaskMap.get(IOSConstant.VEHICLE_IN_TASK).create(whereJson);
VehicleOutTask.create(taskForm); vehicleOutTask.create(taskForm);
}); });
//更新组盘记录表 //更新组盘记录表
Set<String> vehicleCodeSet = structList.stream() Set<String> vehicleCodeSet = structList.stream()
@ -419,9 +424,16 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
} }
/**
* 1.库存载具绑定到出库点位
* 2.更新组盘记录为出库
*/
@Override @Override
@Transactional @Transactional
public PdaResponse outStorageConfirm(JSONObject whereJson) { public PdaResponse outStorageConfirm(JSONObject whereJson) {
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
//获取终点 //获取终点
SchBasePoint pointDao = iSchBasePointService.getOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getVehicle_code, whereJson.getString("storagevehicle_code"))); SchBasePoint pointDao = iSchBasePointService.getOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getVehicle_code, whereJson.getString("storagevehicle_code")));
if (ObjectUtil.isEmpty(pointDao)) { if (ObjectUtil.isEmpty(pointDao)) {
@ -438,9 +450,19 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
//强制确认 //强制确认
updateWrapper.set(GroupPlate::getQty, 0).set(GroupPlate::getFrozen_qty, 0); 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")); updateWrapper.set(GroupPlate::getUpdate_optid, currentUserId + "")
// 释放点位 .set(GroupPlate::getUpdate_optname, nickName)
// iSchBasePointService.unLockPoint(pointDao.getPoint_code()); .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(); return PdaResponse.requestOk();
} }

4
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( BIND_TYPE(ForkMap.of(
"解绑", "0", null, "绑定", "1", null, "不操作", "3", null "解绑", "0", null, "绑定", "1", null, "不操作", "3", null
)),
VEHICLE_TYPE(ForkMap.of(
"空托盘", "KT001", null, "空料箱", "KL001", null
)); ));
/** /**
* L:label * L:label
* M编码 * M编码

1
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")), CHECK_DTL_STATUS(MapOf.of("生成", "10", "盘点中", "20", "已盘点", "30", "完成", "99")),
; ;
private Map<String, String> code; private Map<String, String> code;

16
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.common.domain.query.PageQuery;
import org.nl.wms.warehouse_management.service.dao.GroupPlate; import org.nl.wms.warehouse_management.service.dao.GroupPlate;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -32,4 +33,19 @@ public interface IMdPbGroupplateService extends IService<GroupPlate> {
* @param ids 标识集合 * @param ids 标识集合
*/ */
void delete(Set<String> ids); void delete(Set<String> ids);
/**
* 更新库存以及仓位状态
* @param updateIvtList {
* type: 更新类型
* storagevehicle_code 载具编码
* material_id 物料标识
* pcsn 批次
* qty_unit_id 计量单位标识
* qty_unit_name 计量单位名称
* change_qty 变动数量
* remark 备注
* }
*/
void updateIvt(List<JSONObject> updateIvtList);
} }

15
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 create_time;
/**
* 修改人
*/
private String update_optid;
/**
* 修改人姓名
*/
private String update_optname;
/**
* 修改时间
*/
private String update_time;
/** /**
* 来源单据号 * 来源单据号
*/ */

29
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.IMdPbGroupplateService;
import org.nl.wms.warehouse_management.service.dao.GroupPlate; 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.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.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -24,6 +27,11 @@ import java.util.Set;
*/ */
@Service @Service
public class MdPbGroupplateServiceImpl extends ServiceImpl<MdPbGroupplateMapper, GroupPlate> implements IMdPbGroupplateService { public class MdPbGroupplateServiceImpl extends ServiceImpl<MdPbGroupplateMapper, GroupPlate> implements IMdPbGroupplateService {
/**
* 更新库存工具类
*/
@Autowired
private UpdateIvtUtils updateIvtUtils;
@Override @Override
public IPage<JSONObject> queryAll(Map whereJson, PageQuery page) { public IPage<JSONObject> queryAll(Map whereJson, PageQuery page) {
@ -36,4 +44,25 @@ public class MdPbGroupplateServiceImpl extends ServiceImpl<MdPbGroupplateMapper,
public void delete(Set<String> ids) { public void delete(Set<String> ids) {
this.baseMapper.deleteBatchIds(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<JSONObject> updateIvtList) {
for (JSONObject json : updateIvtList) {
updateIvtUtils.updateIvt(json);
}
}
} }

44
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.date.DateUtil;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray; 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.IMdPbStoragevehicleextService;
import org.nl.wms.basedata_manage.service.IStructattrService; 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.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.dao.mapper.MdPbStoragevehicleextMapper;
import org.nl.wms.basedata_manage.service.dto.MdPbStoragevehicleextDto; import org.nl.wms.basedata_manage.service.dto.MdPbStoragevehicleextDto;
import org.nl.wms.sch_manage.enums.TaskStatus; 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.SchBasePoint;
import org.nl.wms.sch_manage.service.dao.SchBaseTask; 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.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.sch_manage.service.util.tasks.StOutTask;
import org.nl.wms.warehouse_management.enums.IOSConstant; import org.nl.wms.warehouse_management.enums.IOSConstant;
import org.nl.wms.warehouse_management.enums.IOSEnum; 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.IOutBillService;
import org.nl.wms.warehouse_management.service.dao.GroupPlate; import org.nl.wms.warehouse_management.service.dao.GroupPlate;
import org.nl.wms.warehouse_management.service.dao.IOStorInv; import org.nl.wms.warehouse_management.service.dao.IOStorInv;
@ -99,10 +96,12 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
private IOStorInvDtlMapper ioStorInvDtlMapper; private IOStorInvDtlMapper ioStorInvDtlMapper;
@Resource @Resource
private SchBasePointMapper schBasePointMapper; private SchBasePointMapper schBasePointMapper;
@Resource
private IMdPbGroupplateService iMdPbGroupPlateService;
@Override @Override
public IPage<IOStorInv> pageQuery(Map whereJson, PageQuery page, String[] stor_id, String[] bill_status, String[] bill_type) { public IPage<IOStorInv> pageQuery(Map whereJson, PageQuery page, String[] stor_id, String[] bill_status, String[] bill_type) {
@ -934,7 +933,6 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
} }
for (IOStorInvDis ioStorInvDis:ioStorInvDisList){ for (IOStorInvDis ioStorInvDis:ioStorInvDisList){
//更新库存 减冻结加可用 //更新库存 减冻结加可用
List<JSONObject> updateIvtList = new ArrayList<>(); List<JSONObject> updateIvtList = new ArrayList<>();
JSONObject jsonIvt = new JSONObject(); JSONObject jsonIvt = new JSONObject();
@ -1169,27 +1167,31 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
return ioStorInvDisMapper.getBillTaskDtl(iostorinvdtl_id); return ioStorInvDisMapper.getBillTaskDtl(iostorinvdtl_id);
} }
/**
* 任务完成减库存
* 1.解锁库位
* 2.修改库存
* 3.完成当前分配明细
* 4.更新所有出库单明细及主表
*/
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void taskFinish(SchBaseTask task) { public void taskFinish(SchBaseTask task) {
String currentUserId = SecurityUtils.getCurrentUserId(); String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName(); String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now(); String now = DateUtil.now();
IOStorInvDis ioStorInvDis = ioStorInvDisMapper.selectOne(new LambdaQueryWrapper<>(IOStorInvDis.class) 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("未找到任务对应的分配明细"); throw new BadRequestException("未找到任务对应的分配明细");
} }
// 完成当前分配明细 // 完成当前分配明细
ioStorInvDisMapper.update(ioStorInvDis,new LambdaUpdateWrapper<>(IOStorInvDis.class) ioStorInvDisMapper.update(ioStorInvDis,new LambdaUpdateWrapper<>(IOStorInvDis.class)
.set(IOStorInvDis::getWork_status,IOSEnum.INBILL_DIS_STATUS.code("完成")) .set(IOStorInvDis::getWork_status,IOSEnum.INBILL_DIS_STATUS.code("完成"))
.eq(IOStorInvDis::getIostorinvdis_id,ioStorInvDis.getIostorinvdis_id()) .eq(IOStorInvDis::getIostorinvdis_id,ioStorInvDis.getIostorinvdis_id())
); );
//解锁库位 //解锁库位
JSONObject finish_map = new JSONObject(); JSONObject finish_map = new JSONObject();
finish_map.put("struct_code",ioStorInvDis.getStruct_code()); finish_map.put("struct_code",ioStorInvDis.getStruct_code());
@ -1198,7 +1200,6 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
finish_map.put("inv_id", null); finish_map.put("inv_id", null);
finish_map.put("inv_code", null); finish_map.put("inv_code", null);
iStructattrService.updateStatusByCode("1",finish_map); iStructattrService.updateStatusByCode("1",finish_map);
//修改库存 恢复库存 手持进行减扣 //修改库存 恢复库存 手持进行减扣
List<JSONObject> updateIvtList = new ArrayList<>(); List<JSONObject> updateIvtList = new ArrayList<>();
JSONObject jsonIvt = new JSONObject(); JSONObject jsonIvt = new JSONObject();
@ -1210,29 +1211,12 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
jsonIvt.put("qty_unit_name", ioStorInvDis.getQty_unit_name()); jsonIvt.put("qty_unit_name", ioStorInvDis.getQty_unit_name());
jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty()); jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty());
updateIvtList.add(jsonIvt); updateIvtList.add(jsonIvt);
iMdPbStoragevehicleextService.updateIvt(updateIvtList); iMdPbGroupPlateService.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())
);
// 查询该明细下是否还有未完成的分配明细 // 查询该明细下是否还有未完成的分配明细
int countDis = ioStorInvDisMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDis.class) int countDis = ioStorInvDisMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDis.class)
.eq(IOStorInvDis::getIostorinvdtl_id,ioStorInvDis.getIostorinvdtl_id()) .eq(IOStorInvDis::getIostorinvdtl_id,ioStorInvDis.getIostorinvdtl_id())
.ne(IOStorInvDis::getWork_status,IOSEnum.INBILL_DIS_STATUS.code("完成")) .ne(IOStorInvDis::getWork_status,IOSEnum.INBILL_DIS_STATUS.code("完成"))
); );
// 明细 // 明细
IOStorInvDtl ioStorInvDtl = ioStorInvDtlMapper.selectById(ioStorInvDis.getIostorinvdtl_id()); IOStorInvDtl ioStorInvDtl = ioStorInvDtlMapper.selectById(ioStorInvDis.getIostorinvdtl_id());
if (ObjectUtil.isEmpty(ioStorInvDtl)){ if (ObjectUtil.isEmpty(ioStorInvDtl)){
@ -1243,13 +1227,11 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
// 更新明细表状态 // 更新明细表状态
ioStorInvDtl.setBill_status(IOSEnum.BILL_STATUS.code("完成")); ioStorInvDtl.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
ioStorInvDtlMapper.updateById(ioStorInvDtl); ioStorInvDtlMapper.updateById(ioStorInvDtl);
// 查看明细是否全部完成 // 查看明细是否全部完成
int countDtl = ioStorInvDtlMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDtl.class) int countDtl = ioStorInvDtlMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDtl.class)
.eq(IOStorInvDtl::getIostorinv_id,ioStorInvDtl.getIostorinv_id()) .eq(IOStorInvDtl::getIostorinv_id,ioStorInvDtl.getIostorinv_id())
.ne(IOStorInvDtl::getBill_status,IOSEnum.BILL_STATUS.code("完成")) .ne(IOStorInvDtl::getBill_status,IOSEnum.BILL_STATUS.code("完成"))
); );
// 如果明细全部完成则更新主表状态 // 如果明细全部完成则更新主表状态
if (countDtl == 0){ if (countDtl == 0){
//更新主表状态 //更新主表状态

38
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.IMdPbStoragevehicleextService;
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext; import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext;
import org.nl.wms.warehouse_management.enums.IOSConstant; 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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -31,6 +34,12 @@ public class UpdateIvtUtils {
@Autowired @Autowired
private IMdPbStoragevehicleextService iMdPbStoragevehicleextService; private IMdPbStoragevehicleextService iMdPbStoragevehicleextService;
/**
* 组盘信息服务
*/
@Autowired
private IMdPbGroupplateService iMdPbGroupPlateService;
/** /**
* 更新库存 * 更新库存
* @param where: { * @param where: {
@ -206,30 +215,35 @@ public class UpdateIvtUtils {
*/ */
private void updateSubFrozenAddIvt(JSONObject where) { private void updateSubFrozenAddIvt(JSONObject where) {
// 找当前托盘物料库存 // 找当前托盘物料库存
MdPbStoragevehicleext extDao = iMdPbStoragevehicleextService.getOne( // MdPbStoragevehicleext extDao = iMdPbStoragevehicleextService.getOne(
new QueryWrapper<MdPbStoragevehicleext>().lambda() // new QueryWrapper<MdPbStoragevehicleext>().lambda()
.eq(MdPbStoragevehicleext::getStoragevehicle_code, where.getString("storagevehicle_code")) // .eq(MdPbStoragevehicleext::getStoragevehicle_code, where.getString("storagevehicle_code"))
.eq(MdPbStoragevehicleext::getMaterial_id, where.getString("material_id")) // .eq(MdPbStoragevehicleext::getMaterial_id, where.getString("material_id"))
.eq(MdPbStoragevehicleext::getPcsn, where.getString("pcsn")) // .eq(MdPbStoragevehicleext::getPcsn, where.getString("pcsn"))
// );
GroupPlate extDao = iMdPbGroupPlateService.getOne(
new QueryWrapper<GroupPlate>().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)) { 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(); double qty = NumberUtil.sub(extDao.getQty(), extDao.getFrozen_qty()).doubleValue();
if (frozen_qty < 0) { if (qty < 0) {
throw new BadRequestException("冻结数不能为负数,请检查变动数量!当前冻结数为【" + extDao.getFrozen_qty() + "】当前变动数为【" + where.getDoubleValue("change_qty") + "】"); throw new BadRequestException("冻结数不能为负数,请检查变动数量!当前冻结数为【" + extDao.getFrozen_qty() + "】当前变动数为【" + where.getDoubleValue("change_qty") + "】");
} }
// 加可用 // 加可用
double canuse_qty = NumberUtil.add(extDao.getCanuse_qty(), where.getDoubleValue("change_qty")).doubleValue(); // double canuse_qty = NumberUtil.add(extDao.getCanuse_qty(), where.getDoubleValue("change_qty")).doubleValue();
extDao.setFrozen_qty(BigDecimal.valueOf(frozen_qty)); extDao.setFrozen_qty(BigDecimal.ZERO);
extDao.setCanuse_qty(BigDecimal.valueOf(canuse_qty)); extDao.setQty(BigDecimal.valueOf(qty));
extDao.setUpdate_optid(SecurityUtils.getCurrentUserId()); extDao.setUpdate_optid(SecurityUtils.getCurrentUserId());
extDao.setUpdate_optname(SecurityUtils.getCurrentNickName()); extDao.setUpdate_optname(SecurityUtils.getCurrentNickName());
extDao.setUpdate_time(DateUtil.now()); extDao.setUpdate_time(DateUtil.now());
extDao.setRemark(where.getString("remark")); extDao.setRemark(where.getString("remark"));
iMdPbStoragevehicleextService.updateById(extDao); iMdPbGroupPlateService.updateById(extDao);
} }
/** /**

Loading…
Cancel
Save