소스 검색

MES Dll的Web接口开发完成

callm 3 년 전
부모
커밋
509996a1d2
1개의 변경된 파일312개의 추가작업 그리고 42개의 파일을 삭제
  1. 312 42
      src/main/java/com/uas/eis/serviceImpl/MESHelperServiceImpl.java

+ 312 - 42
src/main/java/com/uas/eis/serviceImpl/MESHelperServiceImpl.java

@@ -14,6 +14,7 @@ import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import sun.awt.TimedWindowEvent;
 
 import java.sql.Timestamp;
 import java.util.ArrayList;
@@ -53,7 +54,7 @@ public class MESHelperServiceImpl implements MESHelperService {
 		switch(helperType){
 			case CheckRoutePassed:
 				remap = CheckRoutePassed(map.get("detail"));
-			    break;
+				break;
 			case CheckUserAndResourcePassed:
 				remap = CheckUserAndResourcePassed(map.get("detail"));
 				break;
@@ -91,48 +92,48 @@ public class MESHelperServiceImpl implements MESHelperService {
 				err = -1;
 				break;
 		}
-        if(err == -1){
+		if(err == -1){
 			throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_TYPEILLEGAL,requestId));
 		}
 		SpObserver.putSp(username);
 		return remap;
 	}
 
-   private Map<Object,Object> CheckRoutePassed(Object data){
+	private Map<Object,Object> CheckRoutePassed(Object data){
 		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;
+		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){
@@ -177,7 +178,7 @@ public class MESHelperServiceImpl implements MESHelperService {
 					if (rs1.next())
 					{
 						//判断如果多个岗位资源存在,用户输入的只要在其中就行
-						while (rs.hasNext())
+						while (rs.next())
 						{
 							if (!rs.getString("ur_resourcecode").equals("iResCode")){
 								oErrMessage = "用户不处于当前资源所属分组!";
@@ -338,7 +339,7 @@ public class MESHelperServiceImpl implements MESHelperService {
 				ms_id= rs.getString("ms_id");
 			}
 		}
-	 	Object oMoCode = baseDao.getFieldDataByCondition("MakeSerial", "ms_makecode", "ms_id='" + ms_id + "'");
+		Object oMoCode = baseDao.getFieldDataByCondition("MakeSerial", "ms_makecode", "ms_id='" + ms_id + "'");
 		if (oMoCode != null){
 			rmap.put("oMoCode",oMoCode);
 			oErrMessage= null;
@@ -381,7 +382,7 @@ public class MESHelperServiceImpl implements MESHelperService {
 		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());
+			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");
@@ -429,7 +430,44 @@ public class MESHelperServiceImpl implements MESHelperService {
 		Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data.toString());
 		//实际业务数据
 		Map<Object, Object> rmap = new HashMap<>();
-
+		String oErrMessage = "";
+		if(map.get("iSN")==null){
+			oErrMessage = "SN不能为空";
+			rmap.put("oErrMessage",oErrMessage);
+			return rmap;
+		}
+		String iSN=map.get("iSN").toString();
+		String Mac = null;
+		String Bt = null;
+		String Code1 = null;
+		String Code2 = null;
+		String Code3 = null;
+		if(map.get("iWIFI")!=null){
+			Mac=map.get("iWIFI").toString();
+		}
+		if(map.get("iBT")!=null){
+			Mac=map.get("iBT").toString();
+		}
+		if(map.get("iCode1")!=null){
+			Mac=map.get("iCode1").toString();
+		}
+		if(map.get("iCode2")!=null){
+			Mac=map.get("iCode2").toString();
+		}
+		if(map.get("iCode3")!=null){
+			Mac=map.get("iCode3").toString();
+		}
+		List<String> list = new ArrayList<String>();
+		list = baseDao.callProcedureWithOut("CS_SETADDRESSINFO", new Object[]{
+				String.valueOf(iSN),
+				String.valueOf(Mac),
+				String.valueOf(Bt),
+				String.valueOf(Code1),
+				String.valueOf(Code2),
+				String.valueOf(Code3)
+		}, new Integer[]{1, 2, 3, 4, 5, 6}, new Integer[]{7});
+		oErrMessage = list.get(0);
+		rmap.put("oErrMessage",oErrMessage);
 		return rmap;
 	}
 
@@ -437,7 +475,11 @@ public class MESHelperServiceImpl implements MESHelperService {
 		Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data.toString());
 		//实际业务数据
 		Map<Object, Object> rmap = new HashMap<>();
-
+		SqlRowList rs=baseDao.queryForRowSet("select ma_user from mes.master");
+		while(rs.next())
+		{
+			rmap.put(rs.getString("ma_user"),rs.getString("ma_user"));
+		}
 		return rmap;
 	}
 
@@ -445,28 +487,174 @@ public class MESHelperServiceImpl implements MESHelperService {
 		Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data.toString());
 		//实际业务数据
 		Map<Object, Object> rmap = new HashMap<>();
-
+		String oErrMessage = "";
+		if(map.get("iSN")==null||map.get("iTSN")==null){
+			oErrMessage = "SN不能为空";
+			rmap.put("oErrMessage",oErrMessage);
+			return rmap;
+		}
+		String iSN=map.get("iSN").toString();
+		String iTSN=map.get("iTSN").toString();
+		String iSourceCode = null;
+		String iOperater = null;
+		String iResult = null;
+		String flag = null;
+		String iErrCode = null;
+		if(map.get("iSourceCode")!=null){
+			iSourceCode=map.get("iSourceCode").toString();
+		}
+		if(map.get("iOperater")!=null){
+			iOperater=map.get("iOperater").toString();
+		}
+		if(map.get("iResult")!=null){
+			iResult=map.get("iResult").toString();
+		}
+		if(map.get("flag")!=null){
+			flag=map.get("flag").toString();
+		}
+		if(map.get("iErrCode")!=null){
+			iErrCode=map.get("iErrCode").toString();
+		}
+		List<String> list = new ArrayList<String>();
+		list = baseDao.callProcedureWithOut("CS_SETADDRESSINFO", new Object[]{
+				String.valueOf(iTSN),
+				String.valueOf(iSN),
+				String.valueOf(iSourceCode),
+				String.valueOf(iOperater),
+				String.valueOf(iResult),
+				String.valueOf(iErrCode),
+		}, new Integer[]{1, 2, 3, 4, 5, 6}, new Integer[]{7});
+		oErrMessage = list.get(0);
+		rmap.put("oErrMessage",oErrMessage);
 		return rmap;
 	}
 	private Map<Object,Object> SetIMEIInfo(Object data){
 		Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data.toString());
 		//实际业务数据
 		Map<Object, Object> rmap = new HashMap<>();
-
+		String oErrMessage = "";
+		if(map.get("iSN")==null){
+			oErrMessage = "SN不能为空";
+			rmap.put("oErrMessage",oErrMessage);
+			return rmap;
+		}
+		String iSN=map.get("iSN").toString();
+		String iIMEI1=null;
+		String iIMEI2 = null;
+		String iIMEI3 = null;
+		String iMEID = null;
+		String iNET = null;
+		String iID1 = null;
+		String iID2 = null;
+		String iID3 = null;
+		if(map.get("iIMEI1")!=null){
+			iIMEI1=map.get("iIMEI1").toString();
+		}
+		if(map.get("iIMEI2")!=null){
+			iIMEI2=map.get("iIMEI2").toString();
+		}
+		if(map.get("iIMEI3")!=null){
+			iIMEI3=map.get("iIMEI3").toString();
+		}
+		if(map.get("iMEID")!=null){
+			iMEID=map.get("iMEID").toString();
+		}
+		if(map.get("iNET")!=null){
+			iNET=map.get("iNET").toString();
+		}
+		if(map.get("iID1")!=null){
+			iID1=map.get("iID1").toString();
+		}
+		if(map.get("iID2")!=null){
+			iID2=map.get("iID2").toString();
+		}
+		if(map.get("iID3")!=null){
+			iID3=map.get("iID3").toString();
+		}
+		List<String> list = new ArrayList<String>();
+		list = baseDao.callProcedureWithOut("CS_SETADDRESSINFO", new Object[]{
+				String.valueOf(iSN),
+				String.valueOf(iIMEI1),
+				String.valueOf(iIMEI2),
+				String.valueOf(iIMEI3),
+				String.valueOf(iMEID),
+				String.valueOf(iNET),
+				String.valueOf(""),
+				String.valueOf(iID1),
+				String.valueOf(iID2),
+				String.valueOf(iID3),
+		}, new Integer[]{1, 2, 3, 4, 5, 6,7,8,9,10}, new Integer[]{11});
+		oErrMessage = list.get(0);
+		rmap.put("oErrMessage",oErrMessage);
 		return rmap;
 	}
 	private Map<Object,Object> SetTestDetail(Object data){
 		Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data.toString());
 		//实际业务数据
 		Map<Object, Object> rmap = new HashMap<>();
+		String oErrMessage=null;
+		if(map.get("iSN")==null){
+			oErrMessage = "SN不能为空";
+			rmap.put("oErrMessage",oErrMessage);
+			return rmap;
+		}
+		String iSN=map.get("iSN").toString();
+		String iTestResult= null;
+		String iResCode= null;
+		String iTestDetail= null;
+		if(map.get("iTestResult")!=null){
+			iTestResult=map.get("iTestResult").toString();
+		}
+		if(map.get("iResCode")!=null){
+			iResCode=map.get("iResCode").toString();
+		}
+		if(map.get("iTestDetail")!=null){
+			iTestDetail=map.get("iTestDetail").toString();
+		}
+		Map<Object, Object> map3=new HashMap<>();
+		map3.put("iSN",iSN);
+		Map<Object, Object> map2=GetRcardMOInfo(map3);
+		String omakeCode = "";
+		StringBuffer sql=new StringBuffer();
 
+		sql.append("Insert into STEPTESTDETAIL (STD_ID,STD_CLASS,STD_SN,STD_MAKECODE,STD_ACTUALVALUE,STD_TESTRESULT,STD_INDATE,STD_RESCODE)");
+		sql.append("values(STEPTESTDETAIL_SEQ.nextval,'ITEM','" + iSN + "','" + map2.get("oMoCode") + "','" + iTestDetail + "','" + iTestResult + "',sysdate,'" + iResCode + "');");
+		baseDao.execute(sql.toString());
 		return rmap;
 	}
 	private Map<Object,Object> SetPcbaData(Object data){
 		Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data.toString());
 		//实际业务数据
 		Map<Object, Object> rmap = new HashMap<>();
-
+		String oErrMessage = "";
+		if(map.get("iSN")==null){
+			oErrMessage = "SN不能为空";
+			rmap.put("oErrMessage",oErrMessage);
+			return rmap;
+		}
+		String iSN=map.get("iSN").toString();
+		String iResCode = null;
+		String iOperator = null;
+		String iResult = null;
+		String iErrCode = null;
+		if(map.get("iResCode")!=null){
+			iResCode=map.get("iResCode").toString();
+		}
+		if(map.get("iOperator")!=null){
+			iOperator=map.get("iOperator").toString();
+		}
+		if(map.get("iResult")!=null){
+			iResult=map.get("iResult").toString();
+		}
+		if(map.get("iErrCode")!=null){
+			iErrCode=map.get("iErrCode").toString();
+		}
+		String oMakeCode = "";
+		Map<Object, Object> map3=new HashMap<>();
+		map3.put("iSN",iSN);
+		Map<Object, Object> map2=GetRcardMOInfo(map3);
+		if (map2.get("oErrMessage")==null)
+			return SetStepFinish(oMakeCode, iResCode, iSN, "", iResult, iOperator, iErrCode);
 		return rmap;
 	}
 
