rev:生产调度相关
This commit is contained in:
@@ -89,7 +89,8 @@ public class AcsToWmsController {
|
||||
@ApiOperation("向wms反馈设备状态")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> feedDeviceStatusType(@RequestBody JSONObject param) {
|
||||
return new ResponseEntity<>(acsToWmsService.feedDeviceStatusType(param), HttpStatus.OK);
|
||||
return null;
|
||||
// return new ResponseEntity<>(acsToWmsService.feedDeviceStatusType(param), HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -22,6 +22,8 @@ import org.nl.wms.product_manage.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.product_manage.sch.service.TaskService;
|
||||
import org.nl.wms.product_manage.sch.service.dto.TaskDto;
|
||||
import org.nl.wms.product_manage.sch.tasks.WashMachineryTask;
|
||||
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
||||
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.http.HttpStatus;
|
||||
@@ -47,6 +49,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{
|
||||
private TaskService taskService;
|
||||
@Autowired
|
||||
private CacheLineHandService cacheLineHandService;
|
||||
@Autowired
|
||||
private IPdmProduceWorkorderService workorderService;
|
||||
|
||||
|
||||
|
||||
@@ -203,17 +207,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{
|
||||
public Map<String, Object> orderStatus(JSONObject orderJson) {
|
||||
JSONObject result = new JSONObject();
|
||||
try {
|
||||
JSONObject map = new JSONObject();
|
||||
map.put("workorder_id", orderJson.getString("workorder_id"));
|
||||
map.put("workorder_status", orderJson.getString("status"));
|
||||
map.put("update_id", "1");
|
||||
map.put("real_qty", orderJson.getString("real_qty"));
|
||||
map.put("device_code", "");
|
||||
map.put("update_name", "acs");
|
||||
map.put("update_time", DateUtil.now());
|
||||
map.put("realproduceend_date", DateUtil.now());
|
||||
WQLObject.getWQLObject("PDM_produce_workOrder").update(map, "workorder_id = '" + orderJson.getString("workorder_id") + "'");
|
||||
//OptionRecord.record(OptionRecord.OptionEnum.UPDATEOP, OptionRecord.Buss.WORKORDER,orderJson.getString("workorder_id"),MapOf.of("workorder_status", orderJson.getString("status")));
|
||||
PdmProduceWorkorder workorder = new PdmProduceWorkorder();
|
||||
workorder.setWorkorder_id(orderJson.getString("workorder_id"));
|
||||
workorder.setWorkorder_status(orderJson.getString("status"));
|
||||
workorder.setDq_real_qty(orderJson.getBigDecimal("real_qty"));
|
||||
workorder.setRealproduceend_date(DateUtil.now());
|
||||
workorderService.updateById(workorder);
|
||||
} catch (Exception e){
|
||||
result.put("status", 400);
|
||||
result.put("message", e.getMessage());
|
||||
|
||||
@@ -52,7 +52,11 @@ public class AgvInstService {
|
||||
@Autowired
|
||||
private ISchCachelineVehicleService cachelineVehicleService;
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
String a= "A1_DC_15_6";
|
||||
int i = a.lastIndexOf("_");
|
||||
System.out.println(a.substring(0, i));
|
||||
}
|
||||
|
||||
//满料请求点位确认
|
||||
//1.判断当前设备路由表是否配置下一道路由设备,如果不是则说明直接到清洗
|
||||
@@ -81,11 +85,14 @@ public class AgvInstService {
|
||||
if (next.getParams().get("cacheLine") == null){
|
||||
throw new BadRequestException("当前任务下一道工序无可用设备");
|
||||
}
|
||||
nextPoint = next.getParams().get("cacheLine");
|
||||
nextPoint = getParamByXml(workprodure, next, nextPoint);
|
||||
cacheVehile = getCacheVehile(nextPoint, null);
|
||||
}
|
||||
if (StringUtils.isBlank(nextPoint)){
|
||||
throw new BadRequestException("逻辑非配错误,请检查代码");
|
||||
|
||||
结果校验:{
|
||||
if (StringUtils.isBlank(nextPoint)) {
|
||||
throw new BadRequestException("逻辑非配错误,请检查代码");
|
||||
}
|
||||
}
|
||||
basePointService.update(new UpdateWrapper<SchBasePoint>()
|
||||
.set("lock_type",StatusEnum.LOCK_ON.getCode()).set("task_id",task.getString("task_id")).eq("point_code",nextPoint));
|
||||
@@ -96,7 +103,20 @@ public class AgvInstService {
|
||||
schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode());
|
||||
schBaseTask.setUpdate_time(new Date());
|
||||
taskService.updateById(schBaseTask);
|
||||
};
|
||||
}
|
||||
|
||||
private String getParamByXml(Map<String, String> workprodure, FlowElement next, String nextPoint) {
|
||||
Object cacheLine = next.getParams().get("cacheLine");
|
||||
if (cacheLine instanceof String){
|
||||
nextPoint = (String) cacheLine;
|
||||
}
|
||||
if (cacheLine instanceof Map){
|
||||
nextPoint = ((Map<String, String>) cacheLine).get(workprodure.get("device_code").substring(0, workprodure.get("device_code").lastIndexOf("_")));
|
||||
}
|
||||
return nextPoint;
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
public FlowElement getFlowElement(JSONObject task,Map<String,String> workprodure){
|
||||
if (CollectionUtils.isEmpty(workprodure)){
|
||||
@@ -126,7 +146,7 @@ public class AgvInstService {
|
||||
//3.agv根据对应载具列表行进扫码匹配:匹配到对应物料则创建点对点任务
|
||||
public void empMatter(JSONObject task){
|
||||
//参数
|
||||
String targetDevice = task.getString("next_point_code");
|
||||
String targetDevice = task.getString("point_code2");
|
||||
String material_id = task.getString("material_id");
|
||||
SchBasePoint devicePoint = basePointService.getOne(new QueryWrapper<SchBasePoint>()
|
||||
.eq("point_code", targetDevice)
|
||||
@@ -157,12 +177,14 @@ public class AgvInstService {
|
||||
}
|
||||
|
||||
public String getCacheVehile(String cacheLine,String materialId){
|
||||
int count = taskService.count(new QueryWrapper<SchBaseTask>().eq("point_code2", cacheLine).lt("task_status", StatusEnum.TASK_FINISH.getCode()));
|
||||
String status = StringUtils.isBlank(materialId) ? StatusEnum.CACHE_VEL_EMT.getCode() : StatusEnum.CACHE_VEL_FULL.getCode();
|
||||
List<SchCachelineVehicle> vehicle = cachelineVehicleService.getCachelineVehicle(MapOf.of("vehicle_status", status, "material_id", materialId));
|
||||
if (vehicle.size()>0){
|
||||
if (vehicle.size()>count){
|
||||
return vehicle.stream().map(SchCachelineVehicle::getVehicle_code).collect(Collectors.joining(","));
|
||||
if (StringUtils.isNotEmpty(cacheLine)){
|
||||
int count = taskService.count(new QueryWrapper<SchBaseTask>().eq("point_code2", cacheLine).lt("task_status", StatusEnum.TASK_FINISH.getCode()));
|
||||
String status = StringUtils.isBlank(materialId) ? StatusEnum.CACHE_VEL_EMT.getCode() : StatusEnum.CACHE_VEL_FULL.getCode();
|
||||
List<SchCachelineVehicle> vehicle = cachelineVehicleService.getCachelineVehicle(MapOf.of("vehicle_status", status, "material_id", materialId));
|
||||
if (vehicle.size()>0){
|
||||
if (vehicle.size()>count){
|
||||
return vehicle.stream().map(SchCachelineVehicle::getVehicle_code).collect(Collectors.joining(","));
|
||||
}
|
||||
}
|
||||
}
|
||||
return "";
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
WHERE d.is_delete = 0
|
||||
ORDER BY
|
||||
device_code
|
||||
LIMIT 10
|
||||
LIMIT 200
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
@@ -6,6 +6,7 @@ import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.enums.AcsTaskEnum;
|
||||
import org.nl.common.enums.InterfaceLogType;
|
||||
@@ -18,11 +19,17 @@ import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.ext.acs.service.impl.AgvInstService;
|
||||
import org.nl.wms.product_manage.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.product_manage.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
||||
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder;
|
||||
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -31,7 +38,10 @@ import java.util.Map;
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SpeEmpTask extends AbstractAcsTask {
|
||||
|
||||
@Autowired
|
||||
private IPdmProduceWorkorderService workorderService;
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
@Autowired
|
||||
AgvInstService agvInstService;
|
||||
private final Map<String,SpeStatusHandler > SpeHandles= new HashMap<>();
|
||||
@@ -62,28 +72,33 @@ public class SpeEmpTask extends AbstractAcsTask {
|
||||
@Override
|
||||
@Transactional
|
||||
public String createTask(JSONObject param) {
|
||||
|
||||
//{"workorder_code":230523019,"device_code":"A1_TW_15_6_D","type":"1"}
|
||||
String point_code = param.getString("device_code");
|
||||
String quantity = param.getString("quantity");
|
||||
String type = param.getString("type");
|
||||
JSONObject order = WQLObject.getWQLObject("PDM_produce_workOrder").query("workorder_code = '" + param.getString("workorder_code") + "' and is_delete = 0 and workorder_status != "+StatusEnum.TASK_FINISH.getCode()).uniqueResult(0);
|
||||
Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code")));
|
||||
JSONArray chectIndDatabase = WQLObject.getWQLObject("SCH_BASE_Task").query((AcsTaskEnum.REQUEST_CALLTYPE_FULL.getCode().equals(type) ? "point_code1" : "point_code2") + "= '" + point_code + "' and task_status < " + StatusEnum.TASK_FINISH.getCode()).getResultJSONArray(0);
|
||||
if (ObjectUtil.isNotEmpty(chectIndDatabase)){
|
||||
Assert.notNull(order, String.format("设备%s存在未完成任务", param.getString("point_code")));
|
||||
|
||||
PdmProduceWorkorder one = workorderService.getOne(new QueryWrapper<PdmProduceWorkorder>()
|
||||
.eq("workorder_code", param.getString("workorder_code"))
|
||||
.lt("workorder_status", StatusEnum.TASK_FINISH.getCode()));
|
||||
Assert.notNull(one, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code")));
|
||||
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>()
|
||||
.eq("point_code2", point_code).lt("task_status", StatusEnum.TASK_FINISH.getCode())
|
||||
);
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException(String.format("设备%s存在未完成任务", param.getString("device_code")));
|
||||
}
|
||||
|
||||
JSONObject form = new JSONObject(MapOf.of("start_point_code","",
|
||||
"next_point_code",point_code,"return_point_code", "","vehicle_code",
|
||||
"","product_area",order.getString("product_area"),"quantity", quantity,"type",type,"material_id", order.getString("material_id")));
|
||||
"","product_area",one.getProduct_area(),"quantity", quantity,"type",type,"material_id", one.getMaterial_id()));
|
||||
String taskId = IdUtil.getSnowflake(1, 1).nextId() + "";
|
||||
|
||||
JSONObject task = packageParam(form, taskId);
|
||||
WQLObject.getWQLObject("SCH_BASE_Task").insert(task);
|
||||
taskService.save(task.toJavaObject(SchBaseTask.class));
|
||||
|
||||
try {
|
||||
pointConfirm(task);
|
||||
//下发
|
||||
}catch (Exception ex){
|
||||
log.error("SpeEmpTask#点位确认异常:{}",ex.getMessage());
|
||||
task.put("task_status", TaskStatusEnum.SURE_START_ERROR.getCode());
|
||||
task.put("remark",ex.getMessage());
|
||||
WQLObject.getWQLObject("sch_base_task").update(task);
|
||||
|
||||
@@ -6,6 +6,7 @@ import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.enums.AcsTaskEnum;
|
||||
import org.nl.common.enums.InterfaceLogType;
|
||||
@@ -19,11 +20,17 @@ import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.ext.acs.service.impl.AgvInstService;
|
||||
import org.nl.wms.product_manage.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.product_manage.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
||||
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder;
|
||||
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -32,11 +39,15 @@ import java.util.Map;
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SpeFullTask extends AbstractAcsTask {
|
||||
|
||||
@Autowired
|
||||
private IPdmProduceWorkorderService workorderService;
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
@Autowired
|
||||
AgvInstService agvInstService;
|
||||
|
||||
private final Map<String,SpeStatusHandler > SpeHandles= new HashMap<>();
|
||||
private static String OPT_NAME = "ACS回调# ";
|
||||
private static String OPT_NAME = "ACS回调# ";
|
||||
|
||||
|
||||
public SpeFullTask() {
|
||||
@@ -63,25 +74,29 @@ public class SpeFullTask extends AbstractAcsTask {
|
||||
@Override
|
||||
@Transactional
|
||||
public String createTask(JSONObject param) {
|
||||
|
||||
//{"quantity":5,"workorder_code":230523019,"device_code":"A1_TW_15_6_M","type":"2"}
|
||||
String point_code = param.getString("device_code");
|
||||
String quantity = param.getString("quantity");
|
||||
String type = param.getString("type");
|
||||
JSONObject order = WQLObject.getWQLObject("PDM_produce_workOrder").query("workorder_code = '" + param.getString("workorder_code") + "' and is_delete = 0 and workorder_status != "+StatusEnum.TASK_FINISH.getCode()).uniqueResult(0);
|
||||
PdmProduceWorkorder order = workorderService.getOne(new QueryWrapper<PdmProduceWorkorder>()
|
||||
.eq("workorder_code", param.getString("workorder_code"))
|
||||
.eq("is_delete", false)
|
||||
.lt("workorder_status", StatusEnum.TASK_FINISH.getCode()));
|
||||
Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code")));
|
||||
JSONArray chectIndDatabase = WQLObject.getWQLObject("SCH_BASE_Task").query((AcsTaskEnum.REQUEST_CALLTYPE_FULL.getCode().equals(type) ? "point_code1" : "point_code2") + "= '" + point_code + "' and task_status < " + StatusEnum.TASK_FINISH.getCode()).getResultJSONArray(0);
|
||||
if (ObjectUtil.isNotEmpty(chectIndDatabase)){
|
||||
Assert.notNull(order, String.format("设备%s存在未完成任务", param.getString("point_code")));
|
||||
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>()
|
||||
.eq("point_code1", point_code).lt("task_status", StatusEnum.TASK_FINISH.getCode())
|
||||
);
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException(String.format("设备%s存在未完成任务", param.getString("device_code")));
|
||||
}
|
||||
JSONObject empPoint = WQL.getWO("sch_point").addParamMap(MapOf.of("flag", "2", "point_code", point_code, "point_type", StatusEnum.POINT_LOCATION_EMP.getCode())).process().uniqueResult(0);
|
||||
JSONObject form = new JSONObject(MapOf.of("start_point_code",point_code,
|
||||
"next_point_code","","return_point_code", empPoint.getString("point_code"),"vehicle_code",
|
||||
"","product_area",order.getString("product_area"),"quantity", quantity,"type",type,"material_id", order.getString("material_id")));
|
||||
"","product_area",order.getProduct_area(),"quantity", quantity,"type",type,"material_id", order.getProduct_area()));
|
||||
|
||||
String taskId = IdUtil.getSnowflake(1, 1).nextId() + "";
|
||||
JSONObject task = packageParam(form, taskId);
|
||||
WQLObject.getWQLObject("SCH_BASE_Task").insert(task);
|
||||
|
||||
taskService.save(task.toJavaObject(SchBaseTask.class));
|
||||
try {
|
||||
pointConfirm(task);
|
||||
//下发
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
WHERE
|
||||
device.is_delete = '0'
|
||||
<if test="workprocedure_id != null and workprocedure_id != ''">
|
||||
device.workprocedure_id = #{workprocedure_id}
|
||||
and device.workprocedure_id = #{workprocedure_id}
|
||||
</if>
|
||||
and device.device_code not in (
|
||||
select o.device_code as device_code
|
||||
|
||||
@@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import io.jsonwebtoken.lang.Assert;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.nl.common.TableDataInfo;
|
||||
@@ -63,6 +64,7 @@ import java.util.stream.Collectors;
|
||||
* @since 2023-04-26
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorkorderMapper, PdmProduceWorkorder> implements IPdmProduceWorkorderService {
|
||||
@Autowired
|
||||
private IMdPbClassstandardService classstandardService;
|
||||
@@ -179,9 +181,9 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
String workorder_id = param.getJSONObject("row").getString("workorder_id");
|
||||
this.update(new UpdateWrapper<PdmProduceWorkorder>()
|
||||
.set("workorder_status", WorkerOrderEnum.FORCE_COMPLETE.getCode())
|
||||
.set("update_id", SecurityUtils.getCurrentUserId())
|
||||
.set("update_name", SecurityUtils.getCurrentNickName())
|
||||
.set("update_time", new Date())
|
||||
.set("confirm_id", SecurityUtils.getCurrentUserId())
|
||||
.set("confirm_name", SecurityUtils.getCurrentNickName())
|
||||
.set("confirm_time", new Date())
|
||||
.in("workorder_id", workorder_id));
|
||||
JSONArray array = new JSONArray();
|
||||
JSONObject map = new JSONObject();
|
||||
@@ -190,7 +192,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
array.add(map);
|
||||
Map<String, Object> result = wmsToAcsService.orderStatusUpdate(array);
|
||||
if (!HttpStatus.OK.equals(result.get("status"))) {
|
||||
throw new BadRequestException((String) result.get("message"));
|
||||
log.error((String) result.get("message"));
|
||||
}
|
||||
this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, workorder_id);
|
||||
}
|
||||
@@ -525,8 +527,8 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
if (((int) resp.get("status")) == (HttpStatus.BAD_REQUEST.value())) {
|
||||
throw new BadRequestException(String.valueOf(resp.get("message")));
|
||||
}
|
||||
workOrder.setReal_qty(null);
|
||||
this.update(workOrder, new QueryWrapper<PdmProduceWorkorder>().eq("workorder_id", param.getString("workorder_id")));
|
||||
this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, result.getWorkorder_id());
|
||||
|
||||
return RestBusinessTemplate.execute(() -> resp);
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
FROM
|
||||
sch_cacheline_vehilematerial v
|
||||
LEFT JOIN sch_cacheline_position p ON p.vehicle_code = v.vehicle_code
|
||||
WHERE p.vehicle_code <> '' and
|
||||
WHERE p.vehicle_code <![CDATA[<>]]> '' and
|
||||
v.vehicle_status = #{vehicle_status}
|
||||
<if test="material_id != null and material_id != ''">
|
||||
v.material_id = #{material_id}
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
</select>
|
||||
<select id="getDeviceWorkprodure" resultType="java.util.Map">
|
||||
select
|
||||
r.workprocedure_code,r.workprocedure_id from pdm_bi_device dev
|
||||
r.workprocedure_code,r.workprocedure_id,p.device_code from pdm_bi_device dev
|
||||
LEFT join sch_base_point p on p.device_code = dev.device_code
|
||||
LEFT JOIN pdm_bi_workprocedure r on dev.workprocedure_id = r.workprocedure_id
|
||||
where p.point_code = #{pointCode};
|
||||
|
||||
@@ -4,6 +4,7 @@ import lombok.SneakyThrows;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.BaseConverter;
|
||||
import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.BaseElement;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.xml.stream.XMLStreamConstants;
|
||||
@@ -19,6 +20,9 @@ import java.util.Map;
|
||||
*/
|
||||
@Service("flow")
|
||||
public class FlowConverter implements BaseConverter {
|
||||
@Autowired
|
||||
ParamConverter paramConverter;
|
||||
|
||||
String[] labels = new String[]{"id","name","sourceRef","targetRef"};
|
||||
@Override
|
||||
@SneakyThrows
|
||||
@@ -35,8 +39,8 @@ public class FlowConverter implements BaseConverter {
|
||||
break;
|
||||
}
|
||||
if (XMLStreamConstants.START_ELEMENT == xtr.next()){
|
||||
System.out.println(xtr.getLocalName());
|
||||
element.getParams().put(xtr.getAttributeValue(null,"id"),xtr.getAttributeValue(null,"value"));
|
||||
ParamElement process = (ParamElement)paramConverter.process(xtr);
|
||||
element.getParams().put(process.getId(),process.getValue());
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ public class FlowElement extends BaseElement {
|
||||
private FlowElement targetRef;
|
||||
private String sourceRefId;
|
||||
private String targetRefId;
|
||||
private Map<String,String> params = new HashMap<>();
|
||||
private Map<String,Object> params = new HashMap<>();
|
||||
|
||||
|
||||
|
||||
@@ -55,11 +55,11 @@ public class FlowElement extends BaseElement {
|
||||
this.targetRefId = targetRefId;
|
||||
}
|
||||
|
||||
public Map<String, String> getParams() {
|
||||
public Map<String, Object> getParams() {
|
||||
return params;
|
||||
}
|
||||
|
||||
public void setParams(Map<String, String> params) {
|
||||
public void setParams(Map<String, Object> params) {
|
||||
this.params = params;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
package org.nl.wms.scheduler_manage.service.scheduler.labelConverter.impl;
|
||||
|
||||
import lombok.SneakyThrows;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.BaseConverter;
|
||||
import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.BaseElement;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.xml.stream.XMLStreamConstants;
|
||||
import javax.xml.stream.XMLStreamReader;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2023/5/19 11:00
|
||||
*/
|
||||
@Service("param")
|
||||
public class ParamConverter implements BaseConverter {
|
||||
String[] labels = new String[]{"id","value"};
|
||||
@Override
|
||||
@SneakyThrows
|
||||
public BaseElement process(XMLStreamReader xtr) {
|
||||
ParamElement element = new ParamElement();
|
||||
setBaseLabel(element,xtr,labels);
|
||||
element.setValue(xtr.getAttributeValue(null,"value"));
|
||||
String has = xtr.getAttributeValue(null, "has");
|
||||
if (StringUtils.isNotEmpty(has)){
|
||||
int i = 0;
|
||||
while (true){
|
||||
if (i == Integer.valueOf(has)){
|
||||
break;
|
||||
}
|
||||
if (XMLStreamConstants.START_ELEMENT == xtr.next()){
|
||||
element.getItem().put(xtr.getAttributeValue(null,"id"),xtr.getAttributeValue(null,"value"));
|
||||
i++;
|
||||
}
|
||||
}
|
||||
element.setValue(element.getItem());
|
||||
}
|
||||
return element;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package org.nl.wms.scheduler_manage.service.scheduler.labelConverter.impl;
|
||||
|
||||
import lombok.Data;
|
||||
import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.BaseElement;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2023/5/21 18:03
|
||||
*/
|
||||
@Data
|
||||
public class ParamElement extends BaseElement {
|
||||
private Object value;
|
||||
private Map<String,String> item = new HashMap<>();
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user