rev : 出入库修改

This commit is contained in:
2023-05-26 18:25:02 +08:00
parent 90d0544de9
commit ce6f695e02
12 changed files with 89 additions and 22 deletions

View File

@@ -21,6 +21,8 @@ public enum MasterEnum {
BILL_TYPE(MapOf.of("生产入库","1","退货入库","2")),
//单据类型
BILL_STATUS(MapOf.of("创建","1","生成","2")),
// 箱状态
BOX_STATUS(MapOf.of("生成","1","组盘","2","入库","3","出库","4")),
;
private Map<String,String> code;

View File

@@ -7,6 +7,7 @@ import java.io.Serializable;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>

View File

@@ -24,6 +24,8 @@ public enum IOSEnum {
BILL_STATUS(MapOf.of("生成", "10", "分配中", "20", "分配完", "30", "完成", "99")),
//单据状态
WORK_STATUS(MapOf.of("未生成", "00", "生成", "10", "执行中", "20", "完成", "99")),
//锁定类型
LOCK_TYPE(MapOf.of("未锁定", "0", "入库锁", "1", "出库锁", "2","盘点锁", "3")),
;
private Map<String, String> code;

View File

@@ -0,0 +1,41 @@
package org.nl.wms.storage_manage;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.apache.commons.lang3.StringUtils;
import org.nl.common.utils.MapOf;
import org.nl.modules.common.exception.BadRequestException;
import java.util.Map;
/*
* @author ZZQ
* @Date 2023/5/4 20:11
*/
@AllArgsConstructor
@Getter
public enum IVTEnum {
//库存品质类型
QUALITY_SCODE(MapOf.of("待检品", "00", "合格品", "01", "不良品", "02")),
//库存等级
IVT_LEVEL(MapOf.of("一级", "1", "二级", "2", "三级", "3")),
;
private Map<String, String> code;
public String code(String desc) {
String code = this.getCode().get(desc);
if (StringUtils.isNotEmpty(code)) {
return code;
}
throw new BadRequestException(this.name() + "对应类型" + desc + "未定义");
}
public String check(String code) {
for (Map.Entry<String, String> entry : this.getCode().entrySet()) {
if (entry.getValue().equals("code")) {
return entry.getValue();
}
}
throw new BadRequestException(this.name() + "对应类型" + code + "未定义");
}
}

View File

@@ -18,9 +18,11 @@ import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.system.util.CodeUtil;
import org.nl.wms.masterdata_manage.MasterEnum;
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbBucketrecordService;
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService;
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleinfoService;
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbBucketrecord;
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleext;
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService;
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
@@ -217,7 +219,7 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
}
if (ObjectUtil.isEmpty(mstDao))
throw new BadRequestException("没有可分配的库存");
throw new BadRequestException("没有可分配明细");
// 2.找库存
for (StIvtIostorinvdtlCp dtlDao : dtlDaoList) {
@@ -456,6 +458,17 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
new QueryWrapper<MdPbStoragevehicleext>().lambda()
.eq(MdPbStoragevehicleext::getStoragevehicle_code,dao.getStoragevehicle_code())
);
// 5) 更新箱记录表为出库
iMdPbBucketrecordService.update(
MdPbBucketrecord.builder()
.status(MasterEnum.BOX_STATUS.code("出库"))
.build(),
new QueryWrapper<MdPbBucketrecord>().lambda()
.eq(MdPbBucketrecord::getStoragevehicle_code, dao.getStoragevehicle_code())
.eq(MdPbBucketrecord::getMaterial_id, dao.getMaterial_id())
.eq(MdPbBucketrecord::getStatus, MasterEnum.BOX_STATUS.code("入库"))
);
}
}
@@ -573,7 +586,7 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
// 2.锁定仓位
iStIvtStructattrService.update(
new StIvtStructattr()
.setLock_type("01") // TODO 暂时写死
.setLock_type(IOSEnum.LOCK_TYPE.code("出库锁"))
.setInv_id(mstDao.getIostorinv_id())
.setInv_type(mstDao.getBill_type())
.setInv_code(mstDao.getBill_code()),
@@ -605,7 +618,7 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
// 解锁仓位
iStIvtStructattrService.update(
new StIvtStructattr()
.setLock_type("1") // TODO 暂时写死
.setLock_type(IOSEnum.LOCK_TYPE.code("未锁定"))
.setInv_id("")
.setInv_type("")
.setInv_code(""),
@@ -638,7 +651,7 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
attrDao.setInv_type("");
attrDao.setInv_id("");
attrDao.setStoragevehicle_code("");
attrDao.setLock_type("1");
attrDao.setLock_type(IOSEnum.LOCK_TYPE.code("未锁定"));
iStIvtStructattrService.updateById(attrDao);
}

View File

@@ -19,6 +19,7 @@ import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.system.util.CodeUtil;
import org.nl.wms.masterdata_manage.MasterEnum;
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbBucketrecordService;
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService;
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleinfoService;
@@ -248,7 +249,7 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
.setIvt_level(disDtlDao.getIvt_level())
.setIs_active(true)
.setIs_issued(false)
.setWork_status("00") //TODO 暂时写死
.setWork_status(IOSEnum.WORK_STATUS.code("未生成"))
.setStoragevehicle_id(disDtlDao.getStoragevehicle_id())
.setStoragevehicle_code(disDtlDao.getStoragevehicle_code())
.setStoragevehicle_type(disDtlDao.getStoragevehicle_type())
@@ -371,7 +372,7 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
attrDao = iStIvtStructattrService.getById(struct_id);
}
if (ObjectUtil.isEmpty(attrDao.getStruct_code())) throw new BadRequestException("未找到仓位!");
if (ObjectUtil.isEmpty(attrDao)) throw new BadRequestException("未找到仓位!");
// 2.更新分配明细、分配、明细、主表
updateDivIos(attrDao,whereJson);
@@ -379,7 +380,7 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
// 3.更新仓位状态 - 锁定
StIvtIostorinvCp mstDao = this.getById(whereJson.getString("iostorinv_id"));
attrDao.setLock_type("01"); // TODO 暂时写死
attrDao.setLock_type(IOSEnum.LOCK_TYPE.code("入库锁"));
attrDao.setUpdate_id(SecurityUtils.getCurrentUserId());
attrDao.setUpdate_name(SecurityUtils.getCurrentNickName());
attrDao.setUpdate_time(new Date());
@@ -441,7 +442,7 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
// 解锁货位
iStIvtStructattrService.update(
new StIvtStructattr()
.setLock_type("1") // TODO 暂时写死
.setLock_type(IOSEnum.LOCK_TYPE.code("未锁定"))
.setInv_code("")
.setInv_type("")
.setInv_id(""),
@@ -560,7 +561,7 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
// 更新箱记录表
iMdPbBucketrecordService.update(
MdPbBucketrecord.builder()
.status("03") // TODO 暂时写死
.status(MasterEnum.BOX_STATUS.code("入库"))
.instor_optid(Long.getLong(SecurityUtils.getCurrentUserId()))
.instor_optname(SecurityUtils.getCurrentNickName())
.instor_time(DateUtil.now())
@@ -768,7 +769,7 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
attrDao.setInv_type("");
attrDao.setInv_id("");
attrDao.setStoragevehicle_code(storagevehicle_code);
attrDao.setLock_type("1");
attrDao.setLock_type(IOSEnum.LOCK_TYPE.code("未锁定"));
iStIvtStructattrService.updateById(attrDao);
}

View File

@@ -16,6 +16,8 @@ import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleext;
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleinfo;
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
import org.nl.wms.storage_manage.IOSEnum;
import org.nl.wms.storage_manage.IVTEnum;
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService;
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp;
@@ -98,10 +100,10 @@ public class StIvtIostorinvdisCpServiceImpl extends ServiceImpl<StIvtIostorinvdi
.setSeq_no(1)
.setMaterial_id(materDao.getMaterial_id())
.setPcsn(DateUtil.today())
.setQuality_scode("00") // TODO 暂时写
.setIvt_level("01") // TODO 暂时写
.setQuality_scode(IVTEnum.QUALITY_SCODE.code("合格品"))
.setIvt_level(IVTEnum.IVT_LEVEL.code("一级"))
.setIs_active(true)
.setWork_status("00") // TODO 暂时写
.setWork_status(IOSEnum.WORK_STATUS.code("未生成"))
.setStoragevehicle_id(vehicleDao.getStoragevehicle_id())
.setStoragevehicle_code(vehicleDao.getStoragevehicle_code())
.setStoragevehicle_type(vehicleDao.getStoragevehicle_type())
@@ -149,10 +151,10 @@ public class StIvtIostorinvdisCpServiceImpl extends ServiceImpl<StIvtIostorinvdi
.setStruct_name(attrDao.getStruct_name())
.setMaterial_id(ivtDao.getMaterial_id())
.setPcsn(ivtDao.getPcsn())
.setQuality_scode(ivtDao.getQuality_scode()) // TODO 暂时写
.setIvt_level(ivtDao.getIvt_level()) // TODO 暂时写
.setQuality_scode(ivtDao.getQuality_scode())
.setIvt_level(ivtDao.getIvt_level())
.setIs_active(true)
.setWork_status("00") // TODO 暂时写
.setWork_status(IOSEnum.WORK_STATUS.code("未生成"))
.setStoragevehicle_code(attrDao.getStoragevehicle_code())
.setIs_issued(false)
.setQty_unit_id(untiDao.getMeasure_unit_id())

View File

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.masterdata_manage.MasterEnum;
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbBucketrecordService;
@@ -13,6 +14,7 @@ import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextServic
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleinfoService;
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbBucketrecord;
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleinfo;
import org.nl.wms.storage_manage.IVTEnum;
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisdtlCpService;
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp;
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdisdtlCpMapper;
@@ -86,8 +88,8 @@ public class StIvtIostorinvdisdtlCpServiceImpl extends ServiceImpl<StIvtIostorin
.setSeq_no(new BigDecimal(1))
.setMaterial_id(mataDao.getMaterial_id())
.setPcsn(item.getString("pcsn"))
.setQuality_scode("00") // TODO 暂时写
.setIvt_level("01") // TODO 暂时写
.setQuality_scode(IVTEnum.QUALITY_SCODE.code("合格品"))
.setIvt_level(IVTEnum.IVT_LEVEL.code("一级"))
.setIs_active(true)
.setStoragevehicle_id(vehicleDao.getStoragevehicle_id())
.setStoragevehicle_code(vehicleDao.getStoragevehicle_code())
@@ -102,7 +104,7 @@ public class StIvtIostorinvdisdtlCpServiceImpl extends ServiceImpl<StIvtIostorin
iMdPbBucketrecordService.update(
MdPbBucketrecord.builder()
.storagevehicle_id(Long.getLong(vehicleDao.getStoragevehicle_id()))
.status("02") // TODO 暂时写死
.status(MasterEnum.BOX_STATUS.code("组盘"))
.storagevehicle_code(vehicleDao.getStoragevehicle_code())
.instor_optid(Long.getLong(SecurityUtils.getCurrentUserId()))
.instor_optname(SecurityUtils.getCurrentNickName())

View File

@@ -10,6 +10,7 @@ import org.nl.wms.masterdata_manage.service.master.IMdPbMeasureunitService;
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
import org.nl.wms.storage_manage.IOSEnum;
import org.nl.wms.storage_manage.IVTEnum;
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService;
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdtlCpService;
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp;
@@ -77,7 +78,7 @@ public class StIvtIostorinvdtlCpServiceImpl extends ServiceImpl<StIvtIostorinvdt
row.setSeq_no(i+1);
row.setPcsn(DateUtil.today());
row.setIs_active(true);
row.setIvt_level("01"); // TODO 暂时写死
row.setIvt_level(IVTEnum.IVT_LEVEL.code("一级"));
row.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
row.setReal_qty(row.getPlan_qty());
row.setUnassign_qty(row.getPlan_qty());

View File

@@ -8,7 +8,7 @@
FROM
ST_IVT_StructIvt_CP ivt
LEFT JOIN st_ivt_structattr attr ON ivt.struct_id = attr.struct_id
WHERE 1=1
WHERE attr.lock_type = '0'
<if test="stor_id != null and stor_id != ''">
and attr.stor_id = #{stor_id}
</if>

View File

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
import org.nl.wms.storage_manage.IOSEnum;
import org.nl.wms.storage_manage.productmanage.service.structIvt.IStIvtStructivtCpService;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService;
@@ -51,7 +52,7 @@ public class DivRuleCpServiceImpl implements DivRuleCpService {
.eq(StIvtStructattr::getSect_id, sect_id)
.isNull(StIvtStructattr::getStoragevehicle_code)
.eq(StIvtStructattr::getIs_used, "1") //TODO 暂时写死
.eq(StIvtStructattr::getLock_type, "1") //TODO 暂时写死
.eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
.orderByAsc(StIvtStructattr::getStruct_code)
,false);
break;

View File

@@ -142,6 +142,7 @@ export default {
open() {
this.query.material_id = this.addBoxParam.material_id
this.query.pcsn = this.addBoxParam.pcsn
this.query.status = '1'
this.crud.toQuery()
},
clickChange(item) {