Przeglądaj źródła

MES接口添加

callm 3 lat temu
rodzic
commit
0eff292445

+ 13 - 1
src/main/java/com/uas/eis/entity/HelperType.java

@@ -5,7 +5,19 @@ package com.uas.eis.entity;
  * MES对接写号定义类型与代码
  */
 public enum HelperType {
-    CHECKROUTEPASSED("CHECKROUTEPASSED","检测XXX") , ; //自行往后增加枚举类型
+    CheckRoutePassed("CheckRoutePassed","检测岗位资源是否正确") , //检测岗位资源是否正确
+    CheckUserAndResourcePassed("CheckUserAndResourcePassed","验证序列号执行工序") , //验证序列号执行工序
+    GetAddressRangeByMO("GetAddressRangeByMO","分配MAC和BT信息") ,//分配MAC和BT信息
+    GetMEIOrNetCodeRange("GetMEIOrNetCodeRange","分配IMEI和NetCode信息") ,//分配IMEI和NetCode信息
+    GetRcardMOInfo("GetRcardMOInfo","获取序列号对应工单信息") ,//获取序列号对应工单信息
+    GetMobileAllInfo("GetMobileAllInfo","查询已分配的信息") ,//查询已分配的信息
+    SetAddressInfo("SetAddressInfo","写入SN的Wifi,BT信息") ,//写入SN的Wifi,BT信息
+    GetMaster("GetMaster","获取账套信息") ,//获取账套信息
+    SetMobileData("SetMobileData","设置测试结果,结果必须为NG或者OK") ,//设置测试结果,结果必须为NG或者OK
+    SetIMEIInfo("SetIMEIInfo","设置IMEI信息") ,//设置IMEI信息
+    SetTestDetail("SetTestDetail","设置测试结果") ,//设置测试结果
+    SetPcbaData("SetPcbaData","检测XXX") ,//设置测试结果
+    GoMo("GoMo","检测XXX") ;//序列号归属工单
 
     private String code;
     private String name;

+ 429 - 6
src/main/java/com/uas/eis/serviceImpl/MESHelperServiceImpl.java

@@ -2,6 +2,7 @@ package com.uas.eis.serviceImpl;
 
 import com.uas.eis.core.config.SpObserver;
 import com.uas.eis.dao.BaseDao;
+import com.uas.eis.dao.SqlRowList;
 import com.uas.eis.entity.ErrorMessage;
 import com.uas.eis.entity.HelperType;
 import com.uas.eis.exception.ApiSystemException;
@@ -50,10 +51,42 @@ public class MESHelperServiceImpl implements MESHelperService {
 		//返回值
 		Map<Object, Object> remap = new HashMap<Object, Object>();
 		switch(helperType){
-			case CHECKROUTEPASSED:
-                //调用方法
+			case CheckRoutePassed:
 				remap = CheckRoutePassed(map.get("detail"));
 			    break;
+			case CheckUserAndResourcePassed:
+				remap = CheckUserAndResourcePassed(map.get("detail"));
+				break;
+			case GetAddressRangeByMO:
+				remap = GetAddressRangeByMO(map.get("detail"));
+				break;
+			case GetMEIOrNetCodeRange:
+				remap = GetMEIOrNetCodeRange(map.get("detail"));
+				break;
+			case GetRcardMOInfo:
+				remap = GetRcardMOInfo(map.get("detail"));
+				break;
+			case GetMobileAllInfo:
+				remap = GetMobileAllInfo(map.get("detail"));
+				break;
+			case SetAddressInfo:
+				remap = SetAddressInfo(map.get("detail"));
+				break;
+			case GetMaster:
+				remap = GetMaster(map.get("detail"));
+				break;
+			case SetMobileData:
+				remap = SetMobileData(map.get("detail"));
+				break;
+			case SetIMEIInfo:
+				remap = SetIMEIInfo(map.get("detail"));
+				break;
+			case SetTestDetail:
+				remap = SetTestDetail(map.get("detail"));
+				break;
+			case SetPcbaData:
+				remap = SetPcbaData(map.get("detail"));
+				break;
 			default:
 				err = -1;
 				break;
@@ -66,12 +99,402 @@ public class MESHelperServiceImpl implements MESHelperService {
 	}
 
    private Map<Object,Object> CheckRoutePassed(Object data){
-	    Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data.toString());
-	    //实际业务数据
-	    Map<Object, Object> rmap = new HashMap<>();
+		Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data.toString());
+		//实际业务数据
+		Map<Object, Object> rmap = new HashMap<>();
+	    String iSN=map.get("iSN").toString();
+	    String iResCode=map.get("iResCode").toString();
+	    String oErrMessage="";
+	   if (iSN ==null)
+	   {
+		   oErrMessage = "SN不能为空";
+	   }
+	   List<String> list = new ArrayList<String>();
+	   list = baseDao.callProcedureWithOut("CS_CHECKSTEPSNANDMACODE", new Object[]{
+			   String.valueOf(""),
+			   String.valueOf(iResCode),
+			   String.valueOf(iSN),
+			   String.valueOf("")
+	   }, new Integer[]{1, 2, 3, 4}, new Integer[]{5, 6, 7});
+	   oErrMessage=list.get(2);
+	   SqlRowList rs = baseDao.queryForRowSet("select ms_status,ms_stepcode,ms_nextstepcode from makeserial where ms_id=(  select max(ms_id) from makeserial where ms_sncode  in ( select '" + iSN + "' from dual union select sn from makesnrelation where beforesn='" + iSN + "' and sn<>' '  union select beforesn from makesnrelation where sn='" + iSN + "' and beforesn<>' '))");
+	   String ms_status = "";
+	   String ms_stepcode = "";
+	   String ms_nextstepcode = "";
+	   if(rs.next()){
+		   ms_status= rs.getString("ms_status");
+		   ms_stepcode=rs.getString("ms_stepcode");
+		   ms_nextstepcode=rs.getString("ms_nextstepcode");
+	   }
+	   String stepcode = GetStepCodeBySource(iResCode);
+	   if (ms_nextstepcode != "" && ms_nextstepcode != stepcode)
+	   {
+		   oErrMessage = "当前序列号下一工序" + ms_nextstepcode;
+	   }
+	   rmap.put("oErrMessage",oErrMessage);
+	   return rmap;
+	}
+
+	private Map<Object,Object> CheckUserAndResourcePassed(Object data){
+		Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data.toString());
+		//实际业务数据
+		Map<Object, Object> rmap = new HashMap<>();
+		String oErrMessage = null;
+		if (map.get("iUserCode") == null || map.get("iResCode") == null || map.get("iPassWord") == null)
+		{
+			oErrMessage = "用户名,密码,岗位资源必须填写";
+			rmap.put("oErrMessage",oErrMessage);
+			return rmap;
+		}
+		String iUserCode=map.get("iUserCode").toString();
+		String iPassWord=map.get("iPassWord").toString();
+		String iResCode=map.get("iResCode").toString();
+		if (CheckUserLogin(iUserCode, iPassWord))
+		{
+			String SQL = "select em_code,em_type,em_name from employee where em_code=? ";
+			SqlRowList rs = baseDao.queryForRowSet(SQL,  iUserCode);
+			if (rs.next())
+			{
+				String em_name = rs.getString("em_name");
+				String em_type = rs.getString("em_type");
+				if (iResCode ==null)
+				{
+					oErrMessage = "岗位资源不允许为空";
+					rmap.put("oErrMessage",oErrMessage);
+					return rmap;
+				}
+				if (em_type.equals("admin"))
+				{
+					if (!baseDao.checkIf("Source", "sc_code='" + iResCode + "' and sc_statuscode='AUDITED'"))
+					{
+						oErrMessage = "岗位资源编号错误或者未审核!";
+					}
+				}
+				else
+				{
+					SqlRowList rs1=baseDao.queryForRowSet("select ur_resourcecode from cs$empgroup left join cs$userresource on ur_groupcode=eg_groupcode left join source on ur_resourcecode=sc_code where eg_emcode = '"+ iUserCode + "' and sc_statuscode='AUDITED'");
+					//如果存在该编号
+					if (rs1.next())
+					{
+						//判断如果多个岗位资源存在,用户输入的只要在其中就行
+						while (rs.hasNext())
+						{
+							if (!rs.getString("ur_resourcecode").equals("iResCode")){
+								oErrMessage = "用户不处于当前资源所属分组!";
+							}else
+							{
+								oErrMessage=null;
+								continue;
+							}
+						}
+					}
+					else
+						oErrMessage = "岗位资源编号错误或者未审核!";
+				}
+			}
+			else
+				oErrMessage = "用户不存在!";
+		}else{
+			oErrMessage = "用户名密码不正确!";
+		}
+		rmap.put("oErrMessage",oErrMessage);
+		return rmap;
+	}
+	private Map<Object,Object> GetAddressRangeByMO(Object data){
+		Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data.toString());
+		//实际业务数据
+		Map<Object, Object> rmap = new HashMap<>();
+		String iSN="";
+		String oErrMessage = null;
+		String oWIFI = "";
+		String oBT = "";
+		String oCode1 = "";
+		String oCode2 = "";
+		String oCode3 = "";
+		if(map.get("iSN")==null){
+			oErrMessage = "SN不能为空";
+			rmap.put("oErrMessage",oErrMessage);
+			return rmap;
+		}
+		iSN=map.get("iSN").toString();
+		//判断工单是否归属
+		Map<Object, Object> map3=new HashMap<>();
+		map3.put("iSN",iSN);
+		Map<Object, Object> map2=GetRcardMOInfo(map3);
+		if(map2.get("oErrMessage")!=null){
+			oErrMessage=map2.get("oErrMessage").toString();
+			rmap.put("oErrMessage",oErrMessage);
+			return rmap;
+		}
+		List<String> list = new ArrayList<String>();
+		list = baseDao.callProcedureWithOut("CS_GETADDRESSBYMAKECODE", new Object[]{
+				String.valueOf(iSN),
+				String.valueOf(map2.get("oMoCode").toString()),
+		}, new Integer[]{1,2}, new Integer[]{3,4,5,6,7,8});
+		oWIFI = list.get(0);
+		oBT =  list.get(1);
+		oCode1 =  list.get(2);
+		oCode2 = list.get(3);
+		oCode3 =  list.get(4);
+		oErrMessage= list.get(5);
+		if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
+			rmap.put("oWIFI",oWIFI);
+			rmap.put("oBT",oBT);
+			rmap.put("oCode1",oCode1);
+			rmap.put("oCode2",oCode2);
+			rmap.put("oCode3",oCode3);
+		}
+		else
+			rmap.put("oErrMessage",oErrMessage);
+		return rmap;
+	}
 
