Commit 0c7ced91 LN

韩华接口调试修改

1 个父辈 c4bea40f
......@@ -706,6 +706,9 @@ public class LiteOrderCache {
List<DataLog> allTask=taskService.getAllTasks();
for (DataLog task:allTask
) {
if(task.isFinished()||task.isCancel()){
continue;
}
if (OP.CHECKOUT == task.getType()&&(!task.isEnd())) {
//更新工单状态
String taskSourceName = task.getSourceName();
......
......@@ -9,9 +9,7 @@ import org.springframework.data.annotation.Transient;
import org.springframework.data.mongodb.core.mapping.Document;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.*;
@Data
@Document
......@@ -204,5 +202,22 @@ public class LiteOrder extends BasePo implements Serializable {
}
orderItems.add(item);
}
/**
* 自定义的附加字段,key=字段名,value=值
*/
public Map<String,String> appendData = new HashMap<>();
public void addAppendDate(String key ,String value){
if(appendData==null){
appendData=new HashMap<>();
}
appendData.put(key,value);
}
public String getAppend(String key) {
if (appendData != null && appendData.containsKey(key)) {
return appendData.get(key);
}
return "";
}
}
......@@ -133,7 +133,7 @@ public class HanwhaApiHandler extends BaseSmfApiListener {
if (!task.isPutInTask()) {
return;
}
if (task.isFinished()) {
if (task.isFinished()||task.isEnd()) {
List<TMSPartReelPos> list = new ArrayList<>();
TMSPartReelPos bean = TMSPartReelPos.newBean(task.getPartNumber(), task.getBarcode(), task.getNum(), task.getCid(), task.getPosName(), 1, task.getUpdateDate().getTime(), -1);
list.add(bean);
......@@ -148,7 +148,7 @@ public class HanwhaApiHandler extends BaseSmfApiListener {
if (!task.isCheckOutTask()) {
return;
}
if (task.isFinished()) {
if (task.isFinished()||task.isEnd()) {
List<TMSPartReelPos> list = new ArrayList<>();
TMSPartReelPos bean = TMSPartReelPos.newBean(task.getPartNumber(), task.getBarcode(), task.getNum(), task.getCid(), task.getPosName(), 2, -1, task.getUpdateDate().getTime());
list.add(bean);
......@@ -168,11 +168,18 @@ public class HanwhaApiHandler extends BaseSmfApiListener {
if (liteOrder.isClosed()) {
String isCancel=liteOrder.getAppend("cancel");
if(isCancel.equals("true")){
log.info("工单取消处理中,此处不通知TMS");
}else{
log.info("工单关闭,通知TMS");
TMSReserve tmsReserve = tmsCommunicator.GetOrderInfo(liteOrder);
List<TMSReserve> list = new ArrayList<>();
list.add(tmsReserve);
tmsCommunicator.ResponseUpdateDeliveryReserveState(0, list, 0);
}
}
}
@Override
......
......@@ -107,7 +107,19 @@ public class TMSCommunicator implements WsMsgReceivedListener {
String apiName = dataCache.getConfigCache("api.name", "");
if (apiName != null && apiName.equalsIgnoreCase("hanwha")) {
updateServerInfo(host, webPort, apiPort);
Thread closeTask = new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(20000);
start();
}catch (Exception e){
log.error("自动关闭库位灯出错:" + e.getMessage());
}
}
});
closeTask.start();
// start();
}
}
}
......@@ -270,7 +282,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
allStorage.values()) {
List<TMSPartReelPos> list = new ArrayList<>();
List<StoragePos> allPos = storagePosManager.findByStorage(storage.getId());
if (storage.isNLShelf() ) {
if (storage.isNLShelf() || storage.isMimoG2() ) {
for (StoragePos pos :
allPos) {
......@@ -322,6 +334,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
if (storage.isNLShelf() || storage.isNLPShelf() || storage.isNLMShelf() || storage.isShelf()) {
type = "Rack";
}
int status = -1;
if (statusList != null && statusList.length > i) {
status = statusList[i];
......@@ -379,10 +392,13 @@ public class TMSCommunicator implements WsMsgReceivedListener {
List<LiteOrder> orders = liteOrderManager.findByQuery(query);
for (LiteOrder order:orders
) {
tmsReserves.add(GetOrderInfo(order));
TMSReserve tmsReserve=GetOrderInfo(order);
if(tmsReserve!=null&&tmsReserve.getPartList().size()>0){
tmsReserves.add(tmsReserve);
}
}
ResponseUpdateDeliveryReserveState(0, tmsReserves,0 );
ResponseUpdateDeliveryReserveState(0, tmsReserves,1 );
}
......@@ -420,7 +436,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
} else {
logCode = TMS_Code.CODE_2013;//已完成
}
TMSPart part = TMSPart.newBean(task.getPartNumber(), task.getBarcode(), task.getNum(), task.getNum(), logCode, task.getCid(), task.getPosName());
TMSPart part = TMSPart.newBean(tmsParts.size(),task.getPartNumber(), task.getBarcode(), task.getNum(), task.getNum(), logCode, task.getCid(), task.getPosName());
tmsParts.add(part);
}
}
......@@ -649,7 +665,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
if (curroNum > item.getNeedNum()) {
requestNum = task.getNum() - (curroNum - item.getNeedNum());
}
TMSPart p = TMSPart.newBean(task.getPartNumber(), task.getBarcode(), requestNum, task.getNum(), TMS_Code.CODE_2010, task.getCid(), task.getPosName());
TMSPart p = TMSPart.newBean(parts.size(),task.getPartNumber(), task.getBarcode(), requestNum, task.getNum(), TMS_Code.CODE_2010, task.getCid(), task.getPosName());
log.info("RequestDeliveryOrder pn="+task.getPartNumber()+",出库成功:code="+TMS_Code.CODE_2010+",posName="+task.getPosName()+",barcode="+task.getBarcode());
parts.add(p);
}
......@@ -661,11 +677,11 @@ public class TMSCommunicator implements WsMsgReceivedListener {
String shortValue=item.getAppend("shortage");
if(ObjectUtil.isNotEmpty(shortValue)&& shortValue.equals("true")){
//未出库
TMSPart p = TMSPart.newBean(item.getPn(), "", item.getNeedNum(), item.getOutNum(), TMS_Code.CODE_2002, "", "");
TMSPart p = TMSPart.newBean(parts.size(),item.getPn(), "", item.getNeedNum(), item.getOutNum(), TMS_Code.CODE_2002, "", "");
log.info("RequestDeliveryOrder pn="+item.getPn()+",出库失败缺料:code="+TMS_Code.CODE_2002);
parts.add(p);
}else{
TMSPart p = TMSPart.newBean(item.getPn(), "", item.getNeedNum(), item.getOutNum(), TMS_Code.CODE_2010, "", "");
TMSPart p = TMSPart.newBean(parts.size(),item.getPn(), "", item.getNeedNum(), item.getOutNum(), TMS_Code.CODE_2010, "", "");
log.info("RequestDeliveryOrder pn="+item.getPn()+",未出库成功:code="+TMS_Code.CODE_2010);
parts.add(p);
}
......@@ -673,6 +689,10 @@ public class TMSCommunicator implements WsMsgReceivedListener {
}
}
// TMSPart part = TMSPart.newBean("PN1", "Barcode1", 999, 999, TMS_Code.CODE_2002, "", "");
// parts.add(part);
ResponseDeliveryOrder(requestID, parts, liteOrder.getOrderNo());
......@@ -861,7 +881,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
List<TMSReserve> ReserveList = new ArrayList<>();
int state = 0;
try {
log.info("RequestUpdateDeliveryReserveState : reserveCodes="+JsonUtil.toJsonStr(reserveCodes)+",resultCodes="+JsonUtil.toJsonStr(resultCodes)+" 返回结果");
log.info("RequestUpdateDeliveryReserveState : reserveCodes="+JsonUtil.toJsonStr(reserveCodes)+",resultCodes="+JsonUtil.toJsonStr(resultCodes)+" ");
if(reserveCodes!=null&&resultCodes!=null&&reserveCodes.size()==resultCodes.size()) {
Collection<DataLog> dataLogCollections=taskService.getQueueTasks();
......@@ -890,13 +910,20 @@ public class TMSCommunicator implements WsMsgReceivedListener {
tmsReserve.setResultCode(TMS_Code.CODE_2014);
LiteOrder order = liteOrderCache.getLiteOrder(reserveCode);
if (order != null) {
if (order.isOutBom() || order.isOutTails() || order.isOutOne()) {
log.error("ProcessOrder 准备取消工单:" + reserveCode + ",未开始或已结束");
//查找所有任务看是否能取消
Collection<DataLog> dataLogCollections = taskService.getQueueTasks();
log.info("ProcessOrder 准备取消工单:" + reserveCode + ",设置取消标记");
order.addAppendDate("cancel","true");
liteOrderManager.save(order);
liteOrderCache.addOrderToMap(order);
//查找工单的所有任务
Criteria c = Criteria.where("sourceName").is(order.getOrderNo()).and("type").is(2);
List<DataLog> dataLogs = dataLogManager.findByQuery(new Query(c));
for (DataLog task :
dataLogCollections) {
dataLogs) {
//是工单出库任务
if (task.isCheckOutTask() && task.getSourceName().equals(order.getOrderNo())) {
boolean cancelResult = false;
......@@ -917,17 +944,23 @@ public class TMSCommunicator implements WsMsgReceivedListener {
}
log.info("RequestUpdateDeliveryReserveState 取消出库任务,工单:" + order.getOrderNo() + ", barcode:" + task.getBarcode() + ", taskID:" + task.getId() + "取消结果:" + cancelResult);
TMSPart part = TMSPart.newBean(task.getPartNumber(), task.getBarcode(), task.getNum(), task.getNum(), logCode, task.getCid(), task.getPosName());
TMSPart part = TMSPart.newBean(tmsParts.size(), task.getPartNumber(), task.getBarcode(), task.getNum(), task.getNum(), logCode, task.getCid(), task.getPosName());
tmsParts.add(part);
}
}
//判断工单是否可以取消,
String res = liteOrderCache.closeOrder(order.getOrderNo());
if (res.equals("smfcore.order.close.success")) {
tmsReserve.setResultCode(TMS_Code.CODE_2013);//取消成功
liteOrderCache.closeOrder(order.getOrderNo());
if (order.isClosed()) {
tmsReserve.setResultCode(TMS_Code.CODE_2012);//取消成功
}else{
order.addAppendDate("cancel","");
liteOrderManager.save(order);
liteOrderCache.addOrderToMap(order);
log.info("ProcessOrder 取消工单失败,清空取消标记 ");
}
} else {
log.error("ProcessOrder 无法取消工单:" + reserveCode + ",未开始或已结束");
}
......
......@@ -24,8 +24,9 @@ public class TMSPart extends TMSPos implements Serializable {
private int responseCount = 0;
private String resultCode = "";
public static TMSPart newBean(String pn,String barcode,int requestCount,int responseCount,String resultCode,String cid,String posName ) {
public static TMSPart newBean(int index, String pn,String barcode,int requestCount,int responseCount,String resultCode,String cid,String posName ) {
TMSPart bean = new TMSPart();
bean.setIndex(index);
bean.setPartName(pn);
bean.setReelCode(barcode);
bean.setRequestCount(requestCount);
......
......@@ -59,6 +59,9 @@ public class TMSPos implements Serializable {
if (posArray.length == 3) {
rowId = Convert.toInt(posArray[1]) + "";
colId = Convert.toInt(posArray[2]) + "";
}else if(posArray.length==4){
rowId = Convert.toInt(posArray[1]+posArray[2]) + "";
colId = Convert.toInt(posArray[3]) + "";
}
} catch (Exception ex) {
log.error("解析出错:" + ex.toString());
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!