add:仓位物料设置

This commit is contained in:
zhangzhiqiang
2023-07-27 15:21:42 +08:00
parent b2d2cda72b
commit e73877620a
9 changed files with 154 additions and 14 deletions

View File

@@ -101,6 +101,7 @@ public class StructattrController {
@Log("修改仓位库存")
//("查询联级仓位")
public ResponseEntity<Object> setMaterial(@RequestBody JSONObject json) {
return new ResponseEntity<>(ivtStructattrService.getSectCascader(json),HttpStatus.OK);
ivtStructattrService.setStructMaterial(json);
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -56,4 +56,10 @@ public interface IStIvtStructattrService extends IService<StIvtStructattr> {
* @param inv_code
*/
void lockStruct(String struct_code, String type, String inv_code);
/**
* 设置仓位物料信息
* @param jo
*/
void setStructMaterial(JSONObject jo);
}

View File

@@ -1,12 +1,14 @@
package org.nl.wms.masterdata_manage.storage.service.storage.impl;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import io.jsonwebtoken.lang.Assert;
import org.apache.commons.lang3.StringUtils;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
@@ -17,7 +19,8 @@ import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr;
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
import org.nl.wms.masterdata_manage.storage.service.storage.dao.mapper.StIvtStructattrMapper;
import org.nl.wms.storage_manage.IOSEnum;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService;
import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@@ -39,6 +42,11 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
@Autowired
private IStIvtSectattrService sectattrService;
@Autowired
private IStIvtIostorinvBcpOutService bcpOutService;
@Autowired
private IStIvtIostorinvBcpService bcpInvService;
@Override
public String create(JSONObject form) {
@@ -163,4 +171,30 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
.set(StIvtStructattr::getInv_code,inv_code)
.set(StIvtStructattr::getTask_code,inv_code));
}
@Override
public void setStructMaterial(JSONObject jo) {
Assert.notNull(jo.getString("struct_id"),"仓位信息不能为空");
Boolean is_emptyvehicle = jo.getBoolean("is_emptyvehicle");
this.update(new UpdateWrapper<StIvtStructattr>()
.set("is_emptyvehicle",is_emptyvehicle)
.set("storagevehicle_code",StringUtils.isNotEmpty(jo.getString("storagevehicle_code"))?jo.getString("storagevehicle_code"):"")
.set("update_id",SecurityUtils.getCurrentUserId())
.set("update_name",SecurityUtils.getCurrentNickName())
.set("update_time",new Date())
.eq("struct_id",jo.getString("struct_id")));
if (is_emptyvehicle || StringUtils.isEmpty(jo.getString("storagevehicle_code"))){
//删除库存,生产操作记录表
JSONObject form = new JSONObject();
form.put("struct_id",jo.getString("struct_id"));
form.put("storagevehicle_code",jo.getString("storagevehicle_code"));
bcpOutService.onlyConfirm(form);
}else {
//更新库存更新生产记录
if (StringUtils.isEmpty(jo.getString("material_code"))||jo.getInteger("qty")==null || jo.getInteger("qty")<=0){
throw new BadRequestException("有载具非空载具时,物料编码跟数量不能为空");
}
bcpInvService.onlyConfirm(jo);
}
}
}

View File

