rev:任务下发
This commit is contained in:
@@ -19,6 +19,7 @@ import java.util.Map;
|
|||||||
public class PointEvent<T> extends PublishEvent {
|
public class PointEvent<T> extends PublishEvent {
|
||||||
|
|
||||||
private String type;
|
private String type;
|
||||||
|
private String acs_task_type;
|
||||||
private String point_code1;
|
private String point_code1;
|
||||||
private String point_code2;
|
private String point_code2;
|
||||||
private String vehicle_code;
|
private String vehicle_code;
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ public interface WmsToAcsService {
|
|||||||
|
|
||||||
Map<String, Object> issueTaskToAcs(JSONArray arr);
|
Map<String, Object> issueTaskToAcs(JSONArray arr);
|
||||||
Map<String, Object> issueTaskToAcs2(JSONArray arr);
|
Map<String, Object> issueTaskToAcs2(JSONArray arr);
|
||||||
|
Map<String, Object> issueTaskToAcs3(JSONArray arr);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* WMS客户端--->ACS服务端
|
* WMS客户端--->ACS服务端
|
||||||
|
|||||||
@@ -138,11 +138,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{
|
|||||||
String status = row.getString("status");
|
String status = row.getString("status");
|
||||||
// 任务处理类
|
// 任务处理类
|
||||||
try {
|
try {
|
||||||
|
if (ObjectUtil.isNotEmpty(processing_class)) {
|
||||||
AbstractAcsTask taskHandler = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(processing_class));
|
AbstractAcsTask taskHandler = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(processing_class));
|
||||||
if (taskHandler!=null){
|
if (taskHandler!=null){
|
||||||
taskHandler.updateTaskStatus(row,status);
|
taskHandler.updateTaskStatus(row,status);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
//发布一个任务执行事件:服务跟任务不一样,可以同事存在
|
//发布一个任务执行事件:服务跟任务不一样,可以同事存在
|
||||||
TaskEvent event = TaskEvent.builder()
|
TaskEvent event = TaskEvent.builder()
|
||||||
.task_id(task_id)
|
.task_id(task_id)
|
||||||
|
|||||||
@@ -66,6 +66,32 @@ public class WmsToAcsServiceImpl implements WmsToAcsService{
|
|||||||
return AcsUtil.notifyAcs(api, form);
|
return AcsUtil.notifyAcs(api, form);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> issueTaskToAcs3(JSONArray arr) {
|
||||||
|
JSONArray form = new JSONArray();
|
||||||
|
for (Object o : arr) {
|
||||||
|
JSONObject task = (JSONObject) o;
|
||||||
|
Boolean is_send = task.getBoolean("is_send");
|
||||||
|
String send = "1";
|
||||||
|
if (!is_send) send = "0";
|
||||||
|
|
||||||
|
JSONObject param = new JSONObject(MapOf.of("task_id", task.getString("task_id")
|
||||||
|
, "task_code", task.getString("task_code")
|
||||||
|
, "task_group_id", task.getString("task_group_id")
|
||||||
|
, "start_point_code", task.getString("point_code1")
|
||||||
|
, "next_point_code", task.getString("point_code2")
|
||||||
|
, "task_type", task.getString("acs_task_type")
|
||||||
|
, "priority", task.getString("priority")
|
||||||
|
, "is_send", send
|
||||||
|
, "vehicle_code", task.getString("vehicle_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> cancelToAcs(JSONArray arr) {
|
public Map<String, Object> cancelToAcs(JSONArray arr) {
|
||||||
String api = "api/wms/cancelTask";
|
String api = "api/wms/cancelTask";
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
SELECT
|
SELECT
|
||||||
a.*
|
a.*
|
||||||
FROM
|
FROM
|
||||||
`st_ivt_structattr` a
|
st_ivt_structattr a
|
||||||
INNER JOIN st_ivt_structattr b ON a.struct_id = b.control_code
|
INNER JOIN st_ivt_structattr b ON a.struct_id = b.control_code
|
||||||
WHERE
|
WHERE
|
||||||
a.is_used = '1'
|
a.is_used = '1'
|
||||||
@@ -29,6 +29,8 @@
|
|||||||
<if test="sect_id != null and sect_id != ''">
|
<if test="sect_id != null and sect_id != ''">
|
||||||
and b.sect_id = #{sect_id}
|
and b.sect_id = #{sect_id}
|
||||||
</if>
|
</if>
|
||||||
|
ORDER BY a.struct_code
|
||||||
|
LIMIT 1
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ public class PointListener extends AbstraceListener<PointEvent> {
|
|||||||
task.put("task_id", task_id);
|
task.put("task_id", task_id);
|
||||||
task.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
|
task.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
|
||||||
task.put("task_type", event.getType());
|
task.put("task_type", event.getType());
|
||||||
task.put("acs_task_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode());
|
task.put("acs_task_type", event.getAcs_task_type());
|
||||||
task.put("task_status", TaskStatusEnum.CREATED.getCode());
|
task.put("task_status", TaskStatusEnum.CREATED.getCode());
|
||||||
task.put("point_code1", event.getPoint_code1());
|
task.put("point_code1", event.getPoint_code1());
|
||||||
task.put("point_code2", event.getPoint_code2());
|
task.put("point_code2", event.getPoint_code2());
|
||||||
@@ -43,6 +43,7 @@ public class PointListener extends AbstraceListener<PointEvent> {
|
|||||||
task.put("update_optname", SecurityUtils.getCurrentNickName());
|
task.put("update_optname", SecurityUtils.getCurrentNickName());
|
||||||
task.put("create_time", DateUtil.now());
|
task.put("create_time", DateUtil.now());
|
||||||
task.put("update_time", DateUtil.now());
|
task.put("update_time", DateUtil.now());
|
||||||
|
task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode());
|
||||||
task.put("priority", "1");}
|
task.put("priority", "1");}
|
||||||
taskService.save(task.toJavaObject(SchBaseTask.class));
|
taskService.save(task.toJavaObject(SchBaseTask.class));
|
||||||
return task_id;
|
return task_id;
|
||||||
|
|||||||
@@ -386,6 +386,8 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
|
|||||||
|
|
||||||
PointEvent event = PointEvent.builder()
|
PointEvent event = PointEvent.builder()
|
||||||
.type(AcsTaskEnum.TASK_STRUCT_CP_OUT.getCode())
|
.type(AcsTaskEnum.TASK_STRUCT_CP_OUT.getCode())
|
||||||
|
.acs_task_type("8")
|
||||||
|
.task_group_id(IdUtil.getStringId())
|
||||||
.point_code1(disDao.getStruct_code())
|
.point_code1(disDao.getStruct_code())
|
||||||
.point_code2(pointDao.getPoint_code())
|
.point_code2(pointDao.getPoint_code())
|
||||||
.vehicle_code(disDao.getStoragevehicle_code())
|
.vehicle_code(disDao.getStoragevehicle_code())
|
||||||
@@ -572,7 +574,7 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
|
|||||||
mst_jo.put("is_out", true);
|
mst_jo.put("is_out", true);
|
||||||
iostorinvdisCpService.confirm(mst_jo);
|
iostorinvdisCpService.confirm(mst_jo);
|
||||||
|
|
||||||
} else {
|
} else if (status.equals(AcsTaskEnum.STATUS_START.getCode())) {
|
||||||
// 更新任务为执行中
|
// 更新任务为执行中
|
||||||
iSchBaseTaskService.update(
|
iSchBaseTaskService.update(
|
||||||
new UpdateWrapper<SchBaseTask>().lambda()
|
new UpdateWrapper<SchBaseTask>().lambda()
|
||||||
@@ -586,6 +588,11 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
|
|||||||
.eq(StIvtIostorinvdisCp::getTask_id, task_id)
|
.eq(StIvtIostorinvdisCp::getTask_id, task_id)
|
||||||
.set(StIvtIostorinvdisCp::getWork_status, IOSEnum.WORK_STATUS.code("执行中"))
|
.set(StIvtIostorinvdisCp::getWork_status, IOSEnum.WORK_STATUS.code("执行中"))
|
||||||
);
|
);
|
||||||
|
} if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) {
|
||||||
|
// 取消任务
|
||||||
|
JSONObject param = new JSONObject();
|
||||||
|
param.put("iostorinvdis_id",disDao.getIostorinvdis_id());
|
||||||
|
delTask(param);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -615,12 +622,11 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
|
|||||||
public void sendTask(JSONObject whereJson) {
|
public void sendTask(JSONObject whereJson) {
|
||||||
|
|
||||||
SchBaseTask taskDao = iSchBaseTaskService.getById(whereJson.getString("task_id"));
|
SchBaseTask taskDao = iSchBaseTaskService.getById(whereJson.getString("task_id"));
|
||||||
JSONArray paramArr = new JSONArray();
|
JSONArray param = new JSONArray();
|
||||||
paramArr.add(JSON.parseObject(JSONUtil.toJsonStr(taskDao)));
|
param.add(JSON.parseObject(JSONUtil.toJsonStr(taskDao)));
|
||||||
|
|
||||||
// 1.下发任务
|
// 1.下发任务
|
||||||
WmsToAcsService bean = SpringContextHolder.getBean(WmsToAcsService.class);
|
WmsToAcsService bean = SpringContextHolder.getBean(WmsToAcsService.class);
|
||||||
bean.issueTaskToAcs2(paramArr);
|
bean.issueTaskToAcs3(param);
|
||||||
|
|
||||||
// 2.更新任务状态
|
// 2.更新任务状态
|
||||||
taskDao.setTask_status(TaskStatusEnum.ISSUE.getCode());
|
taskDao.setTask_status(TaskStatusEnum.ISSUE.getCode());
|
||||||
|
|||||||
@@ -425,12 +425,11 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
StIvtStructattr attrDao = new StIvtStructattr();
|
StIvtStructattr attrDao = new StIvtStructattr();
|
||||||
|
|
||||||
// 1.根据仓库、库区找出一个仓位
|
// 1.根据仓库、库区找出一个仓位
|
||||||
|
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getById(disDao.getStoragevehicle_id());
|
||||||
if (ObjectUtil.isEmpty(struct_id)) {
|
if (ObjectUtil.isEmpty(struct_id)) {
|
||||||
/* 自动分配 */
|
/* 自动分配 */
|
||||||
|
|
||||||
// 判断载具是否超限
|
// 判断载具是否超限
|
||||||
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getById(disDao.getStoragevehicle_id());
|
|
||||||
|
|
||||||
if (StrUtil.equals(vehicleDao.getOverstruct_type(),IOSEnum.IS_USED.code("是"))) {
|
if (StrUtil.equals(vehicleDao.getOverstruct_type(),IOSEnum.IS_USED.code("是"))) {
|
||||||
whereJson.put("rule_type", RuleUtil.PRODUCTION_IN_2);
|
whereJson.put("rule_type", RuleUtil.PRODUCTION_IN_2);
|
||||||
} else {
|
} else {
|
||||||
@@ -441,6 +440,8 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
/* 手动分配 */
|
/* 手动分配 */
|
||||||
|
if (StrUtil.equals(vehicleDao.getOverstruct_type(),IOSEnum.IS_USED.code("是")))
|
||||||
|
throw new BadRequestException("载具超限请自动分配!");
|
||||||
|
|
||||||
// 查出对应仓位
|
// 查出对应仓位
|
||||||
attrDao = iStIvtStructattrService.getById(struct_id);
|
attrDao = iStIvtStructattrService.getById(struct_id);
|
||||||
@@ -591,6 +592,8 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
|
|
||||||
PointEvent event = PointEvent.builder()
|
PointEvent event = PointEvent.builder()
|
||||||
.type(AcsTaskEnum.TASK_STRUCT_CP_IN.getCode())
|
.type(AcsTaskEnum.TASK_STRUCT_CP_IN.getCode())
|
||||||
|
.acs_task_type("8")
|
||||||
|
.task_group_id(IdUtil.getStringId())
|
||||||
.point_code2(disDao.getStruct_code())
|
.point_code2(disDao.getStruct_code())
|
||||||
.point_code1(pointDao.getPoint_code())
|
.point_code1(pointDao.getPoint_code())
|
||||||
.vehicle_code(disDao.getStoragevehicle_code())
|
.vehicle_code(disDao.getStoragevehicle_code())
|
||||||
@@ -716,7 +719,7 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
mst_jo.put("is_out", false);
|
mst_jo.put("is_out", false);
|
||||||
iostorinvdisCpService.confirm(mst_jo);
|
iostorinvdisCpService.confirm(mst_jo);
|
||||||
|
|
||||||
} else {
|
} else if (status.equals(AcsTaskEnum.STATUS_START.getCode())) {
|
||||||
// 更新任务为执行中
|
// 更新任务为执行中
|
||||||
iSchBaseTaskService.update(
|
iSchBaseTaskService.update(
|
||||||
new UpdateWrapper<SchBaseTask>().lambda()
|
new UpdateWrapper<SchBaseTask>().lambda()
|
||||||
@@ -729,6 +732,11 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
.eq(StIvtIostorinvdisCp::getTask_id, task_id)
|
.eq(StIvtIostorinvdisCp::getTask_id, task_id)
|
||||||
.set(StIvtIostorinvdisCp::getWork_status, IOSEnum.WORK_STATUS.code("执行中"))
|
.set(StIvtIostorinvdisCp::getWork_status, IOSEnum.WORK_STATUS.code("执行中"))
|
||||||
);
|
);
|
||||||
|
} else if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) {
|
||||||
|
// 取消任务
|
||||||
|
JSONObject param = new JSONObject();
|
||||||
|
param.put("iostorinvdis_id",disDao.getIostorinvdis_id());
|
||||||
|
delTask(param);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -756,13 +764,13 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void sendTask(JSONObject whereJson) {
|
public void sendTask(JSONObject whereJson) {
|
||||||
SchBaseTask taskDao = iSchBaseTaskService.getById(whereJson.getString("task_id"));
|
|
||||||
JSONArray paramArr = new JSONArray();
|
|
||||||
paramArr.add(JSON.parseObject(JSONUtil.toJsonStr(taskDao)));
|
|
||||||
|
|
||||||
|
SchBaseTask taskDao = iSchBaseTaskService.getById(whereJson.getString("task_id"));
|
||||||
|
JSONArray param = new JSONArray();
|
||||||
|
param.add(JSON.parseObject(JSONUtil.toJsonStr(taskDao)));
|
||||||
// 1.下发任务
|
// 1.下发任务
|
||||||
WmsToAcsService bean = SpringContextHolder.getBean(WmsToAcsService.class);
|
WmsToAcsService bean = SpringContextHolder.getBean(WmsToAcsService.class);
|
||||||
bean.issueTaskToAcs2(paramArr);
|
bean.issueTaskToAcs3(param);
|
||||||
|
|
||||||
// 2.更新任务状态
|
// 2.更新任务状态
|
||||||
taskDao.setTask_status(TaskStatusEnum.ISSUE.getCode());
|
taskDao.setTask_status(TaskStatusEnum.ISSUE.getCode());
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
dtl.struct_id,
|
dtl.struct_id,
|
||||||
SUM( dtl.mol_qty ) AS total_qty,
|
SUM( dtl.mol_qty ) AS total_qty,
|
||||||
dtl.mol_id,
|
dtl.mol_id,
|
||||||
dtl.bucketunique,
|
MAX(dtl.bucketunique) AS bucketunique,
|
||||||
MAX(dtl.storagevehicle_code) AS storagevehicle_code
|
MAX(dtl.storagevehicle_code) AS storagevehicle_code
|
||||||
FROM
|
FROM
|
||||||
st_ivt_moreorlessdtl_cp dtl
|
st_ivt_moreorlessdtl_cp dtl
|
||||||
|
|||||||
@@ -2,6 +2,9 @@ package org.nl.wms.storage_manage.semimanage.service.iostorInv.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
@@ -19,6 +22,8 @@ import org.nl.common.utils.IdUtil;
|
|||||||
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.util.SpringContextHolder;
|
||||||
|
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||||
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService;
|
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService;
|
||||||
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService;
|
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService;
|
||||||
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
|
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
|
||||||
@@ -26,6 +31,8 @@ import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstora
|
|||||||
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr;
|
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr;
|
||||||
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
||||||
import org.nl.wms.product_manage.sch.manage.TaskStatusEnum;
|
import org.nl.wms.product_manage.sch.manage.TaskStatusEnum;
|
||||||
|
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||||
|
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||||
import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM;
|
import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM;
|
||||||
import org.nl.wms.storage_manage.IOSEnum;
|
import org.nl.wms.storage_manage.IOSEnum;
|
||||||
import org.nl.wms.storage_manage.basedata.service.record.service.IStIvtStructivtflowService;
|
import org.nl.wms.storage_manage.basedata.service.record.service.IStIvtStructivtflowService;
|
||||||
@@ -70,6 +77,8 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl<StIvtIostorinvB
|
|||||||
private DivRuleCpService divRuleCpService;
|
private DivRuleCpService divRuleCpService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IStIvtSectattrService sectattrService;
|
private IStIvtSectattrService sectattrService;
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseTaskService iSchBaseTaskService; // 任务表服务
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -199,6 +208,7 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl<StIvtIostorinvB
|
|||||||
|
|
||||||
PointEvent event = PointEvent.builder()
|
PointEvent event = PointEvent.builder()
|
||||||
.type(CHANGE_BILL_TYPE_ENUM.IOSTORINV_IN_SEND.getCode())
|
.type(CHANGE_BILL_TYPE_ENUM.IOSTORINV_IN_SEND.getCode())
|
||||||
|
.acs_task_type("7")
|
||||||
.point_code1(mst.getPoint_code())
|
.point_code1(mst.getPoint_code())
|
||||||
.point_code2(mst.getStruct_code())
|
.point_code2(mst.getStruct_code())
|
||||||
.vehicle_code(mst.getStoragevehicle_code())
|
.vehicle_code(mst.getStoragevehicle_code())
|
||||||
@@ -213,9 +223,27 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl<StIvtIostorinvB
|
|||||||
mst.setUpdate_id(SecurityUtils.getCurrentUserId());
|
mst.setUpdate_id(SecurityUtils.getCurrentUserId());
|
||||||
mst.setUpdate_name(SecurityUtils.getCurrentNickName());
|
mst.setUpdate_name(SecurityUtils.getCurrentNickName());
|
||||||
this.updateById(mst);
|
this.updateById(mst);
|
||||||
|
|
||||||
|
// 下发任务
|
||||||
|
sendTask(mst.getTask_id());
|
||||||
return mst.getTask_id();
|
return mst.getTask_id();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void sendTask(String task_id) {
|
||||||
|
|
||||||
|
SchBaseTask taskDao = iSchBaseTaskService.getById(task_id);
|
||||||
|
JSONArray param = new JSONArray();
|
||||||
|
param.add(JSON.parseObject(JSONUtil.toJsonStr(taskDao)));
|
||||||
|
// 1.下发任务
|
||||||
|
WmsToAcsService bean = SpringContextHolder.getBean(WmsToAcsService.class);
|
||||||
|
bean.issueTaskToAcs3(param);
|
||||||
|
|
||||||
|
// 2.更新任务状态
|
||||||
|
taskDao.setTask_status(TaskStatusEnum.ISSUE.getCode());
|
||||||
|
iSchBaseTaskService.updateById(taskDao);
|
||||||
|
}
|
||||||
|
|
||||||
private void checkParam(StIvtIostorinvBcp mst) {
|
private void checkParam(StIvtIostorinvBcp mst) {
|
||||||
if (mst == null || mst.getIs_delete() == true) {
|
if (mst == null || mst.getIs_delete() == true) {
|
||||||
throw new BadRequestException("单据不存在");
|
throw new BadRequestException("单据不存在");
|
||||||
@@ -247,14 +275,48 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl<StIvtIostorinvB
|
|||||||
String status = form.getString("status");
|
String status = form.getString("status");
|
||||||
StIvtIostorinvBcp mst = this.getOne(new QueryWrapper<StIvtIostorinvBcp>().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id));
|
StIvtIostorinvBcp mst = this.getOne(new QueryWrapper<StIvtIostorinvBcp>().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id));
|
||||||
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
|
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
|
||||||
|
// 完成
|
||||||
this.update(new UpdateWrapper<StIvtIostorinvBcp>().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id)
|
this.update(new UpdateWrapper<StIvtIostorinvBcp>().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id)
|
||||||
.set(StIvtIostorinvBcp::getWork_status, IOSEnum.WORK_STATUS.code("完成")));
|
.set(StIvtIostorinvBcp::getWork_status, IOSEnum.WORK_STATUS.code("完成")));
|
||||||
JSONObject mst_jo = new JSONObject();
|
JSONObject mst_jo = new JSONObject();
|
||||||
mst_jo.put("iostorinv_id", mst.getIostorinv_id());
|
mst_jo.put("iostorinv_id", mst.getIostorinv_id());
|
||||||
this.confirm(mst_jo);
|
this.confirm(mst_jo);
|
||||||
} else {
|
} else if (status.equals(AcsTaskEnum.STATUS_START.getCode())) {
|
||||||
|
// 执行中
|
||||||
this.update(new UpdateWrapper<StIvtIostorinvBcp>().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id)
|
this.update(new UpdateWrapper<StIvtIostorinvBcp>().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id)
|
||||||
.set(StIvtIostorinvBcp::getWork_status, IOSEnum.WORK_STATUS.code("执行中")));
|
.set(StIvtIostorinvBcp::getWork_status, IOSEnum.WORK_STATUS.code("执行中")));
|
||||||
|
|
||||||
|
// 更新任务
|
||||||
|
iSchBaseTaskService.update(
|
||||||
|
new UpdateWrapper<SchBaseTask>().lambda()
|
||||||
|
.set(SchBaseTask::getTask_status,TaskStatusEnum.EXECUTING.getCode())
|
||||||
|
.eq(SchBaseTask::getTask_id,task_id )
|
||||||
|
);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// 取消
|
||||||
|
delTask(task_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void delTask(String task_id) {
|
||||||
|
|
||||||
|
StIvtIostorinvBcp mstDao = this.getOne(
|
||||||
|
new QueryWrapper<StIvtIostorinvBcp>().lambda()
|
||||||
|
.eq(StIvtIostorinvBcp::getTask_id, task_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
// 删除任务
|
||||||
|
iSchBaseTaskService.update(
|
||||||
|
new UpdateWrapper<SchBaseTask>().lambda()
|
||||||
|
.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode())
|
||||||
|
.eq(SchBaseTask::getTask_id, mstDao.getTask_id())
|
||||||
|
);
|
||||||
|
|
||||||
|
// 更新主表
|
||||||
|
mstDao.setTask_id("");
|
||||||
|
mstDao.setWork_status(IOSEnum.WORK_STATUS.code("未生成"));
|
||||||
|
mstDao.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
|
||||||
|
this.updateById(mstDao);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,9 @@ package org.nl.wms.storage_manage.semimanage.service.iostorInv.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
@@ -19,10 +22,14 @@ import org.nl.common.utils.MapOf;
|
|||||||
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.util.SpringContextHolder;
|
||||||
|
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||||
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService;
|
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService;
|
||||||
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr;
|
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr;
|
||||||
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
||||||
import org.nl.wms.product_manage.sch.manage.TaskStatusEnum;
|
import org.nl.wms.product_manage.sch.manage.TaskStatusEnum;
|
||||||
|
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||||
|
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||||
import org.nl.wms.storage_manage.IOSEnum;
|
import org.nl.wms.storage_manage.IOSEnum;
|
||||||
import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM;
|
import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM;
|
||||||
import org.nl.wms.storage_manage.basedata.service.record.dto.StIvtStructivtflowDto;
|
import org.nl.wms.storage_manage.basedata.service.record.dto.StIvtStructivtflowDto;
|
||||||
@@ -73,6 +80,8 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl<StIvtIostorinvBcpM
|
|||||||
private DivRuleCpService divRuleCpService;
|
private DivRuleCpService divRuleCpService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IStIvtSectattrService sectattrService;
|
private IStIvtSectattrService sectattrService;
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseTaskService iSchBaseTaskService; // 任务表服务
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -186,6 +195,7 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl<StIvtIostorinvBcpM
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public String confirmTask(JSONObject form) {
|
public String confirmTask(JSONObject form) {
|
||||||
Assert.notNull(new Object[]{form, form.get("iostorinv_id")}, "请求参数不能为空");
|
Assert.notNull(new Object[]{form, form.get("iostorinv_id")}, "请求参数不能为空");
|
||||||
StIvtIostorinvBcp mst = this.getById(form.getString("iostorinv_id"));
|
StIvtIostorinvBcp mst = this.getById(form.getString("iostorinv_id"));
|
||||||
@@ -219,6 +229,7 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl<StIvtIostorinvBcpM
|
|||||||
|
|
||||||
PointEvent event = PointEvent.builder()
|
PointEvent event = PointEvent.builder()
|
||||||
.type(AcsTaskEnum.TASK_STRUCT_IN.getCode())
|
.type(AcsTaskEnum.TASK_STRUCT_IN.getCode())
|
||||||
|
.acs_task_type("7")
|
||||||
.point_code1(mst.getPoint_code())
|
.point_code1(mst.getPoint_code())
|
||||||
.point_code2(stIvtStructattr.getStruct_code())
|
.point_code2(stIvtStructattr.getStruct_code())
|
||||||
.vehicle_code(mst.getStoragevehicle_code())
|
.vehicle_code(mst.getStoragevehicle_code())
|
||||||
@@ -233,6 +244,9 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl<StIvtIostorinvBcpM
|
|||||||
mst.setUpdate_id(SecurityUtils.getCurrentUserId());
|
mst.setUpdate_id(SecurityUtils.getCurrentUserId());
|
||||||
mst.setUpdate_name(SecurityUtils.getCurrentNickName());
|
mst.setUpdate_name(SecurityUtils.getCurrentNickName());
|
||||||
this.updateById(mst);
|
this.updateById(mst);
|
||||||
|
|
||||||
|
// 下发任务
|
||||||
|
sendTask(mst.getTask_id());
|
||||||
return mst.getTask_id();
|
return mst.getTask_id();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -277,10 +291,65 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl<StIvtIostorinvBcpM
|
|||||||
//执行中
|
//执行中
|
||||||
this.update(new UpdateWrapper<StIvtIostorinvBcp>().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id)
|
this.update(new UpdateWrapper<StIvtIostorinvBcp>().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id)
|
||||||
.set(StIvtIostorinvBcp::getWork_status, IOSEnum.WORK_STATUS.code("执行中")));
|
.set(StIvtIostorinvBcp::getWork_status, IOSEnum.WORK_STATUS.code("执行中")));
|
||||||
}else {
|
|
||||||
//
|
|
||||||
|
|
||||||
|
// 更新任务
|
||||||
|
iSchBaseTaskService.update(
|
||||||
|
new UpdateWrapper<SchBaseTask>().lambda()
|
||||||
|
.set(SchBaseTask::getTask_status,TaskStatusEnum.EXECUTING.getCode())
|
||||||
|
.eq(SchBaseTask::getTask_id,task_id )
|
||||||
|
);
|
||||||
|
}else {
|
||||||
|
// 取消
|
||||||
|
delTask(task_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void delTask(String task_id) {
|
||||||
|
|
||||||
|
StIvtIostorinvBcp mstDao = this.getOne(
|
||||||
|
new QueryWrapper<StIvtIostorinvBcp>().lambda()
|
||||||
|
.eq(StIvtIostorinvBcp::getTask_id, task_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
// 解锁仓位
|
||||||
|
structattrService.update(
|
||||||
|
new UpdateWrapper<StIvtStructattr>().lambda()
|
||||||
|
.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
|
.eq(StIvtStructattr::getStruct_id, mstDao.getStruct_id())
|
||||||
|
);
|
||||||
|
|
||||||
|
// 删除任务
|
||||||
|
iSchBaseTaskService.update(
|
||||||
|
new UpdateWrapper<SchBaseTask>().lambda()
|
||||||
|
.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode())
|
||||||
|
.eq(SchBaseTask::getTask_id, mstDao.getTask_id())
|
||||||
|
);
|
||||||
|
|
||||||
|
// 更新主表
|
||||||
|
mstDao.setSect_id("");
|
||||||
|
mstDao.setSect_code("");
|
||||||
|
mstDao.setSect_name("");
|
||||||
|
mstDao.setStruct_id("");
|
||||||
|
mstDao.setStruct_code("");
|
||||||
|
mstDao.setStruct_name("");
|
||||||
|
mstDao.setTask_id("");
|
||||||
|
mstDao.setWork_status(IOSEnum.WORK_STATUS.code("未生成"));
|
||||||
|
mstDao.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
|
||||||
|
this.updateById(mstDao);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void sendTask(String task_id) {
|
||||||
|
|
||||||
|
SchBaseTask taskDao = iSchBaseTaskService.getById(task_id);
|
||||||
|
JSONArray param = new JSONArray();
|
||||||
|
param.add(JSON.parseObject(JSONUtil.toJsonStr(taskDao)));
|
||||||
|
// 1.下发任务
|
||||||
|
WmsToAcsService bean = SpringContextHolder.getBean(WmsToAcsService.class);
|
||||||
|
bean.issueTaskToAcs3(param);
|
||||||
|
|
||||||
|
// 2.更新任务状态
|
||||||
|
taskDao.setTask_status(TaskStatusEnum.ISSUE.getCode());
|
||||||
|
iSchBaseTaskService.updateById(taskDao);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user