add:盘点管理、易损单、出入库记录

This commit is contained in:
zhaoyf
2026-07-29 20:41:46 +08:00
parent 87fb51ace3
commit b4db802053
10 changed files with 72 additions and 17 deletions

View File

@@ -64,6 +64,8 @@ public class StIvtCheckdtl implements Serializable {
*/
private String material_id;
private String material_code;
/**
* 批次
*/

View File

@@ -58,6 +58,7 @@ public class StIvtMoreorlessdtl implements Serializable {
* 物料标识
*/
private String material_id;
private String material_code;
/**
* 批次

View File

@@ -12,7 +12,7 @@
FROM
st_ivt_checkdtl dtl
LEFT JOIN st_ivt_checkmst ios ON ios.check_id = dtl.check_id
LEFT JOIN md_me_materialbase material ON material.material_id = dtl.material_id
LEFT JOIN md_me_materialbase material ON material.material_code = dtl.material_code
LEFT JOIN st_ivt_sectattr sect ON sect.sect_code = dtl.sect_code
LEFT JOIN st_ivt_structattr attr ON attr.struct_code = dtl.struct_code
<where>

View File

@@ -21,7 +21,7 @@
FROM
st_ivt_moreorlessdtl dtl
LEFT JOIN st_ivt_moreorlessmst ios ON ios.mol_id = dtl.mol_id
LEFT JOIN md_me_materialbase material ON material.material_id = dtl.material_id
LEFT JOIN md_me_materialbase material ON material.material_code = dtl.material_code
INNER JOIN md_pb_groupplate ext ON ext.storagevehicle_code = dtl.storagevehicle_code
AND ext.material_code = dtl.material_code AND dtl.pcsn = ext.pcsn
<where>

View File

@@ -62,7 +62,7 @@ public class StIvtCheckdtlServiceImpl extends ServiceImpl<StIvtCheckdtlMapper, S
dao.setSect_code(json.getString("sect_code"));
dao.setStruct_code(json.getString("struct_code"));
dao.setStoragevehicle_code(json.getString("storagevehicle_code"));
dao.setMaterial_id(json.getString("material_id"));
dao.setMaterial_code(json.getString("material_code"));
dao.setPcsn(json.getString("pcsn"));
dao.setBase_qty(json.getBigDecimal("base_qty"));
dao.setFac_qty(json.getBigDecimal("fac_qty"));
@@ -111,7 +111,7 @@ public class StIvtCheckdtlServiceImpl extends ServiceImpl<StIvtCheckdtlMapper, S
// 创建损益单明细数据
List<JSONObject> tableData = new ArrayList<>();
JSONObject jsonDtl = new JSONObject();
jsonDtl.put("material_id", dao.getMaterial_id());
jsonDtl.put("material_code", dao.getMaterial_code());
jsonDtl.put("pcsn", dao.getPcsn());
jsonDtl.put("ivt_qty", base_qty);
jsonDtl.put("mol_qty", mol_qty);

View File

@@ -40,7 +40,7 @@ public class StIvtMoreorlessdtlServiceImpl extends ServiceImpl<StIvtMoreorlessdt
dao.setStruct_code(json.getString("struct_code"));
dao.setSect_code(json.getString("sect_code"));
dao.setStoragevehicle_code(json.getString("storagevehicle_code"));
dao.setMaterial_id(json.getString("material_id"));
dao.setMaterial_code(json.getString("material_code"));
dao.setPcsn(json.getString("pcsn"));
dao.setQty_unit_id(json.getString("qty_unit_id"));
dao.setQty_unit_name(json.getString("qty_unit_name"));

View File

@@ -139,12 +139,13 @@ public class StIvtMoreorlessmstServiceImpl extends ServiceImpl<StIvtMoreorlessms
json.put("type", dao.getMol_type().equals(IOSEnum.MORE_TYPE.code(""))
? IOSConstant.UPDATE_IVT_TYPE_SUB_CANUSE_IVT : IOSConstant.UPDATE_IVT_TYPE_ADD_CANUSE_IVT);
json.put("storagevehicle_code",dto.getStoragevehicle_code());
json.put("material_id",dto.getMaterial_id());
json.put("material_code",dto.getMaterial_code());
json.put("pcsn",dto.getPcsn());
json.put("qty_unit_id",dto.getQty_unit_id());
json.put("qty_unit_name",dto.getQty_unit_name());
json.put("change_qty",dto.getMol_qty());
json.put("remark","由损益单据【"+dao.getMol_code()+"】变更库存数量【"+dto.getMol_qty()+"");
json.put("struct_code", dto.getStruct_code());
updateIvtUtils.updateIvt(json);
}
// 更新明细为完成

View File

@@ -4,12 +4,18 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService;
import org.nl.wms.basedata_manage.service.IStructattrService;
import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.warehouse_manage.enums.IOSConstant;
import org.nl.wms.warehouse_manage.enums.IOSEnum;
import org.nl.wms.warehouse_manage.record.service.IStIvtStructivtflowService;
import org.nl.wms.warehouse_manage.record.service.dao.StIvtStructivtflow;
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
import org.springframework.beans.factory.annotation.Autowired;
@@ -37,6 +43,13 @@ public class UpdateIvtUtils {
*/
@Autowired
private IMdPbGroupplateService iMdPbGroupPlateService;
/**
* 仓位信息服务
*/
@Autowired
private IStructattrService structattrService;
@Autowired
private IStIvtStructivtflowService stIvtStructivtflowService;
/**
* 更新库存
@@ -74,11 +87,11 @@ public class UpdateIvtUtils {
break;
case IOSConstant.UPDATE_IVT_TYPE_ADD_CANUSE_IVT :
// 加可用(加库存)
// updateAddCanuseIvt(where);
updateAddCanuseIvt(where);
break;
case IOSConstant.UPDATE_IVT_TYPE_SUB_CANUSE_IVT :
// 减可用(减库存)
// updateSubCanuseIvt(where);
updateSubCanuseIvt(where);
break;
default:
break;
@@ -96,7 +109,7 @@ public class UpdateIvtUtils {
if (ObjectUtil.isEmpty(where.getString("storagevehicle_code"))) {
throw new BadRequestException("载具编码不能为空!");
}
if (ObjectUtil.isEmpty(where.getString("material_id"))) {
if (ObjectUtil.isEmpty(where.getString("material_code"))) {
throw new BadRequestException("物料标识不能为空!");
}
if (ObjectUtil.isEmpty(where.getString("pcsn"))) {
@@ -244,7 +257,7 @@ public class UpdateIvtUtils {
GroupPlate extDao = iMdPbGroupPlateService.getOne(
new QueryWrapper<GroupPlate>().lambda()
.eq(GroupPlate::getStoragevehicle_code, where.getString("storagevehicle_code"))
.eq(GroupPlate::getMaterial_code, where.getString("material_id"))
.eq(GroupPlate::getMaterial_code, where.getString("material_code"))
.eq(GroupPlate::getPcsn, where.getString("pcsn"))
);
if (ObjectUtil.isEmpty(extDao)) {
@@ -257,7 +270,26 @@ public class UpdateIvtUtils {
extDao.setUpdate_time(DateUtil.now());
extDao.setRemark(where.getString("remark"));
iMdPbGroupPlateService.updateById(extDao);
;
//获取仓位信息
Structattr structattr = structattrService.getOne(new LambdaQueryWrapper<Structattr>()
.eq(Structattr::getStruct_code, where.getString("struct_code")));
//添加库存变动记录
StIvtStructivtflow record = new StIvtStructivtflow();
record.setId(IdUtil.getStringId());
record.setUpdate_time(DateUtil.now());
record.setVehicle_code(extDao.getStoragevehicle_code());
record.setMaterial_id(extDao.getMaterial_code());
record.setPcsn(extDao.getPcsn());
record.setQty(extDao.getQty());
record.setChange_qty(where.getBigDecimal("change_qty"));
record.setSource_form_id(extDao.getExt_code());
record.setUnit_id(extDao.getQty_unit_id());
record.setStruct_code(structattr.getStruct_code());
record.setStor_code(structattr.getStor_code());
record.setSect_code(structattr.getSect_code());
record.setGrowth(true);
stIvtStructivtflowService.save(record);
}
/**
@@ -268,7 +300,7 @@ public class UpdateIvtUtils {
GroupPlate extDao = iMdPbGroupPlateService.getOne(
new QueryWrapper<GroupPlate>().lambda()
.eq(GroupPlate::getStoragevehicle_code, where.getString("storagevehicle_code"))
.eq(GroupPlate::getMaterial_code, where.getString("material_id"))
.eq(GroupPlate::getMaterial_code, where.getString("material_code"))
.eq(GroupPlate::getPcsn, where.getString("pcsn"))
);
if (ObjectUtil.isEmpty(extDao)) {
@@ -284,6 +316,25 @@ public class UpdateIvtUtils {
extDao.setUpdate_time(DateUtil.now());
extDao.setRemark(where.getString("remark"));
iMdPbGroupPlateService.updateById(extDao);
//获取仓位信息
Structattr structattr = structattrService.getOne(new LambdaQueryWrapper<Structattr>()
.eq(Structattr::getStruct_code, where.getString("struct_code")));
//添加库存变动记录
StIvtStructivtflow record = new StIvtStructivtflow();
record.setId(IdUtil.getStringId());
record.setUpdate_time(DateUtil.now());
record.setVehicle_code(extDao.getStoragevehicle_code());
record.setMaterial_id(extDao.getMaterial_code());
record.setPcsn(extDao.getPcsn());
record.setQty(extDao.getQty());
record.setChange_qty(where.getBigDecimal("change_qty"));
record.setSource_form_id(extDao.getExt_code());
record.setUnit_id(extDao.getQty_unit_id());
record.setStruct_code(structattr.getStruct_code());
record.setStor_code(structattr.getStor_code());
record.setSect_code(structattr.getSect_code());
record.setGrowth(false);
stIvtStructivtflowService.save(record);
}
}