Przeglądaj źródła

增加MES对接接口

koul 4 lat temu
rodzic
commit
69035d3833

+ 1 - 2
src/main/java/com/uas/eis/controller/QueryController.java

@@ -5,7 +5,6 @@ import java.util.Map;
 
 import com.uas.eis.sdk.entity.ApiResult;
 import com.uas.eis.sdk.resp.ApiResponse;
-import org.apache.http.HttpRequest;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -34,7 +33,7 @@ public class QueryController {
 
 	@RequestMapping("/api/queryProduct")
 	public ApiResult<String> queryProduct(HttpServletRequest request, String data){
-		return ApiResponse.successRsp(request.getHeader("RequestId"),queryService.queryProduct(data));
+		return ApiResponse.successRsp("0",request.getHeader("RequestId"),queryService.queryProduct(data));
 	}
 	
 }

+ 4 - 2
src/main/java/com/uas/eis/core/WebAppConfig.java

@@ -29,9 +29,11 @@ public class WebAppConfig extends WebMvcConfigurationSupport{
 	public ApiSignLoginInterceptor apiSignLoginInterceptor(){
 		return new ApiSignLoginInterceptor();
 	}
-	
+
+	@Override
 	public void addInterceptors(InterceptorRegistry registry){
-		registry.addInterceptor(apiSignLoginInterceptor()).addPathPatterns("/**").excludePathPatterns("/EIS/login");
+		registry.addInterceptor(apiSignLoginInterceptor()).addPathPatterns("/api/**","/mes/**")
+				.excludePathPatterns("/login", "/erp/**");
 		//registry.addInterceptor(loginInterceptor()).addPathPatterns("/**").excludePathPatterns("/EIS/login");
 		registry.addInterceptor(new DataSourceInterceptor()).addPathPatterns("/*/**");
 	}

+ 1 - 1
src/main/java/com/uas/eis/core/support/ApiSignLoginInterceptor.java

@@ -17,7 +17,7 @@ import java.util.*;
 public class ApiSignLoginInterceptor extends HandlerInterceptorAdapter {
 
     // 签名超时时长,默认时间为5分钟,ms
-    private static final int SIGN_EXPIRED_TIME = 5 * 60 * 1000;
+    private static final int SIGN_EXPIRED_TIME = 60 * 60 * 1000;
     private static final String ACCESS_KEY = "AccessKey";
     private static final String ACCESS_SECRET = "AccessSecret";
     private static final String TIMESTAMP_KEY = "Timestamp";

+ 102 - 1
src/main/java/com/uas/eis/dao/BaseDao.java

@@ -10,6 +10,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
+import com.uas.eis.entity.Configs;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.dao.DataAccessException;
 import org.springframework.dao.EmptyResultDataAccessException;
@@ -26,9 +27,13 @@ import net.sf.json.JSONObject;
 
 @Repository
 public class BaseDao{
+
+	static final String CREATE_SEQ = "CREATE SEQUENCE ?" + // 创建序列
+			" MINVALUE 1 MAXVALUE 99999999999 INCREMENT BY 1 START WITH 3000 CACHE 20 NOORDER NOCYCLE ";
 	
 	@Autowired
 	private JdbcTemplate jdbcTemplate;
+
 	
 	public JdbcTemplate getJdbcTemplate() {
 		return jdbcTemplate;
@@ -579,5 +584,101 @@ public class BaseDao{
 		}
 		return datas;
 	}
-	
+	/**
+	 * 获取序列号
+	 *
+	 * @param seq
+	 *            指定的序列名
+	 */
+	public int getSeqId(String seq) {
+		try {
+			String sql = "select " + seq + ".nextval from dual";
+			SqlRowList rs = queryForRowSet(sql);
+			if (rs.next()) {
+				return rs.getInt(1);
+			} else {// 如果不存在就创建序列
+				int count = getCountByCondition("user_sequences", "Sequence_Name='" + seq.toUpperCase() + "'");
+				if (count == 0)
+					getJdbcTemplate().execute(CREATE_SEQ.replace("?", seq));
+				return getSeqId(seq);
+			}
+		} catch (Exception e) {
+			int count = getCountByCondition("user_sequences", "Sequence_Name='" + seq.toUpperCase() + "'");
+			if (count == 0)
+				getJdbcTemplate().execute(CREATE_SEQ.replace("?", seq));
+			return getSeqId(seq);
+		}
+	}
+
+	/**
+		* 获取编号序列
+	 *
+			 * @param myTable
+	 *            Caller
+	 * @param thisType
+	 *            2
+			 */
+	public synchronized String sGetMaxNumber(String myTable, int thisType) {
+		return callProcedure("Sp_GetMaxNumber", new Object[] { myTable, thisType });
+	}
+
+	/**
+	 * 一个字段,一条结果
+	 *
+	 * @param tableName
+	 *            对应要查询的表
+	 * @param field
+	 *            要查询的字段
+	 * @param condition
+	 *            查询条件
+	 * @return field对应的数据
+	 */
+	public <T> T getFieldValue(String tableName, String field, String condition, Class<T> requiredType) {
+		StringBuffer sql = new StringBuffer("SELECT ");
+		sql.append(field);
+		sql.append(" FROM ");
+		sql.append(tableName);
+		sql.append(" WHERE ");
+		sql.append(condition);
+		SqlRowList srs = queryForRowSet(sql.toString());
+		if (srs.next()) {
+			RowConvert<T> convert = new RowConvert<T>(requiredType);
+			return convert.convert(srs.getObject(1));
+		} else {
+			return null;
+		}
+	}
+
+	/**
+	 * 判断指定参数是否配置为“是”
+	 *
+	 * @param caller
+	 * @param code
+	 *            参数编号
+	 */
+	public boolean isDBSetting(String caller, String code) {
+		int count = getCount("select count(1)  from configs where caller='" + caller + "' and code='" + code + "'");
+		if (count==0){
+			return false;
+		}
+		Configs configs = jdbcTemplate.queryForObject("select *  from configs where caller=? and code=?",
+				new BeanPropertyRowMapper<Configs>(Configs.class), caller, code);
+		if (configs != null) {
+			String data = configs.getData();
+			if ("YN".equals(configs.getData_type())) {
+				return String.valueOf(Constant.YES).equals(data);
+			}
+			return data == null ? false : true;
+		}
+		return false;
+	}
+
+	public int getCount(String sql) {
+		SqlRowList rs = queryForRowSet(sql);
+		if (rs.next()) {
+			return rs.getInt(1);
+		}
+		return 0;
+	}
+
 }

+ 26 - 15
src/main/java/com/uas/eis/entity/Product.java

@@ -11,37 +11,48 @@ import java.io.Serializable;
  * @date 2021-11-25 8:47
  */
 public class Product implements Serializable {
-    @JSONField(name = "ITEMNO")
+
+    @JSONField(name = "custNo")
+    private String pr_kh_user;
+    @JSONField(name = "itemNo")
     private String pr_code;
-    @JSONField(name = "ITEMNAME")
+    @JSONField(name = "itemName")
     private String pr_detail;
-    @JSONField(name = "DESCRIPTION")
+    @JSONField(name = "description")
     private String pr_spec;
-    @JSONField(name = "UNITNO")
+    @JSONField(name = "unitNo")
     private String pr_unit;
-    @JSONField(name = "COMPANYNO")
+    @JSONField(name = "companyNo")
     private String pr_cop;
-    @JSONField(name = "VERSION")
+    @JSONField(name = "version")
     private int pr_version;
-    @JSONField(name = "ITEMTYPE")
+    @JSONField(name = "itemType")
     private String pr_serial;
-    @JSONField(name = "INVALIDQTY")
+    @JSONField(name = "invalidQty")
     private int pr_validdays;
-    @JSONField(name = "MSDLEVEL")
+    @JSONField(name = "msdLevel")
     private String pr_msdlevel;
-    @JSONField(name = "FHELPCODE")
+    @JSONField(name = "memoryCode")
     private String pr_fhelpcode;
-    @JSONField(name = "F_115")
+    @JSONField(name = "packType")
     private String pr_f_115;
-    @JSONField(name = "F_116")
+    @JSONField(name = "thickness")
     private String pr_f_116;
-    @JSONField(name = "F_102")
+    @JSONField(name = "technology")
     private String pr_f_102;
-    @JSONField(name = "F_103")
+    @JSONField(name = "itemCategory")
     private String pr_kind;
-    @JSONField(name = "FDEFAULTLOC")
+    @JSONField(name = "erpLoc")
     private String pr_whcode;
 
+    public String getPr_kh_user() {
+        return pr_kh_user;
+    }
+
+    public void setPr_kh_user(String pr_kh_user) {
+        this.pr_kh_user = pr_kh_user;
+    }
+
     public String getPr_code() {
         return pr_code;
     }

+ 6 - 2
src/main/java/com/uas/eis/sdk/resp/ApiResponse.java

@@ -21,8 +21,8 @@ public class ApiResponse {
         return new ApiResult<T>().setCode(code).setMessage(msg);
     }
 
-    public static <T> ApiResult<T> successRsp(String requestId,T data) {
-        return new ApiResult<T>().setRequestId(requestId).setData(data);
+    public static <T> ApiResult<T> successRsp(String code,String requestId, String msg) {
+        return new ApiResult<T>().setCode(code).setRequestId(requestId).setMessage(msg);
     }
 
     public static <T> ApiResult<T> successRsp(String code,String requestId,T data) {
@@ -38,6 +38,10 @@ public class ApiResponse {
         return new ApiResult<T>().setCode(code).setMessage(msg);
     }
 
+    public static <T> ApiResult<T> failRsp(String code,String requestId, String msg) {
+        return new ApiResult<T>().setCode(code).setMessage(msg).setRequestId(requestId);
+    }
+
     public static <T> ApiResult<T> failRsp(String code, String msg, T data) {
         return new ApiResult<T>().setCode(code).setMessage(msg).setData(data);
     }

+ 6 - 3
src/main/java/com/uas/eis/service/Impl/QueryServiceImpl.java

@@ -10,7 +10,6 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.uas.eis.entity.*;
 import com.uas.eis.exception.SystemException;
@@ -258,9 +257,13 @@ public class QueryServiceImpl implements QueryService {
 	@Override
 	public String queryProduct(String data) {
 		Map<Object, Object> store = BaseUtil.parseFormStoreToMap(data);
-		int size = store.get("size") == null ? 500 : Integer.parseInt(store.get("size").toString());
+		int size = store.get("SIZE") == null ? 500 : Integer.parseInt(store.get("SIZE").toString());
 		size=size>500?500:size;
-		List<Product> products = baseDao.query("select * from (select pr_code ,pr_detail ,pr_spec ,nvl(pr_unit,'PCS') pr_unit,nvl(pr_cop,'BYT') pr_cop,nvl(pr_version,0) pr_version,pr_serial ,pr_validdays ,pr_msdlevel ,pr_fhelpcode ,pr_f_115 ,pr_f_116 ,pr_f_102 ,pr_kind ,pr_whcode from product where pr_sendstatus='待上传' and pr_statuscode='AUDITED' and nvl(pr_groupcode,' ')<>'用品' order by pr_auditdate,pr_id) where rownum<=" + size,
+		List<Product> products = baseDao.query("select * from (select pr_code ,pr_detail ,pr_spec ,nvl(pr_unit,'PCS')" +
+						" pr_unit,nvl(pr_cop,'BYT') pr_cop,nvl(pr_version,0) pr_version,pr_serial ," +
+						"nvl(pr_validdays,0) pr_validdays ,pr_msdlevel ,pr_fhelpcode ,pr_f_115 ,pr_f_116 ,pr_f_102 ," +
+						"pr_kind ," +
+						"pr_whcode from product where pr_sendstatus='待上传' and pr_statuscode='AUDITED' and nvl(pr_groupcode,' ')<>'用品' order by pr_auditdate,pr_id) where rownum<=" + size,
 				Product.class);
 		String s = JSON.toJSONString(products, SerializerFeature.WriteMapNullValue);
 		baseDao.execute("update product set pr_sendstatus='已上传' where pr_id in (select pr_id from (select pr_id from product where pr_sendstatus='待上传' and pr_statuscode='AUDITED' and nvl(pr_groupcode,' ')<>'用品' order by pr_auditdate,pr_id) where rownum<=" + size+")");

+ 2 - 1
src/main/java/com/uas/eis/utils/HttpUtil.java

@@ -580,8 +580,9 @@ public class HttpUtil {
 				}
 			}
 			request.setEntity(new UrlEncodedFormEntity(nvps));
-			response = httpClient.execute(request);
 			System.out.println(request);
+			response = httpClient.execute(request);
+			System.out.println(response);
 			return Response.getResponse(response);
 		} finally {
 			request.releaseConnection();

+ 7 - 1
src/main/resources/api_sign_key_mapping.properties

@@ -1 +1,7 @@
-BOYT=f9d17c1047fd468081e39ce33bb41bb7
+BOYT=f9d17c1047fd468081e39ce33bb41bb7
+mesUser=ERP
+mesPwd=erp.com
+mesHttp=http://192.168.16.224:8088/mrs/
+syncProduct=updateItemByErp
+syncMakeBase=updateProdByErp
+syncMakeBaseDetail=updateProdBomByErp

+ 1 - 1
src/main/resources/application.yml

@@ -22,7 +22,7 @@ server:
         /EIS
 
 action:
-    api_action: /EIS/api
+    api_action: /EIS/api,/EIS/mes,/EIS/erp
     public_actions: /EIS/logout,/EIS/hello1
 
 extral: