add:增加任务优先级;
增加任务开始反馈; opt:优化近一个月现场问题;
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user