|
|
@@ -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) {
|