@@ -495,6 +683,88 @@ public class MESHelperServiceImpl implements MESHelperService {
 		}
 	}
 
+	public Map<Object,Object> SetStepFinish(String iMakeCode, String iSourceCode, String iSN, String iMPKind, String iResult, String iUserCode, String iErrCode)
+	{
+		String oErrMessage = "";
+		String StepCode = baseDao.getFieldDataByCondition("Makeserial", "ms_stepcode", "ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'").toString();
+		String CurrentStep = GetStepCodeBySource(iSourceCode);
+		String BgCode = baseDao.getFieldDataByCondition("step", "st_badgroupcode", "st_code='" + CurrentStep + "'").toString();
+		Map<Object, Object> rmap = new HashMap<>();
+		switch (iResult)
+		{
+			case "OK":
+				break;
+			case "NG":
+				if (iErrCode == "")
+				{
+					oErrMessage = "测试结果为NG时必须传递不良代码";
+					rmap.put("oErrMessage",oErrMessage);
+					return rmap;
+				}
+				else
+				{
+					baseDao.updateByCondition("makebad", "mb_status=-1", "mb_sncode='" + iSN + "' and mb_makecode='" + iMakeCode + "' and mb_stepcode='" + CurrentStep + "' and mb_status=0");
+					String[] BadCode = iErrCode.split(",");
+					StringBuffer sql=new StringBuffer();
+					for (int i = 0; i < BadCode.length; i++)
+					{
+						int mb_id = baseDao.getSeqId("makebad_seq");
+						sql.setLength(0);
+						sql.append("insert into makebad(mb_id,mb_makecode,mb_mscode,mb_sncode,mb_inman,mb_indate,mb_stepcode");
+						sql.append(",mb_sourcecode,mb_badcode,mb_badtable,mb_bgcode,mb_soncode,mb_status) select '" + mb_id + "'");
+						sql.append(",ma_code,ms_code,ms_sncode,'" + iUserCode + "',sysdate,'" + CurrentStep + "','" + iSourceCode + "',:bc_code,'',");
+						sql.append("'" + BgCode + "',sp_soncode,'0' from make left join makeSerial on ms_makecode=ma_code left join stepProduct on ");
+						sql.append("sp_mothercode=ma_prodcode and sp_stepcode=ms_nextstepcode where ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
+						baseDao.execute(sql.toString().replace(":bc_code", "'" + BadCode[i] + "'"));
+					}
+					//将不良的序列号的状态码设为3
+					baseDao.execute("update makeserial set ms_status='3' where ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
+				}
+				break;
+			default:
+				oErrMessage = "测试结果必须为NG或者OK";
+				rmap.put("oErrMessage",oErrMessage);
+				return rmap;
+		}
+		//不良采集为良品是更新
+		if (StepCode == CurrentStep && iResult == "OK")
+		{
+			Object[] ob = baseDao.getFieldsDataByCondition("makeserial", "ms_status,ms_craftcode,ms_prodcode", "ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
+			if (ob!=null)
+			{
+				String ms_status =ob[0].toString();
+				String ms_craftcode= ob[1].toString();
+				String ms_prodcode = ob[2].toString();
+				if (ms_status == "3")
+				{
+					String nextstepcode =baseDao.getFieldDataByCondition("craft left join craftdetail on cr_id=cd_crid ", "cd_nextstepcode", "cr_code='" + ms_craftcode + "' and cr_prodcode='" + ms_prodcode + "' and cd_stepcode='" + CurrentStep + "'").toString();
+					baseDao.updateByCondition("makeserial", "ms_status=1,ms_nextstepcode='" + nextstepcode + "'", "ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
+					baseDao.updateByCondition("makebad", "mb_status=-1", "mb_sncode='" + iSN + "' and mb_makecode='" + iMakeCode + "'");
+				}
+			}
+		}
+		return CS_SetFinish(iMakeCode, iSourceCode, iSN, iUserCode, iResult);
+	}
+
+	private Map<Object,Object> CS_SetFinish(String iMakeCode, String iSourceCode, String iSN, String iUserCode, String iResult)
+	{
+		Map<Object, Object> rmap = new HashMap<>();
+		String oErrMessage=null;
+		List<String> list = new ArrayList<String>();
+		list = baseDao.callProcedureWithOut("CS_SETADDRESSINFO", new Object[]{
+				String.valueOf(iMakeCode),
+				String.valueOf(iSourceCode),
+				String.valueOf(iSN),
+				String.valueOf(iUserCode),
+				String.valueOf(iResult),
+
+		}, new Integer[]{1, 2, 3, 4, 5}, new Integer[]{6});
+		oErrMessage = list.get(0);
+		rmap.put("oErrMessage",oErrMessage);
+		return rmap;
+	}
+
+
 
 	private String checkAccessKey(String accessKey,String requestId){
 		Object accessSecret_O = baseDao.getFieldDataByCondition("APIEMPLOYEE", "AE_SECRET", "AE_KEY='" + accessKey + "'");