|
|
@@ -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+"'");
|