rev:清洗相关功能优化
This commit is contained in:
@@ -46,7 +46,7 @@ public enum AcsTaskEnum {
|
|||||||
TASK_STRUCT_HR_EMP_IN("29","入库-海柔半成品-空托盘"),
|
TASK_STRUCT_HR_EMP_IN("29","入库-海柔半成品-空托盘"),
|
||||||
TASK_STRUCT_HR_EMP_OUT("30","出库-海柔半成品-空托盘"),
|
TASK_STRUCT_HR_EMP_OUT("30","出库-海柔半成品-空托盘"),
|
||||||
TASK_STRUCT_CP_CHECK("13","成品-盘点"),
|
TASK_STRUCT_CP_CHECK("13","成品-盘点"),
|
||||||
TASK_WASH_LACK("20","清洗机-缺料请求"),
|
TASK_WASH_SEND_MATERIAL("20","清洗机-上料请求"),
|
||||||
TASK_WASH_EMP("21","清洗机-空框请求"),
|
TASK_WASH_EMP("21","清洗机-空框请求"),
|
||||||
TASK_WASH_FULL_AUTO("22","清洗机-满料请求自动"),//去半成品入库:参数不全也去异常处理位
|
TASK_WASH_FULL_AUTO("22","清洗机-满料请求自动"),//去半成品入库:参数不全也去异常处理位
|
||||||
TASK_WASH_FULL_QZ("23","清洗机-强制搬出"),//去异常位:
|
TASK_WASH_FULL_QZ("23","清洗机-强制搬出"),//去异常位:
|
||||||
|
|||||||
@@ -183,13 +183,13 @@ public class PdaWashController {
|
|||||||
LIMIT_WEIGHT = Double.valueOf(one.getValue());
|
LIMIT_WEIGHT = Double.valueOf(one.getValue());
|
||||||
}
|
}
|
||||||
if (sum>LIMIT_WEIGHT){
|
if (sum>LIMIT_WEIGHT){
|
||||||
throw new BadRequestException("选择的储料仓物料总重量大于"+LIMIT_WEIGHT+"公斤");
|
throw new BadRequestException("选择的储料仓物料总重量大于"+LIMIT_WEIGHT/1000+"公斤");
|
||||||
}
|
}
|
||||||
Param limit_time = paramService.getOne(new QueryWrapper<Param>().eq("code", "pda_wash_time"));
|
Param limit_time = paramService.getOne(new QueryWrapper<Param>().eq("code", "pda_wash_time"));
|
||||||
//开启清洗上料时间限制
|
//开启清洗上料时间限制
|
||||||
if (limit_time!=null && !limit_time.getValue().equals("0")){
|
if (limit_time!=null && !limit_time.getValue().equals("0")){
|
||||||
SchBaseTask lastTask = taskService.getOne(new QueryWrapper<SchBaseTask>()
|
SchBaseTask lastTask = taskService.getOne(new QueryWrapper<SchBaseTask>()
|
||||||
.eq("task_type", AcsTaskEnum.REQUEST_WASH_SEND_MATERIAL.getCode()).orderByDesc("task_code").last("limit 1"));
|
.eq("task_type", AcsTaskEnum.TASK_WASH_SEND_MATERIAL.getCode()).orderByDesc("task_code").last("limit 1"));
|
||||||
if (lastTask!=null){
|
if (lastTask!=null){
|
||||||
if (DateUtil.between(new Date(), lastTask.getCreate_time(), DateUnit.MINUTE)<Integer.valueOf(limit_time.getValue())){
|
if (DateUtil.between(new Date(), lastTask.getCreate_time(), DateUnit.MINUTE)<Integer.valueOf(limit_time.getValue())){
|
||||||
throw new BadRequestException("清洗上料任务间隔不小于"+limit_time.getValue()+"分钟,任务:"+lastTask.getTask_code());
|
throw new BadRequestException("清洗上料任务间隔不小于"+limit_time.getValue()+"分钟,任务:"+lastTask.getTask_code());
|
||||||
|
|||||||
@@ -76,27 +76,27 @@ public class EngraveCallService {
|
|||||||
kzDevice.remove("A1_KZ_14");
|
kzDevice.remove("A1_KZ_14");
|
||||||
StIvtStructivtBcp stIvtStructivt = iStIvtStructivtBcpService.getOne(new QueryWrapper<StIvtStructivtBcp>()
|
StIvtStructivtBcp stIvtStructivt = iStIvtStructivtBcpService.getOne(new QueryWrapper<StIvtStructivtBcp>()
|
||||||
.eq("struct_code", struct_code));
|
.eq("struct_code", struct_code));
|
||||||
if (!CollectionUtils.isEmpty(kzDevice)){
|
// if (!CollectionUtils.isEmpty(kzDevice)){
|
||||||
List<PdmProduceWorkorder> workorders = workorderService.list(new QueryWrapper<PdmProduceWorkorder>()
|
// List<PdmProduceWorkorder> workorders = workorderService.list(new QueryWrapper<PdmProduceWorkorder>()
|
||||||
.eq("workprocedure_id", ENGRAVE_WORKPRODURE)
|
// .eq("workprocedure_id", ENGRAVE_WORKPRODURE)
|
||||||
.in("device_code", kzDevice)
|
// .in("device_code", kzDevice)
|
||||||
.eq("workorder_status", WorkerOrderEnum.PRODUCTING.getCode()));
|
// .eq("workorder_status", WorkerOrderEnum.PRODUCTING.getCode()));
|
||||||
if (workorders.size()!=kzDevice.size()){
|
// if (workorders.size()!=kzDevice.size()){
|
||||||
throw new BadRequestException("当前刻字工单不在生产状态");
|
// throw new BadRequestException("当前刻字工单不在生产状态");
|
||||||
}
|
// }
|
||||||
if (workorders.stream().map(PdmProduceWorkorder::getMaterial_id).collect(Collectors.toSet()).size()>1){
|
// if (workorders.stream().map(PdmProduceWorkorder::getMaterial_id).collect(Collectors.toSet()).size()>1){
|
||||||
throw new BadRequestException("所选刻字机的物料规格不是同一种");
|
// throw new BadRequestException("所选刻字机的物料规格不是同一种");
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if(!workorders.get(0).getMaterial_id().equals(stIvtStructivt.getMaterial_id())){
|
// if(!workorders.get(0).getMaterial_id().equals(stIvtStructivt.getMaterial_id())){
|
||||||
throw new BadRequestException("半成品库存物料规格与刻字机工单物料不一致");
|
// throw new BadRequestException("半成品库存物料规格与刻字机工单物料不一致");
|
||||||
}
|
// }
|
||||||
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>()
|
// }
|
||||||
.lt("task_status", StatusEnum.TASK_FINISH.getCode())
|
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>()
|
||||||
.in("task_type", AcsTaskEnum.TASK_STRUCT_OUT.getCode(),AcsTaskEnum.TASK_Engrave_CALL.getCode(), AcsTaskEnum.TASK_Engrave_EMPTY.getCode()));
|
.lt("task_status", StatusEnum.TASK_FINISH.getCode())
|
||||||
if (!CollectionUtils.isEmpty(list)){
|
.in("task_type", AcsTaskEnum.TASK_STRUCT_OUT.getCode(),AcsTaskEnum.TASK_Engrave_CALL.getCode(), AcsTaskEnum.TASK_Engrave_EMPTY.getCode()));
|
||||||
throw new BadRequestException("存在正在执行的刻字上料相关任务:"+list.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(",")));
|
if (!CollectionUtils.isEmpty(list)){
|
||||||
}
|
throw new BadRequestException("存在正在执行的刻字上料相关任务:"+list.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(",")));
|
||||||
}
|
}
|
||||||
JSONObject form = new JSONObject();
|
JSONObject form = new JSONObject();
|
||||||
form.put("stor_id", IOSEnum.STOR_CODE.code("半成品仓库"));//st_ivt_sectattr紫铜车间-半成品库区
|
form.put("stor_id", IOSEnum.STOR_CODE.code("半成品仓库"));//st_ivt_sectattr紫铜车间-半成品库区
|
||||||
|
|||||||
@@ -122,11 +122,12 @@ public class EngraveSendEmpTask extends AbstractAcsTask {
|
|||||||
task.put("priority", "1");
|
task.put("priority", "1");
|
||||||
task.put("finished_type", "1");
|
task.put("finished_type", "1");
|
||||||
task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode());
|
task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode());
|
||||||
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
|
||||||
Param one = paramService.getOne(new QueryWrapper<Param>().eq("code", "engrave_priority"));
|
Param one = paramService.getOne(new QueryWrapper<Param>().eq("code", "engrave_priority"));
|
||||||
if (one!=null){
|
if (one!=null){
|
||||||
schBaseTask.setPriority(one.getValue());
|
task.put("priority",one.getValue());
|
||||||
}
|
}
|
||||||
|
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||||
taskService.save(schBaseTask);
|
taskService.save(schBaseTask);
|
||||||
// 找终点
|
// 找终点
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -117,11 +117,11 @@ public class WashCallEmptyTask extends AbstractAcsTask {
|
|||||||
}
|
}
|
||||||
// 查找任务状态
|
// 查找任务状态
|
||||||
JSONObject task = packageTask(param.getString("device_code"));
|
JSONObject task = packageTask(param.getString("device_code"));
|
||||||
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
|
||||||
Param one = paramService.getOne(new QueryWrapper<Param>().eq("code", "wash_priority"));
|
Param one = paramService.getOne(new QueryWrapper<Param>().eq("code", "wash_priority"));
|
||||||
if (one!=null){
|
if (one!=null){
|
||||||
schBaseTask.setPriority(one.getValue());
|
task.put("priority",one.getValue());
|
||||||
}
|
}
|
||||||
|
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||||
taskService.save(schBaseTask);
|
taskService.save(schBaseTask);
|
||||||
// 找终点
|
// 找终点
|
||||||
try {
|
try {
|
||||||
@@ -207,7 +207,7 @@ public class WashCallEmptyTask extends AbstractAcsTask {
|
|||||||
.eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
.eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
.eq(StIvtStructattr::getIs_used,true)
|
.eq(StIvtStructattr::getIs_used,true)
|
||||||
.orderByDesc(StIvtStructattr::getXqty)
|
.orderByDesc(StIvtStructattr::getXqty)
|
||||||
.orderByAsc(StIvtStructattr::getYqty),false
|
.orderByAsc(StIvtStructattr::getZqty),false
|
||||||
);
|
);
|
||||||
if (ObjectUtil.isEmpty(attrDao)) throw new BadRequestException("未找到空载具!");
|
if (ObjectUtil.isEmpty(attrDao)) throw new BadRequestException("未找到空载具!");
|
||||||
|
|
||||||
|
|||||||
@@ -125,8 +125,8 @@ public class WashMachineryTask extends AbstractAcsTask {
|
|||||||
}
|
}
|
||||||
JSONObject task = new JSONObject();
|
JSONObject task = new JSONObject();
|
||||||
task.put("task_id", IdUtil.getStringId());
|
task.put("task_id", IdUtil.getStringId());
|
||||||
task.put("task_name", AcsTaskEnum.REQUEST_WASH_SEND_MATERIAL.getDesc());
|
task.put("task_name", AcsTaskEnum.TASK_WASH_SEND_MATERIAL.getDesc());
|
||||||
task.put("task_type", AcsTaskEnum.REQUEST_WASH_SEND_MATERIAL.getCode());
|
task.put("task_type", AcsTaskEnum.TASK_WASH_SEND_MATERIAL.getCode());
|
||||||
task.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
|
task.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
|
||||||
task.put("task_status", StatusEnum.TASK_PUBLISH.getCode());
|
task.put("task_status", StatusEnum.TASK_PUBLISH.getCode());
|
||||||
task.put("point_code3", "A1_SKQXJ_01_S");//A1_SKQXJ_01_X
|
task.put("point_code3", "A1_SKQXJ_01_S");//A1_SKQXJ_01_X
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import org.nl.common.utils.IdUtil;
|
|||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.modules.system.util.CodeUtil;
|
import org.nl.modules.system.util.CodeUtil;
|
||||||
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleinfoService;
|
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleinfoService;
|
||||||
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleinfo;
|
|
||||||
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService;
|
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService;
|
||||||
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
|
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
|
||||||
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr;
|
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package org.nl.wms.storage_manage.productmanage.util.impl;
|
|||||||
|
|
||||||
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 com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import org.nl.common.utils.RedissonUtils;
|
import org.nl.common.utils.RedissonUtils;
|
||||||
@@ -56,18 +57,22 @@ public class DivRuleCpServiceImpl implements DivRuleCpService {
|
|||||||
|
|
||||||
switch (whereJson.getString("rule_type")) {
|
switch (whereJson.getString("rule_type")) {
|
||||||
case RuleUtil.PRODUCTION_IN_1 :
|
case RuleUtil.PRODUCTION_IN_1 :
|
||||||
attrDao = iStIvtStructattrService.getOne(
|
LambdaQueryWrapper<StIvtStructattr> wrapper = new QueryWrapper<StIvtStructattr>().lambda()
|
||||||
new QueryWrapper<StIvtStructattr>().lambda()
|
.eq(StIvtStructattr::getStor_id, stor_id)
|
||||||
.eq(StIvtStructattr::getStor_id, stor_id)
|
.eq(StIvtStructattr::getSect_id, sect_id)
|
||||||
.eq(StIvtStructattr::getSect_id, sect_id)
|
.eq(StIvtStructattr::getIs_used, IOSEnum.IS_USED.code("是"))
|
||||||
.eq(StIvtStructattr::getIs_used, IOSEnum.IS_USED.code("是"))
|
.eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
.eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
.and(qr -> qr.eq(StIvtStructattr::getStoragevehicle_code, "")
|
||||||
.and(qr -> qr.eq(StIvtStructattr::getStoragevehicle_code,"")
|
.or().isNull(StIvtStructattr::getStoragevehicle_code)
|
||||||
.or().isNull(StIvtStructattr::getStoragevehicle_code)
|
)
|
||||||
)
|
.ne(StIvtStructattr::getIs_emptyvehicle, true)
|
||||||
.ne(StIvtStructattr::getIs_emptyvehicle, true)
|
.orderByDesc(StIvtStructattr::getXqty);
|
||||||
.orderByDesc(StIvtStructattr::getXqty)
|
if (IOSEnum.STOR_CODE.code("半成品仓库").equals(stor_id)){
|
||||||
.orderByAsc(StIvtStructattr::getYqty)
|
wrapper.orderByAsc(StIvtStructattr::getYqty);
|
||||||
|
}else {
|
||||||
|
wrapper.orderByAsc(StIvtStructattr::getZqty);
|
||||||
|
}
|
||||||
|
attrDao = iStIvtStructattrService.getOne(wrapper
|
||||||
, false);
|
, false);
|
||||||
break;
|
break;
|
||||||
case RuleUtil.PRODUCTION_IN_2 :
|
case RuleUtil.PRODUCTION_IN_2 :
|
||||||
|
|||||||
@@ -219,6 +219,9 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl<StIvtIostorinvBcpM
|
|||||||
.workshop_id(stor.getProduct_area())
|
.workshop_id(stor.getProduct_area())
|
||||||
.unit_weight(mdMeMaterialbase.getNet_weight())
|
.unit_weight(mdMeMaterialbase.getNet_weight())
|
||||||
.build();
|
.build();
|
||||||
|
if (form.getString("bill_type")!=null){
|
||||||
|
ivtDao.setBill_type(form.getString("bill_type"));
|
||||||
|
}
|
||||||
structivtBcpService.save(ivtDao);
|
structivtBcpService.save(ivtDao);
|
||||||
// 插入库存变动记录
|
// 插入库存变动记录
|
||||||
JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivtDao));
|
JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivtDao));
|
||||||
|
|||||||
@@ -190,7 +190,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="storagevehicle_name" label="载具名称" />
|
<el-table-column prop="storagevehicle_name" label="载具名称" />
|
||||||
<el-table-column prop="vehicle_weight" label="载具单重(kg)" />
|
<el-table-column prop="vehicle_weight" label="载具单重(g)" />
|
||||||
<el-table-column label="是否启用" align="center" prop="is_used">
|
<el-table-column label="是否启用" align="center" prop="is_used">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-switch
|
<el-switch
|
||||||
|
|||||||
@@ -90,6 +90,23 @@
|
|||||||
<el-input-number v-model="materialForm.qty" style="width: 200px;" />
|
<el-input-number v-model="materialForm.qty" style="width: 200px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item v-if="materialForm.is_emptyvehicle==false" label="入库类型">
|
||||||
|
<el-select
|
||||||
|
clearable
|
||||||
|
v-model="materialForm.bill_type"
|
||||||
|
placeholder=""
|
||||||
|
style="width: 200px"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in dict.ST_INV_BCP_IN_TYPE"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
@@ -386,7 +403,7 @@ const defaultForm = {
|
|||||||
}
|
}
|
||||||
export default {
|
export default {
|
||||||
name: 'Structattr',
|
name: 'Structattr',
|
||||||
dicts: ['ST_HEIGHT_TYPE', 'd_lock_type', 'SCH_TASK_TYPE_DTL'],
|
dicts: ['ST_HEIGHT_TYPE', 'd_lock_type', 'SCH_TASK_TYPE_DTL','ST_INV_BCP_IN_TYPE'],
|
||||||
components: { pagination, crudOperation, rrOperation, udOperation, MaterDtl },
|
components: { pagination, crudOperation, rrOperation, udOperation, MaterDtl },
|
||||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||||
cruds() {
|
cruds() {
|
||||||
|
|||||||
Reference in New Issue
Block a user