|
|
@@ -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" +
|