add: 烘箱增补
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
package org.nl.wms.pdm.ivt.hot.service;
|
package org.nl.wms.pdm.ivt.hot.service;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import org.nl.wms.pdm.ivt.hot.service.dao.StIvtHotpointivt;
|
import org.nl.wms.pdm.ivt.hot.service.dao.StIvtHotpointivt;
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package org.nl.wms.pdm.ivt.hot.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
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;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package org.nl.wms.sch.point.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
@@ -15,6 +16,8 @@ import org.nl.common.domain.query.PageQuery;
|
|||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.config.language.LangProcess;
|
import org.nl.config.language.LangProcess;
|
||||||
|
import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder;
|
||||||
|
import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService;
|
||||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
import org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper;
|
import org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper;
|
||||||
@@ -22,13 +25,17 @@ import org.nl.wms.sch.region.service.dao.SchBaseRegion;
|
|||||||
import org.nl.wms.sch.region.service.dao.mapper.SchBaseRegionMapper;
|
import org.nl.wms.sch.region.service.dao.mapper.SchBaseRegionMapper;
|
||||||
import org.nl.wms.sch.task_manage.core.enums.PointStatusEnum;
|
import org.nl.wms.sch.task_manage.core.enums.PointStatusEnum;
|
||||||
import org.nl.wms.util.PointUtils;
|
import org.nl.wms.util.PointUtils;
|
||||||
|
import org.nl.wms.util.TaskUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static org.nl.wms.util.TaskUtils.createVirtualContainer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author lyd
|
* @author lyd
|
||||||
* @description 服务实现
|
* @description 服务实现
|
||||||
@@ -44,6 +51,9 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SchBaseRegionMapper regionMapper;
|
private SchBaseRegionMapper regionMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IpdmBiRawfoilworkorderService rawfoilworkorderService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<SchBasePoint> queryAll(Map whereJson, PageQuery page) {
|
public IPage<SchBasePoint> queryAll(Map whereJson, PageQuery page) {
|
||||||
String blurry = ObjectUtil.isNotEmpty(whereJson.get("blurry"))
|
String blurry = ObjectUtil.isNotEmpty(whereJson.get("blurry"))
|
||||||
@@ -156,6 +166,39 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
|||||||
entity.setMaterial_code("");
|
entity.setMaterial_code("");
|
||||||
entity.setSource_id("");
|
entity.setSource_id("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//手动维护母卷和状态信息
|
||||||
|
if (ObjectUtil.isNotEmpty(pointStatus) && ObjectUtil.isNotEmpty(entity.getRemark()) && (pointStatus.equals(PointStatusEnum.WAIT_SLITTING.getCode())||pointStatus.equals(PointStatusEnum.WAIT_BIND.getCode()))){
|
||||||
|
//查看是否有工单,如果没有新建一个,如果有则更新
|
||||||
|
PdmBiRawfoilworkorder order = rawfoilworkorderService.getByContainerName(entity.getRemark());
|
||||||
|
if (ObjectUtil.isNotEmpty(order)) {
|
||||||
|
order.setUp_coiler_date(DateUtil.now());
|
||||||
|
rawfoilworkorderService.updateById(order);
|
||||||
|
entity.setSource_id(order.getWorkorder_id());
|
||||||
|
entity.setMaterial_code(entity.getRemark());
|
||||||
|
}else {
|
||||||
|
// todo: 写死,创建工单
|
||||||
|
PdmBiRawfoilworkorder rawOrder = new PdmBiRawfoilworkorder();
|
||||||
|
rawOrder.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||||
|
rawOrder.setContainer_name(entity.getRemark());
|
||||||
|
rawOrder.setMfg_order_name("$$$$");
|
||||||
|
rawOrder.setProduct_name("锂电");
|
||||||
|
rawOrder.setDescription("锂电");
|
||||||
|
rawOrder.setTheory_height(new BigDecimal(0.00));
|
||||||
|
rawOrder.setProductin_qty(new BigDecimal(0.00));
|
||||||
|
rawOrder.setUp_coiler_date(DateUtil.now());
|
||||||
|
rawOrder.setStatus("01");
|
||||||
|
rawOrder.setWind_roll("10");
|
||||||
|
rawOrder.setResource_name("X");
|
||||||
|
TaskUtils.setRawOrderCreateByDefault(rawOrder);
|
||||||
|
rawOrder.setProduct_area("A1");
|
||||||
|
rawOrder.setOrder_type("1");
|
||||||
|
rawfoilworkorderService.save(rawOrder);
|
||||||
|
entity.setSource_id(rawOrder.getWorkorder_id());
|
||||||
|
entity.setMaterial_code(entity.getRemark());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
pointMapper.updateById(entity);
|
pointMapper.updateById(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,9 @@ public enum PointStatusEnum {
|
|||||||
// 有料
|
// 有料
|
||||||
FULL_POINT("3", "有料"),
|
FULL_POINT("3", "有料"),
|
||||||
// 空载具/有货
|
// 空载具/有货
|
||||||
EMPTY_VEHICLE("2", "空载具/有货");
|
EMPTY_VEHICLE("2", "空载具/有货"),
|
||||||
|
WAIT_SLITTING("4", "待分切"),
|
||||||
|
WAIT_BIND("5", "待绑定");
|
||||||
|
|
||||||
private final String code;
|
private final String code;
|
||||||
private final String label;
|
private final String label;
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ import cn.hutool.core.lang.Assert;
|
|||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
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 lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.common.utils.RedisUtils;
|
import org.nl.common.utils.RedisUtils;
|
||||||
@@ -12,6 +14,7 @@ import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder;
|
|||||||
import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService;
|
import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService;
|
||||||
import org.nl.wms.pdm.ivt.hot.service.IstIvtHotpointivtService;
|
import org.nl.wms.pdm.ivt.hot.service.IstIvtHotpointivtService;
|
||||||
import org.nl.wms.pdm.ivt.hot.service.dao.StIvtHotpointivt;
|
import org.nl.wms.pdm.ivt.hot.service.dao.StIvtHotpointivt;
|
||||||
|
import org.nl.wms.pdm.ivt.hot.service.dao.mapper.StIvtHotpointivtMapper;
|
||||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||||
@@ -26,7 +29,11 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static org.nl.wms.sch.task_manage.core.constant.RegionConstant.REGION_A1_HXZC;
|
import static org.nl.wms.sch.task_manage.core.constant.RegionConstant.REGION_A1_HXZC;
|
||||||
import static org.nl.wms.util.PointUtils.*;
|
import static org.nl.wms.util.PointUtils.*;
|
||||||
@@ -53,6 +60,8 @@ public class InHotTrussTask extends AbstractTask {
|
|||||||
private RedisUtils redisUtils;
|
private RedisUtils redisUtils;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISchBaseTaskService taskService;
|
private ISchBaseTaskService taskService;
|
||||||
|
@Autowired
|
||||||
|
private StIvtHotpointivtMapper stIvtHotpointivtMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void create() throws BadRequestException {
|
public void create() throws BadRequestException {
|
||||||
@@ -86,8 +95,9 @@ public class InHotTrussTask extends AbstractTask {
|
|||||||
// 如果需要烘烤, 先找对应点
|
// 如果需要烘烤, 先找对应点
|
||||||
List<StIvtHotpointivt> hotList = hotpointivtService.getNotTaskHotOven(order.getRoll_type(), "1");
|
List<StIvtHotpointivt> hotList = hotpointivtService.getNotTaskHotOven(order.getRoll_type(), "1");
|
||||||
if (hotList.size() > 0) {
|
if (hotList.size() > 0) {
|
||||||
|
List<StIvtHotpointivt> hotListFilter = multiFilter(hotList);
|
||||||
// 查找合适温度的点位
|
// 查找合适温度的点位
|
||||||
for (StIvtHotpointivt hotPoint : hotList) {
|
for (StIvtHotpointivt hotPoint : hotListFilter) {
|
||||||
String pointCode = hotPoint.getPoint_code();
|
String pointCode = hotPoint.getPoint_code();
|
||||||
String pointTemperature = (String) redisUtils.hget(pointCode, "temperature");
|
String pointTemperature = (String) redisUtils.hget(pointCode, "temperature");
|
||||||
if (ObjectUtil.isNotEmpty(pointTemperature)) {
|
if (ObjectUtil.isNotEmpty(pointTemperature)) {
|
||||||
@@ -164,6 +174,29 @@ public class InHotTrussTask extends AbstractTask {
|
|||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<StIvtHotpointivt> multiFilter(List<StIvtHotpointivt> hotList) {
|
||||||
|
// 根据烘箱分组
|
||||||
|
Map<String, List<StIvtHotpointivt>> stIvtHotListMap = hotList.stream().collect(Collectors.groupingBy(StIvtHotpointivt::getGroup_name));
|
||||||
|
// 查找每个组有母卷的点位
|
||||||
|
List<StIvtHotpointivt> stIvtHotpointivts = stIvtHotpointivtMapper.selectList(new QueryWrapper<StIvtHotpointivt>().lambda().in(StIvtHotpointivt::getGroup_name, stIvtHotListMap.keySet())
|
||||||
|
.in(StIvtHotpointivt::getPoint_status, "02", "03", "04"));
|
||||||
|
List<String> groupNames = stIvtHotpointivts.stream().map(StIvtHotpointivt::getGroup_name).collect(Collectors.toList());
|
||||||
|
|
||||||
|
//先筛选烘箱没有母卷的点位
|
||||||
|
for (String groupName : stIvtHotListMap.keySet()) {
|
||||||
|
if (!groupNames.contains(groupName)) {
|
||||||
|
return stIvtHotListMap.get(groupName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//再筛选烘箱里母卷少的点位
|
||||||
|
return stIvtHotListMap.values().stream()
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.sorted(Comparator.comparingInt(List::size))
|
||||||
|
.limit(1)
|
||||||
|
.collect(Collectors.toList()).get(0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
||||||
|
|||||||
@@ -119,8 +119,11 @@ public class SlitterUpAGVTask extends AbstractTask {
|
|||||||
SchBasePoint point1 = pointService.query().eq("point_code", pointCode1).one();
|
SchBasePoint point1 = pointService.query().eq("point_code", pointCode1).one();
|
||||||
point4.setPoint_status("2");
|
point4.setPoint_status("2");
|
||||||
pointService.updateById(point4);
|
pointService.updateById(point4);
|
||||||
|
//只有待分切的点位才更新为空
|
||||||
|
if ("4".equals(point1.getPoint_status())) {
|
||||||
point1.setPoint_status("1");
|
point1.setPoint_status("1");
|
||||||
pointService.updateById(point1);
|
pointService.updateById(point1);
|
||||||
|
}
|
||||||
if (ObjectUtil.isNotEmpty(taskObj.getPoint_code3())) {
|
if (ObjectUtil.isNotEmpty(taskObj.getPoint_code3())) {
|
||||||
// 四点任务,还需要创建收卷辊桁架任务
|
// 四点任务,还需要创建收卷辊桁架任务
|
||||||
JSONObject taskParam = new JSONObject();
|
JSONObject taskParam = new JSONObject();
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ lucene:
|
|||||||
path: D:\lucene\index
|
path: D:\lucene\index
|
||||||
spring:
|
spring:
|
||||||
profiles:
|
profiles:
|
||||||
active: dev
|
active: prod
|
||||||
autoconfigure:
|
autoconfigure:
|
||||||
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
|
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
|
||||||
messages:
|
messages:
|
||||||
@@ -250,7 +250,7 @@ sa-token:
|
|||||||
# token 有效期,单位s 默认30天, -1代表永不过期
|
# token 有效期,单位s 默认30天, -1代表永不过期
|
||||||
timeout: 2592000
|
timeout: 2592000
|
||||||
# token 临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
|
# token 临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
|
||||||
activity-timeout: -1
|
activity-timeout: 7200
|
||||||
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
|
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
|
||||||
is-concurrent: true
|
is-concurrent: true
|
||||||
# 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
|
# 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
|
||||||
|
|||||||
Reference in New Issue
Block a user