@@ -30,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -124,6 +125,9 @@ public class PdaStCpInServiceImpl implements PdaStCpInService {
@Override
public JSONObject getMaterial(JSONObject whereJson) {
List<Map> list = iMpsSaleOrderService.getPdaMaterial(whereJson);
for (Map map : list) {
map.put("create_time",DateUtil.date((Date) map.get("plandeliver_date")).toString());
}
JSONObject result = new JSONObject();
result.put("data", JSONArray.parseArray(JSON.toJSONString(list)));
result.put("message", "查询成功");

View File

@@ -47,6 +47,13 @@ public interface IStIvtIostorinvBcpOutService extends IService<StIvtIostorinvBcp
*/
String confirm(JSONObject form);
/**
* 出库确认
* @param form
* @return
*/
void onlyConfirm(JSONObject form);
/**
* 自动出库
* @param param

View File

@@ -35,6 +35,13 @@ public interface IStIvtIostorinvBcpService extends IService<StIvtIostorinvBcp> {
* @return
*/
String confirm(JSONObject form);
/**
* 库存变动
* @param form
* @return
*/
void onlyConfirm(JSONObject form);
/**
* 下发单据
* @param form

View File

@@ -247,6 +247,44 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl<StIvtIostorinvB
return null;
}
@Override
@Transactional
public void onlyConfirm(JSONObject form) {
StIvtStructivtBcp ivtDao = structivtBcpService.getById(form.getString("struct_id"));
if (ivtDao!=null){
//删除库存
structivtBcpService.remove(new QueryWrapper<StIvtStructivtBcp>().eq("struct_id", form.getString("struct_id")));
// 插入库存变动记录
JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivtDao));
param.put("change_type", ChangeIvtUtil.SUBFROZEN_SUBIVT_QTY);
param.put("change_qty", ivtDao.getCanuse_qty());
param.put("result_qty", 0);
param.put("bill_code","");
param.put("inv_id","");
param.put("bill_type_scode","");
iStIvtStructivtflowService.insetIvtChange(param);
//维护载具
structattrService.update(new UpdateWrapper<StIvtStructattr>().lambda()
.eq(StIvtStructattr::getStruct_code, ivtDao.getStruct_code())
.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
.set(StIvtStructattr::getInv_code,"")
.set(StIvtStructattr::getStoragevehicle_code, StringUtils.isNotEmpty(form.getString("storagevehicle_code"))?form.getString("storagevehicle_code"):""));
}
if (StringUtils.isNotEmpty(form.getString("storagevehicle_code"))){
// 更新载具扩展属性 - 释放载具对应物料关系 清空数量
iMdPbStoragevehicleextService.update(
new MdPbStoragevehicleext()
.setMaterial_id("")
.setStorage_qty(BigDecimal.valueOf(0)),
new QueryWrapper<MdPbStoragevehicleext>().lambda()
.eq(MdPbStoragevehicleext::getStoragevehicle_code,form.getString("storagevehicle_code"))
);
}
}
@Override
@Transactional
public StIvtStructivtBcp autoConfirmout(JSONObject form) {

View File

@@ -26,6 +26,8 @@ import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.system.util.CodeUtil;
import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.wms.ext_manage.acs.service.WmsToAcsService;
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.IMdPbStoragevehicleextService;
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleinfoService;
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleext;
@@ -37,6 +39,7 @@ import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum;
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
import org.nl.wms.storage_manage.IOSEnum;
import org.nl.wms.storage_manage.IVTEnum;
import org.nl.wms.storage_manage.basedata.service.record.service.IStIvtStructivtflowService;
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService;
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
@@ -55,6 +58,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
@@ -85,6 +89,8 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl<StIvtIostorinvBcpM
@Autowired
private ISchBaseTaskService iSchBaseTaskService; // 任务表服务
@Autowired
private IMdMeMaterialbaseService materialbaseService; // 任务表服务
@Autowired
private IStIvtStructivtflowService iStIvtStructivtflowService; // 库存变动服务
@Autowired
protected IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; // 载具信息
@@ -181,6 +187,51 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl<StIvtIostorinvBcpM
}
}
@Override
public void onlyConfirm(JSONObject form) {
Assert.notNull(new Object[]{form.getString("struct_id"),form.getString("stor_id"),form.getString("material_code")},"参数不全");
structivtBcpService.removeById(form.getString("struct_id"));
StIvtBsrealstorattr stor = storattrService.getById(form.getString("stor_id"));
MdMeMaterialbase mdMeMaterialbase = materialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>()
.eq("material_code",form.getString("material_code")));
if (mdMeMaterialbase==null){
throw new BadRequestException("物料编码不正确"+form.getString("material_code"));
}
//新增库存
StIvtStructivtBcp ivtDao = StIvtStructivtBcp.builder()
.struct_id(form.getString("struct_id"))
.struct_code(form.getString("struct_code"))
.struct_name(form.getString("struct_name"))
.material_id(mdMeMaterialbase.getMaterial_id())
.quality_scode(IVTEnum.QUALITY_SCODE.code("合格品"))
.pcsn(DateUtil.today())
.ivt_level(IVTEnum.IVT_LEVEL.code("一级"))
.is_active(true)
.qty_unit_id(mdMeMaterialbase.getBase_unit_id())
.instorage_time(DateUtil.now())
.stor_id(form.getString("stor_id"))
.canuse_qty(form.getBigDecimal("qty"))
.workshop_id(stor.getProduct_area())
.unit_weight(mdMeMaterialbase.getNet_weight())
.build();
structivtBcpService.save(ivtDao);
// 插入库存变动记录
JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivtDao));
param.put("change_type", ChangeIvtUtil.SUBWAREHOUSING_ADDIVT_QTY);
param.put("change_qty", ivtDao.getCanuse_qty());
param.put("result_qty", ivtDao.getCanuse_qty());
param.put("bill_code","");
param.put("inv_id","");
param.put("bill_type_scode","");
iStIvtStructivtflowService.insetIvtChange(param);
//维护载具
structattrService.update(new UpdateWrapper<StIvtStructattr>().lambda()
.eq(StIvtStructattr::getStruct_code, form.getString("struct_code"))
.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
.set(StIvtStructattr::getInv_code, "")
.set(StIvtStructattr::getStoragevehicle_code, form.getString("storagevehicle_code")));
}
@Override
@Transactional
public String confirm(JSONObject form) {

View File

@@ -85,15 +85,6 @@
<el-input v-model="materialForm.material_code" style="width: 200px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="物料编码" prop="material_code">
<template slot-scope="scope">
<el-input v-model="materialForm.material_code" clearable style="width: 370px">
<el-button slot="append" icon="el-icon-plus" @click="queryMater(materialForm)" />
</el-input>
</template>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item v-if="materialForm.is_emptyvehicle==false" label="物料数量">
<el-input-number v-model="materialForm.qty" style="width: 200px;" />
@@ -103,7 +94,7 @@
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="closeView">取消</el-button>
<el-button type="primary" @click="setStructMaterial(form)">确认</el-button>
<el-button type="primary" @click="setStructMaterial(materialForm)">确认</el-button>
</div>
</el-dialog>
<!--表单组件-->
@@ -317,7 +308,7 @@
:data="scope.row"
:permission="permission"
/>
<el-button size="mini" type="text" icon="el-icon-edit" @click="toView(scope.row)">仓位设置</el-button>
<el-button v-if="scope.row.stor_id=='15286279952695336962'" size="mini" type="text" icon="el-icon-edit" @click="toView(scope.row)">仓位设置</el-button>
</span>
</template>
</el-table-column>
@@ -492,10 +483,11 @@ export default {
form.cascader = val
},
setStructMaterial(data){
console.log(data)
crudStructattr.setMaterial(data).then(res => {
this.crud.toQuery()
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.closeView()
crud.refresh()
})
},
setMaterValue(row) {