add:盘点管理、易损单、出入库记录
This commit is contained in:
@@ -64,6 +64,8 @@ public class StIvtCheckdtl implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String material_id;
|
private String material_id;
|
||||||
|
|
||||||
|
private String material_code;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批次
|
* 批次
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ public class StIvtMoreorlessdtl implements Serializable {
|
|||||||
* 物料标识
|
* 物料标识
|
||||||
*/
|
*/
|
||||||
private String material_id;
|
private String material_id;
|
||||||
|
private String material_code;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批次
|
* 批次
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
FROM
|
FROM
|
||||||
st_ivt_checkdtl dtl
|
st_ivt_checkdtl dtl
|
||||||
LEFT JOIN st_ivt_checkmst ios ON ios.check_id = dtl.check_id
|
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_sectattr sect ON sect.sect_code = dtl.sect_code
|
||||||
LEFT JOIN st_ivt_structattr attr ON attr.struct_code = dtl.struct_code
|
LEFT JOIN st_ivt_structattr attr ON attr.struct_code = dtl.struct_code
|
||||||
<where>
|
<where>
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
FROM
|
FROM
|
||||||
st_ivt_moreorlessdtl dtl
|
st_ivt_moreorlessdtl dtl
|
||||||
LEFT JOIN st_ivt_moreorlessmst ios ON ios.mol_id = dtl.mol_id
|
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
|
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
|
AND ext.material_code = dtl.material_code AND dtl.pcsn = ext.pcsn
|
||||||
<where>
|
<where>
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ public class StIvtCheckdtlServiceImpl extends ServiceImpl<StIvtCheckdtlMapper, S
|
|||||||
dao.setSect_code(json.getString("sect_code"));
|
dao.setSect_code(json.getString("sect_code"));
|
||||||
dao.setStruct_code(json.getString("struct_code"));
|
dao.setStruct_code(json.getString("struct_code"));
|
||||||
dao.setStoragevehicle_code(json.getString("storagevehicle_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.setPcsn(json.getString("pcsn"));
|
||||||
dao.setBase_qty(json.getBigDecimal("base_qty"));
|
dao.setBase_qty(json.getBigDecimal("base_qty"));
|
||||||
dao.setFac_qty(json.getBigDecimal("fac_qty"));
|
dao.setFac_qty(json.getBigDecimal("fac_qty"));
|
||||||
@@ -111,7 +111,7 @@ public class StIvtCheckdtlServiceImpl extends ServiceImpl<StIvtCheckdtlMapper, S
|
|||||||
// 创建损益单明细数据
|
// 创建损益单明细数据
|
||||||
List<JSONObject> tableData = new ArrayList<>();
|
List<JSONObject> tableData = new ArrayList<>();
|
||||||
JSONObject jsonDtl = new JSONObject();
|
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("pcsn", dao.getPcsn());
|
||||||
jsonDtl.put("ivt_qty", base_qty);
|
jsonDtl.put("ivt_qty", base_qty);
|
||||||
jsonDtl.put("mol_qty", mol_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.setStruct_code(json.getString("struct_code"));
|
||||||
dao.setSect_code(json.getString("sect_code"));
|
dao.setSect_code(json.getString("sect_code"));
|
||||||
dao.setStoragevehicle_code(json.getString("storagevehicle_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.setPcsn(json.getString("pcsn"));
|
||||||
dao.setQty_unit_id(json.getString("qty_unit_id"));
|
dao.setQty_unit_id(json.getString("qty_unit_id"));
|
||||||
dao.setQty_unit_name(json.getString("qty_unit_name"));
|
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("损"))
|
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);
|
? IOSConstant.UPDATE_IVT_TYPE_SUB_CANUSE_IVT : IOSConstant.UPDATE_IVT_TYPE_ADD_CANUSE_IVT);
|
||||||
json.put("storagevehicle_code",dto.getStoragevehicle_code());
|
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("pcsn",dto.getPcsn());
|
||||||
json.put("qty_unit_id",dto.getQty_unit_id());
|
json.put("qty_unit_id",dto.getQty_unit_id());
|
||||||
json.put("qty_unit_name",dto.getQty_unit_name());
|
json.put("qty_unit_name",dto.getQty_unit_name());
|
||||||
json.put("change_qty",dto.getMol_qty());
|
json.put("change_qty",dto.getMol_qty());
|
||||||
json.put("remark","由损益单据【"+dao.getMol_code()+"】变更库存数量【"+dto.getMol_qty()+"】");
|
json.put("remark","由损益单据【"+dao.getMol_code()+"】变更库存数量【"+dto.getMol_qty()+"】");
|
||||||
|
json.put("struct_code", dto.getStruct_code());
|
||||||
updateIvtUtils.updateIvt(json);
|
updateIvtUtils.updateIvt(json);
|
||||||
}
|
}
|
||||||
// 更新明细为完成
|
// 更新明细为完成
|
||||||
|
|||||||
@@ -4,12 +4,18 @@ import cn.hutool.core.date.DateUtil;
|
|||||||
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.NumberUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
|
import org.nl.common.utils.IdUtil;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
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.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.IOSConstant;
|
||||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
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.IMdPbGroupplateService;
|
||||||
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
|
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -37,6 +43,13 @@ public class UpdateIvtUtils {
|
|||||||
*/
|
*/
|
||||||
@Autowired
|
@Autowired
|
||||||
private IMdPbGroupplateService iMdPbGroupPlateService;
|
private IMdPbGroupplateService iMdPbGroupPlateService;
|
||||||
|
/**
|
||||||
|
* 仓位信息服务
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private IStructattrService structattrService;
|
||||||
|
@Autowired
|
||||||
|
private IStIvtStructivtflowService stIvtStructivtflowService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新库存
|
* 更新库存
|
||||||
@@ -74,11 +87,11 @@ public class UpdateIvtUtils {
|
|||||||
break;
|
break;
|
||||||
case IOSConstant.UPDATE_IVT_TYPE_ADD_CANUSE_IVT :
|
case IOSConstant.UPDATE_IVT_TYPE_ADD_CANUSE_IVT :
|
||||||
// 加可用(加库存)
|
// 加可用(加库存)
|
||||||
// updateAddCanuseIvt(where);
|
updateAddCanuseIvt(where);
|
||||||
break;
|
break;
|
||||||
case IOSConstant.UPDATE_IVT_TYPE_SUB_CANUSE_IVT :
|
case IOSConstant.UPDATE_IVT_TYPE_SUB_CANUSE_IVT :
|
||||||
// 减可用(减库存)
|
// 减可用(减库存)
|
||||||
// updateSubCanuseIvt(where);
|
updateSubCanuseIvt(where);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -96,7 +109,7 @@ public class UpdateIvtUtils {
|
|||||||
if (ObjectUtil.isEmpty(where.getString("storagevehicle_code"))) {
|
if (ObjectUtil.isEmpty(where.getString("storagevehicle_code"))) {
|
||||||
throw new BadRequestException("载具编码不能为空!");
|
throw new BadRequestException("载具编码不能为空!");
|
||||||
}
|
}
|
||||||
if (ObjectUtil.isEmpty(where.getString("material_id"))) {
|
if (ObjectUtil.isEmpty(where.getString("material_code"))) {
|
||||||
throw new BadRequestException("物料标识不能为空!");
|
throw new BadRequestException("物料标识不能为空!");
|
||||||
}
|
}
|
||||||
if (ObjectUtil.isEmpty(where.getString("pcsn"))) {
|
if (ObjectUtil.isEmpty(where.getString("pcsn"))) {
|
||||||
@@ -244,7 +257,7 @@ public class UpdateIvtUtils {
|
|||||||
GroupPlate extDao = iMdPbGroupPlateService.getOne(
|
GroupPlate extDao = iMdPbGroupPlateService.getOne(
|
||||||
new QueryWrapper<GroupPlate>().lambda()
|
new QueryWrapper<GroupPlate>().lambda()
|
||||||
.eq(GroupPlate::getStoragevehicle_code, where.getString("storagevehicle_code"))
|
.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"))
|
.eq(GroupPlate::getPcsn, where.getString("pcsn"))
|
||||||
);
|
);
|
||||||
if (ObjectUtil.isEmpty(extDao)) {
|
if (ObjectUtil.isEmpty(extDao)) {
|
||||||
@@ -257,7 +270,26 @@ public class UpdateIvtUtils {
|
|||||||
extDao.setUpdate_time(DateUtil.now());
|
extDao.setUpdate_time(DateUtil.now());
|
||||||
extDao.setRemark(where.getString("remark"));
|
extDao.setRemark(where.getString("remark"));
|
||||||
iMdPbGroupPlateService.updateById(extDao);
|
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(
|
GroupPlate extDao = iMdPbGroupPlateService.getOne(
|
||||||
new QueryWrapper<GroupPlate>().lambda()
|
new QueryWrapper<GroupPlate>().lambda()
|
||||||
.eq(GroupPlate::getStoragevehicle_code, where.getString("storagevehicle_code"))
|
.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"))
|
.eq(GroupPlate::getPcsn, where.getString("pcsn"))
|
||||||
);
|
);
|
||||||
if (ObjectUtil.isEmpty(extDao)) {
|
if (ObjectUtil.isEmpty(extDao)) {
|
||||||
@@ -284,6 +316,25 @@ public class UpdateIvtUtils {
|
|||||||
extDao.setUpdate_time(DateUtil.now());
|
extDao.setUpdate_time(DateUtil.now());
|
||||||
extDao.setRemark(where.getString("remark"));
|
extDao.setRemark(where.getString("remark"));
|
||||||
iMdPbGroupPlateService.updateById(extDao);
|
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)
|
this.crud.notify('不允许新增明细,盘点数量为0!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if (!row.material_id) {
|
if (!row.material_code) {
|
||||||
this.crud.notify('物料不可为空!', CRUD.NOTIFICATION_TYPE.INFO)
|
this.crud.notify('物料不可为空!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,12 +88,12 @@
|
|||||||
<!--左侧插槽-->
|
<!--左侧插槽-->
|
||||||
<slot name="left" />
|
<slot name="left" />
|
||||||
<el-button
|
<el-button
|
||||||
|
v-if="crud.status.cu > 0"
|
||||||
slot="left"
|
slot="left"
|
||||||
class="filter-item"
|
class="filter-item"
|
||||||
type="success"
|
type="success"
|
||||||
icon="el-icon-check"
|
icon="el-icon-check"
|
||||||
size="mini"
|
size="mini"
|
||||||
v-if="crud.status.cu > 0"
|
|
||||||
:disabled="form.stor_id === ''"
|
:disabled="form.stor_id === ''"
|
||||||
@click="queryStruct()"
|
@click="queryStruct()"
|
||||||
>
|
>
|
||||||
@@ -113,7 +113,7 @@
|
|||||||
>
|
>
|
||||||
<el-table-column type="index" label="序号" width="55" align="center" />
|
<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="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">
|
<template scope="scope">
|
||||||
<el-input v-show="!scope.row.edit && scope.row.is_add" v-model="scope.row.storagevehicle_code" size="mini" />
|
<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>
|
<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="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="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="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">
|
<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" />
|
<el-input-number v-model="scope.row.mol_qty" :disabled="scope.row.edit" :precision="3" :controls="false" :min="0" style="width: 120px" />
|
||||||
</template>
|
</template>
|
||||||
@@ -258,7 +258,7 @@ export default {
|
|||||||
[CRUD.HOOK.afterToView]() {
|
[CRUD.HOOK.afterToView]() {
|
||||||
this.mater_btn = true
|
this.mater_btn = true
|
||||||
crudMoreOrless.queryMolDtl({ 'mol_id': this.form.mol_id }).then(res => {
|
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++) {
|
for (let i = 0; i < this.form.tableData.length; i++) {
|
||||||
const row = this.form.tableData[i]
|
const row = this.form.tableData[i]
|
||||||
|
|||||||
Reference in New Issue
Block a user