add:仓位物料设置
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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", "查询成功");
|
||||
|
||||
@@ -47,6 +47,13 @@ public interface IStIvtIostorinvBcpOutService extends IService<StIvtIostorinvBcp
|
||||
*/
|
||||
String confirm(JSONObject form);
|
||||
|
||||
/**
|
||||
* 出库确认
|
||||
* @param form
|
||||
* @return
|
||||
*/
|
||||
void onlyConfirm(JSONObject form);
|
||||
|
||||
/**
|
||||
* 自动出库
|
||||
* @param param
|
||||
|
||||
@@ -35,6 +35,13 @@ public interface IStIvtIostorinvBcpService extends IService<StIvtIostorinvBcp> {
|
||||
* @return
|
||||
*/
|
||||
String confirm(JSONObject form);
|
||||
|
||||
/**
|
||||
* 库存变动
|
||||
* @param form
|
||||
* @return
|
||||
*/
|
||||
void onlyConfirm(JSONObject form);
|
||||
/**
|
||||
* 下发单据
|
||||
* @param form
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user