Browse Source

添加设备上料接口

callm 16 hours ago
parent
commit
f218ff497c

+ 2 - 0
src/main/java/com/uas/eis/service/MESHelperService.java

@@ -8,6 +8,8 @@ import java.util.Map;
 public interface MESHelperService {
 
 	Map<Object, Object> DLLMain(String accessKey, String requestId, String data);
+	Map<Object, Object> LoadCraftMaterial(String data);
+
 
 	Map<Object, Object> Weigh(String data);
 

+ 96 - 0
src/main/java/com/uas/eis/serviceImpl/MESHelperServiceImpl.java

@@ -642,6 +642,102 @@ public class MESHelperServiceImpl implements MESHelperService {
 	public String Time(String time){
 		return time.replaceAll("T"," ").substring(0,19);
 	}
+	@Override
+	public Map<Object,Object> LoadCraftMaterial(String data) {
+		Map<Object, Object> rmap = new HashMap<Object, Object>();
+		JSONObject object = JSONObject.fromObject(data);
+		Object 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");
+				int  sp_id= rs.getInt("sp_id");
+				String  sp_fsoncode= rs.getString("sp_fsoncode");
+				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;
+				}
+				baseDao.execute("insert into Craftmaterial (cm_id ,cm_makecode,cm_maid,cm_maprodcode, cm_soncode, cm_mscode, cm_sncode, cm_stepcode, cm_stepname,cm_fsoncode,"+
+						"cm_craftcode,cm_craftname,cm_barcode,cm_inqty,cm_indate,cm_inman,cm_linecode,cm_wccode,cm_sourcecode,cm_spid,cm_status,cm_materialtype,cm_firstsn)"+
+						"select Craftmaterial_seq.nextval, ma_code, ma_id, ma_prodcode,'"+sp_fsoncode+"',ms_code,ms_sncode,mcd_stepcode,"+
+						"mcd_stepname,sp_fsoncode,ms_craftcode,ms_craftname,'"+ CraftMaterial.getJSONObject(i).getString("code")+"',1,sysdate,'" + SC_CODE + "','" + SC_CODE + "',ma_wccode,"+
+						"'"+SC_CODE+"','"+sp_id+"',0,1,ms_firstsn from make left join makecraftdetail on mcd_macode=ma_code  left join stepproduct on sp_stepcode=mcd_stepcode "+
+						" and sp_mothercode = ma_prodcode left join makeserial on ms_makecode=ma_code and sp_craftcode=ms_craftcode "+
+						"where ma_code='" + ms_makecode + "'and sp_id='"+sp_id+"' and mcd_stepcode = '" + stepcode+ "' and ms_sncode='" + SN + "'");
+				i=i+1;
+			}
+
+
+		}else {
+			oErrMessage = "没有需要上料的物料";
+			rmap.put("code",-1);
+			rmap.put("oErrMessage",oErrMessage);
+			return rmap;
+		}
+		oErrMessage=SetPcbaData(SN,SC_CODE,"UserName","OK");
+		if(oErrMessage==null){
+			oErrMessage="";
+		}else{
+			rmap.put("code",-1);
+			rmap.put("message",oErrMessage);
+			return rmap;
+		}
+		oErrMessage = "";
+		rmap.put("code",0);
+		rmap.put("oErrMessage",oErrMessage);
+		return  rmap;
+	}
 
 	@Override
 	public Map<Object,Object> Weigh(String data) {