Commit 1dd96a52 zshaohui

1.南瑞切换成正式环境

2.获取入库单,返回具体详情
3.提供根据条码获取宽和高给客户端
1 个父辈 f205d79a
...@@ -11,9 +11,12 @@ import com.neotel.smfcore.common.exception.ValidateException; ...@@ -11,9 +11,12 @@ import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants; import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.ReelLockPosUtil; import com.neotel.smfcore.common.utils.ReelLockPosUtil;
import com.neotel.smfcore.common.utils.SecurityUtils; import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.api.SmfApi; import com.neotel.smfcore.core.api.SmfApi;
import com.neotel.smfcore.core.api.bean.CodeValidateParam; import com.neotel.smfcore.core.api.bean.CodeValidateParam;
import com.neotel.smfcore.core.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode; import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.service.po.Component;
import com.neotel.smfcore.core.barcode.utils.CodeResolve; import com.neotel.smfcore.core.barcode.utils.CodeResolve;
import com.neotel.smfcore.core.device.bean.PosInfo; import com.neotel.smfcore.core.device.bean.PosInfo;
import com.neotel.smfcore.core.device.enums.OP_STATUS; import com.neotel.smfcore.core.device.enums.OP_STATUS;
...@@ -63,6 +66,9 @@ public class DeviceController { ...@@ -63,6 +66,9 @@ public class DeviceController {
@Autowired @Autowired
private IStoragePosManager storagePosManager; private IStoragePosManager storagePosManager;
@Autowired
private IComponentManager componentManager;
/** /**
* 权限验证API列表 * 权限验证API列表
*/ */
...@@ -629,4 +635,29 @@ public class DeviceController { ...@@ -629,4 +635,29 @@ public class DeviceController {
data.put("plateH", pos.getBarcode().getHeight() + ""); data.put("plateH", pos.getBarcode().getHeight() + "");
return ResultBean.newOkResult(data); return ResultBean.newOkResult(data);
} }
@ApiOperation("根据条码返回尺寸信息")
@RequestMapping("/service/store/getHeightandWidthByCode")
@ResponseBody
@AnonymousAccess
public ResultBean getHeightandWidthByCode(@RequestBody Map<String, String> paramMap) {
String code = paramMap.get("code");
if (StringUtils.isNotBlank(code)) {
Barcode barcode = codeResolve.resolveCode(code);
if (barcode != null) {
String partNumber = barcode.getPartNumber();
Component component = componentManager.findOneByPN(partNumber);
if (component != null) {
Map<String,Object> resultMap = new HashMap<>();
resultMap.put("partNumber",partNumber);
resultMap.put("plateSize",component.getPlateSize());
resultMap.put("height",component.getHeight());
return ResultBean.newOkResult(resultMap);
}
}
}
return ResultBean.newErrorResult(-1, "smfcore.valueNotExist", "{0}[{1}]不存在", new String[]{"commpont", code});
}
} }
...@@ -191,10 +191,11 @@ public class InListController { ...@@ -191,10 +191,11 @@ public class InListController {
String inListName = params.get("inListName"); String inListName = params.get("inListName");
String storageId = params.get("storageId"); String storageId = params.get("storageId");
String groupId = params.get("groupId"); String groupId = params.get("groupId");
InList inList = null;
if (ObjectUtil.isEmpty(inListName)) { if (ObjectUtil.isEmpty(inListName)) {
} else { } else {
InList inList = inListCache.getInList(inListName); inList = inListCache.getInList(inListName);
if (inList == null) { if (inList == null) {
//如果入库单为空的话,调用api获取 //如果入库单为空的话,调用api获取
inList = smfApi.fetchInList(inListName); inList = smfApi.fetchInList(inListName);
...@@ -233,7 +234,7 @@ public class InListController { ...@@ -233,7 +234,7 @@ public class InListController {
} }
} }
} }
return ResultBean.newOkResult("smfcore.inlist.setOk", "设置成功"); return ResultBean.newOkResult(inListMapper.toDto(inList));
} }
@ApiOperation("下载入库单模板") @ApiOperation("下载入库单模板")
......
package com.neotel.smfcore.custom.nanrui; package com.neotel.smfcore.custom.nanrui;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.neotel.smfcore.common.exception.ApiException; import com.neotel.smfcore.common.exception.ApiException;
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.core.api.bean.ApiResult; import com.neotel.smfcore.core.api.bean.ApiResult;
...@@ -12,14 +10,10 @@ import com.neotel.smfcore.core.inList.service.po.InList; ...@@ -12,14 +10,10 @@ import com.neotel.smfcore.core.inList.service.po.InList;
import com.neotel.smfcore.core.inList.service.po.InListItem; import com.neotel.smfcore.core.inList.service.po.InListItem;
import com.neotel.smfcore.core.order.LiteOrderCache; import com.neotel.smfcore.core.order.LiteOrderCache;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager; import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
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.stereotype.Service; import org.springframework.stereotype.Service;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -29,81 +23,64 @@ import java.util.Map; ...@@ -29,81 +23,64 @@ import java.util.Map;
@Service @Service
public class NanRuiApi extends BaseSmfApiListener { public class NanRuiApi extends BaseSmfApiListener {
@Autowired
private LiteOrderCache liteOrderCache;
@Autowired
private ILiteOrderManager liteOrderManager;
@Override @Override
public boolean isForThisApi(String apiName) { public boolean isForThisApi(String apiName) {
return "nanrui".equals(apiName); return "nanrui".equals(apiName);
} }
@Override @Override
public LiteOrder fetchOrder(String fetchOrderUrl, String orderNumber, String username) { public InList fetchInList(String fetchInListUrl, String number) {
//String url, Map<String, Object> paramMap, Map<String,String> headerMap
LiteOrder liteOrder = liteOrderCache.getLiteOrder(orderNumber);
if (liteOrder != null){
throw new ValidateException("smfcore.valueAlreadyExist","{0}[{1}]已存在",new String[]{"orderNumber",orderNumber});
}
Map<String, Object> paramMap = new HashMap<>(); Map<String, Object> paramMap = new HashMap<>();
paramMap.put("api", NanRuiConfig.api); paramMap.put("api", NanRuiConfig.api);
paramMap.put("format", NanRuiConfig.format); paramMap.put("format", NanRuiConfig.format);
Map<String, String> dataParamMap = new HashMap<>(); Map<String, String> dataParamMap = new HashMap<>();
dataParamMap.put("number", orderNumber); dataParamMap.put("number", number);
String dataStr = JSON.toJSONString(dataParamMap); String dataStr = JSON.toJSONString(dataParamMap);
//dataStr = URLEncoder.encode(dataStr); //dataStr = URLEncoder.encode(dataStr);
paramMap.put("data", dataStr); paramMap.put("data", dataStr);
Map<String, String> headerMap = new HashMap<>(); Map<String, String> headerMap = new HashMap<>();
headerMap.put("X-DB", NanRuiConfig.X_DB_TEST); headerMap.put("X-DB", NanRuiConfig.X_DB_PROD);
headerMap.put("Content-Type", NanRuiConfig.contentType); headerMap.put("Content-Type", NanRuiConfig.contentType);
try {
String resultStr = HttpHelper.postParam(fetchOrderUrl, paramMap, headerMap);
log.info(orderNumber + "fetchOrder结果为:" + resultStr);
ApiResult apiResult = JsonUtil.toObj(resultStr, ApiResult.class); try {
log.info("调用获取入库单接口,参数" + JsonUtil.toJsonStr(paramMap));
String result = HttpHelper.postParam(fetchInListUrl, paramMap, headerMap);
log.info(number + "获取入库单接口返回" + result);
ApiResult apiResult = JsonUtil.toObj(result, ApiResult.class);
if (apiResult.isOk()) { if (apiResult.isOk()) {
List<LiteOrderItem> orderItemList = new ArrayList<>();
Map<String, Object> dataMap = (Map<String, Object>) apiResult.getData(); Map<String, Object> dataMap = (Map<String, Object>) apiResult.getData();
String returnNumber = dataMap.get("number").toString();
InList inList = new InList();
inList.setName(returnNumber);
List<InListItem> items = new ArrayList<>();
List<Map<String, Object>> itemList = (List<Map<String, Object>>) dataMap.get("items"); List<Map<String, Object>> itemList = (List<Map<String, Object>>) dataMap.get("items");
for (Map<String, Object> itemMap : itemList) { for (Map<String, Object> itemMap : itemList) {
String partNum = itemMap.get("partNum").toString(); String partNum = itemMap.get("partNum").toString();
Object qtyStr = itemMap.get("qty"); Object qtyStr = itemMap.get("qty");
Object reelCountStr = itemMap.get("reelCount"); Object reelCountStr = itemMap.get("reelCount");
InListItem item = new InListItem();
LiteOrderItem orderItem = new LiteOrderItem(); item.setPN(partNum);
orderItem.setPn(partNum);
if (qtyStr != null && !qtyStr.toString().isEmpty()) { if (qtyStr != null && !qtyStr.toString().isEmpty()) {
orderItem.setNeedNum(Integer.valueOf(qtyStr.toString())); item.setNum(Integer.valueOf(qtyStr.toString()));
} }
if (reelCountStr != null && !qtyStr.toString().isEmpty()) { if (reelCountStr != null && !qtyStr.toString().isEmpty()) {
orderItem.setNeedReelCount(Integer.valueOf(reelCountStr.toString())); item.setInReelCount(Integer.valueOf(reelCountStr.toString()));
} }
orderItemList.add(orderItem); items.add(item);
} }
inList.setInListItems(items);
log.info("获取到入库单:" + inList.getName() + ",共" + items.size() + "条工单详情");
LiteOrder order = new LiteOrder(); inList = inListManager.createWithItems(inList);
order.setOrderNo(orderNumber); inListCache.addInListToMap(inList);
order.setOrderItems(orderItemList); return inList;
log.info("获取到工单单:" + orderNumber + ",共" + orderItemList.size() + "条工单详情");
liteOrderManager.createWithItems(order);
liteOrderCache.addOrderToMap(order);
return order;
} else { } else {
throw new ValidateException("smfcore.fetchOrder.ng", "获取工单失败,MES返回ng:" + apiResult.getMsg()); throw new ApiException("smfcore.fetchInList.ng", "获取入库单MES返回NG:" + apiResult.getMsg());
} }
} catch (Exception e) { } catch (Exception e) {
throw new ValidateException("smfcore.fetchOrder.ng", "获取工单失败:" + e.getMessage()); log.error(number + "获取入库单接口出错:" + e.getMessage());
return null;
} }
} }
} }
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!