add:增加任务优先级;
增加任务开始反馈; opt:优化近一个月现场问题;
This commit is contained in:
@@ -193,8 +193,8 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
|
||||
List<Task> taskList = new LambdaQueryChainWrapper<>(taskMapper)
|
||||
.eq(Task::getTask_status, task_status)
|
||||
.eq(Task::getIs_delete, "0")
|
||||
.orderByDesc(Task::getPriority)
|
||||
.orderByAsc(Task::getCreate_time)
|
||||
.orderByAsc(Task::getTask_code)
|
||||
.list();
|
||||
return ConvertUtil.convertList(taskList, TaskDto.class);
|
||||
}
|
||||
|
||||
@@ -25,7 +25,9 @@ import org.nl.system.service.lucene.impl.LuceneExecuteLogServiceImpl;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 自动创建指令
|
||||
@@ -112,7 +114,17 @@ public class AutoCreateInst {
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
} else if (start_point.equals("BCPRK1")) {
|
||||
} else if (start_point.equals("CPRK5")) {
|
||||
List<TaskDto> list1 = taskserver.queryAllByStatus("1");
|
||||
for (int j = 0; j < list1.size(); j++) {
|
||||
String start_device_code1 = list1.get(j).getStart_device_code();
|
||||
String[] parts = start_device_code1.split("-", 2);
|
||||
start_point = parts[0];
|
||||
if (start_point.equals("CPRK5")) {
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
}else if (start_point.equals("BCPRK1")) {
|
||||
List<TaskDto> list1 = taskserver.queryAllByStatus("1");
|
||||
for (int j = 0; j < list1.size(); j++) {
|
||||
String start_device_code1 = list1.get(j).getStart_device_code();
|
||||
|
||||
@@ -10,7 +10,7 @@ spring:
|
||||
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
|
||||
# url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:stand_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||
# url: jdbc:log4jdbc:mysql://${DB_HOST:47.111.78.178}:${DB_PORT:3306}/${DB_NAME:lzhl_two_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||
url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3307}/${DB_NAME:hyjm_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true
|
||||
url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:acs_huayu}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true
|
||||
username: ${DB_USER:root}
|
||||
# password: ${DB_PWD:Root.123456}
|
||||
password: ${DB_PWD:123456}
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
"author": "Zheng Jie",
|
||||
"license": "Apache-2.0",
|
||||
"scripts": {
|
||||
"dev1": "vue-cli-service serve",
|
||||
"dev": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
|
||||
"dev": "vue-cli-service serve",
|
||||
"dev1": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
|
||||
"build:prod": "vue-cli-service build",
|
||||
"build:stage": "vue-cli-service build --mode staging",
|
||||
"preview": "node build/index.js --preview",
|
||||
|
||||
@@ -366,40 +366,48 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
||||
}
|
||||
List<String> strategy = one.getStrategy();
|
||||
Map<String, Decisioner> decisionerMap = SpringContextHolder.getBeansOfType(Decisioner.class);
|
||||
QueryWrapper<Structattr> query = new QueryWrapper<Structattr>();
|
||||
if ("2FCP3C".equals(param.getStoragevehicle_type())) {
|
||||
QueryWrapper<Structattr> query = new QueryWrapper<>();
|
||||
//一楼车辆特殊分配
|
||||
if ("firstfloorBC".equals(param.getStor_code())) {
|
||||
if ("3".equals(param.getSuitable_car())) {
|
||||
query.eq("is_used", true)
|
||||
.eq("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq("sect_code", param.getSect_code())
|
||||
.isNull("width")
|
||||
.isNull("stor_type")
|
||||
.and(wrapper -> wrapper.isNull("storagevehicle_code")
|
||||
.or()
|
||||
.eq("storagevehicle_code", " "));
|
||||
} else if ("2".equals(param.getSuitable_car())) {
|
||||
query.eq("is_used", true)
|
||||
.eq("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq("sect_code", param.getSect_code())
|
||||
.eq("width", 1)
|
||||
.ne("layer_num", maxLayerNum)
|
||||
.isNull("stor_type")
|
||||
.and(wrapper -> wrapper.isNull("storagevehicle_code")
|
||||
.or()
|
||||
.eq("storagevehicle_code", " "));
|
||||
} else if ("1".equals(param.getSuitable_car())) {
|
||||
query.eq("is_used", true)
|
||||
.eq("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq("sect_code", param.getSect_code())
|
||||
.eq("layer_num", maxLayerNum)
|
||||
.isNull("stor_type")
|
||||
.and(wrapper -> wrapper.isNull("storagevehicle_code")
|
||||
.or()
|
||||
.eq("storagevehicle_code", " "));
|
||||
}
|
||||
} else {
|
||||
//特殊物料优先放3层
|
||||
if ("2FCP3C".equals(param.getStoragevehicle_type())) {
|
||||
query.eq("layer_num", maxLayerNum);
|
||||
} else {
|
||||
query.ne("layer_num", maxLayerNum);
|
||||
}
|
||||
query.eq("is_used", true)
|
||||
.eq("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq("sect_code", param.getSect_code())
|
||||
.eq("layer_num", maxLayerNum)
|
||||
.and(wrapper -> wrapper.isNull("storagevehicle_code")
|
||||
.or()
|
||||
.eq("storagevehicle_code", " "));
|
||||
} else if ("3".equals(param.getSuitable_car())) {
|
||||
query.eq("is_used", true)
|
||||
.eq("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq("sect_code", param.getSect_code())
|
||||
.isNull("width")
|
||||
.isNull("stor_type")
|
||||
.and(wrapper -> wrapper.isNull("storagevehicle_code")
|
||||
.or()
|
||||
.eq("storagevehicle_code", " "));
|
||||
} else if ("2".equals(param.getSuitable_car())) {
|
||||
query.eq("is_used", true)
|
||||
.eq("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq("sect_code", param.getSect_code())
|
||||
.eq("width", 1)
|
||||
.ne("layer_num", maxLayerNum)
|
||||
.isNull("stor_type")
|
||||
.and(wrapper -> wrapper.isNull("storagevehicle_code")
|
||||
.or()
|
||||
.eq("storagevehicle_code", " "));
|
||||
} else if ("1".equals(param.getSuitable_car())) {
|
||||
query.eq("is_used", true)
|
||||
.eq("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq("sect_code", param.getSect_code())
|
||||
.eq("layer_num", maxLayerNum)
|
||||
.isNull("stor_type")
|
||||
.and(wrapper -> wrapper.isNull("storagevehicle_code")
|
||||
.or()
|
||||
.eq("storagevehicle_code", " "));
|
||||
|
||||
@@ -17,6 +17,7 @@ import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch_manage.service.dao.mapper.SchBasePointMapper;
|
||||
import org.nl.wms.sch_manage.service.util.AbstractTask;
|
||||
import org.nl.wms.sch_manage.service.util.TaskFactory;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.IInBillService;
|
||||
import org.redisson.api.RLock;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -57,6 +58,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
@Autowired
|
||||
private ISchBasePointService iSchBasePointService;
|
||||
|
||||
@Autowired
|
||||
private IInBillService iInBillService;
|
||||
|
||||
|
||||
/**
|
||||
* 任务工厂服务
|
||||
*/
|
||||
@@ -89,6 +94,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
if (ResultAcsStatus.EXECUTING.getCode().equals(acs_task_status)) {
|
||||
// 执行中
|
||||
status = TaskStatus.EXECUTING;
|
||||
taskObj.setTask_status(acs_task_status);
|
||||
iInBillService.taskFinish(taskObj);
|
||||
} else if (ResultAcsStatus.FINISHED.getCode().equals(acs_task_status)) {
|
||||
// 完成
|
||||
status = TaskStatus.FINISHED;
|
||||
|
||||
@@ -217,6 +217,7 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
||||
taskForm.put("PickingLocation", whereJson.getString("struct_code"));
|
||||
taskForm.put("PlacedLocation", whereJson.getString("siteCode"));
|
||||
taskForm.put("vehicle_code", whereJson.getString("storagevehicle_code"));
|
||||
taskForm.put("priority", whereJson.getString("priority"));
|
||||
StOutTask stOutTask = SpringContextHolder.getBean("STOutTask");
|
||||
String taskId = stOutTask.create(taskForm);
|
||||
//更新任务id
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.wms.sch_manage.enums.TaskStatus;
|
||||
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
@@ -64,6 +65,8 @@ public class AutoTask {
|
||||
}
|
||||
// 整理下发acs参数
|
||||
for (SchBaseTask taskDao : taskList) {
|
||||
//任务优先级
|
||||
taskDao.setPriority(StringUtils.isBlank(taskDao.getPriority()) ? "0" : taskDao.getPriority());
|
||||
AbstractTask task = taskFactory.getTask(taskDao.getConfig_code());
|
||||
task.sendTaskOne(taskDao.getTask_id());
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ public class BackInTask extends AbstractTask {
|
||||
task.setPoint_code2(json.getString("point_code2"));
|
||||
task.setVehicle_code(json.getString("vehicle_code"));
|
||||
task.setRequest_param(json.toString());
|
||||
task.setPriority(json.getString("Priority"));
|
||||
task.setPriority(json.getString("priority"));
|
||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
task.setCreate_time(DateUtil.now());
|
||||
|
||||
@@ -96,7 +96,7 @@ public class CheckBackMoveTask extends AbstractTask {
|
||||
task.setVehicle_code(json.getString("vehicle_code"));
|
||||
task.setGroup_id(json.getString("group_id"));
|
||||
task.setRequest_param(json.toString());
|
||||
task.setPriority(json.getString("Priority"));
|
||||
task.setPriority(json.getString("priority"));
|
||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
task.setCreate_time(DateUtil.now());
|
||||
|
||||
@@ -58,7 +58,7 @@ public class CheckInTask extends AbstractTask {
|
||||
task.setGroup_id(json.getString("group_id"));
|
||||
task.setCar_type(json.getString("car_type"));
|
||||
task.setCar_width(json.getString("car_width"));
|
||||
task.setPriority(json.getString("Priority"));
|
||||
task.setPriority(json.getString("priority"));
|
||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
task.setCreate_time(DateUtil.now());
|
||||
|
||||
@@ -74,7 +74,7 @@ public class CheckMoveTask extends AbstractTask {
|
||||
task.setVehicle_code(json.getString("vehicle_code"));
|
||||
task.setGroup_id(json.getString("group_id"));
|
||||
task.setRequest_param(json.toString());
|
||||
task.setPriority(json.getString("Priority"));
|
||||
task.setPriority(json.getString("priority"));
|
||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
task.setCreate_time(DateUtil.now());
|
||||
|
||||
@@ -55,7 +55,7 @@ public class CheckOutTask extends AbstractTask {
|
||||
task.setGroup_id(json.getString("group_id"));
|
||||
task.setCar_type(json.getString("car_type"));
|
||||
task.setCar_width(json.getString("car_width"));
|
||||
task.setPriority(json.getString("Priority"));
|
||||
task.setPriority(json.getString("priority"));
|
||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
task.setCreate_time(DateUtil.now());
|
||||
|
||||
@@ -59,7 +59,7 @@ public class MoveTask extends AbstractTask {
|
||||
task.setPoint_code2(json.getString("point_code2"));
|
||||
task.setVehicle_code(json.getString("vehicle_code"));
|
||||
task.setRequest_param(json.toString());
|
||||
task.setPriority(json.getString("Priority"));
|
||||
task.setPriority(json.getString("priority"));
|
||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
task.setCreate_time(DateUtil.now());
|
||||
|
||||
@@ -61,7 +61,7 @@ public class PdaPointTask extends AbstractTask {
|
||||
task.setPoint_code2(json.getString("point_code2"));
|
||||
task.setVehicle_code(json.getString("vehicle_code"));
|
||||
task.setRequest_param(json.toString());
|
||||
task.setPriority(json.getString("Priority"));
|
||||
task.setPriority(json.getString("priority"));
|
||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
task.setCreate_time(DateUtil.now());
|
||||
|
||||
@@ -71,7 +71,7 @@ public class StInTask extends AbstractTask {
|
||||
task.setGroup_id(json.getString("group_id"));
|
||||
task.setCar_type(json.getString("car_type"));
|
||||
task.setCar_width(json.getString("car_width"));
|
||||
task.setPriority(json.getString("Priority"));
|
||||
task.setPriority(json.getString("priority"));
|
||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
task.setCreate_time(DateUtil.now());
|
||||
|
||||
@@ -56,7 +56,7 @@ public class StOutTask extends AbstractTask {
|
||||
task.setCar_width(json.getString("car_width"));
|
||||
task.setGroup_id(json.getString("group_id"));
|
||||
task.setRequest_param(json.toString());
|
||||
task.setPriority(json.getString("Priority"));
|
||||
task.setPriority(json.getString("priority"));
|
||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
task.setCreate_time(DateUtil.now());
|
||||
|
||||
@@ -61,7 +61,7 @@ public class VehicleInTask extends AbstractTask {
|
||||
task.setPoint_code2(json.getString("point_code2"));
|
||||
task.setVehicle_code(json.getString("vehicle_code"));
|
||||
task.setRequest_param(json.toString());
|
||||
task.setPriority(json.getString("Priority"));
|
||||
task.setPriority(json.getString("priority"));
|
||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
task.setCreate_time(DateUtil.now());
|
||||
|
||||
@@ -53,7 +53,7 @@ public class VehicleOutTask extends AbstractTask {
|
||||
task.setVehicle_code(json.getString("vehicle_code"));
|
||||
task.setGroup_id(json.getString("group_id"));
|
||||
task.setRequest_param(json.toString());
|
||||
task.setPriority(json.getString("Priority"));
|
||||
task.setPriority(json.getString("priority"));
|
||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
task.setCreate_time(DateUtil.now());
|
||||
|
||||
@@ -29,28 +29,28 @@ import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleinfoMappe
|
||||
import org.nl.wms.basedata_manage.service.dto.StrategyMater;
|
||||
import org.nl.wms.basedata_manage.service.dto.StrategyStructParam;
|
||||
import org.nl.wms.basedata_manage.service.dto.StructattrChangeDto;
|
||||
import org.nl.wms.ext_manage.enums.ResultAcsStatus;
|
||||
import org.nl.wms.sch_manage.enums.StatusEnum;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch_manage.service.dao.mapper.SchBasePointMapper;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.StInTask;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSConstant;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dto.TOWMSMSG;
|
||||
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
||||
import org.nl.wms.warehouse_manage.service.dao.mapper.MdPbGroupplateMapper;
|
||||
import org.nl.wms.warehouse_manage.service.impl.MdPbGroupplateServiceImpl;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.IInBillService;
|
||||
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInv;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDtl;
|
||||
import org.nl.wms.warehouse_manage.service.dto.GroupPlateDto;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMapper;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDtlMapper;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvMapper;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dto.IOStorInvDisDto;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dto.IOStorInvDtlDto;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dto.TOWMSMSG;
|
||||
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.mapper.MdPbGroupplateMapper;
|
||||
import org.nl.wms.warehouse_manage.service.dto.GroupPlateDto;
|
||||
import org.nl.wms.warehouse_manage.service.impl.MdPbGroupplateServiceImpl;
|
||||
import org.nl.wms.wbwms.service.IWmsToWmsService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -61,8 +61,6 @@ import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.function.ToIntFunction;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -806,10 +804,9 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
task_form.put("vehicle_code", whereJson.get("storagevehicle_code"));
|
||||
task_form.put("car_type",car_type);
|
||||
task_form.put("car_width",car_width);
|
||||
task_form.put("priority", whereJson.get("priority"));
|
||||
StInTask stInTask = SpringContextHolder.getBean("STInTask");
|
||||
|
||||
String task_id = stInTask.create(task_form);
|
||||
|
||||
//分配明细表更新任务相关数据
|
||||
IOStorInvDis dis = new IOStorInvDis();
|
||||
dis.setIostorinvdis_id((String) whereJson.get("iostorinvdis_id"));
|
||||
@@ -850,6 +847,7 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
task_form.put("PickingLocation", point_code);
|
||||
task_form.put("PlacedLocation", ioStorInvDis.get(0).getStruct_code());
|
||||
task_form.put("vehicle_code", map.get("storagevehicle_code"));
|
||||
task_form.put("priority", map.get("priority"));
|
||||
StInTask stInTask = SpringContextHolder.getBean("STInTask");
|
||||
|
||||
String task_id = stInTask.create(task_form);
|
||||
@@ -970,79 +968,79 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
String structCode = ioStorInvDis.get(0).getStruct_code();
|
||||
IOStorInvDis item1 = ioStorInvDis.get(0);
|
||||
//获取出入库单标识
|
||||
String iostorinv_id=item1.getIostorinv_id();
|
||||
IOStorInv ioStorInv=ioStorInvMapper.selectOne(new LambdaQueryWrapper<IOStorInv>().eq(IOStorInv::getIostorinv_id,iostorinv_id));
|
||||
String iostorinv_id = item1.getIostorinv_id();
|
||||
IOStorInv ioStorInv = ioStorInvMapper.selectOne(new LambdaQueryWrapper<IOStorInv>().eq(IOStorInv::getIostorinv_id, iostorinv_id));
|
||||
//获取单据编号
|
||||
String bill_code=ioStorInv.getBill_code();
|
||||
//
|
||||
//
|
||||
String source_name=ioStorInv.getSource_name();
|
||||
//解锁库位
|
||||
JSONObject finish_map = new JSONObject();
|
||||
finish_map.put("struct_code", structCode);
|
||||
finish_map.put("storagevehicle_code", storagevehicleCode);
|
||||
finish_map.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"));
|
||||
finish_map.put("inv_type", null);
|
||||
finish_map.put("inv_id", null);
|
||||
finish_map.put("inv_code", null);
|
||||
iStructattrService.updateStatusByCode("1", finish_map);
|
||||
//库存变动
|
||||
StructattrChangeDto changeDto = StructattrChangeDto.builder()
|
||||
.inv(iostorinvId)
|
||||
.storagevehicleCode(storagevehicleCode)
|
||||
.structCode(structCode).taskType(task.getConfig_code()).inBound(true).build();
|
||||
iStructattrService.changeStruct(changeDto);
|
||||
// 完成当前分配明细
|
||||
Map<String, BigDecimal> dtlMap = new HashMap<>();
|
||||
for (IOStorInvDis item : ioStorInvDis) {
|
||||
ioStorInvDisMapper.update(item, new LambdaUpdateWrapper<>(IOStorInvDis.class)
|
||||
.set(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("完成"))
|
||||
.set(IOStorInvDis::getReal_qty, item.getPlan_qty())
|
||||
.eq(IOStorInvDis::getIostorinvdis_id, item.getIostorinvdis_id()));
|
||||
dtlMap.put(item.getIostorinvdtl_id(), item.getPlan_qty());
|
||||
}
|
||||
//更新明细
|
||||
for (String dtl_id : dtlMap.keySet()) {
|
||||
IOStorInvDtl invDtl = new IOStorInvDtl();
|
||||
invDtl.setIostorinvdtl_id(dtl_id);
|
||||
invDtl.setReal_qty(dtlMap.get(dtl_id));
|
||||
invDtl.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
|
||||
ioStorInvDtlMapper.updateById(invDtl);
|
||||
}
|
||||
// 查看明细是否全部完成
|
||||
int countDtl = ioStorInvDtlMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDtl.class)
|
||||
.eq(IOStorInvDtl::getIostorinv_id, iostorinvId)
|
||||
.ne(IOStorInvDtl::getBill_status, IOSEnum.BILL_STATUS.code("完成"))
|
||||
);
|
||||
// 如果明细全部完成则更新主表状态
|
||||
if (countDtl == 0) {
|
||||
//更新主表状态
|
||||
ioStorInvMapper.update(new IOStorInv(), new LambdaUpdateWrapper<>(IOStorInv.class)
|
||||
.set(IOStorInv::getBill_status, IOSEnum.BILL_STATUS.code("完成"))
|
||||
.set(IOStorInv::getConfirm_optid, currentUserId)
|
||||
.set(IOStorInv::getConfirm_optname, nickName)
|
||||
.set(IOStorInv::getConfirm_time, now)
|
||||
.eq(IOStorInv::getIostorinv_id, iostorinvId)
|
||||
String bill_code = ioStorInv.getBill_code();
|
||||
String source_name = ioStorInv.getSource_name();
|
||||
if (!ResultAcsStatus.EXECUTING.getCode().equals(task.getTask_status())) {
|
||||
//解锁库位
|
||||
JSONObject finish_map = new JSONObject();
|
||||
finish_map.put("struct_code", structCode);
|
||||
finish_map.put("storagevehicle_code", storagevehicleCode);
|
||||
finish_map.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"));
|
||||
finish_map.put("inv_type", null);
|
||||
finish_map.put("inv_id", null);
|
||||
finish_map.put("inv_code", null);
|
||||
iStructattrService.updateStatusByCode("1", finish_map);
|
||||
//库存变动
|
||||
StructattrChangeDto changeDto = StructattrChangeDto.builder()
|
||||
.inv(iostorinvId)
|
||||
.storagevehicleCode(storagevehicleCode)
|
||||
.structCode(structCode).taskType(task.getConfig_code()).inBound(true).build();
|
||||
iStructattrService.changeStruct(changeDto);
|
||||
// 完成当前分配明细
|
||||
Map<String, BigDecimal> dtlMap = new HashMap<>();
|
||||
for (IOStorInvDis item : ioStorInvDis) {
|
||||
ioStorInvDisMapper.update(item, new LambdaUpdateWrapper<>(IOStorInvDis.class)
|
||||
.set(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("完成"))
|
||||
.set(IOStorInvDis::getReal_qty, item.getPlan_qty())
|
||||
.eq(IOStorInvDis::getIostorinvdis_id, item.getIostorinvdis_id()));
|
||||
dtlMap.put(item.getIostorinvdtl_id(), item.getPlan_qty());
|
||||
}
|
||||
//更新明细
|
||||
for (String dtl_id : dtlMap.keySet()) {
|
||||
IOStorInvDtl invDtl = new IOStorInvDtl();
|
||||
invDtl.setIostorinvdtl_id(dtl_id);
|
||||
invDtl.setReal_qty(dtlMap.get(dtl_id));
|
||||
invDtl.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
|
||||
ioStorInvDtlMapper.updateById(invDtl);
|
||||
}
|
||||
// 查看明细是否全部完成
|
||||
int countDtl = ioStorInvDtlMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDtl.class)
|
||||
.eq(IOStorInvDtl::getIostorinv_id, iostorinvId)
|
||||
.ne(IOStorInvDtl::getBill_status, IOSEnum.BILL_STATUS.code("完成"))
|
||||
);
|
||||
// 如果明细全部完成则更新主表状态
|
||||
if (countDtl == 0) {
|
||||
//更新主表状态
|
||||
ioStorInvMapper.update(new IOStorInv(), new LambdaUpdateWrapper<>(IOStorInv.class)
|
||||
.set(IOStorInv::getBill_status, IOSEnum.BILL_STATUS.code("完成"))
|
||||
.set(IOStorInv::getConfirm_optid, currentUserId)
|
||||
.set(IOStorInv::getConfirm_optname, nickName)
|
||||
.set(IOStorInv::getConfirm_time, now)
|
||||
.eq(IOStorInv::getIostorinv_id, iostorinvId)
|
||||
);
|
||||
}
|
||||
}
|
||||
//回传给wms
|
||||
TOWMSMSG towmsmsg=new TOWMSMSG();
|
||||
TOWMSMSG towmsmsg = new TOWMSMSG();
|
||||
towmsmsg.setType("0");
|
||||
towmsmsg.setBill_code(source_name);
|
||||
towmsmsg.setStatus("200");
|
||||
JSONObject jo=new JSONObject();
|
||||
jo.put("storagevehicle_code",task.getVehicle_code());
|
||||
jo.put("struct_name",task.getPoint_code2());
|
||||
jo.put("struct_code",task.getPoint_code2());
|
||||
GroupPlate groupPlate=mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>()
|
||||
.eq(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("入库"))
|
||||
.eq(GroupPlate::getStoragevehicle_code,task.getVehicle_code()
|
||||
));
|
||||
MdMeMaterialbase mdMeMaterialbase=mdMeMaterialbaseMapper.selectOne(new LambdaQueryWrapper<MdMeMaterialbase>().eq(MdMeMaterialbase::getMaterial_code,groupPlate.getMaterial_id()));
|
||||
jo.put("material_name",mdMeMaterialbase.getMaterial_name());
|
||||
jo.put("material_code",mdMeMaterialbase.getMaterial_code());
|
||||
jo.put("qty",groupPlate.getQty());
|
||||
List<JSONObject> tableData=new ArrayList<>();
|
||||
towmsmsg.setStatus(ResultAcsStatus.EXECUTING.getCode().equals(task.getTask_status()) ? "1" : "200");
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("storagevehicle_code", task.getVehicle_code());
|
||||
jo.put("struct_name", task.getPoint_code2());
|
||||
jo.put("struct_code", task.getPoint_code2());
|
||||
GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<GroupPlate>()
|
||||
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
|
||||
.eq(GroupPlate::getStoragevehicle_code, task.getVehicle_code()
|
||||
));
|
||||
MdMeMaterialbase mdMeMaterialbase = mdMeMaterialbaseMapper.selectOne(new LambdaQueryWrapper<MdMeMaterialbase>().eq(MdMeMaterialbase::getMaterial_code, groupPlate.getMaterial_id()));
|
||||
jo.put("material_name", mdMeMaterialbase.getMaterial_name());
|
||||
jo.put("material_code", mdMeMaterialbase.getMaterial_code());
|
||||
jo.put("qty", groupPlate.getQty());
|
||||
List<JSONObject> tableData = new ArrayList<>();
|
||||
tableData.add(jo);
|
||||
towmsmsg.setTableData(tableData);
|
||||
iWmsToWmsService.FinishOutTask(towmsmsg);
|
||||
|
||||
@@ -1146,15 +1146,15 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
if (StrUtil.isBlank(whereJson.getString("region_code"))){
|
||||
throw new BadRequestException("未选择出库区");
|
||||
}
|
||||
List<SchBasePoint> regionCode = schBasePointMapper.selectList(new LambdaQueryWrapper<SchBasePoint>()
|
||||
.eq(SchBasePoint::getRegion_code, whereJson.getString("region_code"))
|
||||
.eq(SchBasePoint::getPoint_status,PointStatusEnum.EMPTY_POINT.getCode())
|
||||
.eq(SchBasePoint::getIs_used,true)
|
||||
.eq(SchBasePoint::getLock_up,"0")
|
||||
);
|
||||
if (CollectionUtils.isEmpty(regionCode)){
|
||||
throw new BadRequestException("当前库区"+regionCode+"无可用点位");
|
||||
}
|
||||
// List<SchBasePoint> regionCode = schBasePointMapper.selectList(new LambdaQueryWrapper<SchBasePoint>()
|
||||
// .eq(SchBasePoint::getRegion_code, whereJson.getString("region_code"))
|
||||
// .eq(SchBasePoint::getPoint_status,PointStatusEnum.EMPTY_POINT.getCode())
|
||||
// .eq(SchBasePoint::getIs_used,true)
|
||||
// .eq(SchBasePoint::getLock_up,"0")
|
||||
// );
|
||||
// if (CollectionUtils.isEmpty(regionCode)){
|
||||
// throw new BadRequestException("当前库区"+regionCode+"无可用点位");
|
||||
// }
|
||||
// String pointCode=regionCode.get(0).getPoint_code();
|
||||
// SchBasePoint schBasePoint=new SchBasePoint();
|
||||
// schBasePoint=iSchBasePointService.getByCode(pointCode);
|
||||
@@ -1205,6 +1205,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
task_form.put("vehicle_code", item.getStoragevehicle_code());
|
||||
task_form.put("car_type",car_type);
|
||||
task_form.put("car_width",car_width);
|
||||
task_form.put("priority", whereJson.getString("priority"));
|
||||
StOutTask stOutTask = SpringContextHolder.getBean("STOutTask");
|
||||
String task_id = stOutTask.create(task_form);
|
||||
for (IOStorInvDis itemDis : disList) {
|
||||
|
||||
@@ -206,6 +206,7 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
|
||||
task_form.put("vehicle_code", parm.getString("storagevehicle_type"));
|
||||
task_form.put("car_type",car_type);
|
||||
task_form.put("car_width",car_width);
|
||||
task_form.put("priority", parm.getString("priority"));
|
||||
CheckInTask checkInTask = SpringContextHolder.getBean("CheckInTask");
|
||||
String task_id = checkInTask.create(task_form);
|
||||
} else if("2".equals(parm.getString("task_type"))){
|
||||
@@ -223,6 +224,7 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
|
||||
task_form.put("vehicle_code",parm.getString("storagevehicle_type"));
|
||||
task_form.put("car_type",car_type);
|
||||
task_form.put("car_width",car_width);
|
||||
task_form.put("priority", parm.getString("priority"));
|
||||
CheckOutTask checkOutTask = SpringContextHolder.getBean("CheckOutTask");
|
||||
String task_id = checkOutTask.create(task_form);
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"dev": "vue-cli-service serve",
|
||||
"dev1": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
|
||||
"dev_mac": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
|
||||
"build:prod": "vue-cli-service build",
|
||||
"build": "vue-cli-service build",
|
||||
"build:stage": "vue-cli-service build --mode staging",
|
||||
"preview": "node build/index.js --preview",
|
||||
"lint": "eslint --ext .js,.vue src",
|
||||
|
||||
@@ -257,7 +257,7 @@
|
||||
-->
|
||||
<el-table-column prop="struct_code" label="仓位编码" :min-width="flexWidth('struct_code',crud.data,'仓位编码')" />
|
||||
<el-table-column prop="struct_name" label="仓位名称" :min-width="flexWidth('struct_name',crud.data,'仓位名称')" />
|
||||
<el-table-column prop="simple_name" label="仓位简称" :min-width="flexWidth('simple_name',crud.data,'仓位简称')" />
|
||||
<!-- <el-table-column prop="simple_name" label="仓位简称" :min-width="flexWidth('simple_name',crud.data,'仓位简称')" />-->
|
||||
<el-table-column prop="sect_name" label="所属库区" width="150" />
|
||||
<el-table-column prop="stor_name" label="所属仓库" width="150" />
|
||||
<el-table-column prop="storagevehicle_code" label="载具号" :min-width="flexWidth('storagevehicle_code',crud.data,'载具号')" />
|
||||
@@ -282,12 +282,15 @@
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="row_num" label="排" width="150" />
|
||||
<el-table-column prop="col_num" label="列" width="150" />
|
||||
<el-table-column prop="layer_num" label="层" width="150" />
|
||||
<el-table-column prop="width" label="宽度(1为专放蝴蝶龙)" width="150" />
|
||||
<el-table-column prop="stor_type" label="类型(1为专放超托)" width="150" />
|
||||
<el-table-column prop="taskdtl_type" label="锁定任务类型" width="150" :formatter="taskdtl_typeFormat" />
|
||||
<el-table-column prop="task_code" label="锁定任务编码" width="150" />
|
||||
<el-table-column prop="inv_code" label="锁定单据编码" width="150" />
|
||||
<el-table-column prop="inv_type" label="锁定单据类型" width="150" :formatter="invtypeFormat" />
|
||||
<el-table-column prop="width" label="宽度(1为专放蝴蝶龙)" width="150" />
|
||||
<el-table-column prop="stor_type" label="类型(1为专放超托)" width="150" />
|
||||
<el-table-column prop="remark" label="备注" show-overflow-tooltip />
|
||||
<el-table-column
|
||||
v-permission="['admin','structattr:edit','structattr:del']"
|
||||
@@ -407,7 +410,8 @@ export default {
|
||||
layerList: [
|
||||
{ 'label': '1层', 'value': '1' },
|
||||
{ 'label': '2层', 'value': '2' },
|
||||
{ 'label': '3层', 'value': '3' }
|
||||
{ 'label': '3层', 'value': '3' },
|
||||
{ 'label': '4层', 'value': '4' }
|
||||
],
|
||||
isHaveList: [
|
||||
{ 'label': '空位', 'value': '1' },
|
||||
|
||||
@@ -42,6 +42,16 @@
|
||||
class="filter-item"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="载具信息">
|
||||
<el-input
|
||||
v-model="query.storagevehicle_code"
|
||||
clearable
|
||||
size="small"
|
||||
placeholder="载具信息"
|
||||
style="width: 200px;"
|
||||
class="filter-item"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="批次号">
|
||||
<el-input
|
||||
v-model="query.pcsn"
|
||||
|
||||
Reference in New Issue
Block a user