+	private Map<Object,Object> GetMEIOrNetCodeRange(Object data){
+		Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data.toString());
+		//实际业务数据
+		Map<Object, Object> rmap = new HashMap<>();
+		String iSN="";
+		String oErrMessage = null;
+		String oIMEI1 = "";
+		String oIMEI2 = "";
+		String oMEID = "";
+		String oNetCode = "";
+		String oPSN = "";
+		String oID1 = "";
+		String oID2 = "";
+		String oID3 = "";
+		String oID4 = "";
+		String oID5 = "";
+		if(map.get("iSN")==null){
+			oErrMessage = "SN不能为空";
+			rmap.put("oErrMessage",oErrMessage);
+			return rmap;
+		}
+		if(map.get("iIMEI1")!=null){
+			oIMEI1=map.get("iIMEI1").toString();
+		}
+		if(map.get("iNetCode")!=null){
+			oNetCode=map.get("iNetCode").toString();
+		}
+		iSN=map.get("iSN").toString();
+		List<String> list = new ArrayList<String>();
+		list = baseDao.callProcedureWithOut("CS_GETIMEIORNETCODERANGE", new Object[]{
+				String.valueOf(iSN),
+				String.valueOf(""),
+				String.valueOf(oIMEI1),
+				String.valueOf(oNetCode),
+		}, new Integer[]{1,2,3,4}, new Integer[]{5,6,7,8,9,10,11,12,13,14});
+		oIMEI1 = list.get(0);
+		oIMEI2 =  list.get(1);
+		oMEID =  list.get(2);
+		oNetCode = list.get(3);
+		oID1 =  list.get(4);
+		oID2 =  list.get(5);
+		oID3 =  list.get(6);
+		oID4 =  list.get(7);
+		oID5 =  list.get(8);
+		oErrMessage= list.get(9);
+		if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
+			rmap.put("oIMEI1",oIMEI1);
+			rmap.put("oIMEI2",oIMEI2);
+			rmap.put("oMEID",oMEID);
+			rmap.put("oNetCode",oNetCode);
+			rmap.put("oPSN",oPSN);
+			rmap.put("oID1",oID1);
+			rmap.put("oID2",oID2);
+			rmap.put("oID3",oID3);
+			rmap.put("oID4",oID4);
+			rmap.put("oID5",oID5);
+		}
+		else
+			rmap.put("oErrMessage",oErrMessage);
 		return rmap;
