fix:取消任务时更新库存;opt:日志优化
This commit is contained in:
@@ -70,33 +70,23 @@ public class LuceneLogServiceImpl implements LuceneLogService {
|
|||||||
FSDirectory directory = FSDirectory.open(Paths.get(indexUrl));
|
FSDirectory directory = FSDirectory.open(Paths.get(indexUrl));
|
||||||
DirectoryReader open = DirectoryReader.open(directory);
|
DirectoryReader open = DirectoryReader.open(directory);
|
||||||
IndexSearcher searcher = new IndexSearcher(open);
|
IndexSearcher searcher = new IndexSearcher(open);
|
||||||
//标准分词器,会自动去掉空格啊,is a the等单词
|
|
||||||
Analyzer analyzer = new IKAnalyzer(true);
|
|
||||||
|
|
||||||
// 实际上Lucene本身不支持分页。因此我们需要自己进行逻辑分页。我们要准备分页参数:
|
|
||||||
// 每页条数
|
|
||||||
int pageSize = logQuery.getSize();
|
|
||||||
int pageNum = logQuery.getPage()-1;
|
|
||||||
// 当前页的起始条数
|
|
||||||
// 创建排序对象,需要排序字段SortField,参数:字段的名称、字段的类型、是否反转如果是false,升序。true降序
|
// 创建排序对象,需要排序字段SortField,参数:字段的名称、字段的类型、是否反转如果是false,升序。true降序
|
||||||
Sort sort = new Sort(new SortField("time", SortField.Type.LONG,true));
|
|
||||||
|
|
||||||
TopDocs docs = null;
|
|
||||||
BooleanQuery.Builder booleanQueryBuilder = new BooleanQuery.Builder();
|
BooleanQuery.Builder booleanQueryBuilder = new BooleanQuery.Builder();
|
||||||
//时间范围查询
|
//时间范围查询
|
||||||
Date startDate = logQuery.getStartTime();
|
Date startDate = logQuery.getStartTime();
|
||||||
Date endDate = logQuery.getEndTime();
|
Date endDate = logQuery.getEndTime();
|
||||||
|
|
||||||
|
if (startDate == null){
|
||||||
Calendar calendar=Calendar.getInstance();
|
Calendar calendar=Calendar.getInstance();
|
||||||
calendar.set(1970, 0, 1);
|
calendar.set(1970, 0, 1);
|
||||||
if (startDate == null){ startDate = calendar.getTime(); }
|
startDate = calendar.getTime(); }
|
||||||
if (endDate == null){ endDate = new DateTime(); }
|
if (endDate == null){ endDate = new DateTime(); }
|
||||||
|
|
||||||
TermRangeQuery termRangeQuery = new TermRangeQuery(
|
TermRangeQuery termRangeQuery = new TermRangeQuery(
|
||||||
"requestTime",
|
"requestTime",
|
||||||
new BytesRef(DateUtil.format(startDate, "yyyy-MM-dd HH:mm:ss.SSS")),
|
new BytesRef(DateUtil.format(startDate, "yyyy-MM-dd HH:mm:ss.SSS")),
|
||||||
new BytesRef(DateUtil.format(endDate, "yyyy-MM-dd HH:mm:ss.SSS")), true, true);
|
new BytesRef(DateUtil.format(endDate, "yyyy-MM-dd HH:mm:ss.SSS")), true, true);
|
||||||
booleanQueryBuilder.add(termRangeQuery,BooleanClause.Occur.MUST);
|
booleanQueryBuilder.add(termRangeQuery,BooleanClause.Occur.MUST);
|
||||||
|
|
||||||
// 字段之间的与或非关系,MUST表示and,MUST_NOT表示not,SHOULD表示or,有几个fields就必须有几个clauses
|
// 字段之间的与或非关系,MUST表示and,MUST_NOT表示not,SHOULD表示or,有几个fields就必须有几个clauses
|
||||||
if (ObjectUtil.isNotEmpty(logQuery.getTraceId())){
|
if (ObjectUtil.isNotEmpty(logQuery.getTraceId())){
|
||||||
TermQuery termQuery = new TermQuery(new Term("traceId", logQuery.getTraceId()));
|
TermQuery termQuery = new TermQuery(new Term("traceId", logQuery.getTraceId()));
|
||||||
@@ -114,7 +104,6 @@ public class LuceneLogServiceImpl implements LuceneLogService {
|
|||||||
TermQuery termQuery = new TermQuery(new Term("requestMethod", logQuery.getRequestMethod()));
|
TermQuery termQuery = new TermQuery(new Term("requestMethod", logQuery.getRequestMethod()));
|
||||||
booleanQueryBuilder.add(termQuery, BooleanClause.Occur.MUST);
|
booleanQueryBuilder.add(termQuery, BooleanClause.Occur.MUST);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Boolean.TRUE.equals(logQuery.getIsRequest())) {
|
if (Boolean.TRUE.equals(logQuery.getIsRequest())) {
|
||||||
Term traceid = new Term("traceId");
|
Term traceid = new Term("traceId");
|
||||||
TermQuery termQuery = new TermQuery(traceid);
|
TermQuery termQuery = new TermQuery(traceid);
|
||||||
@@ -122,23 +111,18 @@ public class LuceneLogServiceImpl implements LuceneLogService {
|
|||||||
}
|
}
|
||||||
if (ObjectUtil.isNotEmpty(logQuery.getMessage())){
|
if (ObjectUtil.isNotEmpty(logQuery.getMessage())){
|
||||||
//查询解析器
|
//查询解析器
|
||||||
QueryParser queryParser = new QueryParser("message", analyzer);
|
QueryParser queryParser = new QueryParser("message", new IKAnalyzer(true));
|
||||||
Query query = queryParser.parse(logQuery.getMessage());
|
Query query = queryParser.parse(logQuery.getMessage());
|
||||||
booleanQueryBuilder.add(query, BooleanClause.Occur.MUST);
|
booleanQueryBuilder.add(query, BooleanClause.Occur.MUST);
|
||||||
}
|
}
|
||||||
List<LogRepositoryDTO> list = new ArrayList<>();
|
|
||||||
|
|
||||||
TopFieldCollector collector = TopFieldCollector.create(sort, 100000, 0);
|
|
||||||
BooleanQuery build = booleanQueryBuilder.build();
|
|
||||||
searcher.search(build, collector);
|
|
||||||
TopDocs topDocs = collector.topDocs(pageNum*pageSize, pageSize);
|
|
||||||
long total = open.numDocs();
|
|
||||||
if (build.clauses().size()>2){
|
|
||||||
docs = searcher.search(build,1);
|
|
||||||
total = docs.totalHits.value;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
TopFieldCollector collector = TopFieldCollector.create(new Sort(new SortField("time", SortField.Type.LONG,true)), 20000, 0);
|
||||||
|
searcher.search(booleanQueryBuilder.build(), collector);
|
||||||
|
TopDocs topDocs = collector.topDocs((logQuery.getPage()-1)*logQuery.getSize(), logQuery.getSize());
|
||||||
|
int totalSize = collector.getTotalHits();
|
||||||
ScoreDoc[] scoreDocs = topDocs.scoreDocs;
|
ScoreDoc[] scoreDocs = topDocs.scoreDocs;
|
||||||
|
|
||||||
|
List<LogRepositoryDTO> list = new ArrayList<>();
|
||||||
for (ScoreDoc scoreDoc : scoreDocs) {
|
for (ScoreDoc scoreDoc : scoreDocs) {
|
||||||
Document doc = open.document(scoreDoc.doc);
|
Document doc = open.document(scoreDoc.doc);
|
||||||
LogRepositoryDTO dto = new LogRepositoryDTO();
|
LogRepositoryDTO dto = new LogRepositoryDTO();
|
||||||
@@ -157,7 +141,7 @@ public class LuceneLogServiceImpl implements LuceneLogService {
|
|||||||
directory.close();
|
directory.close();
|
||||||
page.addAll(list);
|
page.addAll(list);
|
||||||
page.setTotal(scoreDocs.length);
|
page.setTotal(scoreDocs.length);
|
||||||
res.put("total",total);
|
res.put("total", totalSize);
|
||||||
}catch (Exception ex){
|
}catch (Exception ex){
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,11 @@
|
|||||||
package org.nl.wms.ext_manage.acs.service.impl;
|
package org.nl.wms.ext_manage.acs.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.http.HttpRequest;
|
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
//import org.apache.http.HttpResponse;
|
|
||||||
import org.nl.common.enums.StatusEnum;
|
import org.nl.common.enums.StatusEnum;
|
||||||
import org.nl.common.utils.AcsUtil;
|
import org.nl.common.utils.AcsUtil;
|
||||||
import org.nl.common.utils.IdUtil;
|
import org.nl.common.utils.IdUtil;
|
||||||
@@ -19,7 +16,6 @@ import org.nl.wms.system_manage.service.param.impl.SysParamServiceImpl;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.Future;
|
|
||||||
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@@ -57,6 +53,36 @@ public class WmsToAcsServiceImpl implements WmsToAcsService{
|
|||||||
return AcsUtil.notifyAcs(api, form);
|
return AcsUtil.notifyAcs(api, form);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Map<String, Object> staticIssueTaskToAcs(JSONArray arr) {
|
||||||
|
JSONArray form = new JSONArray();
|
||||||
|
for (Object o : arr) {
|
||||||
|
JSONObject task = (JSONObject) o;
|
||||||
|
if (task.get("is_send")==null){
|
||||||
|
task.put("is_send",true);
|
||||||
|
}
|
||||||
|
JSONObject param = new JSONObject(MapOf.of("task_id", task.getString("task_id")
|
||||||
|
, "task_type", task.getString("acs_task_type")//垃圾
|
||||||
|
, "task_code", task.getString("task_code")
|
||||||
|
, "start_point_code", task.getString("point_code1")//起点
|
||||||
|
, "put_point_code", task.getString("point_code2")//到料
|
||||||
|
, "next_point_code", task.getString("point_code3")//空盘返回点
|
||||||
|
, "task_group_id", StringUtils.isBlank(task.getString("task_group_id"))? IdUtil.getStringId():task.getString("task_group_id")
|
||||||
|
, "priority", task.getString("priority")
|
||||||
|
, "is_send", task.getBoolean("is_send")?"1":"0"
|
||||||
|
, "vehicle_code", task.getString("vehicle_code")
|
||||||
|
, "quantity", task.getString("material_qty")
|
||||||
|
, "barcodeArr", task.getString("barcodeArr")
|
||||||
|
, "qtyArr", task.getString("qtyArr")
|
||||||
|
, "priority_floor", "0"
|
||||||
|
, "in_pcsn", task.getString("task_code")
|
||||||
|
, "agv_system_type", task.getString("agv_system_type")
|
||||||
|
));
|
||||||
|
form.add(param);
|
||||||
|
}
|
||||||
|
String api = "api/wms/task";
|
||||||
|
return AcsUtil.notifyAcs(api, form);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> issueTaskToAcs2(JSONArray arr) {
|
public Map<String, Object> issueTaskToAcs2(JSONArray arr) {
|
||||||
JSONArray form = new JSONArray();
|
JSONArray form = new JSONArray();
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package org.nl.wms.scheduler_manage.service.task.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
@@ -10,15 +11,15 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.common.enums.AcsTaskEnum;
|
import org.nl.common.enums.AcsTaskEnum;
|
||||||
import org.nl.common.enums.StatusEnum;
|
import org.nl.common.enums.StatusEnum;
|
||||||
|
import org.nl.common.publish.BussEventMulticaster;
|
||||||
|
import org.nl.common.publish.event.TaskEvent;
|
||||||
import org.nl.common.utils.IdUtil;
|
import org.nl.common.utils.IdUtil;
|
||||||
import org.nl.common.utils.MapOf;
|
import org.nl.common.utils.MapOf;
|
||||||
import org.nl.common.utils.RedissonUtils;
|
import org.nl.common.utils.RedissonUtils;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.modules.system.util.CodeUtil;
|
import org.nl.modules.system.util.CodeUtil;
|
||||||
import org.nl.modules.wql.core.bean.WQLObject;
|
|
||||||
import org.nl.modules.wql.util.SpringContextHolder;
|
import org.nl.modules.wql.util.SpringContextHolder;
|
||||||
import org.nl.wms.ext_manage.acs.service.AcsToWmsService;
|
|
||||||
import org.nl.wms.ext_manage.acs.service.impl.WmsToAcsServiceImpl;
|
import org.nl.wms.ext_manage.acs.service.impl.WmsToAcsServiceImpl;
|
||||||
import org.nl.wms.scheduler_manage.service.extendtask.manage.AbstractAcsTask;
|
import org.nl.wms.scheduler_manage.service.extendtask.manage.AbstractAcsTask;
|
||||||
import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum;
|
import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum;
|
||||||
@@ -29,7 +30,6 @@ import org.nl.wms.scheduler_manage.service.task.dao.mapper.SchBaseTaskMapper;
|
|||||||
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Lazy;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@@ -50,9 +50,6 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISchBasePointService pointService;
|
private ISchBasePointService pointService;
|
||||||
@Autowired
|
|
||||||
@Lazy
|
|
||||||
private AcsToWmsService acsToWmsService;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Map> queryAll(Map query) {
|
public List<Map> queryAll(Map query) {
|
||||||
@@ -65,71 +62,38 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void operation(Map<String, Object> map) {
|
public void operation(Map<String, Object> map) {
|
||||||
WmsToAcsServiceImpl wms = new WmsToAcsServiceImpl();
|
|
||||||
String task_id = MapUtil.getStr(map, "task_id");
|
|
||||||
RedissonUtils.lock(()->{
|
RedissonUtils.lock(()->{
|
||||||
String method_name = MapUtil.getStr(map, "method_name");
|
SchBaseTask task = this.getOne(new QueryWrapper<SchBaseTask>().eq("task_id", MapUtil.getStr(map, "task_id")));
|
||||||
SchBaseTask taskObj = this.getOne(new QueryWrapper<SchBaseTask>().eq("task_id", task_id));
|
String acs_task_status = null;
|
||||||
switch (method_name) { // forceFinish, cancel
|
switch (MapUtil.getStr(map, "method_name")) {
|
||||||
case "immediateNotifyAcs":
|
case "immediateNotifyAcs":
|
||||||
if (Integer.valueOf(taskObj.getTask_status())<Integer.valueOf(TaskStatusEnum.EXECUTING.getCode())){
|
sendTask(task);
|
||||||
try {
|
|
||||||
if (taskObj.getHandle_class()!=null){
|
|
||||||
AbstractAcsTask taskHandler = (AbstractAcsTask) SpringContextHolder.getBean(Class.forName(taskObj.getHandle_class()));
|
|
||||||
taskHandler.pointConfirm((JSONObject) JSONObject.toJSON(taskObj));
|
|
||||||
}
|
|
||||||
SchBaseTask task = this.getOne(new QueryWrapper<SchBaseTask>().eq("task_id", task_id));
|
|
||||||
JSONArray array = new JSONArray();
|
|
||||||
array.add(JSON.toJSON(task));
|
|
||||||
Map<String, Object> result = wms.issueTaskToAcs(array);
|
|
||||||
String status = String.valueOf(result.get("status"));
|
|
||||||
if (!status.equals("200")) {
|
|
||||||
throw new BadRequestException(result.get("message") != null ? String.valueOf(result.get("message")) : "acs反馈异常");
|
|
||||||
}
|
|
||||||
this.update(new UpdateWrapper<SchBaseTask>()
|
|
||||||
.set("task_status",StatusEnum.TASK_PUBLISH.getCode())
|
|
||||||
.eq("task_id",task_id));
|
|
||||||
}catch (Exception ex){
|
|
||||||
taskObj.setTask_status(StatusEnum.TASK_START_ERROR.getCode());
|
|
||||||
taskObj.setRemark(ex.getMessage());
|
|
||||||
taskObj.setUpdate_time(new Date());
|
|
||||||
if (StringUtils.isNotEmpty(taskObj.getPoint_code1())|| StringUtils.isNotEmpty(taskObj.getPoint_code2())){
|
|
||||||
pointService.update(new UpdateWrapper<SchBasePoint>()
|
|
||||||
.set("lock_type",StatusEnum.LOCK_OFF.getCode())
|
|
||||||
.in("point_code",taskObj.getPoint_code1(),taskObj.getPoint_code2()));
|
|
||||||
}
|
|
||||||
this.updateById(taskObj);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case "forceFinish":
|
case "forceFinish":
|
||||||
JSONArray finish = new JSONArray();
|
acs_task_status = finish(task);
|
||||||
JSONObject res = new JSONObject();
|
|
||||||
res.put("task_id", task_id);
|
|
||||||
res.put("status", AcsTaskEnum.STATUS_FINISH.getCode());
|
|
||||||
res.put("finished_type", AcsTaskEnum.MANUAL_TASK_FINISHED_TYPE.getCode()); // 手动完成
|
|
||||||
finish.add(res);
|
|
||||||
this.update(new UpdateWrapper<SchBaseTask>()
|
|
||||||
.set("task_status",StatusEnum.TASK_FINISH.getCode())
|
|
||||||
.eq("task_id", task_id));
|
|
||||||
acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(finish));
|
|
||||||
break;
|
break;
|
||||||
case "cancel":
|
case "cancel":
|
||||||
if (taskObj.getTask_status().equals(StatusEnum.TASK_RUNNING.getCode())||taskObj.getTask_status().equals(StatusEnum.TASK_CANNEL.getCode())){
|
acs_task_status = cancel(task);
|
||||||
JSONArray cancel = new JSONArray();
|
|
||||||
JSONObject res2 = new JSONObject();
|
|
||||||
res2.put("task_id", task_id);
|
|
||||||
res2.put("status", AcsTaskEnum.STATUS_CANNEL.getCode());
|
|
||||||
cancel.add(res2);
|
|
||||||
acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(cancel));
|
|
||||||
}else {
|
|
||||||
WQLObject taskTable = WQLObject.getWQLObject("sch_base_task");
|
|
||||||
taskTable.update(MapOf.of("task_status",StatusEnum.TASK_CANNEL.getCode()),"task_id = '"+task_id+"'");
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case "delete":
|
case "delete":
|
||||||
SchBaseTask one = getOne(new QueryWrapper<SchBaseTask>().eq("task_id", task_id));
|
delete(task);
|
||||||
int status = Integer.valueOf(one.getTask_status());
|
break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
if (acs_task_status!=null){
|
||||||
|
TaskEvent event = TaskEvent.builder()
|
||||||
|
.task_id(task.getTask_id())
|
||||||
|
.task_type(task.getTask_type())
|
||||||
|
.status(acs_task_status)
|
||||||
|
.extParam(null)
|
||||||
|
.build();
|
||||||
|
BussEventMulticaster.Publish(event);
|
||||||
|
}
|
||||||
|
},MapUtil.getStr(map, "task_id"),null);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void delete(SchBaseTask task) {
|
||||||
|
int status = Integer.valueOf(task.getTask_status());
|
||||||
//判断如果在3个状态之内,更新操作
|
//判断如果在3个状态之内,更新操作
|
||||||
int tag = 1 << StatusEnum.TASK_CANNEL.getBit()
|
int tag = 1 << StatusEnum.TASK_CANNEL.getBit()
|
||||||
| 1 << StatusEnum.TASK_CREATE.getBit()
|
| 1 << StatusEnum.TASK_CREATE.getBit()
|
||||||
@@ -138,14 +102,90 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
if ((tag &~ 1 << status) != tag){
|
if ((tag &~ 1 << status) != tag){
|
||||||
this.update(new UpdateWrapper<SchBaseTask>()
|
this.update(new UpdateWrapper<SchBaseTask>()
|
||||||
.set("is_delete",true)
|
.set("is_delete",true)
|
||||||
.eq("task_id", task_id));
|
.eq("task_id", task.getTask_id()));
|
||||||
}else {
|
}else {
|
||||||
throw new BadRequestException("任务已经下发不允许直接删除");
|
throw new BadRequestException("任务已经下发不允许直接删除");
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
default: break;
|
|
||||||
}
|
}
|
||||||
},task_id,null);
|
|
||||||
|
private String cancel(SchBaseTask task) {
|
||||||
|
if (task.getTask_status().equals(StatusEnum.TASK_RUNNING.getCode())){
|
||||||
|
try {
|
||||||
|
if (ObjectUtil.isNotEmpty(task.getHandle_class())) {
|
||||||
|
AbstractAcsTask taskHandler = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(task.getHandle_class()));
|
||||||
|
if (taskHandler!=null){
|
||||||
|
taskHandler.updateTaskStatus(new JSONObject(MapOf.of("task_id",task.getTask_id(),"status",AcsTaskEnum.STATUS_CANNEL.getCode())),AcsTaskEnum.STATUS_CANNEL.getCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.update(new UpdateWrapper<SchBaseTask>()
|
||||||
|
.set("task_status",StatusEnum.TASK_CANNEL.getCode())
|
||||||
|
.eq("task_id", task.getTask_id()));
|
||||||
|
return AcsTaskEnum.STATUS_CANNEL.getCode();
|
||||||
|
} catch (Exception ex) {
|
||||||
|
task.setRemark(ex.getMessage());
|
||||||
|
task.setUpdate_time(new Date());
|
||||||
|
this.updateById(task);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
this.update(new UpdateWrapper<SchBaseTask>()
|
||||||
|
.set("task_status",StatusEnum.TASK_CANNEL.getCode())
|
||||||
|
.eq("task_id", task.getTask_id()));
|
||||||
|
}
|
||||||
|
return AcsTaskEnum.STATUS_CANNEL.getCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
private String finish(SchBaseTask task) {
|
||||||
|
if (!task.getTask_status().equals(StatusEnum.TASK_FINISH.getCode())){
|
||||||
|
try {
|
||||||
|
if (ObjectUtil.isNotEmpty(task.getHandle_class())) {
|
||||||
|
AbstractAcsTask taskHandler = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(task.getHandle_class()));
|
||||||
|
if (taskHandler!=null){
|
||||||
|
taskHandler.updateTaskStatus(new JSONObject(MapOf.of("task_id",task.getTask_id(),"status",AcsTaskEnum.STATUS_FINISH.getCode())),AcsTaskEnum.STATUS_FINISH.getCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.update(new UpdateWrapper<SchBaseTask>()
|
||||||
|
.set("task_status",StatusEnum.TASK_PUBLISH.getCode())
|
||||||
|
.eq("task_id", task.getTask_id()));
|
||||||
|
return AcsTaskEnum.STATUS_FINISH.getCode();
|
||||||
|
} catch (Exception ex) {
|
||||||
|
task.setRemark(ex.getMessage());
|
||||||
|
task.setUpdate_time(new Date());
|
||||||
|
this.updateById(task);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendTask(SchBaseTask task) {
|
||||||
|
if (Integer.valueOf(task.getTask_status())<Integer.valueOf(TaskStatusEnum.EXECUTING.getCode())){
|
||||||
|
try {
|
||||||
|
if (task.getHandle_class()!=null){
|
||||||
|
AbstractAcsTask taskHandler = (AbstractAcsTask) SpringContextHolder.getBean(Class.forName(task.getHandle_class()));
|
||||||
|
taskHandler.pointConfirm((JSONObject) JSONObject.toJSON(task));
|
||||||
|
}
|
||||||
|
JSONArray array = new JSONArray();
|
||||||
|
array.add(JSON.toJSON(task));
|
||||||
|
Map<String, Object> result = WmsToAcsServiceImpl.staticIssueTaskToAcs(array);
|
||||||
|
String status = String.valueOf(result.get("status"));
|
||||||
|
if (!status.equals("200")) {
|
||||||
|
throw new BadRequestException(result.get("message") != null ? String.valueOf(result.get("message")) : "acs反馈异常");
|
||||||
|
}
|
||||||
|
this.update(new UpdateWrapper<SchBaseTask>()
|
||||||
|
.set("task_status",StatusEnum.TASK_PUBLISH.getCode())
|
||||||
|
.eq("task_id", task.getTask_id()));
|
||||||
|
}catch (Exception ex){
|
||||||
|
task.setTask_status(StatusEnum.TASK_START_ERROR.getCode());
|
||||||
|
task.setRemark(ex.getMessage());
|
||||||
|
task.setUpdate_time(new Date());
|
||||||
|
if (StringUtils.isNotEmpty(task.getPoint_code1())|| StringUtils.isNotEmpty(task.getPoint_code2())){
|
||||||
|
pointService.update(new UpdateWrapper<SchBasePoint>()
|
||||||
|
.set("lock_type",StatusEnum.LOCK_OFF.getCode())
|
||||||
|
.in("point_code", task.getPoint_code1(), task.getPoint_code2()));
|
||||||
|
}
|
||||||
|
this.updateById(task);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -872,12 +872,13 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
// 取消任务
|
// 取消任务
|
||||||
StIvtIostorinvdisCp disDao = iostorinvdisCpService.getOne(new QueryWrapper<StIvtIostorinvdisCp>().lambda()
|
StIvtIostorinvdisCp disDao = iostorinvdisCpService.getOne(new QueryWrapper<StIvtIostorinvdisCp>().lambda()
|
||||||
.eq(StIvtIostorinvdisCp::getTask_id, task_id),false);
|
.eq(StIvtIostorinvdisCp::getTask_id, task_id),false);
|
||||||
|
if (disDao!=null){
|
||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
param.put("iostorinvdis_id",disDao.getIostorinvdis_id());
|
param.put("iostorinvdis_id",disDao.getIostorinvdis_id());
|
||||||
delTask(param);
|
delTask(param);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
|||||||
@@ -116,7 +116,7 @@
|
|||||||
</logger>
|
</logger>
|
||||||
</springProfile>
|
</springProfile>
|
||||||
<springProfile name="prod">
|
<springProfile name="prod">
|
||||||
<root level="debug">
|
<root level="info">
|
||||||
<appender-ref ref="CONSOLE"/>
|
<appender-ref ref="CONSOLE"/>
|
||||||
<appender-ref ref="asyncLuceneAppender"/>
|
<appender-ref ref="asyncLuceneAppender"/>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
Reference in New Issue
Block a user