Browse Source

添加上料绑定接口

callm 7 months ago
parent
commit
2d2348d0ed
1 changed files with 80 additions and 24 deletions
  1. 80 24
      src/main/java/com/uas/eis/serviceImpl/MESHelperServiceImpl.java

+ 80 - 24
src/main/java/com/uas/eis/serviceImpl/MESHelperServiceImpl.java

@@ -652,27 +652,86 @@ public class MESHelperServiceImpl implements MESHelperService {
 	public Map<Object,Object> LoadCraftMaterial(String data) {
 		Map<Object, Object> rmap = new HashMap<Object, Object>();
 		JSONObject object = JSONObject.fromObject(data);
-		String SN=object.get("iSN");
-		String SC_CODE=object.get("iSource");
-		JSONArray CraftMaterial=object.getJSONArray("craftmaterial");
-
-	 	SqlRowList rs=baseDao.queryForRowSet("select max(sp_id)sp_id,max(sp_detno)sp_detno,min(sp_ifrepeat)sp_ifrepeat,max(sp_checkbarcode)sp_checkbarcode,min(sp_checksalecode)sp_checksalecode,\n" +
-				"sp_fsoncode,max(sp_barcoderule)sp_barcoderule,wm_concat(sp_soncode) sp_soncode,max(sp_ifuseregex)sp_ifuseregex,max(sp_ifforsn)\n" +
-				"sp_ifforsn,max(sp_length)sp_length,max(sp_type)sp_type,replace(wm_concat(sp_prefix),',','|')sp_prefix,max(sp_regex)\n" +
-				"sp_regex,max(pr_detail)pr_detail,max(substr(pr_spec,0,20))pr_spec from stepproduct left join product on pr_code=sp_fsoncode where\n" +
-				"sp_bomversion='"+ms_bomversion+"' and sp_craftcode='"+ms_craftcode+"' and sp_stepcode='"+stepcode+"'\n" +
-				"And sp_mothercode ='"+ms_prodcode+"' and sp_tracekind=1 and not exists(select 1 from craftmaterial where \n" +
-				"cm_sncode in (select '"+ms_firstsn+"' from dual union select sn from makesnrelation where firstsn='"+ms_firstsn+"') \n" +
-				"and cm_makecode='"+ms_makecode+"' and cm_fsoncode=\n" +
-				"sp_fsoncode and cm_status=0) group by sp_fsoncode order by SP_DETNO asc");
-		if(rs.size()!=CraftMaterial.size()){
-			oErrMessage = "上料条码数量"+CraftMaterial.size()+"和当前工位需上料数量不符"+rs.size();
-			rmap.put("oErrMessage",oErrMessage);
-			return rmap;
-		}
-		for (int i=0;i<CraftMaterial.size();i++){
+		String oErrMessage="";
+		String SN=object.get("iSN").toString();
+		String SC_CODE=object.get("iResCode").toString();
+		JSONArray CraftMaterial=object.getJSONArray("Barcode");
+		SqlRowList rs=baseDao.queryForRowSet("select ms_bomversion,ms_craftcode,ms_prodcode,ms_firstsn,ms_makecode from " +
+				"makeserial where ms_id in (select max(ms_id) from makeserial where ms_sncode='"+SN+"')");
+		if(rs.next()){
+			String ms_bomversion=rs.getString("ms_bomversion");
+			String ms_prodcode=rs.getString("ms_prodcode");
+			String ms_craftcode=rs.getString("ms_craftcode");
+			String ms_firstsn=rs.getString("ms_firstsn");
+			String ms_makecode=rs.getString("ms_makecode");
+			String stepcode = GetStepCodeBySource(SC_CODE);
+			rs=baseDao.queryForRowSet("select max(sp_id)sp_id,max(sp_detno)sp_detno,min(sp_ifrepeat)sp_ifrepeat,max(sp_checkbarcode)sp_checkbarcode,min(sp_checksalecode)sp_checksalecode,\n" +
+					"sp_fsoncode,max(sp_barcoderule)sp_barcoderule,wm_concat(sp_soncode) sp_soncode,max(sp_ifuseregex)sp_ifuseregex,max(sp_ifforsn)\n" +
+					"sp_ifforsn,max(sp_length)sp_length,max(sp_type)sp_type,replace(wm_concat(sp_prefix),',','|')sp_prefix,max(sp_regex)\n" +
+					"sp_regex,max(pr_detail)pr_detail,max(substr(pr_spec,0,20))pr_spec from stepproduct left join product on pr_code=sp_fsoncode where\n" +
+					"sp_bomversion='"+ms_bomversion+"' and sp_craftcode='"+ms_craftcode+"' and sp_stepcode='"+stepcode+"'\n" +
+					"And sp_mothercode ='"+ms_prodcode+"' and sp_tracekind=1 and not exists(select 1 from craftmaterial where \n" +
+					"cm_sncode in (select '"+ms_firstsn+"' from dual union select sn from makesnrelation where firstsn='"+ms_firstsn+"') \n" +
+					"and cm_makecode='"+ms_makecode+"' and cm_fsoncode=\n" +
+					"sp_fsoncode and cm_status=0) group by sp_fsoncode order by SP_DETNO asc");
+			if(rs.size()!=CraftMaterial.size()){
+				oErrMessage = "上料条码数量"+CraftMaterial.size()+"和当前工位需上料数量不符"+rs.size();
+				rmap.put("code",-1);
+				rmap.put("oErrMessage",oErrMessage);
+				return rmap;
+			}
+
+			int i=0;
+			while (rs.next()){
+				Boolean f = false;
+				String[] pres = rs.getString("sp_prefix").split("\\|");
+				int  sp_length= rs.getInt("sp_length");
+				for (int m=0;m<pres.length;m++){
+					if (CraftMaterial.getJSONObject(i).getString("code").startsWith(pres[m]))
+					{
+						//满足其中一条即可
+						f = true;
+						break;
+					}
+				}
+				if (f)
+				{
+					//进行长度匹配
+					if (CraftMaterial.getJSONObject(i).getString("code").length() == sp_length || sp_length == 0)
+					{
 
+					}
+					else{
+						oErrMessage = CraftMaterial.getJSONObject(i).getString("code") + "长度不匹配";
+						rmap.put("code",-1);
+						rmap.put("oErrMessage",oErrMessage);
+						return rmap;
+					}
+					}else {
+						oErrMessage = "前缀不匹配";
+						rmap.put("code",-1);
+						rmap.put("oErrMessage",oErrMessage);
+						return rmap;
+					}
+					i=i+1;
+				}
+		}else {
+				oErrMessage = "没有需要上料的物料";
+				rmap.put("code",-1);
+				rmap.put("oErrMessage",oErrMessage);
+				return rmap;
 		}
+		oErrMessage=SetPcbaData(SN,SC_CODE,"UserName","OK");
+		if(oErrMessage.equals("null")){
+			oErrMessage="";
+		}else{
+			rmap.put("code",-1);
+			rmap.put("message",oErrMessage);
+			return rmap;
+		}
+		oErrMessage = "";
+		rmap.put("code",0);
+		rmap.put("oErrMessage",oErrMessage);
 		return  rmap;
 	}
 
@@ -1099,11 +1158,8 @@ public class MESHelperServiceImpl implements MESHelperService {
 			oErrMessage = "当前序列号下一工序" + ms_nextstepcode;
 			code=-1;
 		}
-
-		rs=baseDao.queryForRowSet("select max(sp_id)sp_id,max(sp_detno)sp_detno,min(sp_ifrepeat)sp_ifrepeat,max(sp_checkbarcode)sp_checkbarcode,min(sp_checksalecode)sp_checksalecode,\n" +
-				"sp_fsoncode,max(sp_barcoderule)sp_barcoderule,wm_concat(sp_soncode) sp_soncode,max(sp_ifuseregex)sp_ifuseregex,max(sp_ifforsn)\n" +
-				"sp_ifforsn,max(sp_length)sp_length,max(sp_type)sp_type,replace(wm_concat(sp_prefix),',','|')sp_prefix,max(sp_regex)\n" +
-				"sp_regex,max(pr_detail)pr_detail,max(substr(pr_spec,0,20))pr_spec from stepproduct left join product on pr_code=sp_fsoncode where\n" +
+		rs=baseDao.queryForRowSet("select max(SP_DETNO)SP_DETNO,sp_fsoncode,max(sp_length)sp_length,replace(wm_concat(sp_prefix),',','|')sp_prefix,\n" +
+				"max(pr_detail)pr_detail,max(substr(pr_spec,0,20))pr_spec from stepproduct left join product on pr_code=sp_fsoncode where\n" +
 				"sp_bomversion='"+ms_bomversion+"' and sp_craftcode='"+ms_craftcode+"' and sp_stepcode='"+stepcode+"'\n" +
 				"And sp_mothercode ='"+ms_prodcode+"' and sp_tracekind=1 and not exists(select 1 from craftmaterial where \n" +
 				"cm_sncode in (select '"+ms_firstsn+"' from dual union select sn from makesnrelation where firstsn='"+ms_firstsn+"') \n" +