-   }
+	}
+
+	private Map<Object,Object> GetRcardMOInfo(Object data){
+		Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data.toString());
+		//实际业务数据
+		Map<Object, Object> rmap = new HashMap<>();
+		//取MakeProcess表中的执行记录ID最大的一个工单的号码
+		String oErrMessage = null;
+		if(map.get("iSN")==null){
+			oErrMessage = "SN不能为空";
+			rmap.put("oErrMessage",oErrMessage);
+			return rmap;
+		}
+		String iSN=map.get("iSN").toString();
+		StringBuffer sql=new StringBuffer();
+		sql.append("select max(ms_id)ms_id from makeserial where ms_sncode in (select '" + iSN + "' from dual union select sn from ");
+		sql.append("makesnrelation where beforesn='" + iSN + "' and sn<>' '  union select beforesn from makesnrelation where sn='" + iSN + "' and beforesn<>' ')");
+		SqlRowList rs = baseDao.queryForRowSet(sql.toString());
+		String ms_id="";
+		if(rs.next()){
+			if(rs.getString("ms_id")==null){
+				oErrMessage = "序列号:" + iSN + " 未归属工单";
+				rmap.put("oErrMessage",oErrMessage);
+				return rmap;
+			}
+			else{
+				ms_id= rs.getString("ms_id");
+			}
+		}
+	 	Object oMoCode = baseDao.getFieldDataByCondition("MakeSerial", "ms_makecode", "ms_id='" + ms_id + "'");
+		if (oMoCode != null){
+			rmap.put("oMoCode",oMoCode);
+			oErrMessage= null;
+		}
+		else
+		{
+			oErrMessage = "序列号:" + iSN + " 未归属工单";
+		}
+		rmap.put("oErrMessage",oErrMessage);
+		return rmap;
+	}
+
+	private Map<Object,Object> GetMobileAllInfo(Object data){
+		Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data.toString());
+		//实际业务数据
+		Map<Object, Object> rmap = new HashMap<>();
+		String iSN="";
+		String oErrMessage = null;
+		String oIMEI1 = "";
+		String oIMEI2 = "";
+		String oMEID = "";
+		String oNetCode = "";
+		String oPSN = "";
+		String oID1 = "";
+		String oID2 = "";
+		String oID3 = "";
+		String oID4 = "";
+		String oID5 = "";
+		String oWIFI = "";
+		String oBT = "";
+		String oCode1 = "";
+		String oCode2 = "";
+		String oCode3 = "";
+		if(map.get("iSN")==null){
+			oErrMessage = "SN不能为空";
+			rmap.put("oErrMessage",oErrMessage);
+			return rmap;
+		}
+		iSN=map.get("iSN").toString();
+		Object ms_id =baseDao.getFieldDataByCondition("makeserial", "max(ms_id)", "ms_sncode='" + iSN + "'");
+		if(ms_id!=null)
+		{
+            SqlRowList rs=baseDao.queryForRowSet("select ms_id, ms_mac, ms_bt, ms_meid, ms_netcode, ms_psn, ms_imei1, ms_imei2, ms_imei3, ms_othcode1, ms_othcode2, ms_othcode3, ms_othid1, ms_othid2, ms_othid3 from MakeSerial where ms_id="+ms_id.toString());
+			if(rs.next()){
+				oWIFI = rs.getString("ms_mac");
+				oBT = rs.getString("ms_bt");
+				oPSN = rs.getString("ms_psn");
+				oNetCode = rs.getString("ms_netcode");
+				oMEID = rs.getString("ms_meid");
+				oIMEI1 = rs.getString("ms_imei1");
+				oIMEI2 = rs.getString("ms_imei2");
+				oCode1 = rs.getString("ms_othcode1");
+				oCode2 = rs.getString("ms_othcode2");
+				oCode3 = rs.getString("ms_othcode3");
+				oID1 = rs.getString("ms_othid3");
+				oID2 = rs.getString("ms_othid3");
+				oID3 = rs.getString("ms_othid3");
+			}
+		}else
+		{
+			oErrMessage = "序列号" + iSN + "不存在";
+			rmap.put("oErrMessage",oErrMessage);
+			return rmap;
+		}
+		if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
+			rmap.put("oIMEI1",oIMEI1);
+			rmap.put("oIMEI2",oIMEI2);
+			rmap.put("oMEID",oMEID);
+			rmap.put("oNetCode",oNetCode);
+			rmap.put("oPSN",oPSN);
+			rmap.put("oID1",oID1);
+			rmap.put("oID2",oID2);
+			rmap.put("oID3",oID3);
+			rmap.put("oID4",oID4);
+			rmap.put("oID5",oID5);
+			rmap.put("oWIFI",oWIFI);
+			rmap.put("oBT",oBT);
+			rmap.put("oCode1",oCode1);
+			rmap.put("oCode2",oCode2);
+			rmap.put("oCode3",oCode3);
+		}
+		else
+			rmap.put("oErrMessage",oErrMessage);
+		return rmap;
+	}
+
+	private Map<Object,Object> SetAddressInfo(Object data){
+		Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data.toString());
+		//实际业务数据
+		Map<Object, Object> rmap = new HashMap<>();
+
+		return rmap;
+	}
+
+	private Map<Object,Object> GetMaster(Object data){
+		Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data.toString());
+		//实际业务数据
+		Map<Object, Object> rmap = new HashMap<>();
+
+		return rmap;
+	}
+
+	private Map<Object,Object> SetMobileData(Object data){
+		Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data.toString());
+		//实际业务数据
+		Map<Object, Object> rmap = new HashMap<>();
+
+		return rmap;
+	}
+	private Map<Object,Object> SetIMEIInfo(Object data){
+		Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data.toString());
+		//实际业务数据
+		Map<Object, Object> rmap = new HashMap<>();
+
+		return rmap;
+	}
+	private Map<Object,Object> SetTestDetail(Object data){
+		Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data.toString());
+		//实际业务数据
+		Map<Object, Object> rmap = new HashMap<>();
+
+		return rmap;
+	}
+	private Map<Object,Object> SetPcbaData(Object data){
+		Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data.toString());
+		//实际业务数据
+		Map<Object, Object> rmap = new HashMap<>();
+
+		return rmap;
+	}
+
+	/// <summary>
+	/// 获取步骤代码
+	/// </summary>
+	/// <param name="Source"></param>
+	/// <returns></returns>
+	private String GetStepCodeBySource(String Source)
+	{
+		Object o=baseDao.getFieldDataByCondition("source", "sc_stepcode", "sc_code='" + Source + "'");
+		if(o!=null)
+			return o.toString();
+		else
+			return "";
+	}
+
+	private Boolean CheckUserLogin(String iUserCode, String iPassWord)
+	{
+		SqlRowList rs =baseDao.queryForRowSet("select em_code from employee where em_code='"+iUserCode+"' and em_password =?",iPassWord);
+		if (rs.next())
+			return true;
+		else
+		{
+			return false;
+		}
+	}
+
 
 	private String checkAccessKey(String accessKey,String requestId){
 		Object accessSecret_O = baseDao.getFieldDataByCondition("APIEMPLOYEE", "AE_SECRET", "AE_KEY='" + accessKey + "'");