Ver Fonte

【亿道次元EIS增加栈板新增和栈板解绑接口】

xiaost há 2 semanas atrás
pai
commit
b6f1875270

+ 27 - 0
src/main/java/com/uas/eis/controller/MESDataController.java

@@ -163,4 +163,31 @@ public class MESDataController {
         String requestId = request.getHeader("RequestId");
         return mesDataService.barcode(accessKey,requestId,json);
     }
+
+    /**
+     * 栈板新增
+     * @param request
+     * @param json
+     * @return
+     */
+    @RequestMapping(value = "/api/mes/newpallet" , method = RequestMethod.POST)
+    public ApiResult<String> newPallet(HttpServletRequest request, @RequestBody String json){
+        String accessKey = request.getHeader("AccessKey");
+        String requestId = request.getHeader("RequestId");
+        return mesDataService.newPallet(accessKey,requestId,json);
+    }
+
+    /***
+     * 栈板解除绑定
+     * @param request
+     * @param json
+     * @return
+     */
+    @RequestMapping(value = "/api/mes/unbindpallet" , method = RequestMethod.POST)
+    public ApiResult<String> unbindpallet(HttpServletRequest request, @RequestBody String json){
+        String accessKey = request.getHeader("AccessKey");
+        String requestId = request.getHeader("RequestId");
+        return mesDataService.unbindPallet(accessKey,requestId,json);
+    }
+
 }

+ 4 - 0
src/main/java/com/uas/eis/service/MESDataService.java

@@ -32,4 +32,8 @@ public interface MESDataService {
 	List<Map<Object,Object>> oqcitemsamples(String accessKey, String requestId, String data);
 
 	ApiResult<Map<Object,Object>> barcode(String accessKey, String requestId, String data);
+
+	ApiResult<String> newPallet(String accessKey, String requestId, String data);
+
+	ApiResult<String> unbindPallet(String accessKey, String requestId, String data);
 }

+ 154 - 4
src/main/java/com/uas/eis/serviceImpl/MESDataServiceImpl.java

@@ -15,10 +15,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.logging.Logger;
 
 @Service
@@ -500,8 +497,161 @@ public class MESDataServiceImpl implements MESDataService {
 			}
 		}
 		return ApiResponse.successRsp("0",requestId,"操作成功");
+	}
+
+	/**
+	 * 栈板新增,先进行原栈板的解除绑定,解除绑定
+	 * @param requestId
+	 * @param data
+	 * {
+	 *     "weight": 2455,    //总重量
+	 *     "kbcode": "T355",  //卡板编号
+	 *     "type": "彩盒"     //类型是彩盒或者外箱
+	 *     "detail": [{
+	 *         "bcode": "53635453354"  //如果类型是彩盒则传的值是ms_grossw,如果类型是外箱则 取package pa_weight
+	 *     }
+	 *     ]
+	 * }
+	 * @return
+	 */
+	@Override
+	public ApiResult<String> newPallet(String accessKey, String requestId, String data) {
+		String AE_MASTER = checkAccessKey(accessKey, requestId);
+		SpObserver.putSp(AE_MASTER);
+		Map<Object, Object> map = FlexJsonUtil.fromJson(data);
+		try {
+			String err = checkAddParam(map);
+			if(null != err) {
+				return ApiResponse.failRsp(ErrorMessage.BUSINESS_ILLEGAL.getCode(), requestId, err);
+			}
+			List<Map<Object,Object>> barlist;
+			if (map.get("detail") instanceof ArrayList) {
+				barlist = (ArrayList)map.get("detail");
+			}else{
+				barlist = BaseUtil.parseGridStoreToMaps(map.get("detail").toString());
+			}
+			//将数据存入一个表里面去操作
+            int id_ = baseDao.getSeqId("TEMP_PALLETS");
+			List<String> sqls = new ArrayList<>();
+			sqls.add("insert into temp_pallets(id_,type_,weight_,palletno_) values("+id_+",'"+map.get("type")+"',"+map.get("weight")+",'"+map.get("kbcode")+"')");
+			for(Map<Object,Object> bar : barlist) {
+				sqls.add("insert into temp_Loadingpallets(id_,code_) values("+id_+",'"+bar.get("bcode")+"')");
+			}
+			baseDao.execute(sqls);
+			List<String> result = baseDao.callProcedureWithOut("SP_NEWPALLET", new Object[] {id_},new Integer[] {1}, new Integer[] {2,3});
+			if (result.size() != 0 && result.get(1) != null) {
+				return ApiResponse.successRsp("0",requestId,"新增栈板成功",result.get(1));
+			}else{
+				return ApiResponse.successRsp("0",requestId,"新增失败"+result.get(2));
+			}
+		}catch (Exception e){
+			e.printStackTrace();
+			if(e.getMessage().length() > 500) {
+				return ApiResponse.failRsp(ErrorMessage.BUSINESS_ILLEGAL.getCode(), requestId, "异常错误," + e.getMessage().substring(0, 500));
+			}else{
+				return ApiResponse.failRsp(ErrorMessage.BUSINESS_ILLEGAL.getCode(), requestId, "异常错误," + e.getMessage());
+			}
+		}
+	}
+
+
+	/**
+	 * 校验传参
+	 * @param map
+	 * @return
+	 */
+	private String checkAddParam(Map<Object, Object> map){
+		if(!StringUtil.hasText(map.get("weight")) ){
+			return "传参异常,总重量【weight】不能为空!";
+		}
+		if(!StringUtils.isNumeric(map.get("weight").toString())){
+			return "传参异常,总重量:"+map.get("weight")+",必须是数值类型!";
+		}
+		if(!StringUtil.hasText(map.get("kbcode"))){
+			return "传参异常,卡板编号【kbcode】不能为空!";
+		}
+		if(!StringUtil.hasText(map.get("type"))){
+			return "传参异常,类型【type】不能为空!";
+		}
+		if(!"彩盒".equals(map.get("type").toString()) && !"外箱".equals(map.get("type").toString()) ){
+			return "传参异常,类型:"+map.get("type")+",只能是彩盒或者外箱!";
+		}
+		if(!StringUtil.hasText(map.get("detail"))){
+			return "传参异常,需装栈板明细【detail】不能为空!";
+		}
+		return null;
 
 	}
