add:盘点管理、易损单、出入库记录
This commit is contained in:
@@ -64,6 +64,8 @@ public class StIvtCheckdtl implements Serializable {
|
||||
*/
|
||||
private String material_id;
|
||||
|
||||
private String material_code;
|
||||
|
||||
/**
|
||||
* 批次
|
||||
*/
|
||||
|
||||
@@ -58,6 +58,7 @@ public class StIvtMoreorlessdtl implements Serializable {
|
||||
* 物料标识
|
||||
*/
|
||||
private String material_id;
|
||||
private String material_code;
|
||||
|
||||
/**
|
||||
* 批次
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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"));
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
// 更新明细为完成
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -292,7 +292,7 @@ export default {
|
||||
this.crud.notify('不允许新增明细,盘点数量为0!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
return false
|
||||
}
|
||||
if (!row.material_id) {
|
||||
if (!row.material_code) {
|
||||
this.crud.notify('物料不可为空!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -88,12 +88,12 @@
|
||||
<!--左侧插槽-->
|
||||
<slot name="left" />
|
||||
<el-button
|
||||
v-if="crud.status.cu > 0"
|
||||
slot="left"
|
||||
class="filter-item"
|
||||
type="success"
|
||||
icon="el-icon-check"
|
||||
size="mini"
|
||||
v-if="crud.status.cu > 0"
|
||||
:disabled="form.stor_id === ''"
|
||||
@click="queryStruct()"
|
||||
>
|
||||
@@ -113,7 +113,7 @@
|
||||
>
|
||||
<el-table-column type="index" label="序号" width="55" align="center" />
|
||||
<el-table-column prop="struct_code" label="仓位编码" align="center" :min-width="flexWidth('struct_code',crud.data,'仓位编码')" />
|
||||
<el-table-column prop="storagevehicle_code" label="载具号" align="center" :min-width="flexWidth('storagevehicle_code',crud.data,'载具号')" >
|
||||
<el-table-column prop="storagevehicle_code" label="载具号" align="center" :min-width="flexWidth('storagevehicle_code',crud.data,'载具号')">
|
||||
<template scope="scope">
|
||||
<el-input v-show="!scope.row.edit && scope.row.is_add" v-model="scope.row.storagevehicle_code" size="mini" />
|
||||
<span v-show="scope.row.edit">{{ scope.row.storagevehicle_code }}</span>
|
||||
@@ -124,7 +124,7 @@
|
||||
<el-table-column prop="material_name" label="物料名称" align="center" :min-width="flexWidth('material_name',crud.data,'物料名称')" />
|
||||
<el-table-column prop="pcsn" label="批次号" align="center" :min-width="flexWidth('pcsn',crud.data,'批次号')" />
|
||||
<el-table-column prop="ivt_qty" label="库存重量" align="center" :formatter="crud.formatNum3" :min-width="flexWidth('ivt_qty',crud.data,'库存重量')" />
|
||||
<el-table-column prop="mol_qty" width="220" label="损溢重量" align="center" :min-width="flexWidth('mol_qty',crud.data,'损溢重量')" >
|
||||
<el-table-column prop="mol_qty" width="220" label="损溢重量" align="center" :min-width="flexWidth('mol_qty',crud.data,'损溢重量')">
|
||||
<template scope="scope">
|
||||
<el-input-number v-model="scope.row.mol_qty" :disabled="scope.row.edit" :precision="3" :controls="false" :min="0" style="width: 120px" />
|
||||
</template>
|
||||
@@ -258,7 +258,7 @@ export default {
|
||||
[CRUD.HOOK.afterToView]() {
|
||||
this.mater_btn = true
|
||||
crudMoreOrless.queryMolDtl({ 'mol_id': this.form.mol_id }).then(res => {
|
||||
this.form.tableData = res
|
||||
this.form.tableData = res.data
|
||||
// 将明细变成不可编辑
|
||||
for (let i = 0; i < this.form.tableData.length; i++) {
|
||||
const row = this.form.tableData[i]
|
||||
|
||||
Reference in New Issue
Block a user