add:烘箱暂存位开发、废箔修改
This commit is contained in:
@@ -42,4 +42,10 @@ public class BakingPdaController {
|
||||
public ResponseEntity<Object> doModifyRawInfos(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(bakingPdaService.doModifyRawInfos(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/temporaryStorage")
|
||||
@Log("烘箱暂存")
|
||||
public ResponseEntity<Object> temporaryStorage(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(bakingPdaService.temporaryStorage(whereJson), HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,4 +28,6 @@ public interface BakingPdaService {
|
||||
* @return /
|
||||
*/
|
||||
JSONObject doModifyRawInfos(JSONObject param);
|
||||
|
||||
JSONObject temporaryStorage(JSONObject param);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
@@ -16,6 +17,7 @@ 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.dao.SchBasePoint;
|
||||
import org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper;
|
||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition;
|
||||
@@ -55,6 +57,9 @@ public class BakingPdaServiceImpl implements BakingPdaService {
|
||||
private ISchBaseTaskService taskService;
|
||||
@Autowired
|
||||
private InHotCachingTrussTask inHotCachingTrussTask;
|
||||
|
||||
@Autowired
|
||||
private SchBasePointMapper pointMapper;
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public JSONObject bakingQuality(JSONObject param) {
|
||||
@@ -248,6 +253,32 @@ public class BakingPdaServiceImpl implements BakingPdaService {
|
||||
result.put("message", "操作成功!");
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 烘箱作为缓存位,暂存位
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public JSONObject temporaryStorage(JSONObject param) {
|
||||
|
||||
String pointCode = param.getString("point_code");
|
||||
String plan = param.getString("plan");
|
||||
JSONObject taskParam = new JSONObject();
|
||||
taskParam.put("device_code", pointCode);
|
||||
taskParam.put("plan", plan);
|
||||
taskParam.put("config_code", "InHotTrussTask");
|
||||
taskParam.put("create_mode", GeneralDefinition.PDA_CREATION);
|
||||
SchBasePoint point = pointMapper.selectOne(new QueryWrapper<SchBasePoint>().eq("point_code", pointCode));
|
||||
taskParam.put("order_code", point.getMaterial_code());
|
||||
//是否是烘箱暂存
|
||||
taskParam.put("is_storage", "1");
|
||||
inHotTrussTask.apply(taskParam);
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("message", "操作成功!");
|
||||
return result;
|
||||
}
|
||||
|
||||
public boolean isValidInteger(String input) {
|
||||
String regex = "^[+-]?\\d+$";
|
||||
return input.matches(regex);
|
||||
|
||||
@@ -22,6 +22,8 @@ import org.nl.wms.pdm.ivt.bcut.service.IBstIvtCutpointivtService;
|
||||
import org.nl.wms.pdm.ivt.bcut.service.dao.BstIvtCutpointivt;
|
||||
import org.nl.wms.pdm.ivt.cut.service.IstIvtCutpointivtService;
|
||||
import org.nl.wms.pdm.ivt.cut.service.dao.StIvtCutpointivt;
|
||||
import org.nl.wms.pdm.ivt.hot.service.IstIvtHotpointivtService;
|
||||
import org.nl.wms.pdm.ivt.hot.service.dao.StIvtHotpointivt;
|
||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||
@@ -76,6 +78,9 @@ public class SlitterPdaServiceImpl implements SlitterPdaService {
|
||||
@Autowired
|
||||
private SlitterRebakeAGVTask slitterRebakeAGVTask;
|
||||
|
||||
@Autowired
|
||||
private IstIvtHotpointivtService hotpointivtService;
|
||||
|
||||
@Override
|
||||
public JSONObject queryOrderInfo(JSONObject param) {
|
||||
JSONObject result = new JSONObject();
|
||||
@@ -104,9 +109,18 @@ public class SlitterPdaServiceImpl implements SlitterPdaService {
|
||||
if (isTask) {
|
||||
throw new BadRequestException("点位[" + pointCode + "、" + zcPoint + "]已经创建过任务!");
|
||||
}
|
||||
|
||||
SchBasePoint zcPointObj = pointService.getById(zcPoint);
|
||||
if (ObjectUtil.isEmpty(zcPointObj.getMaterial_code())) {
|
||||
throw new BadRequestException("点位不存在该母卷或者该母卷已搬运");
|
||||
StIvtHotpointivt hotpointivt = hotpointivtService.getPointByCode(zcPoint, false);
|
||||
if (ObjectUtil.isNotEmpty(zcPointObj)) {
|
||||
if (ObjectUtil.isEmpty(zcPointObj.getMaterial_code())) {
|
||||
throw new BadRequestException("点位不存在该母卷或者该母卷已搬运");
|
||||
}
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(hotpointivt)) {
|
||||
if (ObjectUtil.isEmpty(hotpointivt.getContainer_name())) {
|
||||
throw new BadRequestException("点位不存在该母卷或者该母卷已搬运");
|
||||
}
|
||||
}
|
||||
StIvtCutpointivt cutPoint = cutpointivtService.getOneByCode(pointCode);
|
||||
param.put("config_code", "SlitterUpTrussTask");
|
||||
|
||||
@@ -76,14 +76,17 @@ public class OtherPdaServiceImpl implements OtherPdaService {
|
||||
throw new BadRequestException("点位[" + pointCode + "]已经存在任务!");
|
||||
}
|
||||
JSONObject taskParam = new JSONObject();
|
||||
if (StrUtil.isNotEmpty(startPoint)){
|
||||
taskParam.put("point_code1", startPoint);
|
||||
}
|
||||
|
||||
taskParam.put("point_code2", pointCode);
|
||||
taskParam.put("index_task", 1);
|
||||
taskParam.put("config_code", "SendWasteFoilAGVTask");
|
||||
taskParam.put("create_mode", GeneralDefinition.PDA_CREATION);
|
||||
taskParam.put("task_status", TaskStatus.SURE_END.getCode());
|
||||
//起点不为空就是漏斗复位任务
|
||||
if (StrUtil.isNotEmpty(startPoint)){
|
||||
taskParam.put("point_code1", startPoint);
|
||||
taskParam.put("task_status", TaskStatus.START_AND_POINT.getCode());
|
||||
}
|
||||
sendWasteFoilAGVTask.createTask(taskParam);
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
|
||||
@@ -11,5 +11,12 @@
|
||||
WHERE p.region_code = 'A1-HXZC'
|
||||
AND p.point_status = '4'
|
||||
AND IFNULL(w.workorder_id, '') <![CDATA[ <> ]]> ''
|
||||
union ALL
|
||||
|
||||
SELECT p.point_code as zc_point,
|
||||
w.*
|
||||
FROM st_ivt_hotpointivt p
|
||||
LEFT JOIN pdm_bi_rawfoilworkorder w ON w.workorder_id = p.workorder_id
|
||||
WHERE p.point_status = '04';
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.nl.wms.quartz;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||
@@ -13,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 自动创建从废箔起点开始的热任务
|
||||
@@ -31,10 +33,11 @@ public class AutoSendWasteFoilAGVTask {
|
||||
log.info("查找废箔起点任务开始执行...");
|
||||
// 获取下一条的任务
|
||||
List<SchBaseTask> waitTask = taskService.getTaskByConfigAndStatus(TASK_CODE, TaskStatus.SURE_END.getCode());
|
||||
if (taskService.checkAllWaiteByWasteFoil()) {
|
||||
List<SchBaseTask> waitTaskFilter = waitTask.stream().filter(task -> StrUtil.isEmpty(task.getPoint_code1())).collect(Collectors.toList());
|
||||
if (taskService.checkAllWaiteByWasteFoil() && CollectionUtil.isNotEmpty(waitTaskFilter)) {
|
||||
log.info("没有搬运中的废箔,执行创建从废箔起点到废箔终点的任务!");
|
||||
// 都是等待状态的任务
|
||||
SchBaseTask task = waitTask.get(0);
|
||||
SchBaseTask task = waitTaskFilter.get(0);
|
||||
// 查找废箔起点
|
||||
List<SchBasePoint> fbPoints = pointService.getAllBusinessNotTaskPoint("A1", "A1-FB",
|
||||
"1", "2", null, null);
|
||||
|
||||
@@ -78,7 +78,7 @@ public class SchBasePointController {
|
||||
|
||||
@GetMapping("/getWastePointList")
|
||||
@Log("获取区域下拉框")
|
||||
public ResponseEntity<Object> getWastePointList(){
|
||||
return new ResponseEntity<>(schBasePointService.getWastePointList(),HttpStatus.OK);
|
||||
public ResponseEntity<Object> getWastePointList(@RequestParam String point_type){
|
||||
return new ResponseEntity<>(schBasePointService.getWastePointList(point_type),HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,5 +128,5 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
|
||||
List<SchBasePoint> getAllBusinessTaskPoint(String area, String region, String pointType,
|
||||
String pointStatus, String vehicleType, String vehicleCode);
|
||||
|
||||
List<SchBasePoint> getWastePointList();
|
||||
List<SchBasePoint> getWastePointList(String point_type);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ package org.nl.wms.sch.point.service.impl;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
@@ -244,10 +243,18 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SchBasePoint> getWastePointList() {
|
||||
public List<SchBasePoint> getWastePointList(String point_type) {
|
||||
|
||||
List<SchBasePoint> list = getAllBusinessNotTaskPoint("A1", "A1-FB", null, "1", null, null);
|
||||
return list.stream().filter(item -> item.getPoint_code().contains("ZD") || item.getPoint_code().contains("QD") ).collect(Collectors.toList());
|
||||
List<SchBasePoint> list = getAllBusinessNotTaskPoint("A1", "A1-FB", null, null, null, null);
|
||||
List<SchBasePoint> zdList = list.stream().filter(item -> item.getPoint_code().contains("ZD")).collect(Collectors.toList());
|
||||
if ("1".equals(point_type)){
|
||||
List<SchBasePoint> qdList = list.stream().filter(item -> item.getPoint_code().contains("QD") && "1".equals(item.getPoint_status())).collect(Collectors.toList());
|
||||
zdList.addAll(qdList);
|
||||
return zdList;
|
||||
}
|
||||
List<SchBasePoint> qdList = list.stream().filter(item -> item.getPoint_code().contains("QD") && "2".equals(item.getPoint_status())).collect(Collectors.toList());
|
||||
zdList.addAll(qdList);
|
||||
return zdList;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.nl.wms.sch.task_manage.tasks.hot;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
@@ -52,6 +53,7 @@ public class InHotTrussTask extends AbstractTask {
|
||||
private RedisUtils redisUtils;
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
|
||||
@Override
|
||||
public void create() throws BadRequestException {
|
||||
|
||||
@@ -59,6 +61,7 @@ public class InHotTrussTask extends AbstractTask {
|
||||
|
||||
/**
|
||||
* todo: 烘烤时间与烘烤温度是否需要下发ACS?
|
||||
*
|
||||
* @param task /
|
||||
*/
|
||||
@Override
|
||||
@@ -67,10 +70,12 @@ public class InHotTrussTask extends AbstractTask {
|
||||
String requestParam = task.getRequest_param();
|
||||
JSONObject requestObj = JSONObject.parseObject(requestParam);
|
||||
String orderCode = requestObj.getString("order_code");
|
||||
String isStorage = requestObj.getString("is_storage");
|
||||
String plan = requestObj.getString("plan");
|
||||
String flag = "0";
|
||||
PdmBiRawfoilworkorder order = rawfoilworkorderService.getByContainerName(orderCode);
|
||||
// TODO: 没有设置是否烘烤、时间、温度、不继续
|
||||
if (GeneralDefinition.YES.equals(order.getIs_baking())) {
|
||||
if (ObjectUtil.isNotNull(order)&&GeneralDefinition.YES.equals(order.getIs_baking())) {
|
||||
|
||||
String bakingTemperature = order.getBaking_temperature();
|
||||
requestObj.put("baking_temperature", bakingTemperature);
|
||||
@@ -101,18 +106,36 @@ public class InHotTrussTask extends AbstractTask {
|
||||
SchBasePoint point = hotDjwList.get(0);
|
||||
task.setPoint_code2(point.getPoint_code());
|
||||
}
|
||||
if (hotDjwList.size() == 0){
|
||||
if (hotDjwList.size() == 0) {
|
||||
throw new BadRequestException("入烘箱没有找到存放母卷位置");
|
||||
}
|
||||
}
|
||||
// todo: 需要烘烤,且是小卷,但是没有位置,需要将最快结束的烘箱组锁住
|
||||
} else {
|
||||
// 不需要烘烤,则送到暂存区(无需烘烤区 - 任务做完需要将点位设置为待分切)
|
||||
List<SchBasePoint> hotDjwList = pointService.getHotNotTaskPoint("A1", REGION_A1_HXZC,
|
||||
"3", "1");
|
||||
if (hotDjwList.size() > 0) {
|
||||
SchBasePoint point = hotDjwList.get(0);
|
||||
task.setPoint_code2(point.getPoint_code());
|
||||
// 如果是去烘箱暂存的,找禁用的烘箱
|
||||
if (GeneralDefinition.YES.equals(isStorage)) {
|
||||
List<StIvtHotpointivt> hotList = hotpointivtService.getNotTaskHotOven(plan, "0");
|
||||
for (StIvtHotpointivt hotPoint : hotList) {
|
||||
String pointCode = hotPoint.getPoint_code();
|
||||
String pointTemperature = (String) redisUtils.hget(pointCode, "temperature");
|
||||
if (ObjectUtil.isNotEmpty(pointTemperature) && Integer.valueOf(pointTemperature) < 50 ) {
|
||||
task.setPoint_code2(pointCode);
|
||||
flag = "1";
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (ObjectUtil.isEmpty(task.getPoint_code2())){
|
||||
throw new BadRequestException("暂时没有可用的烘箱暂存位");
|
||||
}
|
||||
|
||||
} else {
|
||||
// 不需要烘烤,则送到暂存区(无需烘烤区 - 任务做完需要将点位设置为待分切)
|
||||
List<SchBasePoint> hotDjwList = pointService.getHotNotTaskPoint("A1", REGION_A1_HXZC,
|
||||
"3", "1");
|
||||
if (hotDjwList.size() > 0) {
|
||||
SchBasePoint point = hotDjwList.get(0);
|
||||
task.setPoint_code2(point.getPoint_code());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -165,8 +188,8 @@ public class InHotTrussTask extends AbstractTask {
|
||||
hotpointivt.setWorkorder_id(order.getWorkorder_id());
|
||||
hotpointivt.setInstorage_time(DateUtil.now());
|
||||
hotpointivt.setFull_vehicle_code(taskObj.getVehicle_code());
|
||||
// 02:烘烤中,03:暂存中
|
||||
hotpointivt.setPoint_status("0".equals(caching) ? "02" : "03");
|
||||
// 02:烘烤中,04:烘烤完毕暂存中
|
||||
hotpointivt.setPoint_status("0".equals(caching) ? "02" : "04");
|
||||
// todo: 更新温度和倒计时
|
||||
setHxUpdateByType(hotpointivt, taskFinishedType);
|
||||
hotpointivtService.updateById(hotpointivt);
|
||||
|
||||
@@ -112,10 +112,10 @@ public class SendWasteFoilAGVTask extends AbstractTask {
|
||||
BigDecimal weight = task.getBigDecimal("weight");
|
||||
// 校验任务
|
||||
SchBaseTask taskObj = taskService.getByCode(taskCode);
|
||||
if (ObjectUtil.isNotEmpty(weight)) {
|
||||
// 调用更新重量
|
||||
otherOperationService.acsRequestWasteFoilWeight(task);
|
||||
}
|
||||
// if (ObjectUtil.isNotEmpty(weight)) {
|
||||
// // 调用更新重量
|
||||
// otherOperationService.acsRequestWasteFoilWeight(task);
|
||||
// }
|
||||
// 根据传来的类型去对任务进行操作
|
||||
if (TaskStatus.EXECUTING.equals(status) || ObjectUtil.isNotEmpty(task.getString("car_no"))) {
|
||||
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
|
||||
|
||||
Reference in New Issue
Block a user