rev:三线接口
This commit is contained in:
@@ -74,6 +74,7 @@ public enum AcsTaskEnum {
|
||||
REQUEST_WASH_EMP("10","清洗机器空框请求"),//清洗机下料位
|
||||
REQUEST_WASH_FULL_ERROR("11","清洗机-满料异常请求"),//去半成品入库 异常位
|
||||
REQUEST_WASH_PLOTTER_EMP("12","刻字上料空框回库"),
|
||||
REQUEST_HRBCP_TASK("18","三线半成品任务申请"),
|
||||
|
||||
///api/dict/dictDetail/api/dict/dictDetail/api/dict/dictDetail
|
||||
AGV_SYSTEM_NB("1","诺宝机器人任务"),
|
||||
|
||||
@@ -16,6 +16,7 @@ import org.nl.wms.scheduler_manage.service.extendtask.packageWrap.WrapSendEmptyT
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.plotter.PlotterSendMaterialTask;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.wash.WashSendMaterialQZTask;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.wash.WashSendMaterialTask;
|
||||
import org.nl.wms.storage_manage.semimanagehr.service.extendtask.IosHrTask;
|
||||
import org.springframework.context.SmartLifecycle;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@@ -37,6 +38,7 @@ public class ConventConfig implements SmartLifecycle {
|
||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WASH_EMP, SpringContextHolder.getBean(WashCallEmptyTask.class));
|
||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WASH_FULL_ERROR, SpringContextHolder.getBean(WashSendMaterialQZTask.class));
|
||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WASH_PLOTTER_EMP, SpringContextHolder.getBean(EngraveSendEmpTask.class));
|
||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_HRBCP_TASK, SpringContextHolder.getBean(IosHrTask.class));
|
||||
System.out.println("初始化Task_Collent完成777"+AcsToWmsServiceImpl.Task_Collent.size());
|
||||
}
|
||||
|
||||
|
||||
@@ -120,12 +120,12 @@ public class AcsToWmsController {
|
||||
return new ResponseEntity<>( HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/deviceApply")
|
||||
@Log("海柔半成品任务申请")
|
||||
//("海柔半成品任务申请")
|
||||
@PostMapping("/anomaly")
|
||||
@Log("异常反馈接口")
|
||||
//("异常反馈接口")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> deviceApply(@RequestBody JSONObject string) {
|
||||
return new ResponseEntity<>(acsToWmsService.deviceApply(string),HttpStatus.OK);
|
||||
public ResponseEntity<Object> anomaly(@RequestBody JSONObject string) {
|
||||
return new ResponseEntity<>(acsToWmsService.anomaly(string),HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -86,13 +86,12 @@ public interface AcsToWmsService {
|
||||
/**
|
||||
*
|
||||
* @param json {
|
||||
* type: 类型
|
||||
* device_code1: 设备1
|
||||
* barcode1: 条码1
|
||||
* device_code2: 设备2
|
||||
* barcode2: 条码2
|
||||
* task_id:"",
|
||||
* status:"满入-4"
|
||||
* }
|
||||
* @return json {
|
||||
* point_code2:"新分配货位"
|
||||
* }
|
||||
* @return /
|
||||
*/
|
||||
Map<String, Object> deviceApply(JSONObject json);
|
||||
Map<String, Object> anomaly(JSONObject json);
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ public interface WmsToAcsService {
|
||||
Map<String, Object> issueTaskToAcs(JSONArray arr);
|
||||
Map<String, Object> issueTaskToAcs2(JSONArray arr);
|
||||
Map<String, Object> issueTaskToAcs3(JSONArray arr);
|
||||
Map<String, Object> issueTaskToAcs4(JSONArray arr);
|
||||
|
||||
/**
|
||||
* WMS客户端--->ACS服务端
|
||||
|
||||
@@ -23,6 +23,10 @@ import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.wms.ext_manage.acs.service.AcsToWmsService;
|
||||
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.dao.StIvtSectattr;
|
||||
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
||||
import org.nl.wms.pda_manage.pda.service.CacheLineHandService;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.manage.AbstractAcsTask;
|
||||
import org.nl.wms.scheduler_manage.service.task.TaskService;
|
||||
@@ -33,8 +37,12 @@ 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.nl.wms.storage_manage.IOSEnum;
|
||||
import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.util.RuleUtil;
|
||||
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvEmpBcpService;
|
||||
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvHrBcpInService;
|
||||
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dao.StIvtIostorinvHrBcp;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.http.HttpStatus;
|
||||
@@ -65,9 +73,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{
|
||||
@Autowired
|
||||
private ISchBaseTaskService itaskService;
|
||||
@Autowired
|
||||
private IStIvtSectattrService sectattrService; // 库区服务
|
||||
@Autowired
|
||||
private DivRuleCpService divRuleCpService; // 分配规则服务
|
||||
@Autowired
|
||||
private IStIvtIostorinvHrBcpInService iStIvtIostorinvHrBcpInService;
|
||||
@Autowired
|
||||
private IStIvtIostorinvEmpBcpService iStIvtIostorinvEmpBcpService;
|
||||
private IStIvtStructattrService structattrService; // 仓位服务
|
||||
|
||||
@Override
|
||||
public Map<String, Object> apply(JSONObject param) {
|
||||
@@ -351,87 +363,73 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> deviceApply(JSONObject json) {
|
||||
public Map<String, Object> anomaly(JSONObject json) {
|
||||
/*
|
||||
* 1.申请入满箱任务
|
||||
* 2.申请入空箱任务
|
||||
* 3.申请出满箱任务
|
||||
* 4.申请出空箱任务
|
||||
* 满入-4:重新分配个货位,有货货位锁定
|
||||
*/
|
||||
String task_id = json.getString("task_id");
|
||||
String status = json.getString("status"); // 4-满入
|
||||
|
||||
HashMap<String, Object> result = new HashMap<>();
|
||||
|
||||
String type = json.getString("type");
|
||||
|
||||
try {
|
||||
String device_code1 = json.getString("device_code1");
|
||||
String barcode1 = json.getString("barcode1");
|
||||
|
||||
if (ObjectUtil.isEmpty(device_code1)) throw new BadRequestException("设备不能为空!");
|
||||
SchBaseTask taskDao = itaskService.getById(task_id);
|
||||
if (ObjectUtil.isEmpty(taskDao)) throw new BadRequestException("任务不存在!");
|
||||
|
||||
if (StrUtil.equals(type, "1")) {
|
||||
/* 1.申请入满箱任务 */
|
||||
// 调用入库分配规则
|
||||
StIvtSectattr sect = sectattrService.getOne(
|
||||
new QueryWrapper<StIvtSectattr>().lambda()
|
||||
.eq(StIvtSectattr::getSect_name, "海柔半成品库区")
|
||||
);
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("sect_id", sect.getSect_id());
|
||||
jo.put("stor_id", sect.getStor_id());
|
||||
jo.put("rule_type", RuleUtil.PRODUCTION_IN_1);
|
||||
StIvtStructattr stIvtStructattr = divRuleCpService.divRuleIn(jo);
|
||||
if (ObjectUtil.isEmpty(stIvtStructattr)) throw new BadRequestException("仓位不足!");
|
||||
|
||||
if (ObjectUtil.isEmpty(barcode1)) throw new BadRequestException("条码不能为空!");
|
||||
// 更新单据入库仓位
|
||||
StIvtIostorinvHrBcp invDao = iStIvtIostorinvHrBcpInService.getOne(
|
||||
new QueryWrapper<StIvtIostorinvHrBcp>().lambda()
|
||||
.eq(StIvtIostorinvHrBcp::getTask_id, task_id)
|
||||
, false
|
||||
);
|
||||
if (ObjectUtil.isEmpty(invDao)) throw new BadRequestException("未找到对应入库单据!");
|
||||
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("device_code",device_code1);
|
||||
param.put("barcode",barcode1);
|
||||
// 锁定原仓位
|
||||
structattrService.update(
|
||||
new UpdateWrapper<StIvtStructattr>().lambda()
|
||||
.eq(StIvtStructattr::getStruct_id, invDao.getStruct_id())
|
||||
.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("其他锁"))
|
||||
);
|
||||
|
||||
// 1.调用入库服务
|
||||
iStIvtIostorinvHrBcpInService.fullIn(param);
|
||||
invDao.setStruct_id(stIvtStructattr.getStruct_id());
|
||||
invDao.setStruct_code(stIvtStructattr.getStruct_code());
|
||||
invDao.setStruct_name(stIvtStructattr.getStruct_name());
|
||||
iStIvtIostorinvHrBcpInService.updateById(invDao);
|
||||
|
||||
// 2.判断device_code2、barcode2 是否为空
|
||||
if (ObjectUtil.isNotEmpty(json.getString("device_code2")) && ObjectUtil.isNotEmpty(json.getString("barcode2"))) {
|
||||
// 更新任务入库仓位
|
||||
taskDao.setPoint_code3(stIvtStructattr.getStruct_code());
|
||||
itaskService.updateById(taskDao);
|
||||
|
||||
param.put("device_code",json.getString("device_code2"));
|
||||
param.put("barcode",json.getString("barcode2"));
|
||||
iStIvtIostorinvHrBcpInService.fullIn(param);
|
||||
}
|
||||
} else if (StrUtil.equals(type, "2")) {
|
||||
/* 2.申请入空箱任务 */
|
||||
// 锁定新货位
|
||||
structattrService.update(
|
||||
new UpdateWrapper<StIvtStructattr>().lambda()
|
||||
.eq(StIvtStructattr::getStruct_id, stIvtStructattr.getStruct_id())
|
||||
.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("入库锁"))
|
||||
);
|
||||
|
||||
if (ObjectUtil.isEmpty(barcode1)) throw new BadRequestException("条码不能为空!");
|
||||
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("device_code",device_code1);
|
||||
param.put("barcode",barcode1);
|
||||
|
||||
// 1.调用空托盘入库服务
|
||||
iStIvtIostorinvEmpBcpService.InEmp(param);
|
||||
|
||||
// 2.判断device_code2、barcode2 是否为空
|
||||
if (ObjectUtil.isNotEmpty(json.getString("device_code2")) && ObjectUtil.isNotEmpty(json.getString("barcode2"))) {
|
||||
param.put("device_code",json.getString("device_code2"));
|
||||
param.put("barcode",json.getString("barcode2"));
|
||||
iStIvtIostorinvEmpBcpService.InEmp(param);
|
||||
}
|
||||
} else if (StrUtil.equals(type, "3")) {
|
||||
/* 3.申请出满箱任务 */
|
||||
|
||||
} else if (StrUtil.equals(type, "4")) {
|
||||
/* 4.申请出空箱任务 */
|
||||
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("device_code",device_code1);
|
||||
param.put("barcode",barcode1);
|
||||
|
||||
// 1.调用空托盘出库库服务
|
||||
iStIvtIostorinvEmpBcpService.OutEmp(param);
|
||||
|
||||
// 2.判断device_code2、barcode2 是否为空
|
||||
if (ObjectUtil.isNotEmpty(json.getString("device_code2"))) {
|
||||
param.put("device_code",json.getString("device_code2"));
|
||||
iStIvtIostorinvEmpBcpService.OutEmp(param);
|
||||
}
|
||||
}
|
||||
result.put("point_code2", stIvtStructattr.getStruct_code());
|
||||
|
||||
} catch (Exception e) {
|
||||
result.put("status", HttpStatus.BAD_REQUEST.value());
|
||||
result.put("message", e.getMessage());
|
||||
return result;
|
||||
}
|
||||
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
result.put("message", "下发成功!");
|
||||
result.put("message", "操作成功");
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -110,6 +110,33 @@ public class WmsToAcsServiceImpl implements WmsToAcsService{
|
||||
return AcsUtil.notifyAcs(api, form);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> issueTaskToAcs4(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_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_code3")
|
||||
, "task_type", "18"
|
||||
, "storage_task_type", task.getString("acs_task_type")
|
||||
, "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")
|
||||
, "agv_system_type", task.getString("agv_system_type")
|
||||
));
|
||||
form.add(param);
|
||||
}
|
||||
String api = "api/wms/task";
|
||||
return AcsUtil.notifyAcs(api, form);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> cancelToAcs(JSONArray arr) {
|
||||
String api = "api/wms/cancelTask";
|
||||
|
||||
@@ -0,0 +1,116 @@
|
||||
package org.nl.wms.storage_manage.semimanagehr.service.extendtask;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.manage.AbstractAcsTask;
|
||||
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvEmpBcpService;
|
||||
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvHrBcpInService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/*
|
||||
* @author Liuxy
|
||||
* @Date 2023/9/13 20:23
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class IosHrTask extends AbstractAcsTask {
|
||||
|
||||
@Autowired
|
||||
private IStIvtIostorinvHrBcpInService iStIvtIostorinvHrBcpInService;
|
||||
|
||||
@Autowired
|
||||
private IStIvtIostorinvEmpBcpService iStIvtIostorinvEmpBcpService;
|
||||
|
||||
@Override
|
||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String createTask(JSONObject json) {
|
||||
/*
|
||||
* 13.申请入满箱任务
|
||||
* 17.申请入空箱任务
|
||||
* 14.申请出满箱任务
|
||||
* 16.申请出空箱任务
|
||||
*/
|
||||
String type = json.getString("item_type");
|
||||
|
||||
String device_code1 = json.getString("device_code1");
|
||||
String barcode1 = json.getString("barcode1");
|
||||
|
||||
if (ObjectUtil.isEmpty(device_code1)) throw new BadRequestException("设备不能为空!");
|
||||
|
||||
if (StrUtil.equals(type, "13")) {
|
||||
/* 1.申请入满箱任务 */
|
||||
|
||||
if (ObjectUtil.isEmpty(barcode1)) throw new BadRequestException("条码不能为空!");
|
||||
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("device_code", device_code1);
|
||||
param.put("barcode", barcode1);
|
||||
|
||||
// 1.调用入库服务
|
||||
iStIvtIostorinvHrBcpInService.fullIn(param);
|
||||
|
||||
// 2.判断device_code2、barcode2 是否为空
|
||||
if (ObjectUtil.isNotEmpty(json.getString("device_code2")) && ObjectUtil.isNotEmpty(json.getString("barcode2"))) {
|
||||
|
||||
param.put("device_code", json.getString("device_code2"));
|
||||
param.put("barcode", json.getString("barcode2"));
|
||||
iStIvtIostorinvHrBcpInService.fullIn(param);
|
||||
}
|
||||
} else if (StrUtil.equals(type, "17")) {
|
||||
/* 2.申请入空箱任务 */
|
||||
|
||||
if (ObjectUtil.isEmpty(barcode1)) throw new BadRequestException("条码不能为空!");
|
||||
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("device_code", device_code1);
|
||||
param.put("barcode", barcode1);
|
||||
|
||||
// 1.调用空托盘入库服务
|
||||
iStIvtIostorinvEmpBcpService.InEmp(param);
|
||||
|
||||
// 2.判断device_code2、barcode2 是否为空
|
||||
if (ObjectUtil.isNotEmpty(json.getString("device_code2")) && ObjectUtil.isNotEmpty(json.getString("barcode2"))) {
|
||||
param.put("device_code", json.getString("device_code2"));
|
||||
param.put("barcode", json.getString("barcode2"));
|
||||
iStIvtIostorinvEmpBcpService.InEmp(param);
|
||||
}
|
||||
} else if (StrUtil.equals(type, "14")) {
|
||||
/* 3.申请出满箱任务 */
|
||||
|
||||
} else if (StrUtil.equals(type, "16")) {
|
||||
/* 4.申请出空箱任务 */
|
||||
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("device_code", device_code1);
|
||||
param.put("barcode", barcode1);
|
||||
|
||||
// 1.调用空托盘出库库服务
|
||||
iStIvtIostorinvEmpBcpService.OutEmp(param);
|
||||
|
||||
// 2.判断device_code2、barcode2 是否为空
|
||||
if (ObjectUtil.isNotEmpty(json.getString("device_code2"))) {
|
||||
param.put("device_code", json.getString("device_code2"));
|
||||
iStIvtIostorinvEmpBcpService.OutEmp(param);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(String task_id) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pointConfirm(JSONObject param) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -270,7 +270,7 @@ public class StIvtIostorinvEmpBcpServiceImpl implements IStIvtIostorinvEmpBcpSe
|
||||
|
||||
// 1.下发任务
|
||||
WmsToAcsService bean = SpringContextHolder.getBean(WmsToAcsService.class);
|
||||
Map<String, Object> result = bean.issueTaskToAcs3(param);
|
||||
Map<String, Object> result = bean.issueTaskToAcs4(param);
|
||||
|
||||
// 反馈失败报错
|
||||
if (!ObjectUtil.equal(MapUtil.getStr(result, "status"),"200")) {
|
||||
|
||||
@@ -535,7 +535,7 @@ public class StIvtIostorinvHrBcpInServiceImpl extends ServiceImpl<StIvtIostorinv
|
||||
|
||||
// 1.下发任务
|
||||
WmsToAcsService bean = SpringContextHolder.getBean(WmsToAcsService.class);
|
||||
Map<String, Object> result = bean.issueTaskToAcs3(param);
|
||||
Map<String, Object> result = bean.issueTaskToAcs4(param);
|
||||
|
||||
// 反馈失败报错
|
||||
if (!ObjectUtil.equal(MapUtil.getStr(result, "status"),"200")) {
|
||||
|
||||
@@ -494,7 +494,7 @@ public class StIvtIostorinvHrBcpOutServiceImpl extends ServiceImpl<StIvtIostorin
|
||||
param.add(JSON.parseObject(JSONUtil.toJsonStr(taskDao)));
|
||||
// 1.下发任务
|
||||
WmsToAcsService bean = SpringContextHolder.getBean(WmsToAcsService.class);
|
||||
Map<String, Object> result = bean.issueTaskToAcs3(param);
|
||||
Map<String, Object> result = bean.issueTaskToAcs4(param);
|
||||
|
||||
// 反馈失败报错
|
||||
if (!ObjectUtil.equal(MapUtil.getStr(result, "status"),"200")) {
|
||||
|
||||
Reference in New Issue
Block a user