+
+	/**
+	 * 栈板取消绑定,增加日志记录表
+	 * @param accessKey
+	 * @param requestId
+	 * @param data
+	 * {
+	 *   "type": "彩盒",  //值可以是彩盒或外箱或栈板
+	 *   "detail":[{
+	 *         "bcode": "53635453354"
+	 *     }
+	 *   ]
+	 *  }
+	 * @return
+	 */
+	@Override
+	public ApiResult<String> unbindPallet(String accessKey, String requestId, String data) {
+		// 取消绑定,栈板未在线才可以取消,获取栈板号
+		String AE_MASTER = checkAccessKey(accessKey, requestId);
+		SpObserver.putSp(AE_MASTER);
+		Map<Object, Object> map = FlexJsonUtil.fromJson(data);
+		try {
+			String err = checkUnBindParam(map);
+			if(null != err) {
+				return ApiResponse.failRsp(ErrorMessage.BUSINESS_ILLEGAL.getCode(), requestId, err);
+			}
+			List<Map<Object,Object>> barlist;
+			if (map.get("detail") instanceof ArrayList) {
+				barlist = (ArrayList)map.get("detail");
+			}else{
+				barlist = BaseUtil.parseGridStoreToMaps(map.get("detail").toString());
+			}
+			//将数据存入一个表里面去操作
+			int id_ = baseDao.getSeqId("TEMP_PALLETS");
+			List<String> sqls = new ArrayList<>();
+			sqls.add("insert into temp_pallets(id_,type_) values("+id_+",'"+map.get("type")+"')");
+			for(Map<Object,Object> bar : barlist) {
+				sqls.add("insert into temp_Loadingpallets(id_,code_) values("+id_+",'"+bar.get("bcode")+"')");
+			}
+			baseDao.execute(sqls);
+			List<String> result = baseDao.callProcedureWithOut("SP_UNBINDPALLET", new Object[] {id_},new Integer[] {1}, new Integer[] {2,3});
+			if (result.size() != 0 && result.get(1) != null) {
+				return ApiResponse.successRsp("0",requestId,"解绑栈板成功",result.get(1));
+			}else{
+				return ApiResponse.successRsp("0",requestId,"解绑失败"+result.get(2));
+			}
+		}catch (Exception e){
+			e.printStackTrace();
+			if(e.getMessage().length() > 500) {
+				return ApiResponse.failRsp(ErrorMessage.BUSINESS_ILLEGAL.getCode(), requestId, "异常错误," + e.getMessage().substring(0, 500));
+			}else{
+				return ApiResponse.failRsp(ErrorMessage.BUSINESS_ILLEGAL.getCode(), requestId, "异常错误," + e.getMessage());
+			}
+		}
+	}
+
+	private String checkUnBindParam(Map<Object, Object> map){
+		if(!StringUtil.hasText(map.get("type"))){
+			return "传参异常,类型【type】不能为空!";
+		}
+		if(!"彩盒".equals(map.get("type").toString()) && !"外箱".equals(map.get("type").toString()) && !"栈板".equals(map.get("type").toString())){
+			return "传参异常,类型:"+map.get("type")+",只能是彩盒或者外箱或者栈板!";
+		}
+		if(!StringUtil.hasText(map.get("detail"))){
+			return "传参异常,需装栈板明细【detail】不能为空!";
+		}
+		return null;
+	}
+
+
 	private String checkAccessKey(String accessKey,String requestId){
 		Object accessSecret_O = baseDao.getFieldDataByCondition("APIEMPLOYEE", "AE_SECRET", "AE_KEY='"+accessKey+"'");
 		Object AE_MASTER = baseDao.getFieldDataByCondition("APIEMPLOYEE", "AE_MASTER", "AE_KEY='"+accessKey+"'");