add: 添加日志索引,sorting交互优化
This commit is contained in:
@@ -40,6 +40,7 @@ public class SysParamServiceImpl extends ServiceImpl<SysParamMapper, Param> impl
|
||||
@Override
|
||||
public Page<Param> queryPage(Map whereJson, PageQuery page) {
|
||||
QueryWrapper<Param> queryWrapper = new QueryWrapper<>();
|
||||
page.setPage(page.getPage() + 1);
|
||||
queryWrapper.orderBy(true, true, "create_time");
|
||||
Page<Param> paramPage = paramMapper.selectPage(page.build(), queryWrapper);
|
||||
return paramPage;
|
||||
|
||||
@@ -515,6 +515,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
schBaseVehiclematerialgroup.setRegion_code(connectorDto.getNextOperation());
|
||||
schBaseVehiclematerialgroup.setExtend(JSON.toJSONString(connectorDto));
|
||||
schBaseVehiclematerialgroup.setOrder_code(connectorDto.getProductionOrder());
|
||||
schBaseVehiclematerialgroup.setCreate_name("Connector");
|
||||
iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup);
|
||||
taskService.update(Wrappers.lambdaUpdate(SchBaseTask.class).eq(SchBaseTask::getTask_code, schBaseTask.getTask_code())
|
||||
.set(SchBaseTask::getJob_name, connectorDto.getJobname()));
|
||||
|
||||
@@ -59,6 +59,7 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService {
|
||||
map.put("status", HttpStatus.HTTP_INTERNAL_ERROR);
|
||||
map.put("message", "请求参数为空!");
|
||||
objects.add(map);
|
||||
log.info("connector下发agv任务请求参数为空:{}!", jsonArray);
|
||||
return map;
|
||||
}
|
||||
try {
|
||||
@@ -74,6 +75,8 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService {
|
||||
map1.put("message", StrUtil.isEmpty(task_code) ? "任务号不能为空!"
|
||||
: StrUtil.isEmpty(start_device_code) ? "起点参数不能为空!" : StrUtil.isEmpty(vehicle_code) ? "载具号不能为空!" : "未知");
|
||||
objects.add(map1);
|
||||
log.info(StrUtil.isEmpty(task_code) ? "任务号不能为空!"
|
||||
: StrUtil.isEmpty(start_device_code) ? "起点参数不能为空!" : StrUtil.isEmpty(vehicle_code) ? "载具号不能为空!" : "未知");
|
||||
continue;
|
||||
}
|
||||
SchBasePoint schBasePoint = schBasePointService.selectByPointCode(start_device_code);
|
||||
@@ -82,12 +85,14 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService {
|
||||
map1.put("status", HttpStatus.HTTP_INTERNAL_ERROR);
|
||||
map1.put("message", start_device_code + "点位设备不存在!");
|
||||
objects.add(map1);
|
||||
log.info(start_device_code + "点位设备不存在!");
|
||||
continue;
|
||||
} else if (schBasePoint.getIs_lock()) {
|
||||
map1.put("task_code", task_code);
|
||||
map1.put("status", HttpStatus.HTTP_INTERNAL_ERROR);
|
||||
map1.put("message", start_device_code + "该设备正在执行任务!");
|
||||
objects.add(map1);
|
||||
log.info(start_device_code + "该设备正在执行任务!");
|
||||
continue;
|
||||
}
|
||||
//TODO:固定的载具类型,根据载具类型来决定终点
|
||||
@@ -121,6 +126,7 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService {
|
||||
map.put("status", HttpStatus.HTTP_INTERNAL_ERROR);
|
||||
map.put("message", e.getMessage());
|
||||
objects.add(map);
|
||||
log.info("connector下发agv任务异常:{}", e.getMessage());
|
||||
return map;
|
||||
}
|
||||
return map;
|
||||
@@ -132,10 +138,11 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService {
|
||||
Assert.noNullElements(jsonArray, "请求参数为空!");
|
||||
List<ConnectorDto> connectorDtos = BeanUtil.copyToList(jsonArray, ConnectorDto.class);
|
||||
for (ConnectorDto connectorDto : connectorDtos) {
|
||||
if(StrUtil.isEmpty(connectorDto.getID())) throw new BadRequestException("物料id为null!");
|
||||
if (StrUtil.isEmpty(connectorDto.getID())) throw new BadRequestException("物料id为null!");
|
||||
SchBaseVehiclematerialgroup one = iSchBaseVehiclematerialgroupService.getOne(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class)
|
||||
.eq(SchBaseVehiclematerialgroup::getGroup_id, connectorDto.getID()));
|
||||
if (ObjectUtil.isNotNull(one)) {
|
||||
log.info("id:" + connectorDto.getID() + "," + "该物料信息已存在!");
|
||||
throw new BadRequestException("id:" + connectorDto.getID() + "," + "该物料信息已存在!");
|
||||
}
|
||||
SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = new SchBaseVehiclematerialgroup();
|
||||
@@ -147,6 +154,7 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService {
|
||||
schBaseVehiclematerialgroup.setRegion_code(connectorDto.getNextOperation());
|
||||
schBaseVehiclematerialgroup.setExtend(JSON.toJSONString(connectorDto));
|
||||
schBaseVehiclematerialgroup.setOrder_code(connectorDto.getProductionOrder());
|
||||
schBaseVehiclematerialgroup.setCreate_name("Connector");
|
||||
iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup);
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -49,7 +49,7 @@ public class WmsToConnectorServiceImpl implements WmsToConnectorService {
|
||||
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
|
||||
Param isInvokeConnector = sysParamService.findByCode(GeneralDefinition.IS_INVOKE_CONNECTOR);
|
||||
if (ObjectUtil.isNotEmpty(isInvokeConnector) && GeneralDefinition.YES.equals(isInvokeConnector.getValue())) {
|
||||
String api = "/iot/agvarrive";
|
||||
String api = "/iot/order_report";
|
||||
JSONObject jsonObject = ConnectorUtil.notifyConnector3(api, json);
|
||||
return jsonObject;
|
||||
} else if (ObjectUtil.isNotEmpty(isInvokeConnector) && GeneralDefinition.NO.equals(isInvokeConnector.getValue())) {
|
||||
|
||||
@@ -14,6 +14,7 @@ import org.nl.common.enums.VehicleTypeEnum;
|
||||
import org.nl.common.enums.region.RegionEnum;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.RedisUtils;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.system.service.param.dao.Param;
|
||||
import org.nl.system.service.param.impl.SysParamServiceImpl;
|
||||
@@ -255,6 +256,9 @@ public class HandheldServiceImpl implements HandheldService {
|
||||
private void goShelves(SchBasePoint schBasePoint, JSONObject param, String region_code, String device_code, String vehicle_code, AbstractTask connectorTask) {
|
||||
Assert.noNullElements(param.getJSONArray("material"), "参数不能为空!");
|
||||
JSONArray materials = param.getJSONArray("material");
|
||||
if (materials.size() < 1) {
|
||||
throw new BadRequestException("物料下料数量不能为空!");
|
||||
}
|
||||
JSONObject jo = new JSONObject();
|
||||
if (StrUtil.isBlank(region_code)) {
|
||||
JSONObject json = new JSONObject();
|
||||
@@ -328,6 +332,7 @@ public class HandheldServiceImpl implements HandheldService {
|
||||
schBaseVehiclematerialgroup.setMaterial_code(jsonObject.getString("material_code"));
|
||||
schBaseVehiclematerialgroup.setOrder_code(jsonObject.getString("order_code"));
|
||||
schBaseVehiclematerialgroup.setDue_date(jsonObject.getString("due_date"));
|
||||
schBaseVehiclematerialgroup.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
schBaseVehiclematerialgroup.setRegion_code(StrUtil.isBlank(finalRegion_code) ? jsonObject.getString("region_code") : finalRegion_code);
|
||||
iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup);
|
||||
});
|
||||
@@ -344,6 +349,10 @@ public class HandheldServiceImpl implements HandheldService {
|
||||
*/
|
||||
private void goWxOrNx(JSONObject param, String region_code, String device_code, String vehicle_code, AbstractTask connectorTask) {
|
||||
JSONObject jo = new JSONObject();
|
||||
JSONArray materials = param.getJSONArray("material");
|
||||
if (materials.size() < 1) {
|
||||
throw new BadRequestException("物料下料数量不能为空!");
|
||||
}
|
||||
jo.put("device_code", device_code);
|
||||
jo.put("config_code", "ProcessingSMTTask");
|
||||
jo.put("create_mode", GeneralDefinition.AUTO_CREATION);
|
||||
@@ -357,6 +366,30 @@ public class HandheldServiceImpl implements HandheldService {
|
||||
.set(SchBasePoint::getPoint_status, GoodsEnum.OUT_OF_STOCK.getValue())
|
||||
.set(SchBasePoint::getIs_lock, true)
|
||||
.set(SchBasePoint::getVehicle_code, null));
|
||||
iSchBaseVehiclematerialgroupService.remove(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class)
|
||||
.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicle_code));
|
||||
materials.stream().forEach(material -> {
|
||||
String replace = StrUtil.replace(StrUtil.toString(material), "=", ":");
|
||||
replace = replace.replaceAll("material_code:,", "");
|
||||
// 使用 Hutool 的 JSONUtil 解析 JSON 字符串
|
||||
cn.hutool.json.JSONObject jsonObject1 = JSONUtil.parseObj(replace);
|
||||
// 判断 material_code 是否为空
|
||||
if (replace.contains("OR")) {
|
||||
Object materialCode = jsonObject1.get("order_code");
|
||||
jsonObject1.put("order_code", materialCode.toString());
|
||||
replace = jsonObject1.toString();
|
||||
}
|
||||
JSONObject jsonObject = JSONObject.parseObject(replace);
|
||||
SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = new SchBaseVehiclematerialgroup();
|
||||
schBaseVehiclematerialgroup.setVehicle_code(vehicle_code);
|
||||
schBaseVehiclematerialgroup.setMaterial_qty(jsonObject.getInteger("material_qty"));
|
||||
schBaseVehiclematerialgroup.setMaterial_code(jsonObject.getString("material_code"));
|
||||
schBaseVehiclematerialgroup.setOrder_code(jsonObject.getString("order_code"));
|
||||
schBaseVehiclematerialgroup.setDue_date(jsonObject.getString("due_date"));
|
||||
schBaseVehiclematerialgroup.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
schBaseVehiclematerialgroup.setRegion_code(region_code);
|
||||
iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -566,18 +599,19 @@ public class HandheldServiceImpl implements HandheldService {
|
||||
@Override
|
||||
public void updateRoute(JSONObject json) {
|
||||
Assert.noNullElements(new String[]{json.getString("type"), json.getString("status")}, "参数不能为空!");
|
||||
switch (json.getString("type")) {
|
||||
case "1":
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
|
||||
Param isConnectConnector = sysParamService.findByCode(GeneralDefinition.ADD_ROUTE_DOOR_1);
|
||||
jsonObject.put("pointCode", isConnectConnector.getValue());
|
||||
jsonObject.put("status", json.getString("status"));
|
||||
wmsToAcsService.notifyAcs1(jsonObject);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
|
||||
Param isConnectConnector = sysParamService.findByCode("add_route_door_" + json.getString("type"));
|
||||
jsonObject.put("pointCode", isConnectConnector.getValue());
|
||||
jsonObject.put("status", json.getString("status"));
|
||||
wmsToAcsService.notifyAcs1(jsonObject);
|
||||
Param isConnectConnector1 = sysParamService.findByCode(GeneralDefinition.ADD_ROUTE_DOOR);
|
||||
if ("1".equals(json.getString("status"))) {
|
||||
isConnectConnector1.setValue(json.getString("type"));
|
||||
} else {
|
||||
isConnectConnector1.setValue("0");
|
||||
}
|
||||
sysParamService.update(isConnectConnector1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.nl.wms.ext.sorting.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
@@ -31,6 +32,7 @@ import org.nl.wms.sch.task_manage.task.tasks.sorting.SortingSMTTask;
|
||||
import org.nl.wms.sch.task_manage.task.tasks.sorting.SortingSNTTask;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -75,9 +77,11 @@ public class SortingServiceImpl implements SortingService {
|
||||
JSONArray jsonArray = JSONUtil.parseArray(jsonObject.get("pallet_detail"));
|
||||
SchBasePoint schBasePoint = iSchBasePointService.selectByPointCode(pointCode);
|
||||
if (ObjectUtil.isEmpty(schBasePoint)) {
|
||||
log.info("点位编码不存在:{}", pointCode);
|
||||
return MapOf.of("status", 400, "msg", "点位编码不存在!");
|
||||
}
|
||||
if (schBasePoint.getIs_lock()) {
|
||||
log.info("该点位已创建任务:{}", pointCode);
|
||||
return MapOf.of("status", 400, "msg", "该点位已创建任务!");
|
||||
}
|
||||
JSONObject taskParam = new JSONObject(MapOf.of("task_code", task_code, "job_name", jobname, "device_code", pointCode, "requestNo"
|
||||
@@ -85,10 +89,6 @@ public class SortingServiceImpl implements SortingService {
|
||||
AbstractTask connectorTask = taskFactory.getTask("CNTTask");
|
||||
if ("0".equals(vehicle_type)) {
|
||||
// TODO:呼叫空托
|
||||
iSchBasePointService.update(new UpdateWrapper<SchBasePoint>()
|
||||
.set("is_lock", true)
|
||||
.set("remark", task_code)
|
||||
.eq("point_code", pointCode));
|
||||
if (SortingEnum.TASK_TYPE_ONE.getValue().equals(task_type) && SortingEnum.IS_EMPTY.getValue().equals(is_empty)) {
|
||||
taskParam.put("vehicle_type", "G01");
|
||||
taskParam.put("config_code", "SortingCNTTask");
|
||||
@@ -96,6 +96,7 @@ public class SortingServiceImpl implements SortingService {
|
||||
//TODO:叫料
|
||||
} else if (SortingEnum.TASK_TYPE_ONE.getValue().equals(task_type) && SortingEnum.NOT_EMPTY.getValue().equals(is_empty)) {
|
||||
if (StrUtil.isEmpty(vehicle_code)) {
|
||||
log.info("载具号未传递");
|
||||
return MapOf.of("status", 400, "msg", "载具号未传递!");
|
||||
}
|
||||
taskParam.put("config_code", "SortingCMTTask");
|
||||
@@ -103,6 +104,7 @@ public class SortingServiceImpl implements SortingService {
|
||||
//TODO:将空托盘放到线边库
|
||||
} else if (SortingEnum.TASK_TYPE_TWO.getValue().equals(task_type) && SortingEnum.IS_EMPTY.getValue().equals(is_empty)) {
|
||||
if (StrUtil.isEmpty(vehicle_code)) {
|
||||
log.info("载具号未传递");
|
||||
return MapOf.of("status", 400, "msg", "载具号未传递!");
|
||||
}
|
||||
taskParam.put("config_code", "SortingSNTTask");
|
||||
@@ -110,8 +112,13 @@ public class SortingServiceImpl implements SortingService {
|
||||
//TODO:将满料放到线边库
|
||||
} else if (SortingEnum.TASK_TYPE_TWO.getValue().equals(task_type) && SortingEnum.NOT_EMPTY.getValue().equals(is_empty)) {
|
||||
if (StrUtil.isEmpty(vehicle_code)) {
|
||||
log.info("载具号未传递");
|
||||
return MapOf.of("status", 400, "msg", "载具号未传递!");
|
||||
}
|
||||
if (CollUtil.isEmpty(jsonArray) || jsonArray.size() < 1) {
|
||||
log.info("物料信息为空!");
|
||||
return MapOf.of("status", 400, "msg", "物料信息为空!");
|
||||
}
|
||||
taskParam.put("config_code", "SortingSMTTask");
|
||||
connectorTask.apply(taskParam);
|
||||
}
|
||||
@@ -130,8 +137,13 @@ public class SortingServiceImpl implements SortingService {
|
||||
//TODO:将两个笼框放到线边库
|
||||
} else if (SortingEnum.TASK_TYPE_TWO.getValue().equals(task_type) && SortingEnum.NOT_EMPTY.getValue().equals(is_empty)) {
|
||||
if (StrUtil.isEmpty(jsonObject.getString("vehicle_code2"))) {
|
||||
log.info("第二个笼框载具号未传递");
|
||||
return MapOf.of("status", 400, "msg", "第二个笼框载具号未传递!");
|
||||
}
|
||||
if (CollUtil.isEmpty(jsonArray) || jsonArray.size() < 1) {
|
||||
log.info("物料信息为空!");
|
||||
return MapOf.of("status", 400, "msg", "物料信息为空!");
|
||||
}
|
||||
taskParam.put("config_code", "SortingSMTTask");
|
||||
taskParam.put("task_seq", "1");
|
||||
taskParam.put("vehicle_code", jsonObject.getString("vehicle_code2"));
|
||||
@@ -145,14 +157,20 @@ public class SortingServiceImpl implements SortingService {
|
||||
connectorTask.apply(taskParam);
|
||||
}
|
||||
}
|
||||
iSchBasePointService.update(new UpdateWrapper<SchBasePoint>()
|
||||
.set("is_lock", true)
|
||||
.set("remark", task_code)
|
||||
.eq("point_code", pointCode));
|
||||
return MapOf.of("status", 200, "msg", "sucess");
|
||||
} catch (Exception ex) {
|
||||
log.info("sorting下发任务失败:{}", ex.getMessage());
|
||||
return MapOf.of("status", 200, "msg", "操作失败", "errMsg", ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ConnectorDto> getStructList(String jobName) {
|
||||
log.info("sorting查询组盘请求参数数据:{}", jobName);
|
||||
List<SchBaseVehiclematerialgroup> list = iSchBaseVehiclematerialgroupService.list(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class)
|
||||
.eq(SchBaseVehiclematerialgroup::getJob_name, jobName));
|
||||
List<ConnectorDto> connectors = new ArrayList<>();
|
||||
@@ -163,7 +181,7 @@ public class SortingServiceImpl implements SortingService {
|
||||
connectorDto.setNextOperation(StrUtil.isNotEmpty(connectorDto.getNextOperation()) ? connectorDto.getNextOperation() : DateUtil.now());
|
||||
connectors.add(connectorDto);
|
||||
}
|
||||
// List<PointMaterialInfo> structList = iSchBasePointService.getStructList(RegionEnum.ZDFJ.getRegion_code(), "1");
|
||||
log.info("sorting查询组盘响应参数:{}", JSONObject.toJSONString(connectors));
|
||||
return connectors;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,6 +88,7 @@ public class SchBaseVehiclematerialgroup implements Serializable {
|
||||
|
||||
@ApiModelProperty(value = "是否已加工")
|
||||
private Boolean has_work;
|
||||
|
||||
@ApiModelProperty(value = "交期时间")
|
||||
private String due_date;
|
||||
|
||||
|
||||
@@ -15,5 +15,5 @@ public class SchBaseVehiclematerialgroupQuery implements Serializable {
|
||||
private String vehicle_code;
|
||||
private String workshop_code;
|
||||
private String region_code;
|
||||
private String group_bind_material_status;
|
||||
private String job_name;
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
||||
IPage<SchBaseVehiclematerialgroup> schBaseVehiclematerialgroupIPage = vehiclematerialgroupMapper.selectPage(pages, Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class)
|
||||
.eq(StrUtil.isNotBlank(whereJson.getVehicle_code()), SchBaseVehiclematerialgroup::getVehicle_code, whereJson.getVehicle_code())
|
||||
.eq(StrUtil.isNotBlank(whereJson.getWorkshop_code()), SchBaseVehiclematerialgroup::getWorkshop_code, whereJson.getWorkshop_code())
|
||||
.eq(StrUtil.isNotBlank(whereJson.getGroup_bind_material_status()), SchBaseVehiclematerialgroup::getGroup_bind_material_status, whereJson.getGroup_bind_material_status())
|
||||
.eq(StrUtil.isNotBlank(whereJson.getJob_name()), SchBaseVehiclematerialgroup::getJob_name, whereJson.getJob_name())
|
||||
.eq(StrUtil.isNotBlank(whereJson.getRegion_code()), SchBaseVehiclematerialgroup::getRegion_code, whereJson.getRegion_code()));
|
||||
schBaseVehiclematerialgroupIPage.getRecords().forEach(item -> {
|
||||
if (StrUtil.isNotBlank(item.getMaterial_id())) {
|
||||
@@ -87,12 +87,9 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
String now = DateUtil.now();
|
||||
if (StringUtils.isNotBlank(entity.getPoint_code())) {
|
||||
entity.setRegion_code(pointService.getById(entity.getPoint_code()).getRegion_code());
|
||||
}
|
||||
entity.setGroup_id(StrUtil.isNotEmpty(entity.getGroup_id()) ? entity.getGroup_id() : IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||
entity.setCreate_id(currentUserId);
|
||||
entity.setCreate_name(nickName);
|
||||
entity.setCreate_name(StrUtil.isNotEmpty(entity.getCreate_name()) ? entity.getCreate_name() : nickName);
|
||||
entity.setCreate_time(now);
|
||||
entity.setUpdate_id(currentUserId);
|
||||
entity.setUpdate_name(nickName);
|
||||
|
||||
@@ -96,11 +96,7 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
.eq(ObjectUtil.isNotEmpty(point_type), SchBasePoint::getPoint_type, point_type)
|
||||
.eq(ObjectUtil.isNotEmpty(point_status), SchBasePoint::getPoint_status, point_status)
|
||||
.eq(ObjectUtil.isNotEmpty(is_used), SchBasePoint::getIs_used, is_used)
|
||||
.and(!lock_type, slam -> slam.isNull(SchBasePoint::getIng_task_code)
|
||||
.or()
|
||||
.eq(SchBasePoint::getIng_task_code, ""))
|
||||
.and(lock_type, slam -> slam.isNotNull(SchBasePoint::getIng_task_code)
|
||||
.ne(SchBasePoint::getIng_task_code, ""))
|
||||
.eq(ObjectUtil.isNotEmpty(lock_type), SchBasePoint::getIs_lock, lock_type)
|
||||
.orderByAsc(SchBasePoint::getRegion_code)
|
||||
.orderByAsc(SchBasePoint::getPoint_type)
|
||||
.orderByAsc(SchBasePoint::getPoint_code)
|
||||
@@ -175,18 +171,17 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
// 获取region_name
|
||||
SchBaseRegion baseRegion = regionMapper.selectById(entity.getRegion_code());
|
||||
entity.setRegion_name(baseRegion.getRegion_name());
|
||||
// if (ObjectUtil.isNotEmpty(entity.getCan_vehicle_types())) {
|
||||
// String can_vehicle_type = String.join(",", entity.getCan_vehicle_types());
|
||||
// entity.setCan_vehicle_type(can_vehicle_type);
|
||||
// }
|
||||
String pointStatus = entity.getPoint_status();
|
||||
String vehicle_code = entity.getVehicle_code();
|
||||
// 根据点位状态来判断更新内容
|
||||
if (ObjectUtil.isNotEmpty(pointStatus) && pointStatus.equals(PointStatusEnum.EMPTY_POINT.getCode())) {
|
||||
entity.setVehicle_type("");
|
||||
entity.setVehicle_code("");
|
||||
entity.setVehicle_qty(0);
|
||||
if (ObjectUtil.isNotEmpty(pointStatus) && pointStatus.equals(GoodsEnum.OUT_OF_STOCK.getValue())) {
|
||||
vehicle_code = null;
|
||||
} else if (ObjectUtil.isNotEmpty(pointStatus) && (pointStatus.equals(GoodsEnum.EMPTY_PALLETS.getValue()) || pointStatus.equals(GoodsEnum.IN_STOCK.getValue()))) {
|
||||
if(StrUtil.isEmpty(entity.getVehicle_code())) throw new BadRequestException("载具编码不能为空");
|
||||
}
|
||||
pointMapper.updateById(entity);
|
||||
pointMapper.update(entity,Wrappers.lambdaUpdate(SchBasePoint.class)
|
||||
.eq(SchBasePoint::getPoint_code, entity.getPoint_code())
|
||||
.set(SchBasePoint::getVehicle_code, vehicle_code));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -62,7 +62,7 @@ public class GeneralDefinition {
|
||||
/**
|
||||
* 外协区到冲床一自动门
|
||||
*/
|
||||
public static final String ADD_ROUTE_DOOR_1 = "add_route_door_1";
|
||||
public static final String ADD_ROUTE_DOOR = "add_route_door";
|
||||
/**
|
||||
* 是否调用connector小插件
|
||||
*/
|
||||
|
||||
@@ -26,6 +26,7 @@ import org.nl.wms.util.TaskUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -55,12 +56,12 @@ public class CNTTask extends AbstractTask {
|
||||
List<SchBaseTask> tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
|
||||
// 配置信息
|
||||
// 定义按数字后缀排序的比较器
|
||||
/*Comparator<SchBaseTask> numericSuffixComparator = (s1, s2) -> {
|
||||
Comparator<SchBaseTask> numericSuffixComparator = (s1, s2) -> {
|
||||
Integer suffix1 = getNumericSuffix(s1.getPoint_code1());
|
||||
Integer suffix2 = getNumericSuffix(s2.getPoint_code1());
|
||||
return suffix1.compareTo(suffix2);
|
||||
};
|
||||
List<SchBaseTask> collect = tasks.stream().sorted(numericSuffixComparator).collect(Collectors.toList());*/
|
||||
tasks = tasks.stream().sorted(numericSuffixComparator).collect(Collectors.toList());
|
||||
for (SchBaseTask task : tasks) {
|
||||
TaskUtils.setUpdateByAcs(task);
|
||||
// 找起点
|
||||
|
||||
@@ -110,6 +110,7 @@ public class PcOperationSMTTask extends AbstractTask {
|
||||
schBaseVehiclematerialgroup.setOrder_code(smv.getOrder_code());
|
||||
schBaseVehiclematerialgroup.setDue_date(smv.getDue_date());
|
||||
schBaseVehiclematerialgroup.setHas_work(sendMaterVo.getHas_work());
|
||||
schBaseVehiclematerialgroup.setCreate_name("Sorting");
|
||||
schBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -34,6 +34,12 @@ import org.nl.wms.util.TaskUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.format.DateTimeParseException;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -45,6 +51,7 @@ public class SortingSMTTask extends AbstractTask {
|
||||
|
||||
|
||||
private static final String TASK_CONFIG_CODE = "SortingSMTTask";
|
||||
private static final DateTimeFormatter ISO_8601_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSX");
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
@@ -108,7 +115,11 @@ public class SortingSMTTask extends AbstractTask {
|
||||
schBaseVehiclematerialgroup.setRegion_code(region_code);
|
||||
schBaseVehiclematerialgroup.setOrder_code(workorder);
|
||||
schBaseVehiclematerialgroup.setJob_name(Jobname);
|
||||
if (StrUtil.isNotEmpty(dueDate) && isValidISO8601(dueDate)) {
|
||||
dueDate = parseDate(dueDate);
|
||||
}
|
||||
schBaseVehiclematerialgroup.setDue_date(dueDate);
|
||||
schBaseVehiclematerialgroup.setCreate_name("Sorting");
|
||||
schBaseVehiclematerialgroup.setExtend(JSON.toJSONString(jO));
|
||||
schBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup);
|
||||
}
|
||||
@@ -128,6 +139,22 @@ public class SortingSMTTask extends AbstractTask {
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isValidISO8601(String dateString) {
|
||||
try {
|
||||
ZonedDateTime.parse(dateString, ISO_8601_FORMATTER);
|
||||
return true;
|
||||
} catch (DateTimeParseException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static String parseDate(String isoString) {
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
ZonedDateTime zonedDateTime = ZonedDateTime.parse(isoString);
|
||||
return formatter.format(zonedDateTime);
|
||||
}
|
||||
|
||||
|
||||
private Long getTime(String dateString) {
|
||||
String pattern = "yyyy-MM-dd HH:mm:ss";
|
||||
java.util.Date date = DateUtil.parse(dateString, pattern);
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!--<define name="DEVICECODE" class="org.nl.common.logging.DeviceCodeDir"/>-->
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="FILE_XGAGV" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<appender name="FILE_12" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/XgAgvDeviceDriver/${DEVICECODE}/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<FileNamePattern>${LOG_HOME}/ConnectorToWms/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
@@ -28,7 +28,7 @@
|
||||
</logger>-->
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.system.service.lucene.impl.LuceneExecuteLogServiceImpl" level="info" additivity="false">
|
||||
<appender-ref ref="FILE_XGAGV"/>
|
||||
<logger name="org.nl.wms.ext.connector.service.impl.ConnectorToWmsServiceImpl" level="info" additivity="false">
|
||||
<appender-ref ref="FILE_12"/>
|
||||
</logger>
|
||||
</included>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<!--<define name="DEVICECODE" class="org.nl.common.logging.DeviceCodeDir"/>-->
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="FILE_13" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/SortingToWms/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>200MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>2GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
<charset>${log.charset}</charset>
|
||||
</encoder>
|
||||
|
||||
</appender>
|
||||
|
||||
<!-- <logger name="org.nl.start.Init" level="info" additivity="false">
|
||||
<appender-ref ref="FILE3"/>
|
||||
</logger>-->
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.wms.ext.sorting.service.impl.SortingServiceImpl" level="info" additivity="false">
|
||||
<appender-ref ref="FILE_13"/>
|
||||
</logger>
|
||||
</included>
|
||||
@@ -19,6 +19,8 @@
|
||||
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
|
||||
<property name="LOG_HOME" value="${logPath}"/>
|
||||
<include resource="log/ConnectorAndSorting.xml"/>
|
||||
<include resource="log/ConnectorToWmsServiceImpl.xml"/>
|
||||
<include resource="log/SortingToWms.xml"/>
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
|
||||
Reference in New Issue
Block a user