Commit 68c37e9b zshaohui

Merge remote-tracking branch 'origin/smf-core-20592' into smf-core-20592

2 个父辈 edf37ee5 36ffc4ed
...@@ -8,11 +8,14 @@ import com.neotel.smfcore.common.exception.ApiException; ...@@ -8,11 +8,14 @@ import com.neotel.smfcore.common.exception.ApiException;
import com.neotel.smfcore.common.exception.ValidateException; import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.HttpHelper; import com.neotel.smfcore.common.utils.HttpHelper;
import com.neotel.smfcore.common.utils.JsonUtil; import com.neotel.smfcore.common.utils.JsonUtil;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.common.utils.StringUtils; import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.api.listener.BaseSmfApiListener; import com.neotel.smfcore.core.api.listener.BaseSmfApiListener;
import com.neotel.smfcore.core.api.listener.DefaultSmfApiListener; import com.neotel.smfcore.core.api.listener.DefaultSmfApiListener;
import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager; import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode; import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.device.util.DataCache; import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.order.LiteOrderCache; import com.neotel.smfcore.core.order.LiteOrderCache;
import com.neotel.smfcore.core.order.service.po.LiteOrder; import com.neotel.smfcore.core.order.service.po.LiteOrder;
...@@ -20,6 +23,9 @@ import com.neotel.smfcore.core.storage.enums.DeviceType; ...@@ -20,6 +23,9 @@ import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager; import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.po.Storage; import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos; import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.dao.impl.DataLogDaoImpl;
import com.neotel.smfcore.core.system.service.manager.IDataLogManager;
import com.neotel.smfcore.core.system.service.manager.impl.DataLogManagerImpl;
import com.neotel.smfcore.core.system.service.po.DataLog; import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.custom.lizhen.agvBox.bean.GrLabel; import com.neotel.smfcore.custom.lizhen.agvBox.bean.GrLabel;
import com.neotel.smfcore.custom.lizhen.innerBox.bean.PreWarningItem; import com.neotel.smfcore.custom.lizhen.innerBox.bean.PreWarningItem;
...@@ -27,14 +33,21 @@ import com.neotel.smfcore.custom.lizhen.innerBox.util.PreWarningItemCache; ...@@ -27,14 +33,21 @@ import com.neotel.smfcore.custom.lizhen.innerBox.util.PreWarningItemCache;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import java.security.Security;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.ZoneOffset; import java.time.ZoneOffset;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -51,6 +64,9 @@ public class LizhenApi extends DefaultSmfApiListener { ...@@ -51,6 +64,9 @@ public class LizhenApi extends DefaultSmfApiListener {
@Autowired @Autowired
private DataCache dataCache; private DataCache dataCache;
@Autowired
private IDataLogManager dataLogManager;
@Value("${api.fetchGRUrl}") @Value("${api.fetchGRUrl}")
private String fetchGRUrl; private String fetchGRUrl;
...@@ -75,6 +91,8 @@ public class LizhenApi extends DefaultSmfApiListener { ...@@ -75,6 +91,8 @@ public class LizhenApi extends DefaultSmfApiListener {
@Value("${api.checkReelMeasure}") @Value("${api.checkReelMeasure}")
private String checkReelMeasureUrl = ""; private String checkReelMeasureUrl = "";
@Value("${api.CommonGIRecord}")
private String CommonGIRecordUrl = "";
@PostConstruct @PostConstruct
public void init(){ public void init(){
fetchGRUrl = dataCache.getConfigCache("fetchGRUrl",fetchGRUrl); fetchGRUrl = dataCache.getConfigCache("fetchGRUrl",fetchGRUrl);
...@@ -309,34 +327,61 @@ public class LizhenApi extends DefaultSmfApiListener { ...@@ -309,34 +327,61 @@ public class LizhenApi extends DefaultSmfApiListener {
*/ */
@Override @Override
public void inTaskStatusChange(String inNotifyUrl, DataLog task) { public void inTaskStatusChange(String inNotifyUrl, DataLog task) {
if (!task.isFinished()){ if (!task.isFinished()) {
return; return;
} }
Map<String, Object> dataMap = new HashMap<>(); DataLog oldTask = dataLogManager.findOne(new Query(Criteria.where("barcode").is(task.getBarcode()).is(OP.CHECKOUT).and("createDate")
dataMap.put("pickingid", ""); .and("status").is(OP_STATUS.FINISHED.name()).lte(new Date())).with(Sort.by(Sort.Direction.DESC, "createDate")));
dataMap.put("wo", ""); if (oldTask == null) {
dataMap.put("reelno", task.getBarcode()); Map<String, Object> dataMap = new HashMap<>();
dataMap.put("ipn", task.getPartNumber()); dataMap.put("pickingid", "");
dataMap.put("wo", "");
Barcode barcode = barcodeManager.findByBarcode(task.getBarcode()); dataMap.put("reelno", task.getBarcode());
if (barcode != null) { dataMap.put("ipn", task.getPartNumber());
dataMap.put("qty", barcode.getAmount()); Barcode barcode = barcodeManager.findByBarcode(task.getBarcode());
dataMap.put("datecode", barcode.getDateCode()); if (barcode != null) {
dataMap.put("lot", barcode.getBatch()); dataMap.put("qty", barcode.getAmount());
dataMap.put("vendor", barcode.getProvider()); dataMap.put("datecode", barcode.getDateCode());
dataMap.put("batch", ""); dataMap.put("lot", barcode.getBatch());
dataMap.put("vendorcode",barcode.getProviderNumber()); dataMap.put("vendor", barcode.getProvider());
} dataMap.put("batch", "");
dataMap.put("werks",werks); dataMap.put("vendorcode", barcode.getProviderNumber());
dataMap.put("reelid",""); }
String param = JsonUtil.toJsonStr(Arrays.asList(dataMap)); dataMap.put("werks", werks);
log.info("保存物料入参为:" + param); dataMap.put("reelid", "");
try { String param = JsonUtil.toJsonStr(Arrays.asList(dataMap));
String result = HttpHelper.postJson(inNotifyUrl, Arrays.asList(dataMap)); log.info("保存物料入参为:" + param);
log.info("保存物料出参为:" + result); try {
} catch (ApiException e) { String result = HttpHelper.postJson(inNotifyUrl, Arrays.asList(dataMap));
e.printStackTrace(); log.info("保存物料出参为:" + result);
log.info(barcode.getBarcode()+"保存物料异常:"+e.getMessage()); } catch (ApiException e) {
e.printStackTrace();
log.info(barcode.getBarcode() + "保存物料异常:" + e.getMessage());
}
} else {
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("line", oldTask.getLine());
dataMap.put("reel_id", oldTask.getBarcode());
dataMap.put("rm_type", 2);
Storage storage = dataCache.getStorageById(oldTask.getStorageId());
if (storage.isVirtual()) {
dataMap.put("rm_type", 1);
}
dataMap.put("create_empno", SecurityUtils.getLoginUsername());
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
format.setTimeZone(TimeZone.getTimeZone("UTC")); // 设置为UTC时间
String nowDateStr = format.format(date);
dataMap.put("create_time", nowDateStr);
String param = JsonUtil.toJsonStr(Arrays.asList(dataMap));
log.info("退料:" + param);
try {
String result = HttpHelper.postJson(CommonGIRecordUrl, Arrays.asList(dataMap));
log.info("退料出参为:" + result);
} catch (ApiException e) {
e.printStackTrace();
log.info(oldTask.getBarcode() + "退料异常:" + e.getMessage());
}
} }
} }
...@@ -591,9 +636,4 @@ public class LizhenApi extends DefaultSmfApiListener { ...@@ -591,9 +636,4 @@ public class LizhenApi extends DefaultSmfApiListener {
return false; return false;
} }
} }
@Override
public boolean isForThisApi(String apiName) {
return apiName != null && apiName.equalsIgnoreCase("Lizhen");
}
} }
...@@ -14,6 +14,7 @@ api: ...@@ -14,6 +14,7 @@ api:
brandQtyUrl: #http://172.30.170.199:8082/api/wcs/brandQty #gr标签满卷数 brandQtyUrl: #http://172.30.170.199:8082/api/wcs/brandQty #gr标签满卷数
importUrl: #http://10.42.222.52:8001/smf-core/ext/forward/getDataLogs #内仓导入外仓picking虚拟仓数据 importUrl: #http://10.42.222.52:8001/smf-core/ext/forward/getDataLogs #内仓导入外仓picking虚拟仓数据
checkReelMeasure: #http://10.190.25.124:8001/Sct/CheckReelMeasure #散料量测接口 checkReelMeasure: #http://10.190.25.124:8001/Sct/CheckReelMeasure #散料量测接口
CommonGIRecord: http://localhost:4000/Sct/CommonRMRecord
plant: 2810 plant: 2810
werks: 2810 werks: 2810
outerFactory: outerFactory:
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!