package QCM.JHY01.JHY0102; import CoreFS.SA01.CoreIComponent; import CoreFS.SA06.CoreReturnObject; import QCM.COMMUNAL.VO.QcmJudgeOperateLog; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.apache.commons.lang.StringUtils; import org.apache.ibatis.session.SqlSession; import org.apache.log4j.Logger; import java.io.*; import java.math.BigDecimal; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.*; public class Send2 extends CoreIComponent{ private Logger logger = Logger.getLogger(this.getClass().getName()); CoreReturnObject cro = new CoreReturnObject(); SqlSession SqlSession = QCM.COMMUNAL.SqlSessionBuilder.openSqlSession(); QCM.COMMUNAL.OrderSqMapper mapper = SqlSession.getMapper(QCM.COMMUNAL.OrderSqMapper.class); /** * 撤销委托接口 * @param Entrust * @return */ public CoreReturnObject CancelLIMES(String Entrust,String UserName,String zhyy){ try { JSONArray arr = new JSONArray(); String[] ja=Entrust.split(","); String msInfo=""; String resultlist =""; TreeSet treeSet = new TreeSet(); if (ja!=null && ja.length>0) { for (int i = 0; i < ja.length; i++) { String sp = ja[i]; treeSet.add(sp); JSONObject obj = new JSONObject(); obj.put("id",sp); arr.add(obj); if ("".equals(msInfo)) { msInfo="'"+sp+"'"; }else{ msInfo=msInfo+"'"+sp+"'"; } if (i !=ja.length-1) { msInfo=msInfo+","; } } } //循环每个取样编号是否已判定 for (String trs : treeSet) { //判断是否是夹杂初样 String sqltrs = "SELECT d.* from QCM_JHY_SAMPLE_CONSIGN_D d WHERE d.SPECIMEN_NO='"+trs+"' and FREQ_CODE='D' and SMP_TYPE_CODE='0' "; List hmDD = mapper.query(sqltrs.toString()); String QuerySql=""; String intstrd="0"; if(hmDD!=null && hmDD.size()>=1){ QuerySql="SELECT count(1) CNUM from QCM_JHY_SAMPLE_R_ORD t where t.JUDGE_STATUS <> '0' and " + " t.SMP_NO in (SELECT d.SMP_NO from QCM_JHY_SAMPLE_CONSIGN_D d WHERE d.SPECIMEN_NO='"+trs+"' " + " union all select d.SMP_NO from QCM_JHY_SAMPLE_CONSIGN_D d where d.Quote_Consign_No = '"+trs+"') "; intstrd="1"; }else{ QuerySql="SELECT count(1) CNUM from QCM_JHY_SAMPLE_R_ORD t where t.JUDGE_STATUS <> '0' and t.JUDGE_RESULT_CODE is not null and " + " t.SMP_NO=(SELECT d.SMP_NO from QCM_JHY_SAMPLE_CONSIGN_D d WHERE d.SPECIMEN_NO='"+trs+"')"; } List hashMaplist2 = mapper.query(QuerySql.toString()); BigDecimal cou2 = (BigDecimal) hashMaplist2.get(0).get("CNUM"); String coun2 = cou2.toString(); Integer integ2 = Integer.parseInt(coun2); if(integ2 >= 1){ if("1".equals(intstrd)){ cro.setV_errCode(-1); cro.setV_errMsg("当前炉已有夹杂材质已判定,不可撤销,请核实数据!"); return cro; }else{ cro.setV_errCode(-1); cro.setV_errMsg("取样编号【"+trs+"】材质已判定,不可撤销,请核实数据!"); return cro; } } //判断中厚板预测轧批 String sqlzbh = "SELECT d.* from QCM_JHY_SAMPLE_CONSIGN_D d WHERE d.SPECIMEN_NO='"+trs+"' and d.PLINE_CODE in ('ZB1','HB1') and SHOULD_SAMPLE is not null "; List hmzbh = mapper.query(sqlzbh.toString()); if(hmzbh!=null && hmzbh.size()>=1){ HashMap obj=hmzbh.get(0); if(("0".equals(obj.get("SHOULD_SAMPLE")) || "2".equals(obj.get("SHOULD_SAMPLE"))) && obj.get("SMP_TYPE_CODE").equals("0")){ cro.setV_errCode(-1); cro.setV_errMsg("当前勾选的轧批【"+obj.get("BATCH_NO")+"】是预测抽样!请正确操作按钮"); return cro; } } //夹杂引用轧批不可撤销 String QuerySql2=" SELECT d.* from QCM_JHY_SAMPLE_CONSIGN_D d " + " WHERE d.SPECIMEN_NO='"+trs+"' and d.FREQ_CODE='D' and d.QUOTE_CONSIGN_NO is not null "; List hmD = mapper.query(QuerySql2.toString()); if(hmD!=null && hmD.size()>=1){ cro.setV_errCode(-1); cro.setV_errMsg("请选择发送到LIMS送样的轧批,取样编号【"+trs+"】不是送样的轧批,不可撤销,请核实数据!"); return cro; } } String contnum = "0"; //循环每个取样编号是否是引用取样编号 for (String trs : treeSet) { //当前取样编号下的项目全部引用了 就表示没有发送到LIMS那边 String stryy=" select * from qcm_jhy_sample_consign_d_item i where SPECIMEN_NO='"+trs+"' and QUOTE_MEMO is null and SEQ<50 "; List hmyy = mapper.query(stryy.toString()); if(hmyy==null || hmyy.size()<=0){ String QuerySql="SELECT t.* from QCM_JHY_SAMPLE_CONSIGN_D t" + " WHERE t.SPECIMEN_NO='"+trs+"' and t.FREQ_CODE <> 'D' " + " and t.send_memo = '有引用' and t.QUOTE_MEMO = '引用实绩' "; List hashMaplist2 = mapper.query(QuerySql.toString()); if(hashMaplist2!=null && hashMaplist2.size()>=1){ List itemhm=null; List insphm =null; if(hashMaplist2.get(0).get("SMP_TYPE_CODE").equals("1")){//复样 QuerySql=""; QuerySql=" SELECT t.* from qcm_jhy_sample_consign_d_item t " + " WHERE t.SPECIMEN_NO='"+trs+"' and t.QUOTE_MEMO is not null and SEQ<50 "; itemhm = mapper.query(QuerySql.toString()); QuerySql=""; QuerySql=" SELECT t.* from QCM_JHY_INSP_PHYSICS t " + " WHERE t.SPECIMEN_NO='"+trs+"' and SEQ<50 "; insphm = mapper.query(QuerySql.toString()); }else{ QuerySql=""; QuerySql=" SELECT t.* from qcm_jhy_sample_consign_d_item t " + " WHERE t.SPECIMEN_NO='"+trs+"' and t.QUOTE_MEMO is not null "; itemhm = mapper.query(QuerySql.toString()); QuerySql=""; QuerySql=" SELECT t.* from QCM_JHY_INSP_PHYSICS t " + " WHERE t.SPECIMEN_NO='"+trs+"' "; insphm = mapper.query(QuerySql.toString()); } if(itemhm.size() == insphm.size()){ contnum = "1"; String sql = ""; sql="UPDATE QCM_JHY_SAMPLE_CONSIGN_D SET STATUS='0',SPECIMENNOZH = '1', " + " SEND_ID ='',SEND_NAME='',SEND_TIME='',SEND_MEMO='',QUOTE_MEMO = '',SAMPLE_DELIVERY_TIME='' " + " where SPECIMEN_NO = '"+trs+"' "; mapper.UpdateQcmWt(sql); sql=""; sql="UPDATE QCM_JHY_SAMPLE_CONSIGN_D_ITEM SET QUOTE_MEMO='' where SPECIMEN_NO = '"+trs+"' "; mapper.UpdateQcmWt(sql); if(hashMaplist2.get(0).get("SMP_TYPE_CODE").equals("1")){ //删除 实绩表数据 sql=""; sql = "DELETE QCM_JHY_INSP_PHYSICS t where t.SPECIMEN_NO = '"+trs+"' and t.QUOTE_SPECIMEN_NO is null and SEQ<50 "; mapper.delete(sql.toString()); }else{ //删除 实绩表数据 sql=""; sql = "DELETE QCM_JHY_INSP_PHYSICS t where t.SPECIMEN_NO = '"+trs+"' and t.QUOTE_SPECIMEN_NO is null"; mapper.delete(sql.toString()); } QcmJudgeOperateLog qjog = new QcmJudgeOperateLog(); qjog.setOperate_name(UserName); qjog.setBatchno(hashMaplist2.get(0).get("BATCH_NO") == null ?"":hashMaplist2.get(0).get("BATCH_NO").toString()); qjog.setOperate_type("撤销检验委托"); qjog.setParams(hashMaplist2.get(0).get("MATERIAL_NO") == null ?"":hashMaplist2.get(0).get("MATERIAL_NO").toString()); qjog.setProd_line(hashMaplist2.get(0).get("PLINE_CODE") == null ?"":hashMaplist2.get(0).get("PLINE_CODE").toString()); qjog.setMemo(hashMaplist2.get(0).get("SPECIMEN_NO").toString()); mapper.insertQcmJudgeOperateLog(qjog); } } if(contnum.equals("1")){ SqlSession.commit(); SqlSession.close(); cro.setV_errCode(1); cro.setV_errMsg("撤销引用成功"); return cro; } } } //查询取样编号是否状态是已待确认,只有待确认的才能够撤销 StringBuffer sqlucomm = new StringBuffer(); //调用LZMES撤销委托接口,暂时没有 String urlStr = "http://172.16.0.169:82/Limsinterface/http/Revokeghtask";//调用url String result = ""; try{ JSONObject tarObj=new JSONObject(); Date date=new Date(); SimpleDateFormat simleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String ret=simleDateFormat.format(date);//系统时间 //主表数据 tarObj.put("revokeUser", UserName+"C"); tarObj.put("revokeReason", zhyy); tarObj.put("revokeTime", ret); tarObj.put("revokeOrderList", arr); result = httpURLPOSTCase(urlStr,tarObj.toString());//调用url //result = "200";//调用url if (result == null||result.equals("null") || result.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("撤回发送LIMS系统失败!返回值:"+result); return cro; } resultlist =result.substring(8, 11); JSONObject jobject=JSON.parseObject(result); String limsCode=jobject.getString("code"); String limsMessage=jobject.getString("message"); if(limsMessage.equals("样品不存在") && limsCode.equals("500")){ resultlist="200"; } //resultlist ="200"; if (!resultlist.equals("200") || resultlist == null || resultlist.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("撤回发送数据Lims失败!返回值:"+result); return cro; } }catch(Exception e){ cro.setV_errCode(-1); cro.setV_errMsg("撤回发送数据Lims失败"+e.getMessage()); return cro; } if (resultlist.equals("200")) { //记录撤回的数据 String sqlDel = " Insert into QCM_JHY_SAMPLE_CONSIGN_D_DEL(SMP_NO,SPECIMEN_NO,HEAT_NO,BATCH_NO,INSPECTION_LOT,FREQ_CODE,FREQ_NAME,MATERIAL_NO,SMP_TYPE_CODE,SMP_TYPE_NAME,CONSIGN_NO,CONSIGN_NO_SEQ,TEST_QTY,SMP_QTY,SMP_LOCATION,BOARD_NO,QUOTE_CONSIGN_NO,OLD_CONSIGN_NO,PLINE_CODE,PLINE_NAME,STATUS,VALIDFLAG,SOURCE,GUID,SEND_ID,SEND_NAME,SEND_TIME,CHEM_ITEM,PRODUCT_CNT,CREATE_TIME,SMP_LOCATION_CODE,MEMO,WEIGHT,WEIGHT_STD,WEIGHT_SFD,SPECIMENNOZH,SEND_MEMO,ITEM_FLAG,CREATETIMEDEL,CREATENAMEDEL) " + " select SMP_NO,SPECIMEN_NO,HEAT_NO,BATCH_NO,INSPECTION_LOT,FREQ_CODE,FREQ_NAME,MATERIAL_NO,SMP_TYPE_CODE,SMP_TYPE_NAME,CONSIGN_NO,CONSIGN_NO_SEQ,TEST_QTY,SMP_QTY,SMP_LOCATION,BOARD_NO,QUOTE_CONSIGN_NO,OLD_CONSIGN_NO,PLINE_CODE,PLINE_NAME,STATUS,VALIDFLAG,SOURCE,GUID,SEND_ID,SEND_NAME,SEND_TIME,CHEM_ITEM,PRODUCT_CNT,CREATE_TIME,SMP_LOCATION_CODE,MEMO,WEIGHT,WEIGHT_STD,WEIGHT_SFD,'1',SEND_MEMO,ITEM_FLAG,SYSDATE,'"+UserName+"' from QCM_JHY_SAMPLE_CONSIGN_D d" + " where SPECIMEN_NO in ("+msInfo+")"; mapper.insert(sqlDel); //查询是不是卷板的39 49 59订单 String rzltsql="select t.* from qcm_jhy_sample_consign_d t,qcm_jhy_sample_r_ord r " +" where t.smp_no = r.smp_no and t.pline_code in ('RZ1','LT1') " +" and (r.design_key like '39%' or r.design_key like '49%' or r.design_key like '59%') " +" and t.specimen_no in ("+msInfo+") "; List hashMapRzlt = mapper.query(rzltsql.toString()); if(hashMapRzlt!=null && hashMapRzlt.size()>=1){ String updateSql="UPDATE QCM_JHY_SAMPLE_CONSIGN_D SET STATUS='0',SPECIMENNOZH = '1', " + " SEND_ID ='',SEND_NAME='',SEND_TIME='' where SPECIMEN_NO in ("+msInfo+")"; mapper.UpdateQcmWt(updateSql); }else{ String updateSql="UPDATE QCM_JHY_SAMPLE_CONSIGN_D SET STATUS='0',SPECIMENNOZH = '1',PLINE_CODE_LIMS='',SEND_ID ='',SEND_NAME='',SEND_TIME='', " + " SAMPLE_DELIVERY_TIME='',PRINT_SEQ='',PRINT_SEQJ='',PRINT_LOG='',SEND_SEQ='' " + " where SPECIMEN_NO in ("+msInfo+")"; mapper.UpdateQcmWt(updateSql); //删除 实绩表数据 String sql = "DELETE QCM_JHY_INSP_PHYSICS t where t.SPECIMEN_NO in ("+msInfo+") and t.QUOTE_SPECIMEN_NO is null"; mapper.delete(sql.toString()); } for (String trs : treeSet) { //热轧 String sql=""; sql ="select * from QCM_JHY_SAMPLE_CONSIGN_D where SPECIMEN_NO = '"+trs+"' and PLINE_CODE='RZ1' "; List hmRZ1 = mapper.query(sql.toString()); if(hmRZ1!=null && hmRZ1.size()>=1 && hmRZ1.get(0).get("PLINE_CODE").equals("RZ1")){ //热轧 清空有无取样 sql=""; sql = " update QCM_JHY_SAMPLE_CONSIGN_D t " + " set t.SAMPL_PICK_RY = '' " + " where t.SPECIMEN_NO = '"+trs+"' AND t.PLINE_CODE='RZ1' "; mapper.UpdateQcmWt(sql.toString()); } //中厚板 引用清除 五个项目 四个引用 一个发送LIMS 撤销之后全部实绩删除 还原最初 sql=""; sql ="select * from QCM_JHY_SAMPLE_CONSIGN_D where SPECIMEN_NO = '"+trs+"' and QUOTE_MEMO='引用实绩' and PLINE_CODE in ('ZB1', 'HB1') "; List hmap = mapper.query(sql.toString()); if(hmap!=null && hmap.size()>=1){ sql=""; sql="UPDATE QCM_JHY_SAMPLE_CONSIGN_D SET SEND_MEMO='',QUOTE_MEMO = '',SAMPLE_DELIVERY_TIME='' where SPECIMEN_NO = '"+trs+"' "; mapper.UpdateQcmWt(sql); sql=""; sql="UPDATE QCM_JHY_SAMPLE_CONSIGN_D_ITEM SET QUOTE_MEMO='' where SPECIMEN_NO = '"+trs+"' "; mapper.UpdateQcmWt(sql); } //中厚板 夹杂初样撤销 sql=""; sql="select * from qcm_jhy_sample_consign_d t where t.freq_code = 'D' AND T.SMP_TYPE_CODE = '0' and t.SPECIMEN_NO = '"+trs+"' "; List hmDD = mapper.query(sql.toString()); if(hmDD!=null && hmDD.size()>=1){ sql=""; sql="select * from qcm_jhy_sample_consign_d t where t.freq_code = 'D' AND T.SMP_TYPE_CODE = '0' and t.quote_consign_no = '"+trs+"' "; List hmD = mapper.query(sql.toString()); if(hmD!=null && hmD.size()>=1){ for (int i = 0; i < hmD.size(); i++) { sql=""; sql="UPDATE QCM_JHY_SAMPLE_CONSIGN_D SET STATUS='0',QUOTE_CONSIGN_NO='',SEND_ID = '',SEND_NAME='',SEND_TIME='' where SPECIMEN_NO = '"+hmD.get(i).get("SPECIMEN_NO")+"' "; mapper.UpdateQcmWt(sql); sql=""; sql="UPDATE QCM_JHY_SAMPLE_CONSIGN_D_ITEM SET QUOTE_SPECIMEN_NO='',QUOTE_SEQ = '' where SPECIMEN_NO = '"+hmD.get(i).get("SPECIMEN_NO")+"' "; mapper.UpdateQcmWt(sql); } } } } } String sqlLog = "select * from QCM_JHY_SAMPLE_CONSIGN_D t where t.specimen_no in ("+msInfo+")"; List lists = mapper.query(sqlLog); for (HashMap list : lists) { QcmJudgeOperateLog qjog = new QcmJudgeOperateLog(); qjog.setOperate_name(UserName); qjog.setBatchno(list.get("BATCH_NO") == null ?"":list.get("BATCH_NO").toString()); qjog.setOperate_type("撤销检验委托"); qjog.setParams(list.get("MATERIAL_NO") == null ?"":list.get("MATERIAL_NO").toString()); qjog.setProd_line(list.get("PLINE_CODE") == null ?"":list.get("PLINE_CODE").toString()); qjog.setMemo(list.get("SPECIMEN_NO").toString()); mapper.insertQcmJudgeOperateLog(qjog); } SqlSession.commit(); }catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); SqlSession.rollback(); cro.setV_errCode(-1); cro.setV_errMsg("撤销委托失败,请联系管理员查看问题!"); return cro; }finally { SqlSession.close(); } cro.setV_errCode(1); cro.setV_errMsg("撤销发送成功"); return cro; } /** * 撤销同批合并发送 撤销合并委托 中厚板 * @param Entrust * @return */ public CoreReturnObject ZHBCancelLIMES(String Entrust,String UserName,String zhyy){ try { JSONArray arr = new JSONArray(); String[] ja=Entrust.split(","); String msInfo=""; String resultlist =""; TreeSet treeSet = new TreeSet(); if (ja!=null && ja.length>0) { for (int i = 0; i < ja.length; i++) { String sp = ja[i]; treeSet.add(sp); JSONObject obj = new JSONObject(); obj.put("id",sp); arr.add(obj); if ("".equals(msInfo)) { msInfo="'"+sp+"'"; }else{ msInfo=msInfo+"'"+sp+"'"; } if (i !=ja.length-1) { msInfo=msInfo+","; } } } //循环每个取样编号是否已判定 for (String trs : treeSet) { String QuerySql="SELECT count(1) CNUM from QCM_JHY_SAMPLE_R_ORD t where t.JUDGE_STATUS <> '0' and t.JUDGE_RESULT_CODE is not null " + " and t.SMP_NO in (SELECT d.SMP_NO from QCM_JHY_SAMPLE_CONSIGN_D d WHERE d.ZHB_SPECIMEN_NO='"+trs+"')"; List hashMaplist2 = mapper.query(QuerySql.toString()); BigDecimal cou2 = (BigDecimal) hashMaplist2.get(0).get("CNUM"); String coun2 = cou2.toString(); Integer integ2 = Integer.parseInt(coun2); if(integ2 >= 1){ cro.setV_errCode(-1); cro.setV_errMsg("合并取样编号【"+trs+"】委托下材质已判定,不可撤销,请核实数据!"); return cro; } } //查询取样编号是否状态是已待确认,只有待确认的才能够撤销 StringBuffer sqlucomm = new StringBuffer(); //调用LZMES撤销委托接口,暂时没有 String urlStr = "http://172.16.0.169:82/Limsinterface/http/Revokeghtask";//调用url String result = ""; try{ JSONObject tarObj=new JSONObject(); Date date=new Date(); SimpleDateFormat simleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String ret=simleDateFormat.format(date);//系统时间 //主表数据 tarObj.put("revokeUser", UserName+"C"); tarObj.put("revokeReason", zhyy); tarObj.put("revokeTime", ret); tarObj.put("revokeOrderList", arr); result = httpURLPOSTCase(urlStr,tarObj.toString());//调用url //result = "200";//调用url if (result == null||result.equals("null") || result.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("撤销同批合并发送LIMS系统失败!返回值:"+result); return cro; } resultlist =result.substring(8, 11); //resultlist ="200"; if (!resultlist.equals("200") || resultlist == null || resultlist.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("撤销同批合并发送数据Lims失败!"+result); return cro; } }catch(Exception e){ cro.setV_errCode(-1); cro.setV_errMsg("撤销同批合并发送数据Lims失败"+e.getMessage()); return cro; } if (resultlist.equals("200")) { String sqlLog = "select * from QCM_JHY_SAMPLE_CONSIGN_D t where t.ZHB_SPECIMEN_NO in ("+msInfo+")"; List lists = mapper.query(sqlLog); for (HashMap list : lists) { QcmJudgeOperateLog qjog = new QcmJudgeOperateLog(); qjog.setOperate_name(UserName); qjog.setBatchno(list.get("BATCH_NO") == null ?"":list.get("BATCH_NO").toString()); qjog.setOperate_type("撤销同批合并委托"); qjog.setParams(list.get("MATERIAL_NO") == null ?"":list.get("MATERIAL_NO").toString()); qjog.setProd_line(list.get("PLINE_CODE") == null ?"":list.get("PLINE_CODE").toString()); qjog.setMemo(list.get("SPECIMEN_NO").toString()); mapper.insertQcmJudgeOperateLog(qjog); } //删除 实绩表数据 String sql = ""; sql = "DELETE QCM_JHY_INSP_PHYSICS t " + " where t.SPECIMEN_NO in (select d.SPECIMEN_NO from QCM_JHY_SAMPLE_CONSIGN_D d where d.ZHB_SPECIMEN_NO in ("+msInfo+") ) " + " and t.QUOTE_SPECIMEN_NO is null"; mapper.delete(sql.toString()); //合并表 String updateSql=""; updateSql="DELETE QCM_JHY_ZHB_PHYSICS where SPECIMEN_NO in ("+msInfo+")"; mapper.delete(updateSql); //itme表 updateSql=""; updateSql="UPDATE qcm_jhy_sample_consign_d_item SET ZHB_SPECIMEN_NO='' where ZHB_SPECIMEN_NO in ("+msInfo+")"; mapper.UpdateQcmWt(updateSql); //D表 updateSql=""; updateSql="UPDATE QCM_JHY_SAMPLE_CONSIGN_D SET STATUS='0',SPECIMENNOZH = '1',PLINE_CODE_LIMS='', " + " SEND_ID ='',SEND_NAME='',SEND_TIME='',ZHB_SPECIMEN_NO='',SAMPLE_DELIVERY_TIME='',PRINT_SEQ='',PRINT_SEQJ='' " + " where ZHB_SPECIMEN_NO in ("+msInfo+")"; mapper.UpdateQcmWt(updateSql); } SqlSession.commit(); }catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); SqlSession.rollback(); cro.setV_errCode(-1); cro.setV_errMsg("撤销委托失败,请联系管理员查看问题!"); return cro; }finally { SqlSession.close(); } cro.setV_errCode(1); cro.setV_errMsg("撤销发送成功"); return cro; } /** * 热轧 撤销人工抽样 * @param Entrust * @return */ public CoreReturnObject CancelLIMESRZ(String Entrust,String UserName,String zhyy){ try { JSONArray arr = new JSONArray(); String[] ja=Entrust.split(","); String msInfo=""; String resultlist =""; TreeSet treeSet = new TreeSet(); if (ja!=null && ja.length>0) { for (int i = 0; i < ja.length; i++) { String sp = ja[i]; treeSet.add(sp);//获取取样编号 JSONObject obj = new JSONObject(); obj.put("id",sp); arr.add(obj); if ("".equals(msInfo)) { msInfo="'"+sp+"'"; }else{ msInfo=msInfo+"'"+sp+"'"; } if (i !=ja.length-1) { msInfo=msInfo+","; } } } if(treeSet.size()>1){ cro.setV_errCode(-1); cro.setV_errMsg("撤销人工抽样只能选择取样的钢卷号!"); return cro; } //循环每个取样编号是否已判定 for (String trs : treeSet) { String QuerySql="SELECT count(1) CNUM from QCM_JHY_SAMPLE_R_ORD t where t.JUDGE_STATUS='1' and " + " t.SMP_NO=(SELECT d.SMP_NO from QCM_JHY_SAMPLE_CONSIGN_D d WHERE d.SPECIMEN_NO='"+trs+"')"; List hashMaplist2 = mapper.query(QuerySql.toString()); BigDecimal cou2 = (BigDecimal) hashMaplist2.get(0).get("CNUM"); String coun2 = cou2.toString(); Integer integ2 = Integer.parseInt(coun2); if(integ2 >= 1){ cro.setV_errCode(-1); cro.setV_errMsg("取样编号【"+trs+"】材质已判定,不可撤销,请核实数据!"); return cro; } } //查询取样编号是否状态是已待确认,只有待确认的才能够撤销 /* StringBuffer sqlucomm = new StringBuffer(); sqlucomm.append("SELECT STATUS,SPECIMEN_NO FROM QCM_JHY_SAMPLE_CONSIGN_D WHERE SPECIMEN_NO IN ("+msInfo+")"); List lists=mapper.query(sqlucomm.toString()); if (lists!=null && lists.size()>0) { for (HashMap list : lists) { if (!"2".equals((String)list.get("STATUS"))) {//1 cro.setV_errCode(-1); cro.setV_errMsg("取样编号【"+list.get("SPECIMEN_NO")+"】发送状态已完成,请核实数据!"); return cro; } } }*/ //调用LZMES撤销委托接口,暂时没有 String urlStr = "http://172.16.0.169:82/Limsinterface/http/Revokeghtask";//调用url String result = ""; try{ JSONObject tarObj=new JSONObject(); Date date=new Date(); SimpleDateFormat simleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String ret=simleDateFormat.format(date);//系统时间 //主表数据 tarObj.put("revokeUser", UserName); tarObj.put("revokeReason", zhyy); tarObj.put("revokeTime", ret); tarObj.put("revokeOrderList", arr); result = httpURLPOSTCase(urlStr,tarObj.toString());//调用url if (result == null||result.equals("null") || result.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("撤回人工抽样发送LIMS系统失败!返回值:"+result); return cro; } resultlist =result.substring(8, 11); if (!resultlist.equals("200") || resultlist == null || resultlist.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("撤回人工抽样发送数据Lims失败!"+result); return cro; } }catch(Exception e){ cro.setV_errCode(-1); cro.setV_errMsg("撤回人工抽样发送数据Lims失败"+e.getMessage()); return cro; } if (resultlist.equals("200")) { for (String specimenNo : treeSet) { //热轧 清空有无取样 String sqlR=""; sqlR = " update QCM_JHY_SAMPLE_CONSIGN_D t " + " set t.SAMPL_PICK_RY = '' " + " where t.SPECIMEN_NO = '"+specimenNo+"' AND t.PLINE_CODE='RZ1' "; mapper.UpdateQcmWt(sqlR.toString()); String sql="select t1.RZ_ROLL_MANA_NO,t1.RZ_MIXROLL,t1.RZ_OLD_SAMPL_NO,t1.RZ_ROLL_SLAB_SEQ " +" from QCM_JHY_SAMPLE_CONSIGN_D t1 " +" where t1.validflag = '1' " +" and t1.STATUS in ('2','7') " +" and t1.pline_code = 'RZ1' " +" and t1.specimen_no = '"+specimenNo+"'"; List hMap=mapper.query(sql.toString()); if (hMap!=null || hMap.size()>0) { for (HashMap hm : hMap) { sql = ""; sql = " update QCM_JHY_SAMPLE_R_ORD ord set ord.judge_status = '0' " +" where ord.pline_code = 'RZ1' and ord.smp_no in ( " +" select t.smp_no from QCM_JHY_SAMPLE_CONSIGN_D t " +" where RZ_ROLL_MANA_NO = '"+hm.get("RZ_ROLL_MANA_NO")+"' " +" and RZ_MIXROLL= '"+hm.get("RZ_MIXROLL")+"' " + " and RZ_OLD_SAMPL_NO= '"+hm.get("RZ_OLD_SAMPL_NO")+"'" +" ) "; mapper.UpdateQcmWt(sql.toString()); String updateSql="UPDATE QCM_JHY_SAMPLE_CONSIGN_D SET STATUS='0',SPECIMENNOZH = '1'," + " SEND_ID ='',SEND_NAME='',SEND_TIME='', RZ_ROLL_MANA_NO='',RZ_MIXROLL=''," + " RZ_OLD_SAMPL_NO='',RZ_ROLL_SLAB_SEQ='',PRINT_LOG='', SEND_SEQ='', PRINT_SEQ='' " + " where RZ_ROLL_MANA_NO = '"+hm.get("RZ_ROLL_MANA_NO")+"' " + " and RZ_MIXROLL= '"+hm.get("RZ_MIXROLL")+"' " + " and RZ_OLD_SAMPL_NO= '"+hm.get("RZ_OLD_SAMPL_NO")+"' "; mapper.UpdateQcmWt(updateSql); } } } //删除 实绩表数据 String sql = ""; sql = "DELETE QCM_JHY_INSP_PHYSICS t where t.SPECIMEN_NO in ("+msInfo+") and t.QUOTE_SPECIMEN_NO is null"; mapper.delete(sql.toString()); } String sqlLog = "select * from QCM_JHY_SAMPLE_CONSIGN_D t where t.specimen_no in ("+msInfo+")"; List lists = mapper.query(sqlLog); for (HashMap list : lists) { QcmJudgeOperateLog qjog = new QcmJudgeOperateLog(); qjog.setOperate_name(UserName); qjog.setBatchno(list.get("BATCH_NO") == null ?"":list.get("BATCH_NO").toString()); qjog.setOperate_type("撤销人工抽样"); qjog.setParams(list.get("MATERIAL_NO") == null ?"":list.get("MATERIAL_NO").toString()); qjog.setProd_line(list.get("PLINE_CODE") == null ?"":list.get("PLINE_CODE").toString()); qjog.setMemo(list.get("SPECIMEN_NO").toString()); mapper.insertQcmJudgeOperateLog(qjog); } SqlSession.commit(); }catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); SqlSession.rollback(); cro.setV_errCode(-1); cro.setV_errMsg("撤销人工抽样委托失败,请联系管理员查看问题!"); return cro; }finally { SqlSession.close(); } cro.setV_errCode(1); cro.setV_errMsg("撤销人工抽样发送成功"); return cro; } /** * 热轧 撤销人工送样 * @param Entrust * @return */ public CoreReturnObject CancelLimesRZXY(String Entrust,HashMap parmas){ try { String UserName = parmas.get("USERNAME").toString(); String zhyy = parmas.get("ZHYY").toString(); JSONArray arr = new JSONArray(); String[] ja=Entrust.split(","); String msInfo=""; String resultlist =""; TreeSet treeSet = new TreeSet(); if (ja!=null && ja.length>0) { for (int i = 0; i < ja.length; i++) { String sp = ja[i]; treeSet.add(sp);//获取取样编号 JSONObject obj = new JSONObject(); obj.put("id",sp); arr.add(obj); if ("".equals(msInfo)) { msInfo="'"+sp+"'"; }else{ msInfo=msInfo+"'"+sp+"'"; } if (i !=ja.length-1) { msInfo=msInfo+","; } } } //循环每个取样编号是否已判定 for (String trs : treeSet) { String QuerySql="SELECT t.* from QCM_JHY_SAMPLE_R_ORD t where t.JUDGE_STATUS <> '0' " +" and t.SMP_NO in (SELECT d.SMP_NO from QCM_JHY_SAMPLE_CONSIGN_D d WHERE d.SPECIMEN_NO = '"+trs+"' " +" union all select d.SMP_NO from QCM_JHY_SAMPLE_CONSIGN_D d where d.QRZ_SPECIMEN_NO = '"+trs+"') "; List hashMap = mapper.query(QuerySql.toString()); if(hashMap !=null && hashMap.size()>=1){ cro.setV_errCode(-1); cro.setV_errMsg("送样取样编号【"+trs+"】下面有材质判定,不可撤销,请核实数据!"); return cro; } } //调用LZMES撤销委托接口,暂时没有 String urlStr = "http://172.16.0.169:82/Limsinterface/http/Revokeghtask";//调用url String result = ""; try{ JSONObject tarObj=new JSONObject(); Date date=new Date(); SimpleDateFormat simleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String ret=simleDateFormat.format(date);//系统时间 //主表数据 tarObj.put("revokeUser", UserName); tarObj.put("revokeReason", zhyy); tarObj.put("revokeTime", ret); tarObj.put("revokeOrderList", arr); result = httpURLPOSTCase(urlStr,tarObj.toString());//调用url if (result == null||result.equals("null") || result.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("撤回人工选样发送LIMS系统失败!返回值:"+result); return cro; } resultlist =result.substring(8, 11); if (!resultlist.equals("200") || resultlist == null || resultlist.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("撤回人工选样发送数据Lims失败!"+result); return cro; } }catch(Exception e){ cro.setV_errCode(-1); cro.setV_errMsg("撤回人工选样发送数据Lims失败"+e.getMessage()); return cro; } if (resultlist.equals("200")) { for (String specimenNo : treeSet) { String sql=" SELECT d.SPECIMEN_NO,d.smp_no from QCM_JHY_SAMPLE_CONSIGN_D d WHERE d.SPECIMEN_NO = '"+specimenNo+"' " +" union all " +" select d.SPECIMEN_NO,d.smp_no from QCM_JHY_SAMPLE_CONSIGN_D d where d.QRZ_SPECIMEN_NO = '"+specimenNo+"' "; List hashMap = mapper.query(sql.toString()); if(hashMap!=null && hashMap.size()>=1){ for (HashMap list : hashMap) { String sqlR = " update QCM_JHY_SAMPLE_CONSIGN_D t " + " set t.SAMPL_PICK_RY = '',STATUS='0',SPECIMENNOZH = '1',SEND_ID ='',SEND_NAME='',SEND_TIME='',QRZ_SPECIMEN_NO='', " + " PRINT_LOG = '', SEND_SEQ = '', PRINT_SEQ = '' " + " where t.SPECIMEN_NO = '"+list.get("SPECIMEN_NO")+"' AND t.PLINE_CODE='RZ1' "; mapper.UpdateQcmWt(sqlR.toString()); String sql2 = "DELETE QCM_JHY_INSP_PHYSICS t where t.SPECIMEN_NO ='"+list.get("SPECIMEN_NO")+"' and t.QUOTE_SPECIMEN_NO is null"; mapper.delete(sql2.toString()); } } } } String sqlLog = "select * from QCM_JHY_SAMPLE_CONSIGN_D t where t.specimen_no in ("+msInfo+")"; List lists = mapper.query(sqlLog); for (HashMap list : lists) { QcmJudgeOperateLog qjog = new QcmJudgeOperateLog(); qjog.setOperate_name(UserName); qjog.setBatchno(list.get("BATCH_NO") == null ?"":list.get("BATCH_NO").toString()); qjog.setOperate_type("撤销人工选样"); qjog.setParams(list.get("MATERIAL_NO") == null ?"":list.get("MATERIAL_NO").toString()); qjog.setProd_line(list.get("PLINE_CODE") == null ?"":list.get("PLINE_CODE").toString()); qjog.setMemo(list.get("SPECIMEN_NO").toString()); mapper.insertQcmJudgeOperateLog(qjog); } SqlSession.commit(); }catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); SqlSession.rollback(); cro.setV_errCode(-1); cro.setV_errMsg("撤销人工选样委托失败,请联系管理员查看问题!"); return cro; }finally { SqlSession.close(); } cro.setV_errCode(1); cro.setV_errMsg("撤销人工选样发送成功"); return cro; } /** * 撤销委托接口中厚板19订单 * @param Entrust * @return */ public CoreReturnObject CancelLIMES19(String Entrust,String UserName,String zhyy){ try { JSONArray arr = new JSONArray(); String[] ja=Entrust.split(","); String msInfo=""; String resultlist =""; TreeSet treeSet = new TreeSet(); if (ja!=null && ja.length>0) { for (int i = 0; i < ja.length; i++) { String sp = ja[i]; treeSet.add(sp); JSONObject obj = new JSONObject(); obj.put("id",sp); arr.add(obj); if ("".equals(msInfo)) { msInfo="'"+sp+"'"; }else{ msInfo=msInfo+"'"+sp+"'"; } if (i !=ja.length-1) { msInfo=msInfo+","; } } } //循环每个取样编号是否已判定 for (String trs : treeSet) { String QuerySql="SELECT count(1) CNUM from QCM_JHY_SAMPLE_R_ORD t where t.JUDGE_STATUS='1' and " + " t.SMP_NO=(SELECT d.SMP_NO from QCM_JHY_SAMPLE_CONSIGN_D d WHERE d.SPECIMEN_NO='"+trs+"')"; List hashMaplist2 = mapper.query(QuerySql.toString()); BigDecimal cou2 = (BigDecimal) hashMaplist2.get(0).get("CNUM"); String coun2 = cou2.toString(); Integer integ2 = Integer.parseInt(coun2); if(integ2 >= 1){ cro.setV_errCode(-1); cro.setV_errMsg("取样编号【"+trs+"】材质已判定,不可撤销,请核实数据!"); return cro; } } String updateSql="UPDATE QCM_JHY_SAMPLE_CONSIGN_D SET STATUS='0',SPECIMENNOZH = '1', " + " SEND_ID ='',SEND_NAME='',SEND_TIME='',SAMPLE_DELIVERY_TIME='' where SPECIMEN_NO in ("+msInfo+")"; mapper.UpdateQcmWt(updateSql); String sqlLog = "select * from QCM_JHY_SAMPLE_CONSIGN_D t where t.specimen_no in ("+msInfo+")"; List lists = mapper.query(sqlLog); for (HashMap list : lists) { QcmJudgeOperateLog qjog = new QcmJudgeOperateLog(); qjog.setOperate_name(UserName); qjog.setBatchno(list.get("BATCH_NO") == null ?"":list.get("BATCH_NO").toString()); qjog.setOperate_type("撤销19订单检验委托"); qjog.setParams(list.get("MATERIAL_NO") == null ?"":list.get("MATERIAL_NO").toString()); qjog.setProd_line(list.get("PLINE_CODE") == null ?"":list.get("PLINE_CODE").toString()); qjog.setMemo(list.get("SPECIMEN_NO").toString()); mapper.insertQcmJudgeOperateLog(qjog); } SqlSession.commit(); }catch (Exception e) { e.printStackTrace(); SqlSession.rollback(); cro.setV_errCode(-1); cro.setV_errMsg("撤销委托失败,请联系管理员查看问题!"); return cro; }finally { SqlSession.close(); } cro.setV_errCode(1); cro.setV_errMsg("撤销19成功"); return cro; } /** * 调用LIMS接收委托接口,实现委托下发 发送委托 * @return cro * @throws IOException */ @SuppressWarnings("unchecked") public CoreReturnObject SendLIMES(String Entrust,String sendId,String sendName,String sampleDeliveryTime){ String urlStr = "http://172.16.0.169:82/Limsinterface/http/Inspection"; //String urlStr = "http://10.90.0.92:8080/open/lims/4mes/inspection"; try { //createSmpleLoglist(Entrust,"下发委托",sendName); String LCplineCode="LC";//全自动激光切割加工中心系统 StringBuffer sqlucomm = new StringBuffer(); String[] ja=Entrust.split(","); String msInfo=""; if (ja!=null && ja.length>0) { for (int i = 0; i < ja.length; i++) { String sp = ja[i]; if ("".equals(msInfo)) { msInfo="'"+sp+"'"; }else{ msInfo=msInfo+"'"+sp+"'"; } if (i !=ja.length-1) { msInfo=msInfo+","; } } } //查询检验 sqlucomm.append("SELECT d.SMP_NO,d.SPECIMEN_NO,d.HEAT_NO,d.BATCH_NO,d.INSPECTION_LOT,d.FREQ_CODE,d.FREQ_NAME," + " d.MATERIAL_NO,d.SEND_MEMO,d.SMP_TYPE_CODE,d.SMP_TYPE_NAME,d.CONSIGN_NO,d.CONSIGN_NO_SEQ,d.TEST_QTY,d.SMP_QTY," + " d.SMP_LOCATION,d.SMP_LOCATION_CODE,d.BOARD_NO,d.QUOTE_CONSIGN_NO,d.OLD_CONSIGN_NO,d.PLINE_CODE,d.PLINE_NAME,d.CHEM_ITEM," + "d.SOURCE,d.PRODUCT_CNT,d.MEMO, o.STEEL_CODE,o.STEEL_NAME ,o.THICK,o.WIDTH ,o.LENGTH ,o.DESIGN_KEY," + "m.CERT_INST_CODE,m.CERT_INST_NAME,m.SMP_CATG,d.PROCESS_NOS,nvl(d.SHOULD_SAMPLE,'非预测') SHOULD_SAMPLE,d.SEND_SEQ " + " FROM QCM_JHY_SAMPLE_CONSIGN_D d INNER JOIN QCM_JHY_SAMPLE_CONSIGN_M m " + " ON d.SMP_NO=m.SMP_NO INNER JOIN QCM_JHY_SAMPLE_R_ORD O ON d.SMP_NO = o.SMP_NO " + " where d.SPECIMEN_NO in ("+msInfo+") and d.VALIDFLAG='1' and d.STATUS='0'"); List lists=mapper.query(sqlucomm.toString()); if (lists==null || lists.size()<1) { cro.setV_errCode(-1); cro.setV_errMsg("待发送的检验委托数据已经不存在,请核实数据!"); return cro; } //获取数据进行验证 TreeSet sizes=new TreeSet(); TreeSet TSHJSP = new TreeSet();//夹杂初样 TreeSet TSHJSPF = new TreeSet();//夹杂复样 for (int i = 0; i < lists.size(); i++) { HashMap obj=lists.get(i); sizes.add((String)obj.get("SMP_CATG")); if(obj.get("PLINE_CODE").equals("HB1") || obj.get("PLINE_CODE").equals("ZB1") ){ //热处理号限制 if(obj.get("PROCESS_NOS")!=null && !"".equals(obj.get("PROCESS_NOS"))){ String processNos = obj.get("PROCESS_NOS").toString(); String substr=processNos.substring(2, 3);//第三位不为H String substr2=processNos.substring(4, 5);//第五位不为Q if(substr.equals("H")){ cro.setV_errCode(-1); cro.setV_errMsg("当前勾选的轧批【"+obj.get("BATCH_NO")+"】热处理号第三位为H,请调整到送样的热处理号再发送谢谢!"); return cro; }else if(substr2.equals("Q")){ cro.setV_errCode(-1); cro.setV_errMsg("当前勾选的轧批【"+obj.get("BATCH_NO")+"】热处理号第五位为Q,请调整到送样的热处理号再发送谢谢!"); return cro; } } if(obj.get("FREQ_CODE")!=null && !"".equals(obj.get("FREQ_CODE")) && obj.get("FREQ_CODE").equals("D") && obj.get("SMP_TYPE_CODE").equals("0")){ TSHJSP.add((String)obj.get("SPECIMEN_NO")); } if(obj.get("FREQ_CODE")!=null && !"".equals(obj.get("FREQ_CODE")) && obj.get("FREQ_CODE").equals("D") && obj.get("SMP_TYPE_CODE").equals("1")){ String heatNo= obj.get("HEAT_NO").toString(); heatNo=heatNo.substring(0, 9);//一共10位 截取9位 最后一位字母不要 TSHJSPF.add(heatNo); } if((obj.get("SHOULD_SAMPLE").equals("0") || obj.get("SHOULD_SAMPLE").equals("2")) && obj.get("SMP_TYPE_CODE").equals("0")){ cro.setV_errCode(-1); cro.setV_errMsg("当前勾选的轧批【"+obj.get("BATCH_NO")+"】是预测抽样!请预测抽样"); return cro; } //第三方见证限制 IC013军方认证 IC012客户认证 IC026劳盛工业(上海) /*if(obj.get("CERT_INST_CODE").equals("IC013") || obj.get("CERT_INST_CODE").equals("IC012") ||obj.get("CERT_INST_CODE").equals("IC026")){ String dkstr=obj.get("DESIGN_KEY").toString(); String dkbatch_no=obj.get("BATCH_NO").toString(); String CERT_INST_NAME=obj.get("CERT_INST_NAME").toString(); String jszq="select nvl(r.Judge_Result_Code,'N') JRCode,r.* from qcm_jhy_sample_consign_d t,qcm_jhy_sample_consign_m m, qcm_jhy_sample_r_ord r " +" where t.smp_no=r.smp_no and t.smp_no = m.smp_no and r.smp_no = m.smp_no and t.IMPROVE_MEMO is null " +" and m.smp_catg = 'B' and r.Cert_Inst_Code = '5000' and t.freq_code <>'D' and t.Smp_Type_Code = '0' " +" and r.batch_no = '"+dkbatch_no+"' " +" and r.design_key = '"+dkstr+"' "; List hmWitn=mapper.query(jszq.toString()); if(hmWitn!=null && hmWitn.size()>=1){ for (int j = 0; j < hmWitn.size(); j++) { HashMap dkhm=hmWitn.get(j); if(dkhm.get("JRCODE").toString().equals("N")){ cro.setV_errCode(-1); cro.setV_errMsg("勾选中的轧批【"+dkbatch_no+"】是第三方见证,检测中心未判定,不可发送【"+CERT_INST_NAME+"】机构委托!"); return cro; } //检测中心初样不合格 if(dkhm.get("JRCODE").toString().equals("2")){ String smptype="select nvl(r.Judge_Result_Code,'N') JRCode,r.* from qcm_jhy_sample_consign_d t,qcm_jhy_sample_consign_m m, qcm_jhy_sample_r_ord r " +" where t.smp_no=r.smp_no and t.smp_no = m.smp_no and r.smp_no = m.smp_no and t.IMPROVE_MEMO is null " +" and m.smp_catg = 'B' and r.Cert_Inst_Code = '5000' and t.freq_code <>'D' and t.Smp_Type_Code = '1' " +" and r.batch_no = '"+dkbatch_no+"' " +" and r.design_key = '"+dkstr+"' and r.Judge_Result_Code is null "; List hmtype=mapper.query(smptype.toString()); if(hmtype!=null && hmtype.size()>=1){ cro.setV_errCode(-1); cro.setV_errMsg("勾选中的轧批【"+dkbatch_no+"】是第三方见证,检测中心不合格复样未判定,不可发送【"+CERT_INST_NAME+"】机构委托!"); return cro; } } } } }*/ } //线棒自动限制 if(obj.get("PLINE_CODE").equals("GX1") || obj.get("PLINE_CODE").equals("GX2") || obj.get("PLINE_CODE").equals("BC2") ){ if(obj.get("SMP_TYPE_CODE").equals("1")){ String ggb="select * from qcm_jhy_sample_consign_d d,qcm_jhy_sample_r_ord r " +" where d.smp_no = r.smp_no and d.smp_type_code = '0' " +" and r.judge_status = '0' and d.batch_no ='"+obj.get("BATCH_NO")+"' "; List ggbhm=mapper.query(ggb.toString()); if(ggbhm!=null && ggbhm.size()>=1){ cro.setV_errCode(-1); cro.setV_errMsg("当前勾选的轧批【"+obj.get("BATCH_NO")+"】还有初样没有判完,不可发送复样!"); return cro; } } } } if (sizes.size()!=1) { cro.setV_errCode(-1); cro.setV_errMsg("待发送的检验委托数据只能同时发送一种类型的待检数据,请核实数据!"); return cro; } if (TSHJSP.size()>=2) { cro.setV_errCode(-1); cro.setV_errMsg("夹杂是按炉取样的,夹杂委托请单独一条委托下发!"); return cro; } if (TSHJSPF.size()>=2) { cro.setV_errCode(-1); cro.setV_errMsg("夹杂是按炉取样的,未防止数据错误,夹杂复样请按同一炉的复样下发委托!"); return cro; } for (HashMap hmapRZ : lists) { //热轧限制 当前获取的取样编号对应的子板是否有组批区间 防止020脱离组匹区间 而操作人员又没有从新生成委托 就直接点击发送委托 又把010的给发送到LIMS if(hmapRZ.get("PLINE_CODE").equals("RZ1") && hmapRZ.get("SMP_TYPE_CODE").equals("0")){ String rzSql = " select t3.OLD_SAMPL_NO,t4.ROLL_MANA_NO,t4.ROLL_SLAB_SEQ,t4.MIXROLL,t1.SPECIMEN_NO,t1.INSPECTION_LOT " +" from QCM_JHY_SAMPLE_CONSIGN_D t1, " +" QCM_JHY_SAMPLE_CONSIGN_M t2, " +" QCM_JHY_SAMPLE_R_ORD ord, " +" tbh02_coil_comm t3, " +" tbf02_spec_mill t4 " +" where t1.SMP_NO = t2.SMP_NO " +" and t1.smp_no = ord.smp_no " +" and t1.inspection_lot = t3.SAMPL_NO " +" and t3.COIL_NO = t4.COIL_NO " +" and t1.validflag = '1' " +" and t1.pline_code = 'RZ1' " +" and t3.OLD_SAMPL_NO = '"+hmapRZ.get("MATERIAL_NO").toString()+"' " +" and t4.MIXROLL is not null and ord.design_key not like '39%' and ord.design_key not like '49%' and ord.design_key not like '59%' " +" order by t4.ROLL_SLAB_SEQ asc "; List RZlists=mapper.query(rzSql.toString()); if (RZlists!=null && RZlists.size()>=1) { cro.setV_errCode(-1); cro.setV_errMsg("当前委托是预测委托!请预测抽样"); return cro; } } //热轧力学复样限制 if(hmapRZ.get("PLINE_CODE").equals("RZ1") && hmapRZ.get("SMP_TYPE_CODE").equals("1") && hmapRZ.get("FREQ_CODE").equals("A")){ String clearinlot=" select r.* from qcm_jhy_sample_consign_d t,qcm_jhy_sample_consign_m m,qcm_jhy_sample_r_ord r " +" where t.smp_no = m.smp_no and t.smp_no = r.smp_no and m.smp_no = r.smp_no " +" and r.batch_no = '"+hmapRZ.get("BATCH_NO")+"' " +" and r.design_key = '"+hmapRZ.get("DESIGN_KEY")+"' " +" and t.smp_type_code = '0' " +" and r.inspection_lot = '"+hmapRZ.get("INSPECTION_LOT")+"' " +" and r.Judge_Result_Code = '2' "; List Dlists=mapper.query(clearinlot.toString()); if(Dlists!=null && Dlists.size() == 1){ String sqllot=" update qcm_jhy_sample_r_ord r set r.inspection_lot = '1' where r.smp_no = '"+Dlists.get(0).get("SMP_NO")+"'"; mapper.updateJudgeStatus(sqllot.toString()); } } //线棒力学复样限制 if(hmapRZ.get("PLINE_CODE").equals("GX1") && hmapRZ.get("PLINE_CODE").equals("GX2") && hmapRZ.get("PLINE_CODE").equals("BC2") && hmapRZ.get("SMP_TYPE_CODE").equals("1") && hmapRZ.get("FREQ_CODE").equals("A")){ String sqlx=" select r.* from qcm_jhy_sample_consign_d t, qcm_jhy_sample_r_ord r where t.smp_no = r.smp_no " +" and r.batch_no = '"+hmapRZ.get("BATCH_NO")+"' and r.design_key = '"+hmapRZ.get("DESIGN_KEY")+"' " +" and t.smp_type_code = '0' and r.inspection_lot = '"+hmapRZ.get("INSPECTION_LOT")+"' and r.inspection_lot is not null "; List hmx=mapper.query(sqlx.toString()); if(hmx!=null && hmx.size() >= 1){ for (HashMap hmap : hmx) { String sql=" select * from qcm_jhy_sample_consign_d t where t.smp_no = '"+hmap.get("SMP_NO")+"' and t.smp_type_code = '1' and rownum=1 "; List hmSmpNo=mapper.query(sql.toString()); if(hmSmpNo == null || hmSmpNo.size()<=0){ String sqllot=" update qcm_jhy_sample_r_ord r set r.inspection_lot = '1' where r.smp_no = '"+hmSmpNo.get(0).get("SMP_NO")+"' "; mapper.updateJudgeStatus(sqllot.toString()); } } } } } ///中厚板限制 for (HashMap hmap : lists) { if(hmap.get("PLINE_CODE").equals("HB1") || hmap.get("PLINE_CODE").equals("ZB1") ){ //夹杂初样 判断发送的是不是 复样 按炉 夹杂 if(hmap.get("FREQ_CODE")!=null && !"".equals(hmap.get("FREQ_CODE")) && hmap.get("FREQ_CODE").equals("D") && hmap.get("SMP_TYPE_CODE").equals("0")){ String heatNo= hmap.get("HEAT_NO").toString(); heatNo=heatNo.substring(0, 9);//一共10位 截取9位 最后一位字母不要 //查询出这个炉号所有的轧批 排除当前发送轧批 String sqlD="select t.* from QCM_JHY_SAMPLE_CONSIGN_D t " +" where t.Heat_No LIKE '"+heatNo+"%' " +" and t.freq_code = 'D' " +" and t.status = '0' " +" and t.smp_type_code = '0' and t.pline_code in ('ZB1','HB1') " +" and t.SPECIMEN_NO <> '"+hmap.get("SPECIMEN_NO")+"' " +" and t.specimen_no not in ( " +" select d.specimen_no from qcm_jhy_sample_consign_d d,qcm_jhy_sample_consign_d_item i " +" where d.specimen_no=i.specimen_no " +" and d.Heat_No LIKE '"+heatNo+"%' " +" and d.freq_code = 'D' " +" and d.status = '0' " +" and d.smp_type_code = '0' " +" and t.pline_code in ('ZB1','HB1') " +" and i.Phy_Code_s='J10' ) "; List Dlists=mapper.query(sqlD.toString()); if(Dlists!=null && Dlists.size()>=1){ //循环所有的轧批 引用 for (int i = 0; i < Dlists.size(); i++) { String sql =""; sql +=" update QCM_JHY_SAMPLE_CONSIGN_D t set STATUS = '1',QUOTE_CONSIGN_NO = '"+hmap.get("SPECIMEN_NO")+"' " +" ,SEND_ID='引用发送',SEND_NAME='引用发送',SEND_TIME=sysdate " +" where HEAT_NO like '"+heatNo+"%' and freq_code = 'D' and smp_type_code = '0' " +" and SPECIMEN_NO = '"+Dlists.get(i).get("SPECIMEN_NO")+"' "; mapper.updateJudgeStatus(sql.toString()); String itemSql2= "select * from qcm_jhy_sample_consign_d_item i where i.specimen_no = '"+Dlists.get(i).get("SPECIMEN_NO")+"' order by i.specimen_no asc, i.seq asc"; List itemLists2=mapper.query(itemSql2.toString()); if(itemLists2!=null && itemLists2.size()>=1){ for (int j = 0; j < itemLists2.size(); j++) { //查询出发送的轧批 夹杂明细 String itemSql= "select * from qcm_jhy_sample_consign_d_item i " + " where i.specimen_no = '"+hmap.get("SPECIMEN_NO")+"' and i.PHY_CODE_S='"+itemLists2.get(j).get("PHY_CODE_S")+"' " + " and rownum = 1 "; List itemLists=mapper.query(itemSql.toString()); if(itemLists!=null && itemLists.size()>=1){ sql=""; sql +=" update QCM_JHY_SAMPLE_CONSIGN_D_ITEM set QUOTE_SPECIMEN_NO = '"+hmap.get("SPECIMEN_NO")+"',QUOTE_SEQ='"+itemLists.get(0).get("SEQ")+"' " +" where SPECIMEN_NO = '"+itemLists2.get(j).get("SPECIMEN_NO")+"' and PHY_CODE_S='"+itemLists2.get(j).get("PHY_CODE_S")+"' "; mapper.updateJudgeStatus(sql.toString()); } } } } } } //中厚板夹杂力学复样限制 if(hmap.get("SMP_TYPE_CODE").equals("1") && !hmap.get("FREQ_CODE").equals("C") && !hmap.get("FREQ_CODE").equals("H") && !hmap.get("FREQ_CODE").equals("I")){ String clearinlot=" select r.* from qcm_jhy_sample_consign_d t,qcm_jhy_sample_consign_m m,qcm_jhy_sample_r_ord r " +" where t.smp_no = m.smp_no and t.smp_no = r.smp_no and m.smp_no = r.smp_no " +" and r.batch_no = '"+hmap.get("BATCH_NO")+"' " +" and r.pline_code = '"+hmap.get("PLINE_CODE")+"' " +" and r.design_key = '"+hmap.get("DESIGN_KEY")+"' " +" and r.steel_code = '"+hmap.get("STEEL_CODE")+"' " +" and r.thick = '"+hmap.get("THICK")+"' " +" and r.cert_inst_code = '"+hmap.get("CERT_INST_CODE")+"' " +" and t.freq_code = '"+hmap.get("FREQ_CODE")+"' " +" and t.smp_location_code = '"+hmap.get("SMP_LOCATION_CODE")+"' " +" and t.smp_type_code = '0' " +" and r.inspection_lot is not null and r.Judge_Result_Code = '2' and t.Improve_Memo is null " +" and t.PROCESS_NOS = '"+hmap.get("PROCESS_NOS")+"' "; List Dlists=mapper.query(clearinlot.toString()); if(Dlists!=null && Dlists.size() == 1){ String sqllot=" update qcm_jhy_sample_r_ord r set r.inspection_lot = '1' where r.smp_no = '"+Dlists.get(0).get("SMP_NO")+"'"; mapper.updateJudgeStatus(sqllot.toString()); } } } } ///夹杂复样 TreeSet treeSet = new TreeSet();//轧批号 TreeSet treeSet1 = new TreeSet();//炉号 TreeSet treeSet2 = new TreeSet();//取样编号 String plineCodeHj=""; for (HashMap hmap : lists) {//判断发送的是不是 复样 按炉 夹杂 if(hmap.get("FREQ_CODE")!=null && !"".equals(hmap.get("FREQ_CODE")) &&hmap.get("FREQ_CODE").equals("D") && (hmap.get("SMP_TYPE_CODE").equals("1")) && !hmap.get("PLINE_CODE").equals("RZ1")&& !hmap.get("PLINE_CODE").equals("LT1")){ //判断夹杂复样是不是夹杂整体,是排除 String strHj="select * from qcm_jhy_sample_consign_d_item t where t.specimen_no = '"+hmap.get("SPECIMEN_NO")+"' and t.phy_code_s = 'J10' "; List hmHJ=mapper.query(strHj.toString()); if(hmHJ!=null && hmHJ.size()>=1){ continue; } treeSet.add((String)hmap.get("BATCH_NO")); treeSet1.add((String)hmap.get("HEAT_NO")); treeSet2.add((String)hmap.get("SPECIMEN_NO")); plineCodeHj=hmap.get("PLINE_CODE").toString(); } } //是 复样 按炉夹杂 轧批号多个 但是炉号必为1 if(treeSet.size()>=1 && treeSet1.size()== 1){ for (String heatNo : treeSet1) { String heatNo2 = heatNo.substring(0, 9);//一共10位 截取9位 最后一位字母不要 String strPlineCode = ""; if(!plineCodeHj.equals("ZB1") && !plineCodeHj.equals("HB1") ){ strPlineCode = " and t.pline_code = '"+plineCodeHj+"' "; }else{ strPlineCode = " and t.pline_code in ('ZB1','HB1') "; } //查询初样取样编号 String dsql =""; dsql = "select t.specimen_no,t.QUOTE_CONSIGN_NO from (select t.SPECIMEN_NO,t.QUOTE_CONSIGN_NO from QCM_JHY_SAMPLE_CONSIGN_D t " + "where HEAT_NO like '"+heatNo2+"%' and freq_code = 'D' and QUOTE_CONSIGN_NO is not null " + " and inspection_lot not in (select t.inspection_lot from QCM_JHY_SAMPLE_CONSIGN_D t where t.HEAT_NO like '"+heatNo2+"%' " + " and t.freq_code = 'D' and t.QUOTE_CONSIGN_NO is null) " +strPlineCode +") t where 1=1 " +" and t.QUOTE_CONSIGN_NO not in(select t.SPECIMEN_NO from QCM_JHY_SAMPLE_CONSIGN_D t where t.HEAT_NO like '"+heatNo2+"%' " +" and t.freq_code = 'D' and t.QUOTE_CONSIGN_NO is null and t.SMP_TYPE_CODE='1') "; List SampleD2=mapper.query(dsql.toString()); if(SampleD2 != null && SampleD2.size() >= 1){ for (HashMap hashMap : SampleD2) { String sql =""; sql +=" update QCM_JHY_SAMPLE_CONSIGN_D_ITEM set QUOTE_SPECIMEN_NO = '"+treeSet2.first()+"' "; sql +=" where SPECIMEN_NO = '"+hashMap.get("SPECIMEN_NO")+"' " + " and FY_QUOTE_SPECIMEN_NO is null "; mapper.updateJudgeStatus(sql.toString()); sql =""; sql +=" update QCM_JHY_SAMPLE_CONSIGN_D t set QUOTE_CONSIGN_NO = '"+treeSet2.first()+"',QUOTE_BATCH_NO_ONE = '"+treeSet.first()+"' "; sql +=" where HEAT_NO like '"+heatNo2+"%' and freq_code = 'D' and QUOTE_CONSIGN_NO is not null " + " and SPECIMEN_NO = '"+hashMap.get("SPECIMEN_NO")+"' " + strPlineCode; mapper.updateJudgeStatus(sql.toString()); } } //查询初样 dsql=""; dsql ="select t.* from QCM_JHY_SAMPLE_CONSIGN_D t where t.HEAT_NO like '"+heatNo2+"%' and t.freq_code = 'D' " + " and t.SMP_TYPE_CODE='0' and t.QUOTE_CONSIGN_NO is null " +strPlineCode; List hmzb=mapper.query(dsql.toString()); if(hmzb!=null && hmzb.size()>=1){ //查询复样 String dsql2 ="select * from QCM_JHY_SAMPLE_CONSIGN_D t,Qcm_Jhy_Sample_r_Ord r" + " where t.SMP_NO=r.SMP_NO and t.HEAT_NO like '"+heatNo2+"%' and t.freq_code = 'D' " + " and t.SMP_TYPE_CODE='1' and t.QUOTE_CONSIGN_NO is null " +strPlineCode; List hmzb2=mapper.query(dsql2.toString()); if(hmzb2!=null && hmzb2.size()>=1){ for (HashMap hmap : hmzb2) { //查询复样的初样 String dsql3 ="select * from QCM_JHY_SAMPLE_CONSIGN_D t,Qcm_Jhy_Sample_r_Ord r" + " where t.SMP_NO=r.SMP_NO and t.HEAT_NO like '"+heatNo2+"%' and t.freq_code = 'D' " + " and t.SMP_TYPE_CODE='0' and t.QUOTE_CONSIGN_NO is not null " + " and t.BATCH_NO='"+hmap.get("BATCH_NO")+"' and r.DESIGN_KEY= '"+hmap.get("DESIGN_KEY")+"' " + " and r.STEEL_CODE='"+hmap.get("STEEL_CODE")+"' and r.THICK = '"+hmap.get("THICK")+"' " +strPlineCode; List hmzb3=mapper.query(dsql3.toString()); if(hmzb3!=null && hmzb3.size()>=1 && !hmzb.get(0).get("SPECIMEN_NO").equals(hmzb3.get(0).get("QUOTE_CONSIGN_NO"))){ String sql =""; sql +=" update QCM_JHY_SAMPLE_CONSIGN_D_ITEM set QUOTE_SPECIMEN_NO = '"+hmzb.get(0).get("SPECIMEN_NO")+"' "; sql +=" where SPECIMEN_NO = '"+hmzb3.get(0).get("SPECIMEN_NO")+"' " + " and FY_QUOTE_SPECIMEN_NO is null "; mapper.updateJudgeStatus(sql.toString()); sql =""; sql +=" update QCM_JHY_SAMPLE_CONSIGN_D t set QUOTE_CONSIGN_NO = '"+hmzb.get(0).get("SPECIMEN_NO")+"' "; sql +=" where SPECIMEN_NO = '"+hmzb3.get(0).get("SPECIMEN_NO")+"' " + strPlineCode; mapper.updateJudgeStatus(sql.toString()); } } } } } } JSONArray tarDate=new JSONArray(); JSONArray LCtarDate=new JSONArray();//全自动激光切割加工中心系统 Date date=new Date(); SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString=simpleDateFormat.format(date); //生成委托编号 String consignNo=new SimpleDateFormat("yyyyMMdd").format(date); sqlucomm.setLength(0); sqlucomm.append("SELECT max(to_number(substr(CONSIGN_NO,-3,3))) BIGSEQ from QCM_JHY_SAMPLE_CONSIGN_D where CONSIGN_NO like '"+consignNo+"%'"); HashMap map=mapper.queryOne(sqlucomm.toString()); BigDecimal count = BigDecimal.ZERO; if( null != map.get("BIGSEQ")){ count=(BigDecimal)map.get("BIGSEQ"); } if (count.compareTo(BigDecimal.ZERO)==1) { count=count.add(BigDecimal.ONE); }else{ count=BigDecimal.ONE; } consignNo=consignNo+String.format("%03d", count.intValue()); System.out.println("======="+count.intValue()); int seq=1; String plineCodeLims = "";//中厚板送样产线,按送样时间确定 for (int i = 0; i < lists.size(); i++) { HashMap obj=lists.get(i); //中厚板送样产线 if(obj.get("PLINE_CODE").toString().equals("ZB1") || obj.get("PLINE_CODE").toString().equals("HB1")){ if(sampleDeliveryTime.contains("06:30:00") || sampleDeliveryTime.contains("10:30:00") || sampleDeliveryTime.contains("17:30:00") || sampleDeliveryTime.contains("20:30:00")){ plineCodeLims = "HB1"; }else if(sampleDeliveryTime.contains("03:00:00") || sampleDeliveryTime.contains("11:00:00") || sampleDeliveryTime.contains("15:00:00") || sampleDeliveryTime.contains("18:00:00") || sampleDeliveryTime.contains("21:00:00") || sampleDeliveryTime.contains("06:00:00") ){ plineCodeLims = "ZB1"; } } obj.put("PLINE_CODE_LIMS", plineCodeLims); obj.put("SEND_ID", sendId); obj.put("SEND_NAME", sendName); obj.put("CONSIGN_NO", consignNo); obj.put("CONSIGN_NO_SEQ", seq++); obj.put("SEND_TIME", dateString); LCplineCode=obj.get("PLINE_CODE").toString();//全自动激光切割加工中心系统 JSONObject smpleD = JSONObject.parseObject(JSON.toJSONString(obj)); //目标json JSONObject tarObj=new JSONObject(); //主表数据 createTarObj(tarObj,smpleD); //发送序号 createSendSeq if(obj.get("PLINE_CODE").equals("RZ1") || obj.get("PLINE_CODE").equals("LT1") || obj.get("PLINE_CODE").equals("ZB1") || obj.get("PLINE_CODE").equals("HB1")){ String sendSeq="";//发送序号 if(obj.get("PLINE_CODE").equals("ZB1") || obj.get("PLINE_CODE").equals("HB1")){ sendSeq=createSendSeq(tarObj.getString("plineCode").toString()); }else{ sendSeq=createSendSeq(obj.get("PLINE_CODE").toString()); } //String sendQ="select to_number(substr('"+sendSeq+"', 8)) PRINT_SEQ from dual t "; String sendQ="select substr('"+sendSeq+"', 9) PRINT_SEQ from dual t "; List hmsendQ=mapper.query(sendQ.toString()); String PRINT_SEQ=hmsendQ.get(0).get("PRINT_SEQ").toString();//打印序号 if(tarObj.getString("plineCode").equals("ZB1")){ tarObj.put("printSeq", 'Z'+PRINT_SEQ); PRINT_SEQ='Z'+PRINT_SEQ; }else if(tarObj.getString("plineCode").equals("HB1")){ tarObj.put("printSeq", 'H'+PRINT_SEQ); PRINT_SEQ='H'+PRINT_SEQ; }else if(obj.get("PLINE_CODE").equals("RZ1")){ tarObj.put("printSeq", 'R'+PRINT_SEQ); PRINT_SEQ='R'+PRINT_SEQ; }else if(obj.get("PLINE_CODE").equals("LT1")){ tarObj.put("printSeq", 'L'+PRINT_SEQ); PRINT_SEQ='L'+PRINT_SEQ; }else{ tarObj.put("printSeq", PRINT_SEQ);//打印序号 } //船检编号 String printseqj = ""; if(obj.get("PLINE_CODE").equals("ZB1") || obj.get("PLINE_CODE").equals("HB1")){ String plineCodeJ=tarObj.getString("plineCode").toString(); String certInstCodeJ = obj.get("CERT_INST_CODE").toString(); if(certInstCodeJ.equals("IC005") || certInstCodeJ.equals("IC009") || certInstCodeJ.equals("IC006") || certInstCodeJ.equals("IC007") || certInstCodeJ.equals("IC002") || certInstCodeJ.equals("IC001") || certInstCodeJ.equals("IC008")){ printseqj = createPintSeqJ(plineCodeJ,certInstCodeJ); String printseqj2=printseqj.substring(5, printseqj.length()); tarObj.put("PRINTSEQJ", printseqj2);//船检编号 } }else if(obj.get("PLINE_CODE").equals("RZ1")){ //判定厚度 String strRz=" select to_char(t.dcs_thk,'fm990.099') DCS_THK from tbh02_coil_comm t " + " where T.OLD_SAMPL_NO ='"+tarObj.getString("materialNo")+"' and t.dcs_thk is not null and rownum=1"; List hmRz=mapper.query(strRz.toString()); String dcsThk = ""; if(hmRz!=null && hmRz.size()>=1){ dcsThk=hmRz.get(0).get("DCS_THK").toString(); } tarObj.put("dcsThk", dcsThk);//判定厚度人工输入 } String qcmSendSeq =" update QCM_JHY_SAMPLE_CONSIGN_D t set SEND_SEQ = '"+sendSeq+"',PRINT_SEQ='"+PRINT_SEQ+"',PRINT_SEQJ='"+printseqj+"' " + " where PLINE_CODE = '"+obj.get("PLINE_CODE")+"' and SPECIMEN_NO = '"+obj.get("SPECIMEN_NO")+"' "; mapper.updateJudgeStatus(qcmSendSeq.toString()); tarObj.put("sendSeq", sendSeq);//发送序号 } tarObj.put("CREATE_ID", sendId); tarObj.put("CREATE_NAME", sendName); tarObj.put("sampleDeliveryTime", sampleDeliveryTime);//送样时间点 tarObj.put("cretInstCode", obj.get("CERT_INST_CODE")); tarObj.put("cretInstName", obj.get("CERT_INST_NAME")); if(obj.get("PLINE_CODE").equals("ZB1") || obj.get("PLINE_CODE").equals("HB1")){ tarObj.put("heatTreatment", obj.get("PROCESS_NOS")); //传给lims的成分标识 String sql ="select t.* from QCM_JHY_SAMPLE_CONSIGN_D t,QCM_JHY_SAMPLE_CONSIGN_M m " +" where t.smp_no = m.smp_no and m.SMP_CATG = 'A' and t.batch_no = '"+smpleD.getString("BATCH_NO")+"' "; List componentLog=mapper.query(sql.toString()); if(componentLog!=null && componentLog.size()>=1){ tarObj.put("componentLog", '1');//1代表有成分 }else{ tarObj.put("componentLog", '0');//0代表无成分 } } if ("5000".equals(obj.get("CERT_INST_CODE")) || "IC012".equals(obj.get("CERT_INST_CODE")) ) { tarObj.put("type", "0"); }else{ tarObj.put("type", "1"); } if ("B".equals(obj.get("SMP_CATG"))) { //材质 sqlucomm.setLength(0); sqlucomm.append("select T.SPECIMEN_NO,T.SEQ,T.SMP_NO,T.PHY_NAME_L,T.PHY_CODE_L,T.PHY_CODE_M,T.PHY_NAME_M,T.PHY_CODE_S," + "T.PHY_NAME_S,T.ITEM_CODE_D,T.ITEM_NAME_D,T.ITEM_CODE_T,T.ITEM_NAME_T,T.ITEM_CODE_S,T.ITEM_NAME_S," + "T.ISJUDGE,T.JUDGE_BASIS,T.PHY_UNIT,T.GROUP_SEQ,T.QUOTE_SPECIMEN_NO,T.QUOTE_SEQ,T.MEMO,T.ITEM_CODE_L," + " T.ITEM_DESC_L,T.TEST_QTY,T.SMP_QTY,T.CREATE_TIME,T.CREATE_ID,T.CREATE_NAME,T.SPECL_FL, " + "T.STDMIN_SIGN,T.STDMIN,T.STDMAX_SIGN,T.STDMAX,t.STDMEMO from QCM_JHY_SAMPLE_CONSIGN_D_ITEM T" + " WHERE T.SPECIMEN_NO='"+obj.get("SPECIMEN_NO")+"' and (T.QUOTE_SPECIMEN_NO is null or T.QUOTE_SPECIMEN_NO='') and t.Fy_Quote_Specimen_No is null and t.QUOTE_MEMO is null "); List items=mapper.query(sqlucomm.toString()); if (items!=null && items.size()>0) { JSONArray arrayItem=new JSONArray(); for(int j = 0 ;j < items.size() ; j++){ JSONObject oldItem =JSONObject.parseObject(JSON.toJSONString(items.get(j))) ; JSONObject tarItem=new JSONObject(); //子表数据 createItem(tarItem,oldItem); if(oldItem.getString("PHY_NAME_M").equals("现场洛氏硬度HRC")){ tarItem.put("tsFlag", "1");//探伤 }else{ tarItem.put("tsFlag", "0");//非探伤 } arrayItem.add(tarItem); } tarObj.put("items", arrayItem); } }else{ //成分 JSONObject chemItem=JSON.parseObject((String)obj.get("CHEM_ITEM")); tarObj.putAll(chemItem); } tarDate.add(tarObj); //全自动激光切割加工中心系统 HashMap hm = new HashMap(); hm.put("SPECIMEN_NO", obj.get("SPECIMEN_NO").toString()); hm.put("BATCH_NO", obj.get("BATCH_NO").toString()); hm.put("PLINE_CODE", LCplineCode); if(LCplineCode.equals("HB1")){ String lcThick = obj.get("THICK").toString(); double lcThick2 = Double.parseDouble(lcThick); if(lcThick2<=25){ LCtarDate.add(tarObj); String strjg=qcmJg(hm); mapper.insert(strjg); } }else if(LCplineCode.equals("ZB1") || LCplineCode.equals("RZ1")){ LCtarDate.add(tarObj); String strjg=qcmJg(hm); mapper.insert(strjg); } } logger.info("-------发送jon数组--"+tarDate.toJSONString()); String tar=tarDate.toString(); String result = "";//调用url try{ result = httpURLPOSTCaseNew(urlStr,tar);//调用url if (result == null ||result.equals("null") || result.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("发送LIMS系统失败!返回值:"+result); SqlSession.rollback(); return cro; } }catch(Exception e){ cro.setV_errCode(-1); cro.setV_errMsg(e.getMessage()); return cro; } String resultlist =result.substring(8, 11); if (!resultlist.equals("200") || resultlist == null || resultlist.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("发送LIMS系统失败!"+result); SqlSession.rollback(); return cro; } if(resultlist.equals("200")){ for (HashMap list : lists) { mapper.updateConsignNo((String)list.get("CONSIGN_NO"), (Integer)list.get("CONSIGN_NO_SEQ"), sendId, sendName,(String)list.get("SPECIMEN_NO")); if(list.get("PLINE_CODE").equals("HB1") || list.get("PLINE_CODE").equals("ZB1")){ String sql = " update QCM_JHY_SAMPLE_CONSIGN_D t " + " set t.SAMPLE_DELIVERY_TIME = '"+sampleDeliveryTime+"',t.PLINE_CODE_LIMS='"+plineCodeLims+"' " + " where t.SPECIMEN_NO = '"+(String)list.get("SPECIMEN_NO")+"' "; mapper.UpdateQcmWt(sql.toString()); //判断是否是中厚板预测值 Q355B Q235B sql =""; sql =" select T.* from qcm_jhy_sample_consign_d t,qcm_jhy_sample_r_ord r where t.smp_no = r.smp_no and r.steel_code in ('Q355B','Q235B') " +" and t.Should_Sample ='1' and t.Function_Fuhe is not null and t.pline_code IN ('HB1','ZB1') and t.smp_type_code = '0' " +" and t.specimen_no = '"+list.get("SPECIMEN_NO")+"' and r.judge_status='0' "; List hm=mapper.query(sql.toString()); if(hm!=null && hm.size()>=1){ //删除 实绩表中的预测值数据 sql=""; sql = "DELETE QCM_JHY_INSP_PHYSICS t where t.SPECIMEN_NO = '"+list.get("SPECIMEN_NO")+"' and SEQ<=49 "; mapper.delete(sql.toString()); } } if(list.get("PLINE_CODE").equals("RZ1")){ String rzMixroll = "select t.* from QCM_JHY_SAMPLE_CONSIGN_D t, qcm_jhy_sample_r_ord r " + " where t.smp_no = r.smp_no and r.design_key not like '39%' and r.design_key not like '49%' and r.design_key not like '59%' " + " and t.inspection_lot = '"+list.get("INSPECTION_LOT")+"' and t.Rz_Mixroll is not null "; List hmRzMixroll=mapper.query(rzMixroll.toString()); if(hmRzMixroll!=null && hmRzMixroll.size()>=1 && list.get("SMP_TYPE_CODE").equals("1")){ String sql = " update QCM_JHY_SAMPLE_CONSIGN_D t " + " set t.SAMPL_PICK_RY = 'Y(R)' " + " where t.SPECIMEN_NO = '"+(String)list.get("SPECIMEN_NO")+"' "; mapper.UpdateQcmWt(sql.toString()); }else{ String sql = " update QCM_JHY_SAMPLE_CONSIGN_D t " + " set t.SAMPL_PICK_RY = 'Y' " + " where t.SPECIMEN_NO = '"+(String)list.get("SPECIMEN_NO")+"' "; mapper.UpdateQcmWt(sql.toString()); } } } cro.setV_errCode(1); cro.setV_errMsg("发送成功"); } for (HashMap list : lists) { QcmJudgeOperateLog qjog = new QcmJudgeOperateLog(); qjog.setOperate_name(sendName); qjog.setBatchno(list.get("BATCH_NO") == null ?"":list.get("BATCH_NO").toString()); qjog.setOperate_type("发送检验委托"); qjog.setParams(list.get("MATERIAL_NO") == null ?"":list.get("MATERIAL_NO").toString()); qjog.setProd_line(list.get("PLINE_CODE") == null ?"":list.get("PLINE_CODE").toString()); qjog.setMemo(list.get("SPECIMEN_NO").toString()); mapper.insertQcmJudgeOperateLog(qjog); } SqlSession.commit(); //全自动激光切割加工中心系统 /*if(LCplineCode.equals("HB1") || LCplineCode.equals("ZB1") || LCplineCode.equals("RZ1")){ if(LCtarDate.size()>=1){ //开关状态 String jgkg=QcmJhyJgKg(LCplineCode); if("1".equals(jgkg)){ String LCurlStr = "http://172.16.0.169:82/Limsinterface/http/Tgcut"; String LCtar=LCtarDate.toString(); httpURLPOSTLaserCenter(LCurlStr,LCtar,LCplineCode); } } }*/ } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); SqlSession.rollback(); cro.setV_errCode(-1); cro.setV_errMsg("发送委托失败!"+e.getMessage()); return cro; }finally { SqlSession.close(); } return cro; } /** * 热轧 人工抽样 调用LIMS接收委托接口,实现委托下发 * @return cro * @throws IOException */ @SuppressWarnings("unchecked") public CoreReturnObject SendLimesRZ(String Entrust,String sendId,String sendName,String GroupBatch,String PlineCode){ Connection conn = this.getDao("testDao").getConnection(); String urlStr = "http://172.16.0.169:82/Limsinterface/http/Inspection"; try { String LCplineCode="LC";//全自动激光切割加工中心系统 if (!GroupBatch.equals("1") || !PlineCode.equals("热轧")) { cro.setV_errCode(-1); cro.setV_errMsg("只能热轧产线使用人工抽样按钮!"); return cro; } TreeSet treeSet = new TreeSet(); StringBuffer sqlucomm = new StringBuffer(); String[] ja=Entrust.split(","); String msInfo=""; if (ja!=null && ja.length>0) { for (int i = 0; i < ja.length; i++) { String sp = ja[i]; if ("".equals(msInfo)) { msInfo="'"+sp+"'"; treeSet.add(sp); }else{ msInfo=msInfo+"'"+sp+"'"; treeSet.add(sp); } if (i !=ja.length-1) { msInfo=msInfo+","; treeSet.add(sp); } } } //只要选择一个轧批就可以 if(treeSet.size() > 1){ cro.setV_errCode(-1); cro.setV_errMsg("只能选择一个轧批号人工抽样委托!"); return cro; } //查询检验 sqlucomm.append("SELECT d.SMP_NO,d.SPECIMEN_NO,d.HEAT_NO,d.BATCH_NO,d.INSPECTION_LOT,d.FREQ_CODE,d.FREQ_NAME," + " d.MATERIAL_NO,d.SEND_MEMO,d.SMP_TYPE_CODE,d.SMP_TYPE_NAME,d.CONSIGN_NO,d.CONSIGN_NO_SEQ,d.TEST_QTY,d.SMP_QTY," + " d.SMP_LOCATION,d.BOARD_NO,d.QUOTE_CONSIGN_NO,d.OLD_CONSIGN_NO,d.PLINE_CODE,d.PLINE_NAME,d.CHEM_ITEM," + "d.SOURCE,d.PRODUCT_CNT,d.MEMO, o.STEEL_CODE,o.STEEL_NAME ,o.THICK,o.WIDTH ,o.LENGTH ,o.DESIGN_KEY," + "m.CERT_INST_CODE,m.CERT_INST_NAME,m.SMP_CATG,d.SEND_SEQ " + " FROM QCM_JHY_SAMPLE_CONSIGN_D d INNER JOIN QCM_JHY_SAMPLE_CONSIGN_M m " + " ON d.SMP_NO=m.SMP_NO INNER JOIN QCM_JHY_SAMPLE_R_ORD O ON d.SMP_NO = o.SMP_NO " + " where d.SPECIMEN_NO in ("+msInfo+") and d.VALIDFLAG='1' and d.STATUS='0'"); List lists=mapper.query(sqlucomm.toString()); if (lists==null || lists.size()<1) { cro.setV_errCode(-1); cro.setV_errMsg("待发送的检验委托数据已经不存在或未生成委托,请核实数据!"); return cro; } //获取数据进行验证 TreeSet sizes=new TreeSet(); for (int i = 0; i < lists.size(); i++) { HashMap obj=lists.get(i); sizes.add((String)obj.get("SMP_CATG")); if("1".equals((String)obj.get("SMP_TYPE_CODE"))){ cro.setV_errCode(-1); cro.setV_errMsg("复样委托不能用预测抽样按钮,请核实数据!"); return cro; } } if (sizes.size()!=1) { cro.setV_errCode(-1); cro.setV_errMsg("待发送的检验委托数据只能同时发送一种类型的待检数据,请核实数据!"); return cro; } JSONArray tarDate=new JSONArray(); JSONArray LCtarDate=new JSONArray();//全自动激光切割加工中心系统 Date date=new Date(); SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString=simpleDateFormat.format(date); //生成委托编号 String consignNo=new SimpleDateFormat("yyyyMMdd").format(date); sqlucomm.setLength(0); sqlucomm.append("SELECT max(to_number(substr(CONSIGN_NO,-3,3))) BIGSEQ from QCM_JHY_SAMPLE_CONSIGN_D where CONSIGN_NO like '"+consignNo+"%'"); HashMap map=mapper.queryOne(sqlucomm.toString()); BigDecimal count = BigDecimal.ZERO; if( null != map.get("BIGSEQ")){ count=(BigDecimal)map.get("BIGSEQ"); } if (count.compareTo(BigDecimal.ZERO)==1) { count=count.add(BigDecimal.ONE); }else{ count=BigDecimal.ONE; } consignNo=consignNo+String.format("%03d", count.intValue()); System.out.println("======="+count.intValue()); int seq=1; for (int i = 0; i < lists.size(); i++) { HashMap obj=lists.get(i); obj.put("SEND_ID", sendId); obj.put("SEND_NAME", sendName); obj.put("CONSIGN_NO", consignNo); obj.put("CONSIGN_NO_SEQ", seq++); obj.put("SEND_TIME", dateString); LCplineCode=obj.get("PLINE_CODE").toString();//全自动激光切割加工中心系统 JSONObject smpleD = JSONObject.parseObject(JSON.toJSONString(obj)); //目标json JSONObject tarObj=new JSONObject(); //主表数据 createTarObj(tarObj,smpleD); if(obj.get("PLINE_CODE").equals("RZ1")){ //发送序号 String sendSeq=createSendSeq(obj.get("PLINE_CODE").toString()); //String sendQ="select to_number(substr('"+sendSeq+"', 8)) PRINT_SEQ from dual t "; String sendQ="select substr('"+sendSeq+"', 9) PRINT_SEQ from dual t "; List hmsendQ=mapper.query(sendQ.toString()); String PRINT_SEQ=hmsendQ.get(0).get("PRINT_SEQ").toString(); tarObj.put("printSeq", 'R'+PRINT_SEQ); PRINT_SEQ='R'+PRINT_SEQ; String qcmSendSeq =" update QCM_JHY_SAMPLE_CONSIGN_D t set SEND_SEQ = '"+sendSeq+"',PRINT_SEQ='"+PRINT_SEQ+"' " + " where PLINE_CODE = '"+obj.get("PLINE_CODE")+"' and SPECIMEN_NO = '"+obj.get("SPECIMEN_NO")+"' "; mapper.updateJudgeStatus(qcmSendSeq.toString()); tarObj.put("sendSeq", sendSeq); //判定厚度 String strRz=" select to_char(t.dcs_thk,'fm990.099') DCS_THK from tbh02_coil_comm t " + " where T.OLD_SAMPL_NO ='"+tarObj.getString("materialNo")+"' and t.dcs_thk is not null and rownum=1"; List hmRz=mapper.query(strRz.toString()); String dcsThk = ""; if(hmRz!=null && hmRz.size()>=1){ dcsThk=hmRz.get(0).get("DCS_THK").toString(); } tarObj.put("dcsThk", dcsThk);//判定厚度人工输入 } tarObj.put("CREATE_ID", sendId); tarObj.put("CREATE_NAME", sendName); tarObj.put("cretInstCode", obj.get("CERT_INST_CODE")); tarObj.put("cretInstName", obj.get("CERT_INST_NAME")); if ("5000".equals(obj.get("CERT_INST_CODE"))) { tarObj.put("type", "0"); }else{ tarObj.put("type", "1"); } if ("B".equals(obj.get("SMP_CATG"))) { //材质 sqlucomm.setLength(0); sqlucomm.append("select T.SPECIMEN_NO,T.SEQ,T.SMP_NO,T.PHY_NAME_L,T.PHY_CODE_L,T.PHY_CODE_M,T.PHY_NAME_M,T.PHY_CODE_S," + "T.PHY_NAME_S,T.ITEM_CODE_D,T.ITEM_NAME_D,T.ITEM_CODE_T,T.ITEM_NAME_T,T.ITEM_CODE_S,T.ITEM_NAME_S," + "T.ISJUDGE,T.JUDGE_BASIS,T.PHY_UNIT,T.GROUP_SEQ,T.QUOTE_SPECIMEN_NO,T.QUOTE_SEQ,T.MEMO,T.ITEM_CODE_L," + " T.ITEM_DESC_L,T.TEST_QTY,T.SMP_QTY,T.CREATE_TIME,T.CREATE_ID,T.CREATE_NAME,T.SPECL_FL, " + "T.STDMIN_SIGN,T.STDMIN,T.STDMAX_SIGN,T.STDMAX,t.STDMEMO from QCM_JHY_SAMPLE_CONSIGN_D_ITEM T" + " WHERE T.SPECIMEN_NO='"+obj.get("SPECIMEN_NO")+"' and (T.QUOTE_SPECIMEN_NO is null or T.QUOTE_SPECIMEN_NO='') and t.Fy_Quote_Specimen_No is null "); List items=mapper.query(sqlucomm.toString()); if (items!=null && items.size()>0) { JSONArray arrayItem=new JSONArray(); for(int j = 0 ;j < items.size() ; j++){ JSONObject oldItem =JSONObject.parseObject(JSON.toJSONString(items.get(j))) ; JSONObject tarItem=new JSONObject(); //子表数据 createItem(tarItem,oldItem); if(oldItem.getString("PHY_NAME_M").equals("现场洛氏硬度HRC")){ tarItem.put("tsFlag", "1");//探伤 }else{ tarItem.put("tsFlag", "0");//非探伤 } arrayItem.add(tarItem); } tarObj.put("items", arrayItem); } }else{ //成分 JSONObject chemItem=JSON.parseObject((String)obj.get("CHEM_ITEM")); tarObj.putAll(chemItem); } tarDate.add(tarObj); HashMap hm = new HashMap(); hm.put("SPECIMEN_NO", obj.get("SPECIMEN_NO").toString()); hm.put("BATCH_NO", obj.get("BATCH_NO").toString()); hm.put("PLINE_CODE", LCplineCode); if(LCplineCode.equals("RZ1")){ LCtarDate.add(tarObj); String strjg=qcmJg(hm); mapper.insert(strjg); } } logger.info("-------发送jon数组--"+tarDate.toJSONString()); String tar=tarDate.toString(); String result = "";//调用url try{ result = httpURLPOSTCaseNew(urlStr,tar);//调用url if (result == null ||result.equals("null") || result.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("发送人工抽样LIMS系统失败!返回值:"+result); SqlSession.rollback(); return cro; } }catch(Exception e){ cro.setV_errCode(-1); cro.setV_errMsg(e.getMessage()); SqlSession.rollback(); return cro; } String resultlist =result.substring(8, 11); if (!resultlist.equals("200") || resultlist == null || resultlist.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("发送人工抽样LIMS系统失败!"+result); SqlSession.rollback(); return cro; } String inspectionLot = "";//检验号 String oldSamplNo = "";//钢卷号 if(resultlist.equals("200")){ for (HashMap list : lists) { String sqlR = "update QCM_JHY_SAMPLE_CONSIGN_D " +" set SAMPL_PICK_RY = 'R' " +" where SPECIMEN_NO = '"+list.get("SPECIMEN_NO")+"' "; mapper.UpdateQcmWt(sqlR.toString()); //修改 组批区间的所有数据 //查询检验 拿到当前取样编号的所需数据 热轧轧辊单元 组批区间 钢卷号 流水号 String sql="select t.OLD_SAMPL_NO,t.ROLL_MANA_NO,t.ROLL_SLAB_SEQ,t.MIXROLL,t.SPECIMEN_NO,t.INSPECTION_LOT from (" + " select t3.OLD_SAMPL_NO,t4.ROLL_MANA_NO,t4.ROLL_SLAB_SEQ,t4.MIXROLL,t1.SPECIMEN_NO,t1.INSPECTION_LOT " +" from QCM_JHY_SAMPLE_CONSIGN_D t1, " +" QCM_JHY_SAMPLE_CONSIGN_M t2, " +" QCM_JHY_SAMPLE_R_ORD ord, " +" tbh02_coil_comm t3, " +" tbf02_spec_mill t4 " +" where t1.SMP_NO = t2.SMP_NO " +" and t1.smp_no = ord.smp_no " +" and t1.inspection_lot = t3.SAMPL_NO " +" and t3.COIL_NO = t4.COIL_NO " +" and t1.validflag = '1' " +" and t1.STATUS = '0' " +" and t1.pline_code = 'RZ1' " +" and t1.specimen_no = '"+list.get("SPECIMEN_NO")+"' " +" and t3.OLD_SAMPL_NO = t1.material_no " + " order by t4.ROLL_SLAB_SEQ asc ) t " + " where rownum <= 1 "; List hMap=mapper.query(sql.toString()); if (hMap!=null || hMap.size()>0) { for (HashMap hm : hMap) { inspectionLot = (String)hm.get("INSPECTION_LOT"); oldSamplNo = (String)hm.get("OLD_SAMPL_NO"); //拿到 热轧轧辊单元 组批区间 钢卷号 查询出这个区间的所有取样编号 sql = ""; sql = "select t4.ROLL_MANA_NO,t4.MIXROLL,t1.SPECIMEN_NO " +" from QCM_JHY_SAMPLE_CONSIGN_D t1, " +" QCM_JHY_SAMPLE_CONSIGN_M t2, " +" QCM_JHY_SAMPLE_R_ORD ord, " +" tbh02_coil_comm t3, " +" tbf02_spec_mill t4 " +" where t1.SMP_NO = t2.SMP_NO " +" and t1.smp_no = ord.smp_no " +" and t1.inspection_lot = t3.SAMPL_NO " +" and t3.COIL_NO = t4.COIL_NO " +" and t1.validflag = '1' " +" and t1.STATUS = '0' " +" and t1.pline_code = 'RZ1' " +" and t4.ROLL_MANA_NO='"+hm.get("ROLL_MANA_NO")+"' " +" and t4.MIXROLL='"+hm.get("MIXROLL")+"' " +" group by t4.ROLL_MANA_NO,t4.MIXROLL,t1.SPECIMEN_NO "; List specimenNoList=mapper.query(sql.toString()); if (specimenNoList!=null || specimenNoList.size()>0) { //1、先删除当前取样编号实绩 再把抽样的实绩判定状态改成已判 材质检验结果表 sql = ""; sql ="delete QCM_JHY_INSP_PHYSICS t where t.specimen_no = '"+list.get("SPECIMEN_NO")+"' and SEQ<=49 "; mapper.delete(sql.toString()); for (HashMap hashMap : specimenNoList) { //给所有的取样编号 标记 热轧轧辊单元 组批区间 钢卷号 sql = ""; sql = "update QCM_JHY_SAMPLE_CONSIGN_D " +" set STATUS = '2', " +" SEND_TIME = sysdate, " +" CONSIGN_NO = '"+list.get("CONSIGN_NO")+"', " +" CONSIGN_NO_SEQ = '"+list.get("CONSIGN_NO_SEQ")+"', " +" SEND_ID = '"+sendId+"', " +" SEND_NAME = '"+sendName+"', " +" RZ_ROLL_MANA_NO = '"+hashMap.get("ROLL_MANA_NO")+"', " +" RZ_MIXROLL = '"+hashMap.get("MIXROLL")+"', " +" RZ_OLD_SAMPL_NO = '"+hm.get("OLD_SAMPL_NO")+"', " +" RZ_ROLL_SLAB_SEQ = '"+hm.get("ROLL_SLAB_SEQ")+"' " +" where SPECIMEN_NO = '"+hashMap.get("SPECIMEN_NO")+"' "; mapper.UpdateQcmWt(sql.toString()); //2、删除了当前取样编号实绩 再把抽样的实绩QCM_JHY_SAMPLE_R_ORD判定状态改成已判 JUDGE_STATUS判定状态(0:待判,1已判) String specimenNo1 = list.get("SPECIMEN_NO").toString();//抽样取样编号 String specimenNo2 = hashMap.get("SPECIMEN_NO").toString();//所有取样编号 if(!specimenNo1.equals(specimenNo2)){ sql = ""; sql = " update QCM_JHY_SAMPLE_R_ORD ord set ord.judge_status = '1' " +" where ord.pline_code = 'RZ1' and ord.smp_no in ( " +" select t.smp_no from QCM_JHY_SAMPLE_CONSIGN_D t where t.specimen_no = '"+hashMap.get("SPECIMEN_NO")+"' " +" ) "; mapper.UpdateQcmWt(sql.toString()); } } } } } } cro.setV_errCode(1); cro.setV_errMsg("人工抽样成功"); String storage = "{CALL COILJUDGE_STATUS_BKD(?,?)}"; CallableStatement cstm = conn.prepareCall(storage); cstm.setString(1,inspectionLot); cstm.setString(2,oldSamplNo); cstm.execute(); cstm.close(); } /*String sqlLog = "select * from QCM_JHY_SAMPLE_CONSIGN_D t where t.specimen_no in ("+msInfo+")"; List lists = mapper.query(sqlLog);*/ for (HashMap list : lists) { QcmJudgeOperateLog qjog = new QcmJudgeOperateLog(); qjog.setOperate_name(sendName); qjog.setBatchno(list.get("BATCH_NO") == null ?"":list.get("BATCH_NO").toString()); qjog.setOperate_type("热轧预测抽样"); qjog.setParams(list.get("MATERIAL_NO") == null ?"":list.get("MATERIAL_NO").toString()); qjog.setProd_line(list.get("PLINE_CODE") == null ?"":list.get("PLINE_CODE").toString()); qjog.setMemo(list.get("SPECIMEN_NO").toString()); mapper.insertQcmJudgeOperateLog(qjog); } SqlSession.commit(); //全自动激光切割加工中心系统 /*if(LCplineCode.equals("RZ1") && LCtarDate.size()>=1 ){ String jgkg=QcmJhyJgKg(LCplineCode); if("1".equals(jgkg)){ String LCurlStr = "http://172.16.0.169:82/Limsinterface/http/Tgcut"; String LCtar=LCtarDate.toString(); httpURLPOSTLaserCenter(LCurlStr,LCtar,LCplineCode); } }*/ } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); SqlSession.rollback(); cro.setV_errCode(-1); cro.setV_errMsg("发送人工抽样委托失败!"+e.getMessage()); return cro; }finally { SqlSession.close(); } return cro; } /** * 热轧 人工选样发送 调用LIMS接收委托接口,实现委托下发 * @return cro * @throws IOException */ @SuppressWarnings("unchecked") public CoreReturnObject SendLimesRZXY(HashMap parmas,String Entrust){ Connection conn = this.getDao("testDao").getConnection(); String urlStr = "http://172.16.0.169:82/Limsinterface/http/Inspection"; try { String sendId=parmas.get("USERID").toString(); String sendName=parmas.get("USERNAME").toString(); String LCplineCode="LC";//全自动激光切割加工中心系统 StringBuffer sqlucomm = new StringBuffer(); TreeSet treeSnoS = new TreeSet();//所有取样编号 String[] ja=Entrust.split(","); String msInfo="";//所有取样编号 if (ja!=null && ja.length>0) { for (int i = 0; i < ja.length; i++) { String sp = ja[i]; treeSnoS.add(sp); if ("".equals(msInfo)) { msInfo="'"+sp+"'"; }else{ msInfo=msInfo+"'"+sp+"'"; } if (i !=ja.length-1) { msInfo=msInfo+","; } } } TreeSet treesno = new TreeSet(); TreeSet treeSet = new TreeSet(); String[] ja1=parmas.get("SPECIMEN_NO").toString().split(",");//选样编号 String[] jmno=parmas.get("MATERIAL_NO").toString().split(","); //选样子板号 String msInfo1="";//选样编号 if (ja1!=null && ja1.length>0) { for (int i = 0; i < ja1.length; i++) { String sp = ja1[i];//选样取样编号 treesno.add(sp);//选样取样编号 String mno = jmno[i];//选样子板号 treeSet.add(mno);//子板号 if ("".equals(msInfo1)) { msInfo1="'"+sp+"'"; }else{ msInfo1=msInfo1+"'"+sp+"'"; } if (i !=ja1.length-1) { msInfo1=msInfo1+","; } } } //判断复样选的是两个子板号,但是委托样条是同一个 if(treeSet.size()>=2 && treesno.size()==1 ){ cro.setV_errCode(-1); cro.setV_errMsg("勾选错误,勾选了两个钢卷号,但是委托样条只取了一个,请选择不同的取样编号委托样条!"); return cro; } //判断是初样还是复样,修改送样编号的子板号 if(treeSet.size()==1){//子板号只有一个 for (String set : treesno) { String sql = "update QCM_JHY_SAMPLE_CONSIGN_D set MATERIAL_NO = '"+treeSet.last()+"' " +" where SPECIMEN_NO = '"+set+"' "; mapper.UpdateQcmWt(sql.toString()); } }else if (treeSet.size()==2){ String sql = "update QCM_JHY_SAMPLE_CONSIGN_D set MATERIAL_NO = '"+treeSet.last()+"' " +" where SPECIMEN_NO = '"+treesno.last()+"' "; mapper.UpdateQcmWt(sql.toString()); String sql2 = "update QCM_JHY_SAMPLE_CONSIGN_D set MATERIAL_NO = '"+treeSet.first()+"' " +" where SPECIMEN_NO = '"+treesno.first()+"' "; mapper.UpdateQcmWt(sql2.toString()); } SqlSession.commit(); //查询检验 sqlucomm.append("SELECT d.SMP_NO,d.SPECIMEN_NO,d.HEAT_NO,d.BATCH_NO,d.INSPECTION_LOT,d.FREQ_CODE,d.FREQ_NAME," + " d.MATERIAL_NO,d.SEND_MEMO,d.SMP_TYPE_CODE,d.SMP_TYPE_NAME,d.CONSIGN_NO,d.CONSIGN_NO_SEQ,d.TEST_QTY,d.SMP_QTY," + " d.SMP_LOCATION,d.BOARD_NO,d.QUOTE_CONSIGN_NO,d.OLD_CONSIGN_NO,d.PLINE_CODE,d.PLINE_NAME,d.CHEM_ITEM," + "d.SOURCE,d.PRODUCT_CNT,d.MEMO, o.STEEL_CODE,o.STEEL_NAME ,o.THICK,o.WIDTH ,o.LENGTH ,o.DESIGN_KEY," + "m.CERT_INST_CODE,m.CERT_INST_NAME,m.SMP_CATG,d.SEND_SEQ " + " FROM QCM_JHY_SAMPLE_CONSIGN_D d INNER JOIN QCM_JHY_SAMPLE_CONSIGN_M m " + " ON d.SMP_NO=m.SMP_NO INNER JOIN QCM_JHY_SAMPLE_R_ORD O ON d.SMP_NO = o.SMP_NO " + " where d.SPECIMEN_NO in ("+msInfo1+") and d.VALIDFLAG='1' and d.STATUS='0'"); List lists=mapper.query(sqlucomm.toString()); if (lists==null || lists.size()<1) { cro.setV_errCode(-1); cro.setV_errMsg("待发送的检验委托数据已经不存在或未生成委托,请核实数据!"); return cro; } //获取数据进行验证 TreeSet sizes=new TreeSet(); for (int i = 0; i < lists.size(); i++) { HashMap obj=lists.get(i); sizes.add((String)obj.get("SMP_CATG")); } if (sizes.size()!=1) { cro.setV_errCode(-1); cro.setV_errMsg("待发送的检验委托数据只能同时发送一种类型的待检数据,请核实数据!"); return cro; } JSONArray tarDate=new JSONArray(); JSONArray LCtarDate=new JSONArray();//全自动激光切割加工中心系统 Date date=new Date(); SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString=simpleDateFormat.format(date); //生成委托编号 String consignNo=new SimpleDateFormat("yyyyMMdd").format(date); sqlucomm.setLength(0); sqlucomm.append("SELECT max(to_number(substr(CONSIGN_NO,-3,3))) BIGSEQ from QCM_JHY_SAMPLE_CONSIGN_D where CONSIGN_NO like '"+consignNo+"%'"); HashMap map=mapper.queryOne(sqlucomm.toString()); BigDecimal count = BigDecimal.ZERO; if( null != map.get("BIGSEQ")){ count=(BigDecimal)map.get("BIGSEQ"); } if (count.compareTo(BigDecimal.ZERO)==1) { count=count.add(BigDecimal.ONE); }else{ count=BigDecimal.ONE; } consignNo=consignNo+String.format("%03d", count.intValue()); System.out.println("======="+count.intValue()); int seq=1; for (int i = 0; i < lists.size(); i++) { HashMap obj=lists.get(i); obj.put("SEND_ID", sendId); obj.put("SEND_NAME", sendName); obj.put("CONSIGN_NO", consignNo); obj.put("CONSIGN_NO_SEQ", seq++); obj.put("SEND_TIME", dateString); LCplineCode=obj.get("PLINE_CODE").toString();//全自动激光切割加工中心系统 JSONObject smpleD = JSONObject.parseObject(JSON.toJSONString(obj)); //目标json JSONObject tarObj=new JSONObject(); //主表数据 createTarObj(tarObj,smpleD); if(obj.get("PLINE_CODE").equals("RZ1")){ //发送序号 String sendSeq=createSendSeq(obj.get("PLINE_CODE").toString()); String sendQ="select substr('"+sendSeq+"', 9) PRINT_SEQ from dual t "; List hmsendQ=mapper.query(sendQ.toString()); String PRINT_SEQ=hmsendQ.get(0).get("PRINT_SEQ").toString(); tarObj.put("printSeq", 'R'+PRINT_SEQ); PRINT_SEQ='R'+PRINT_SEQ; String qcmSendSeq =" update QCM_JHY_SAMPLE_CONSIGN_D t set SEND_SEQ = '"+sendSeq+"',PRINT_SEQ='"+PRINT_SEQ+"' " + " where PLINE_CODE = '"+obj.get("PLINE_CODE")+"' and SPECIMEN_NO = '"+obj.get("SPECIMEN_NO")+"' "; mapper.updateJudgeStatus(qcmSendSeq.toString()); tarObj.put("sendSeq", sendSeq); //判定厚度 String strRz=" select to_char(t.dcs_thk,'fm990.099') DCS_THK from tbh02_coil_comm t " + " where T.OLD_SAMPL_NO ='"+tarObj.getString("materialNo")+"' and t.dcs_thk is not null and rownum=1"; List hmRz=mapper.query(strRz.toString()); String dcsThk = ""; if(hmRz!=null && hmRz.size()>=1){ dcsThk=hmRz.get(0).get("DCS_THK").toString(); } tarObj.put("dcsThk", dcsThk);//判定厚度人工输入 } tarObj.put("CREATE_ID", sendId); tarObj.put("CREATE_NAME", sendName); tarObj.put("cretInstCode", obj.get("CERT_INST_CODE")); tarObj.put("cretInstName", obj.get("CERT_INST_NAME")); if ("5000".equals(obj.get("CERT_INST_CODE"))) { tarObj.put("type", "0"); }else{ tarObj.put("type", "1"); } if ("B".equals(obj.get("SMP_CATG"))) { //材质 sqlucomm.setLength(0); sqlucomm.append("select T.SPECIMEN_NO,T.SEQ,T.SMP_NO,T.PHY_NAME_L,T.PHY_CODE_L,T.PHY_CODE_M,T.PHY_NAME_M,T.PHY_CODE_S," + "T.PHY_NAME_S,T.ITEM_CODE_D,T.ITEM_NAME_D,T.ITEM_CODE_T,T.ITEM_NAME_T,T.ITEM_CODE_S,T.ITEM_NAME_S," + "T.ISJUDGE,T.JUDGE_BASIS,T.PHY_UNIT,T.GROUP_SEQ,T.QUOTE_SPECIMEN_NO,T.QUOTE_SEQ,T.MEMO,T.ITEM_CODE_L," + " T.ITEM_DESC_L,T.TEST_QTY,T.SMP_QTY,T.CREATE_TIME,T.CREATE_ID,T.CREATE_NAME,T.SPECL_FL, " + "T.STDMIN_SIGN,T.STDMIN,T.STDMAX_SIGN,T.STDMAX,t.STDMEMO from QCM_JHY_SAMPLE_CONSIGN_D_ITEM T" + " WHERE T.SPECIMEN_NO='"+obj.get("SPECIMEN_NO")+"' and (T.QUOTE_SPECIMEN_NO is null or T.QUOTE_SPECIMEN_NO='') and t.Fy_Quote_Specimen_No is null "); List items=mapper.query(sqlucomm.toString()); if (items!=null && items.size()>0) { JSONArray arrayItem=new JSONArray(); for(int j = 0 ;j < items.size() ; j++){ JSONObject oldItem =JSONObject.parseObject(JSON.toJSONString(items.get(j))) ; JSONObject tarItem=new JSONObject(); //子表数据 createItem(tarItem,oldItem); if(oldItem.getString("PHY_NAME_M").equals("现场洛氏硬度HRC")){ tarItem.put("tsFlag", "1");//探伤 }else{ tarItem.put("tsFlag", "0");//非探伤 } arrayItem.add(tarItem); } tarObj.put("items", arrayItem); } }else{ //成分 JSONObject chemItem=JSON.parseObject((String)obj.get("CHEM_ITEM")); tarObj.putAll(chemItem); } tarDate.add(tarObj); HashMap hm = new HashMap(); hm.put("SPECIMEN_NO", obj.get("SPECIMEN_NO").toString()); hm.put("BATCH_NO", obj.get("BATCH_NO").toString()); hm.put("PLINE_CODE", LCplineCode); if(LCplineCode.equals("RZ1")){ LCtarDate.add(tarObj); String strjg=qcmJg(hm); mapper.insert(strjg); } } logger.info("-------发送jon数组--"+tarDate.toJSONString()); String tar=tarDate.toString(); String result = "";//调用url try{ result = httpURLPOSTCaseNew(urlStr,tar);//调用url if (result == null ||result.equals("null") || result.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("送样发送LIMS系统失败!返回值:"+result); SqlSession.rollback(); return cro; } }catch(Exception e){ cro.setV_errCode(-1); cro.setV_errMsg(e.getMessage()); SqlSession.rollback(); return cro; } String resultlist =result.substring(8, 11); if (!resultlist.equals("200") || resultlist == null || resultlist.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("送样发送LIMS系统失败!返回值:"+result); SqlSession.rollback(); return cro; } if(resultlist.equals("200")){ for (HashMap list : lists) { String sql = "update QCM_JHY_SAMPLE_CONSIGN_D " +" set STATUS = '2', " +" SEND_TIME = sysdate, " +" CONSIGN_NO = '"+list.get("CONSIGN_NO")+"', " +" CONSIGN_NO_SEQ = '"+list.get("CONSIGN_NO_SEQ")+"', " +" SEND_ID = '"+sendId+"', " +" SEND_NAME = '"+sendName+"', " +" SAMPL_PICK_RY = 'Y', " +" QRZ_SPECIMEN_NO = '"+list.get("SPECIMEN_NO")+"' " +" where SPECIMEN_NO = '"+list.get("SPECIMEN_NO")+"' "; mapper.UpdateQcmWt(sql.toString()); treeSnoS.remove(list.get("SPECIMEN_NO")); } //判断是初样还是复样 if(parmas.get("SMP_TYPE_CODE").equals("0")){ for (String set : treeSnoS) {//所有取样编号 String str="0"; String treeSpNo=treesno.last(); for (String set2 : treesno) {//送样取样编号 if(set.equals(set2)){ str="1"; } } if(str.equals("1")){ continue; } String sql = "update QCM_JHY_SAMPLE_CONSIGN_D " +" set STATUS = '1', " +" SEND_TIME = sysdate, " +" SEND_ID = '"+sendId+"', " +" SEND_NAME = '"+sendName+"', " +" QRZ_SPECIMEN_NO = '"+treeSpNo+"' " +" where SPECIMEN_NO = '"+set+"' "; mapper.UpdateQcmWt(sql.toString()); } }else if(parmas.get("SMP_TYPE_CODE").equals("1")){ for (String set2 : treesno) {//送样取样编号 String jsno2= set2.substring(set2.length()-2);//截取后两位 for (String set : treeSnoS) {//所有取样编号 String jsno= set.substring(set.length()-2);//截取后两位 String str="0"; if(set2.equals(set) || !jsno2.equals(jsno)){//排除送样取样编号和复样取样编号后两位不一样的 str="1"; } if(str.equals("1")){ continue; } String sql = "update QCM_JHY_SAMPLE_CONSIGN_D " +" set STATUS = '1', " +" SEND_TIME = sysdate, " +" SEND_ID = '"+sendId+"', " +" SEND_NAME = '"+sendName+"', " +" QRZ_SPECIMEN_NO = '"+set2+"' " +" where SPECIMEN_NO = '"+set+"' "; mapper.UpdateQcmWt(sql.toString()); } } } cro.setV_errCode(1); cro.setV_errMsg("送样发送成功"); } for (HashMap list : lists) { QcmJudgeOperateLog qjog = new QcmJudgeOperateLog(); qjog.setOperate_name(sendName); qjog.setBatchno(list.get("BATCH_NO") == null ?"":list.get("BATCH_NO").toString()); qjog.setOperate_type("人工送样发送"); qjog.setParams(list.get("MATERIAL_NO") == null ?"":list.get("MATERIAL_NO").toString()); qjog.setProd_line(list.get("PLINE_CODE") == null ?"":list.get("PLINE_CODE").toString()); qjog.setMemo(list.get("SPECIMEN_NO").toString()); mapper.insertQcmJudgeOperateLog(qjog); } SqlSession.commit(); //全自动激光切割加工中心系统 /*if(LCplineCode.equals("RZ1") && LCtarDate.size()>=1 ){ String jgkg=QcmJhyJgKg(LCplineCode); if("1".equals(jgkg)){ String LCurlStr = "http://172.16.0.169:82/Limsinterface/http/Tgcut"; String LCtar=LCtarDate.toString(); httpURLPOSTLaserCenter(LCurlStr,LCtar,LCplineCode); } }*/ } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); SqlSession.rollback(); cro.setV_errCode(-1); cro.setV_errMsg("人工送样发送委托失败!"+e.getMessage()); return cro; }finally { SqlSession.close(); } return cro; } /** * 中厚板 同轧批合并发送委托 调用LIMS接收委托接口,实现委托下发 中厚板合并发送 * @return cro * @throws IOException */ @SuppressWarnings("unchecked") public CoreReturnObject ZHBmergeSendLIMES(String Entrust,String sendId,String sendName,String sampleDeliveryTime){ String urlStr = "http://172.16.0.169:82/Limsinterface/http/Inspection"; try { String LCplineCode="LC";//全自动激光切割加工中心系统 StringBuffer sqlucomm = new StringBuffer(); String[] ja=Entrust.split(","); String msInfo=""; if (ja!=null && ja.length>0) { for (int i = 0; i < ja.length; i++) { String sp = ja[i]; if ("".equals(msInfo)) { msInfo="'"+sp+"'"; }else{ msInfo=msInfo+"'"+sp+"'"; } if (i !=ja.length-1) { msInfo=msInfo+","; } } } //查询检验 sqlucomm.append("SELECT d.SMP_NO,d.SPECIMEN_NO,d.HEAT_NO,d.BATCH_NO,d.INSPECTION_LOT,d.FREQ_CODE,d.FREQ_NAME," + " d.MATERIAL_NO,d.SEND_MEMO,d.SMP_TYPE_CODE,d.SMP_TYPE_NAME,d.CONSIGN_NO,d.CONSIGN_NO_SEQ,d.TEST_QTY,d.SMP_QTY," + " d.SMP_LOCATION,d.BOARD_NO,d.QUOTE_CONSIGN_NO,d.OLD_CONSIGN_NO,d.PLINE_CODE,d.PLINE_NAME,d.CHEM_ITEM," + "d.SOURCE,d.PRODUCT_CNT,d.MEMO, o.STEEL_CODE,o.STEEL_NAME ,o.THICK,o.WIDTH ,o.LENGTH ,o.DESIGN_KEY," + "m.CERT_INST_CODE,m.CERT_INST_NAME,m.SMP_CATG " + " FROM QCM_JHY_SAMPLE_CONSIGN_D d INNER JOIN QCM_JHY_SAMPLE_CONSIGN_M m " + " ON d.SMP_NO=m.SMP_NO INNER JOIN QCM_JHY_SAMPLE_R_ORD O ON d.SMP_NO = o.SMP_NO " + " where d.SPECIMEN_NO in ("+msInfo+") and d.VALIDFLAG='1' and d.STATUS='0'"); List lists=mapper.query(sqlucomm.toString()); if (lists==null || lists.size()<1) { cro.setV_errCode(-1); cro.setV_errMsg("待发送的检验委托数据已经不存在,请核实数据!"); return cro; } //获取数据进行验证 TreeSet sizes=new TreeSet(); TreeSet treeSetBatchNo=new TreeSet();//轧批号 for (int i = 0; i < lists.size(); i++) { HashMap obj=lists.get(i); if(!"B".equals((String)obj.get("SMP_CATG"))){ cro.setV_errCode(-1); cro.setV_errMsg("只能合并材质委托!!!"); return cro; } sizes.add((String)obj.get("SMP_CATG")); treeSetBatchNo.add((String)obj.get("BATCH_NO")); } if (sizes.size()!=1) { cro.setV_errCode(-1); cro.setV_errMsg("待发送的检验委托数据只能同时发送一种类型的待检数据,请核实数据!"); return cro; } //判断是否是同轧批的 if(treeSetBatchNo.size()!=1){ cro.setV_errCode(-1); cro.setV_errMsg("同轧批合并发送只能是一个轧批号!"); return cro; } String mnhhsql="select * from qcm_jhy_sample_consign_d t where t.Smp_Location like '%模拟焊后%' and t.batch_no = '"+treeSetBatchNo.first()+"' ";//判断是否是模拟焊后轧批 List listm= mapper.query(mnhhsql.toString()); if(listm!=null && listm.size()>=1){ cro.setV_errCode(-1); cro.setV_errMsg("不允许同批合并发送!"); return cro; } //普锰板(Q235A/B、Q345A/B、Q355B)都是检测中心的 //提示 美标标准 指标准类别中含ASTM、ASME 不能合并 String tipsSql=" select r.STEEL_CODE,r.thick,r.CERT_INST_NAME,r.delivery_state_desc,t.MATERIAL_NO " +" from qcm_jhy_sample_consign_d t,qcm_jhy_sample_consign_m m, qcm_jhy_sample_r_ord r " +" where t.smp_no = m.smp_no " +" and t.smp_no = r.smp_no " +" and t.freq_code <> 'D' " +" and t.batch_no = '"+treeSetBatchNo.first()+"' " +" and t.smp_type_code = '0' " +" and t.status = '0' " +" and (r.std_code like '%ASTM%' " +" or r.std_code like '%ASME%' or r.Cert_Inst_Code = 'IC005' ) " //+" and r.Cert_Inst_Code in ('5000','IC010','IC003','IC004','IC001')" + " and m.SMP_CATG = 'B' " + " group by r.STEEL_CODE,r.thick,r.CERT_INST_NAME,r.delivery_state_desc,t.MATERIAL_NO "; List tipsSqlhm=mapper.query(tipsSql.toString()); if(tipsSqlhm!=null && tipsSqlhm.size()>=1){ for (HashMap hashMap : tipsSqlhm) { String materialNo= hashMap.get("MATERIAL_NO").toString(); String certInstName= hashMap.get("CERT_INST_NAME").toString(); cro.setV_errCode(-1); cro.setV_errMsg("【"+materialNo+"】【"+certInstName+"】美标/ABS美国不能合并发送,需优先发送!美标标准指执行标准中含【ASTM、ASME】"); return cro; } } String tmcpStr = "0"; String arStr = "0"; String crStr = "0"; TreeSet TdeliveryStateDesc=new TreeSet();//交货状态 //执行标准 ASTM ASME 非'5000','IC010','IC003','IC004','IC001' 不可合并 //,'IC009','IC006','IC007','IC002' String sql=""; sql= "select r.delivery_state_desc,r.thick " +" from qcm_jhy_sample_consign_d t,qcm_jhy_sample_consign_m m, qcm_jhy_sample_r_ord r " +" where t.smp_no = m.smp_no " +" and t.smp_no = r.smp_no " +" and t.freq_code <> 'D' " +" and t.batch_no = '"+treeSetBatchNo.first()+"' " +" and t.smp_type_code = '0' " +" and t.status = '0' " +" and r.std_code not like '%ASTM%' " +" and r.std_code not like '%ASME%' " +" and r.Cert_Inst_Code in ('5000','IC010','IC003','IC004','IC001')" + " and m.SMP_CATG = 'B' " + " group by r.delivery_state_desc,r.thick"; List hmjh=mapper.query(sql.toString()); if (hmjh==null || hmjh.size()<1) { cro.setV_errCode(-1); cro.setV_errMsg("没有查询出可合并的委托:执行标准含【ASTM/ASME】、非【船板与普锰板(AR、CR、TMCP)】不可合并,需单独发送委托!"); return cro; } //船板 免检 执行标准带Rules 同一厚度 同一轧批次 交货状态TMCP、AR if (hmjh!=null && hmjh.size()>=1) { for (int i = 0; i < hmjh.size(); i++) { HashMap obj=hmjh.get(i); if(obj.get("DELIVERY_STATE_DESC").toString().equals("TMCP")){ tmcpStr="1"; TdeliveryStateDesc.add((String)obj.get("DELIVERY_STATE_DESC"));//交货状态 } if(obj.get("DELIVERY_STATE_DESC").toString().equals("AR")){ arStr="1"; TdeliveryStateDesc.add((String)obj.get("DELIVERY_STATE_DESC"));//交货状态 } if(obj.get("DELIVERY_STATE_DESC").toString().equals("CR")){ crStr="1"; TdeliveryStateDesc.add((String)obj.get("DELIVERY_STATE_DESC"));//交货状态 } } } //这一个轧批中有 TMCP、AR 普锰板 String returnli = "0"; String tmcpArSpecimenNo = ""; //20230323修改 tmcpStr.equals("1") && arStr.equals("1") //,'IC009','IC006','IC007','IC002' if(TdeliveryStateDesc.size()>=1){ String zbsql= " select * from (select t.batch_no,t.SPECIMEN_NO,r.delivery_state_desc,r.thick," + " QCM_SPECFLAG(r.STEEL_CODE, r.THICK, r.std_code, m.CERT_INST_NAME) qcmSpecflag " +" from qcm_jhy_sample_consign_d t,qcm_jhy_sample_consign_m m, qcm_jhy_sample_r_ord r " +" where t.smp_no = m.smp_no " +" and t.smp_no = r.smp_no " +" and t.freq_code <> 'D' " +" and t.batch_no = '"+treeSetBatchNo.first()+"' " +" and t.smp_type_code = '0' " +" and t.status = '0' " +" and r.std_code not like '%ASTM%' " +" and r.std_code not like '%ASME%' " +" and r.Cert_Inst_Code in ('5000','IC010','IC003','IC004','IC001')" + " and m.SMP_CATG = 'B'" + " and r.delivery_state_desc in ('TMCP','AR','CR') " + " and (r.STD_CODE like '%Rules' OR r.steel_code in ('Q235A','Q235B','Q345A','Q345B','Q355B')) " + " ) t where t.qcmSpecflag in ('1','0') "; List zbhashMap=mapper.query(zbsql.toString()); if(zbhashMap !=null && zbhashMap.size() >=2){//起码船板有两条数据 TreeSet tredsdesc=new TreeSet();//交货状态 TreeSet tsetThick=new TreeSet();//厚度 船板用 TreeSet treesp=new TreeSet(); //判断是否是船板 交货状态 两个 厚度一个 for (int i = 0; i < zbhashMap.size(); i++) { HashMap obj=zbhashMap.get(i); tredsdesc.add((String)obj.get("DELIVERY_STATE_DESC"));//交货状态 tsetThick.add((String)obj.get("THICK"));//厚度 treesp.add((String)obj.get("SPECIMEN_NO")); if (StringUtils.isBlank(tmcpArSpecimenNo)) { tmcpArSpecimenNo="'"+(String)obj.get("SPECIMEN_NO")+"'"; }else{ tmcpArSpecimenNo=tmcpArSpecimenNo+","+"'"+(String)obj.get("SPECIMEN_NO")+"'"; } /* if (i !=lists.size()-1) { tmcpArSpecimenNo=tmcpArSpecimenNo+","; }*/ } //20230324 tredsdesc.size() >= 2 if(tredsdesc.size() >= 1 && tsetThick.size() == 1 && treesp.size() >= 2){ String returns = tmcpAr(zbhashMap, sendId, sendName, sampleDeliveryTime);//TMCP/AR 单独合并 if(!returns.equals("200")){ cro.setV_errCode(-1); cro.setV_errMsg("免船检TMCP/AR/CR失败:"+returns); return cro; }else{ returnli = "200"; } } } } String sqlSpecimenNo= ""; if(returnli.equals("200")){ sqlSpecimenNo = " and t.SPECIMEN_NO not in ("+tmcpArSpecimenNo+")"; } //提示 是否是单个 for (int i = 0; i < hmjh.size(); i++) { //拿取能合并的所有取样编号 sql=""; sql= "select * from (select t.SMP_NO,t.SPECIMEN_NO,t.HEAT_NO,t.BATCH_NO,t.INSPECTION_LOT,t.FREQ_CODE,t.FREQ_NAME," + " t.MATERIAL_NO,t.SEND_MEMO,t.SMP_TYPE_CODE,t.SMP_TYPE_NAME,t.CONSIGN_NO,t.CONSIGN_NO_SEQ,t.TEST_QTY,t.SMP_QTY," + " t.SMP_LOCATION,t.BOARD_NO,t.QUOTE_CONSIGN_NO,t.OLD_CONSIGN_NO,t.PLINE_CODE,t.PLINE_NAME,t.CHEM_ITEM," + " t.SOURCE,t.PRODUCT_CNT,t.MEMO, r.STEEL_CODE,r.STEEL_NAME ,r.THICK,r.WIDTH ,r.LENGTH ,r.DESIGN_KEY," + " m.CERT_INST_CODE,m.CERT_INST_NAME,m.SMP_CATG,t.PROCESS_NOS,r.Delivery_State_Desc, " + " r.std_code, QCM_SPECFLAG(r.STEEL_CODE, r.THICK, r.std_code, m.CERT_INST_NAME) qcmSpecflag " +" from qcm_jhy_sample_consign_d t,qcm_jhy_sample_consign_m m, qcm_jhy_sample_r_ord r " +" where t.smp_no = m.smp_no " +" and t.smp_no = r.smp_no " +" and t.freq_code <> 'D' " +" and t.batch_no = '"+treeSetBatchNo.first()+"' " +" and t.smp_type_code = '0' " +" and t.status = '0' " +" and r.std_code not like '%ASTM%' " +" and r.std_code not like '%ASME%' " +" and r.Cert_Inst_Code in ('5000','IC010','IC003','IC004','IC001')" + " and m.SMP_CATG = 'B' " + " and r.Delivery_State_Desc = '"+hmjh.get(i).get("DELIVERY_STATE_DESC")+"' " + " and r.thick = '"+hmjh.get(i).get("THICK")+"' " + " order by r.STEEL_CODE) t " + " where t.qcmSpecflag in ('1','0') " + sqlSpecimenNo; lists = null; lists=mapper.query(sql.toString()); if (lists==null || lists.size()<=0) { break; } if(lists!=null && lists.size()<=1){ String materialNo= lists.get(0).get("MATERIAL_NO").toString(); String certInstName= lists.get(0).get("CERT_INST_NAME").toString(); String thick= lists.get(0).get("THICK").toString(); String steelCode= lists.get(0).get("STEEL_CODE").toString(); String dsdesc= lists.get(0).get("DELIVERY_STATE_DESC").toString(); cro.setV_errCode(-1); cro.setV_errMsg("【"+materialNo+"】【"+certInstName+"】厚度【"+thick+"】牌号【"+steelCode+"】交货状态【"+dsdesc+"】" + "满足以上条件的委托只有一条,请单独发送委托不用合并,需优先发送"); return cro; } } //不同交货状态不能合并 同厚度 for (int y = 0; y < hmjh.size(); y++) { String connectSpno = "";//连接这一批的取样编号查询 String connectSpno2 = "";//连接这一批的取样编号(最低牌号) //拿取能合并的所有取样编号 sql=""; sql= "select * from (select t.SMP_NO,t.SPECIMEN_NO,t.HEAT_NO,t.BATCH_NO,t.INSPECTION_LOT,t.FREQ_CODE,t.FREQ_NAME," + " t.MATERIAL_NO,t.SEND_MEMO,t.SMP_TYPE_CODE,t.SMP_TYPE_NAME,t.CONSIGN_NO,t.CONSIGN_NO_SEQ,t.TEST_QTY,t.SMP_QTY," + " t.SMP_LOCATION,t.BOARD_NO,t.QUOTE_CONSIGN_NO,t.OLD_CONSIGN_NO,t.PLINE_CODE,t.PLINE_NAME,t.CHEM_ITEM," + " t.SOURCE,t.PRODUCT_CNT,t.MEMO, r.STEEL_CODE,r.STEEL_NAME ,r.THICK,r.WIDTH ,r.LENGTH ,r.DESIGN_KEY," + " m.CERT_INST_CODE,m.CERT_INST_NAME,m.SMP_CATG,t.PROCESS_NOS, " + " r.std_code, QCM_SPECFLAG(r.STEEL_CODE, r.THICK, r.std_code, m.CERT_INST_NAME) qcmSpecflag " +" from qcm_jhy_sample_consign_d t,qcm_jhy_sample_consign_m m, qcm_jhy_sample_r_ord r " +" where t.smp_no = m.smp_no " +" and t.smp_no = r.smp_no " +" and t.freq_code <> 'D' " +" and t.batch_no = '"+treeSetBatchNo.first()+"' " +" and t.smp_type_code = '0' " +" and t.status = '0' " +" and r.std_code not like '%ASTM%' " +" and r.std_code not like '%ASME%' " +" and r.Cert_Inst_Code in ('5000','IC010','IC003','IC004','IC001')" + " and m.SMP_CATG = 'B' " + " and r.Delivery_State_Desc = '"+hmjh.get(y).get("DELIVERY_STATE_DESC")+"' " + " and r.thick = '"+hmjh.get(y).get("THICK")+"' " + " order by r.STEEL_CODE) t " + " where t.qcmSpecflag in ('1','0') " + sqlSpecimenNo; lists = null; lists=mapper.query(sql.toString()); if (lists==null || lists.size()<=0) { break; } String tresteelCode = ""; TreeSet TREEsteelCode=new TreeSet();//牌号 for (int i = 0; i < lists.size(); i++) { HashMap obj=lists.get(i); TREEsteelCode.add((String)obj.get("STEEL_CODE"));//牌号 //能合并的取样编号 if ("".equals(connectSpno)) { connectSpno="'"+(String)obj.get("SPECIMEN_NO")+"'"; connectSpno2="'"+(String)obj.get("SPECIMEN_NO")+"'"; }else{ connectSpno=connectSpno+"'"+(String)obj.get("SPECIMEN_NO")+"'"; connectSpno2=connectSpno2+"'"+(String)obj.get("SPECIMEN_NO")+"'"; } if (i !=lists.size()-1) { connectSpno=connectSpno+","; connectSpno2=connectSpno2+";"; } } //牌号合并 for (String string2 : TREEsteelCode) {//发给lims String strSteelCode =string2; if(StringUtils.isBlank(tresteelCode)){//是否为空牌号 tresteelCode = strSteelCode; }else{ tresteelCode = tresteelCode +","+strSteelCode; } } TreeSet treeSetSpecimenNo=new TreeSet();//取样编号 //美标牌号(指标准类别中含ASTM、ASME)不能跟其他标准牌号进行合并。 //查询当前轧批的所有取样编号下的项目(取样编号) sql=""; sql = "select i.* from QCM_JHY_SAMPLE_CONSIGN_D_ITEM i " +" where i.specimen_no in ( "+connectSpno+" ) and (i.QUOTE_SPECIMEN_NO is null or i.QUOTE_SPECIMEN_NO='') " + " order by i.phy_code_l asc, i.phy_code_s asc, i.item_code_d asc, i.PHY_CODE_M desc ";//注意:排序按 升序 冲击温度 横向一定要到纵向之前 List hmap=mapper.query(sql.toString()); if(hmap==null && hmap.size()<=0 ){ break; } //判断有没有追加冲击试验 PHY_CODE_M:1 20230803 String phyMT="0"; sql=""; sql = "select i.* from QCM_JHY_SAMPLE_CONSIGN_D_ITEM i " +" where i.specimen_no in ( "+connectSpno+" ) and (i.QUOTE_SPECIMEN_NO is null or i.QUOTE_SPECIMEN_NO='')" +" and i.PHY_CODE_L='HC' and PHY_CODE_M='1' "; List hmHC=mapper.query(sql.toString()); if(hmHC!=null && hmHC.size()>=1 ){ phyMT="1";//有追加冲击试验 } //LIMS那边识别不了Q+T特殊字符 contains String dsdContains = hmjh.get(y).get("DELIVERY_STATE_DESC").toString(); if(dsdContains.contains("+")){ dsdContains="A"; }else if(dsdContains.contains("-")){ dsdContains="B"; } sql =""; sql = "select nvl(max(to_number(substr(SPECIMEN_NO,-2))),0) NUMNO from QCM_JHY_ZHB_PHYSICS t where t.SPECIMEN_NO like 'ZHB"+treeSetBatchNo.first() + dsdContains+"%'"; List mapnumno=mapper.query(sql.toString()); BigDecimal hmap1 = (BigDecimal) mapnumno.get(0).get("NUMNO"); Integer hmap3 = Integer.parseInt(hmap1.toString()); hmap3++; //ZHB+轧批号+交货状态+两位数 String specimenNo = "ZHB"+treeSetBatchNo.first()+dsdContains+String.format("%02d", hmap3);//组合取样材料号 for (HashMap hashMap : hmap) {//当前所有项目明细 treeSetSpecimenNo.add((String)hashMap.get("SPECIMEN_NO"));//获取当前所有参于的取样编号 //代码 String phyCodeL = (String) hashMap.get("PHY_CODE_L");//材质检验大项代码 String phyCodeM = (String) hashMap.get("PHY_CODE_M");//试样组代码 String phyCodeS = (String) hashMap.get("PHY_CODE_S");//材质检验项目代码 String itemCodeD = (String) hashMap.get("ITEM_CODE_D");//试验方向代码 String itemCodeT = (String) hashMap.get("ITEM_CODE_T");//试验温度代码 试验温度代码 冲击 被引用 String itemCodeS = (String) hashMap.get("ITEM_CODE_S");//试样尺寸代码 String itemCodeL = (String) hashMap.get("ITEM_CODE_L");//试验位置代码 //名称 String phyNameL = (String) hashMap.get("PHY_NAME_L");//材质检验大项 String phyNameM = (String) hashMap.get("PHY_NAME_M");//试样组 String phyNameS = (String) hashMap.get("PHY_NAME_S");//材质检验项目 String itemNameD = (String) hashMap.get("ITEM_NAME_D");//试验方向 String itemNameT = (String) hashMap.get("ITEM_NAME_T");//试验温度 String itemNameS = (String) hashMap.get("ITEM_NAME_S");//试样尺寸 String itemDescL = (String) hashMap.get("ITEM_DESC_L");//试验位置 String newItem=phyCodeL+"-"+phyCodeM+"-"+phyCodeS; newItem=newItem+"-"+(itemCodeD!=null?itemCodeD:"null"); newItem=newItem+"-"+(itemCodeT!=null?itemCodeT:"null"); newItem=newItem+"-"+(itemCodeS!=null?itemCodeS:"null"); //newItem=newItem+"-"+(itemCodeL!=null?itemCodeL:"null"); String STDMIN_SIGN = (String) hashMap.get("STDMIN_SIGN");//标准范围下限符号 String STDMIN = (String) hashMap.get("STDMIN");//标准范围下限 String STDMAX_SIGN = (String) hashMap.get("STDMAX_SIGN");//标准范围上限符号 String STDMAX = (String) hashMap.get("STDMAX");//标准范围上限 STDMIN_SIGN = (STDMIN_SIGN!=null?STDMIN_SIGN:"");//标准范围下限符号 STDMIN = (STDMIN!=null?STDMIN:"");//标准范围下限 STDMAX_SIGN = (STDMAX_SIGN!=null?STDMAX_SIGN:"");//标准范围上限符号 STDMAX = (STDMAX!=null?STDMAX:"");//标准范围上限 //判断是否是冲击试验 if(phyCodeS.equals("C01") || phyCodeS.equals("C02")){ //有追加冲击试验 20230803 if(phyMT.equals("1")){ sql =""; //材质检验大项代码 HC 材质检验项目C01/C02 试样组0/1(不要) 试验温度 sql = "select t.* from QCM_JHY_ZHB_PHYSICS t where t.specimen_no = '"+specimenNo+"' " + " and t.PHY_CODE_L ='"+phyCodeL+"' and t.ITEM_CODE_T='"+itemCodeT+"'" + " and t.PHY_CODE_S ='"+phyCodeS+"' " + " order by t.phy_code_l,t.phy_code_s,t.item_code_d asc "; List zhbmap=mapper.query(sql.toString()); if(zhbmap==null || zhbmap.size()<=0 ){ //查询当前合并取样编号的最大序号 Integer seq=0; sql =""; sql = "select nvl(max(t.seq),0) seq from QCM_JHY_ZHB_PHYSICS t where t.specimen_no = '"+specimenNo+"' "; List seqmap=mapper.query(sql.toString()); if(seqmap.get(0).get("SEQ")!=null && !"".equals(seqmap.get(0).get("SEQ"))){ BigDecimal big = (BigDecimal)seqmap.get(0).get("SEQ"); String seqs = big.toString(); Integer seqint = Integer.parseInt(seqs); seqint++; seq=seqint; } sql=""; sql = "insert into qcm_jhy_zhb_physics " +" (specimen_no, seq, test_qty, phy_code_l, phy_name_l, phy_code_m, phy_name_m, phy_code_s, phy_name_s, item_code_d, item_name_d, item_code_t, item_name_t, item_code_s, item_name_s, " + " STDMIN,STDMAX_SIGN,STDMAX,group_seq,item_code_l, item_desc_l,ISJUDGE, JUDGE_BASIS,phy_unit, memo, quote_specimen_no, merge_name, merge_time, phy_group_code,SMP_QTY,SPECL_FL,STDMIN_SIGN,ITEM_FLAG,STDMEMO) " +" select '"+specimenNo+"','"+seq+"',TEST_QTY,phy_code_l, phy_name_l, phy_code_m, phy_name_m, phy_code_s, phy_name_s, item_code_d, item_name_d, item_code_t, item_name_t, item_code_s, item_name_s, " + " STDMIN,STDMAX_SIGN,STDMAX,GROUP_SEQ,item_code_l, item_desc_l,ISJUDGE,JUDGE_BASIS,phy_unit,'有追加冲击试验',quote_specimen_no,'"+sendName+"',SYSDATE,'"+newItem+"',SMP_QTY,SPECL_FL,STDMIN_SIGN,ITEM_FLAG,STDMEMO " + " from QCM_JHY_SAMPLE_CONSIGN_D_ITEM t " + " where t.specimen_no = '"+hashMap.get("SPECIMEN_NO")+"' and t.seq = '"+hashMap.get("SEQ")+"' "; mapper.insert(sql); } continue; } sql =""; //材质检验大项代码 HC 试样组0/1 材质检验项目C01/C02 sql = "select t.* from QCM_JHY_ZHB_PHYSICS t where t.specimen_no = '"+specimenNo+"' " + " and t.PHY_CODE_L ='"+phyCodeL+"' and t.PHY_CODE_M='"+phyCodeM+"'" + " and t.PHY_CODE_S ='"+phyCodeS+"' " + " order by t.phy_code_l,t.phy_code_s,t.item_code_d asc "; List zhbmap=mapper.query(sql.toString()); //没有查到说明合并中没有这一项 if(zhbmap==null || zhbmap.size()<=0 ){ //查询当前合并取样编号的最大序号 Integer seq=0; sql =""; sql = "select nvl(max(t.seq),0) seq from QCM_JHY_ZHB_PHYSICS t where t.specimen_no = '"+specimenNo+"' "; List seqmap=mapper.query(sql.toString()); if(seqmap.get(0).get("SEQ")!=null && !"".equals(seqmap.get(0).get("SEQ"))){ BigDecimal big = (BigDecimal)seqmap.get(0).get("SEQ"); String seqs = big.toString(); Integer seqint = Integer.parseInt(seqs); seqint++; seq=seqint; } sql=""; sql = "insert into qcm_jhy_zhb_physics " +" (specimen_no, seq, test_qty, phy_code_l, phy_name_l, phy_code_m, phy_name_m, phy_code_s, phy_name_s, item_code_d, item_name_d, item_code_t, item_name_t, item_code_s, item_name_s, " + " STDMIN,STDMAX_SIGN,STDMAX,group_seq,item_code_l, item_desc_l,ISJUDGE, JUDGE_BASIS,phy_unit, memo, quote_specimen_no, merge_name, merge_time, phy_group_code,SMP_QTY,SPECL_FL,STDMIN_SIGN,ITEM_FLAG,STDMEMO) " +" select '"+specimenNo+"','"+seq+"',TEST_QTY,phy_code_l, phy_name_l, phy_code_m, phy_name_m, phy_code_s, phy_name_s, item_code_d, item_name_d, item_code_t, item_name_t, item_code_s, item_name_s, " + " STDMIN,STDMAX_SIGN,STDMAX,GROUP_SEQ,item_code_l, item_desc_l,ISJUDGE,JUDGE_BASIS,phy_unit,memo,quote_specimen_no,'"+sendName+"',SYSDATE,'"+newItem+"',SMP_QTY,SPECL_FL,STDMIN_SIGN,ITEM_FLAG,STDMEMO " + " from QCM_JHY_SAMPLE_CONSIGN_D_ITEM t " + " where t.specimen_no = '"+hashMap.get("SPECIMEN_NO")+"' and t.seq = '"+hashMap.get("SEQ")+"' "; mapper.insert(sql); }else{ sql =""; //材质检验大项代码 HC 试样组0/1 材质检验项目C01/C02 sql = "select t.* from QCM_JHY_ZHB_PHYSICS t where t.specimen_no = '"+specimenNo+"' " + " and t.PHY_CODE_L ='"+phyCodeL+"' and t.PHY_CODE_M='"+phyCodeM+"'" + " and t.PHY_CODE_S ='"+phyCodeS+"' " + " order by t.phy_code_l,t.phy_code_s,t.item_code_d asc "; List hmitemCode=mapper.query(sql.toString()); TreeSet tritemCode=new TreeSet();//试验方向代码 A 横向 TreeSet tritemCode2=new TreeSet();//试验方向代码 B 纵向 for (int i = 0; i < hmitemCode.size(); i++) { if(hmitemCode.get(i).get("ITEM_CODE_D").toString().equals("A")){ tritemCode.add((String)hmitemCode.get(i).get("ITEM_CODE_D")); }else if(hmitemCode.get(i).get("ITEM_CODE_D").toString().equals("B")){ tritemCode2.add((String)hmitemCode.get(i).get("ITEM_CODE_D")); } } if(itemCodeD.equals("A")){//横向冲击可以替代纵向冲击 String itemCodeT2 = (String) hmitemCode.get(0).get("ITEM_CODE_T");//试验温度代码 Integer co1t= Integer.parseInt(itemCodeT);//被引用 当前循环的数据 Integer co2t= Integer.parseInt(itemCodeT2);//引用 在合并表中的数据 if(co1t < co2t){ // -40 < -20 < 0 < 20 给lims下发最低的温度 sql = ""; sql =" update QCM_JHY_ZHB_PHYSICS t " + " set t.ITEM_CODE_D = '"+itemCodeD+"', t.ITEM_NAME_D = '"+itemNameD+"', " + " t.ITEM_CODE_T = '"+itemCodeT+"',t.ITEM_NAME_T = '"+itemNameT+"', " + " t.ITEM_CODE_S = '"+itemCodeS+"',t.ITEM_NAME_S = '"+itemNameS+"', " + " t.ITEM_CODE_L = '"+itemCodeL+"',t.ITEM_DESC_L = '"+itemDescL+"', " + " t.PHY_GROUP_CODE='"+newItem+"', " + " t.STDMIN_SIGN='"+STDMIN_SIGN+"', t.STDMIN='"+STDMIN+"', t.STDMAX_SIGN='"+STDMAX_SIGN+"', t.STDMAX='"+STDMAX+"' " +" where t.specimen_no = '"+specimenNo+"' " +" and t.PHY_CODE_L ='"+phyCodeL+"' and t.PHY_CODE_M='"+phyCodeM+"'" +" and t.PHY_CODE_S ='"+phyCodeS+"' "; mapper.updateJudgeStatus(sql.toString()); } }else if(itemCodeD.equals("B")){//纵向不能替代横向 如果纵向大于横向 从新加入一条纵向冲击 //判断横向 if(tritemCode.size()<=1 && tritemCode2.size()<=0){//没有纵向 String itemCodeT2 = (String) hmitemCode.get(0).get("ITEM_CODE_T");//试验温度代码 String itemCodeD2 = (String) hmitemCode.get(0).get("ITEM_CODE_D");//试验方向代码 A 横向0 -20 B 纵向 0 -20 Integer co1t= Integer.parseInt(itemCodeT);//被引用 当前循环的数据 纵向温度 Integer co2t= Integer.parseInt(itemCodeT2);//引用 在合并表中的数据 横向温度 if(co1t < co2t){//如果纵向温度低于横向温度 插入 //查询当前合并取样编号的最大序号 Integer seq=0; sql =""; sql = "select nvl(max(t.seq),0) seq from QCM_JHY_ZHB_PHYSICS t where t.specimen_no = '"+specimenNo+"' "; List seqmap=mapper.query(sql.toString()); if(seqmap.get(0).get("SEQ")!=null && !"".equals(seqmap.get(0).get("SEQ"))){ BigDecimal big = (BigDecimal)seqmap.get(0).get("SEQ"); String seqs = big.toString(); Integer seqint = Integer.parseInt(seqs); seqint++; seq=seqint; } sql=""; sql = "insert into qcm_jhy_zhb_physics " +" (specimen_no, seq, test_qty, phy_code_l, phy_name_l, phy_code_m, phy_name_m, phy_code_s, phy_name_s, item_code_d, item_name_d, item_code_t, item_name_t, item_code_s, item_name_s, " + " STDMIN,STDMAX_SIGN,STDMAX,group_seq,item_code_l, item_desc_l,ISJUDGE, JUDGE_BASIS,phy_unit, memo, quote_specimen_no, merge_name, merge_time, phy_group_code,SMP_QTY,SPECL_FL,STDMIN_SIGN,ITEM_FLAG,STDMEMO) " +" select '"+specimenNo+"','"+seq+"',TEST_QTY,phy_code_l, phy_name_l, phy_code_m, phy_name_m, phy_code_s, phy_name_s, item_code_d, item_name_d, item_code_t, item_name_t, item_code_s, item_name_s, " + " STDMIN,STDMAX_SIGN,STDMAX,GROUP_SEQ,item_code_l, item_desc_l,ISJUDGE,JUDGE_BASIS,phy_unit,memo,quote_specimen_no,'"+sendName+"',SYSDATE,'"+newItem+"',SMP_QTY,SPECL_FL,STDMIN_SIGN,ITEM_FLAG,STDMEMO " + " from QCM_JHY_SAMPLE_CONSIGN_D_ITEM t " + " where t.specimen_no = '"+hashMap.get("SPECIMEN_NO")+"' and t.seq = '"+hashMap.get("SEQ")+"' "; mapper.insert(sql); } }else {//到了这一步说明 合并中已经有了纵向的温度 sql =""; //材质检验大项代码 HC 试样组0/1 材质检验项目C01/C02 sql = "select t.* from QCM_JHY_ZHB_PHYSICS t where t.specimen_no = '"+specimenNo+"' " + " and t.PHY_CODE_L ='"+phyCodeL+"' and t.PHY_CODE_M='"+phyCodeM+"'" + " and t.PHY_CODE_S ='"+phyCodeS+"' and t.ITEM_CODE_D = 'B' " + " order by t.phy_code_l,t.phy_code_s,t.item_code_d asc "; List hmB=mapper.query(sql.toString()); String itemCodeT2 = (String) hmB.get(0).get("ITEM_CODE_T");//试验温度代码 Integer co1t= Integer.parseInt(itemCodeT);//被引用 当前循环的数据 纵向温度 Integer co2t= Integer.parseInt(itemCodeT2);//引用 在合并表中的数据 横向温度 if(co1t < co2t){ // -40 < -20 < 0 < 20 给lims下发最低的温度 sql = ""; sql =" update QCM_JHY_ZHB_PHYSICS t " + " set t.ITEM_CODE_D = '"+itemCodeD+"', t.ITEM_NAME_D = '"+itemNameD+"', " + " t.ITEM_CODE_T = '"+itemCodeT+"',t.ITEM_NAME_T = '"+itemNameT+"', " + " t.ITEM_CODE_S = '"+itemCodeS+"',t.ITEM_NAME_S = '"+itemNameS+"', " + " t.ITEM_CODE_L = '"+itemCodeL+"',t.ITEM_DESC_L = '"+itemDescL+"', " + " t.PHY_GROUP_CODE='"+newItem+"', " + " t.STDMIN_SIGN='"+STDMIN_SIGN+"', t.STDMIN='"+STDMIN+"', t.STDMAX_SIGN='"+STDMAX_SIGN+"', t.STDMAX='"+STDMAX+"' " +" where t.specimen_no = '"+specimenNo+"' " +" and t.PHY_CODE_L ='"+phyCodeL+"' and t.PHY_CODE_M='"+phyCodeM+"'" +" and t.PHY_CODE_S ='"+phyCodeS+"' and t.ITEM_CODE_D = 'B' "; mapper.updateJudgeStatus(sql.toString()); } } } } }else{ sql =""; sql = "select t.* from QCM_JHY_ZHB_PHYSICS t where t.specimen_no = '"+specimenNo+"' " + " and t.PHY_GROUP_CODE='"+newItem+"' "; List zhbmap=mapper.query(sql.toString()); //没有查到说明合并中没有这一项 if(zhbmap==null || zhbmap.size()<=0 ){ //查询当前合并取样编号的最大序号 Integer seq=0; sql =""; sql = "select nvl(max(t.seq),0) seq from QCM_JHY_ZHB_PHYSICS t where t.specimen_no = '"+specimenNo+"' "; List seqmap=mapper.query(sql.toString()); if(seqmap.get(0).get("SEQ")!=null && !"".equals(seqmap.get(0).get("SEQ"))){ BigDecimal big = (BigDecimal)seqmap.get(0).get("SEQ"); String seqs = big.toString(); Integer seqint = Integer.parseInt(seqs); seqint++; seq=seqint; } sql=""; sql = "insert into qcm_jhy_zhb_physics " +" (specimen_no, seq, test_qty, phy_code_l, phy_name_l, phy_code_m, phy_name_m, phy_code_s, phy_name_s, item_code_d, item_name_d, item_code_t, item_name_t, item_code_s, item_name_s, " + " STDMIN,STDMAX_SIGN,STDMAX,group_seq,item_code_l, item_desc_l,ISJUDGE, JUDGE_BASIS,phy_unit, memo, quote_specimen_no, merge_name, merge_time, phy_group_code,SMP_QTY,SPECL_FL,STDMIN_SIGN,ITEM_FLAG,STDMEMO) " +" select '"+specimenNo+"','"+seq+"',TEST_QTY,phy_code_l, phy_name_l, phy_code_m, phy_name_m, phy_code_s, phy_name_s, item_code_d, item_name_d, item_code_t, item_name_t, item_code_s, item_name_s, " + " STDMIN,STDMAX_SIGN,STDMAX,GROUP_SEQ,item_code_l, item_desc_l,ISJUDGE,JUDGE_BASIS,phy_unit,memo,quote_specimen_no,'"+sendName+"',SYSDATE,'"+newItem+"',SMP_QTY,SPECL_FL,STDMIN_SIGN,ITEM_FLAG,STDMEMO " + " from QCM_JHY_SAMPLE_CONSIGN_D_ITEM t " + " where t.specimen_no = '"+hashMap.get("SPECIMEN_NO")+"' and t.seq = '"+hashMap.get("SEQ")+"' "; mapper.insert(sql); } } } //修改所有的取样编号 合并标识 for (String string2 : treeSetSpecimenNo) { sql = ""; sql =" update QCM_JHY_SAMPLE_CONSIGN_D t set t.ZHB_SPECIMEN_NO = '"+specimenNo+"' " + " where t.SPECIMEN_NO ='"+string2+"' "; mapper.updateJudgeStatus(sql.toString()); sql = ""; sql =" update QCM_JHY_SAMPLE_CONSIGN_D_ITEM t set t.ZHB_SPECIMEN_NO = '"+specimenNo+"' " + " where t.SPECIMEN_NO ='"+string2+"' "; mapper.updateJudgeStatus(sql.toString()); } JSONArray tarDate=new JSONArray(); JSONArray LCtarDate=new JSONArray();//全自动激光切割加工中心系统 Date date=new Date(); SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString=simpleDateFormat.format(date); //生成委托编号 String consignNo=new SimpleDateFormat("yyyyMMdd").format(date); sqlucomm.setLength(0); sqlucomm.append("SELECT max(to_number(substr(CONSIGN_NO,-3,3))) BIGSEQ from QCM_JHY_SAMPLE_CONSIGN_D where CONSIGN_NO like '"+consignNo+"%'"); HashMap map=mapper.queryOne(sqlucomm.toString()); BigDecimal count = BigDecimal.ZERO; if( null != map.get("BIGSEQ")){ count=(BigDecimal)map.get("BIGSEQ"); } if (count.compareTo(BigDecimal.ZERO)==1) { count=count.add(BigDecimal.ONE); }else{ count=BigDecimal.ONE; } consignNo=consignNo+String.format("%03d", count.intValue()); System.out.println("======="+count.intValue()); int seq=1; String plineCodeLims = "";//中厚板送样产线,按送样时间确定 //lists.size() for (int i = 0; i < 1; i++) { HashMap obj=lists.get(i); //中厚板送样产线 if(obj.get("PLINE_CODE").toString().equals("ZB1") || obj.get("PLINE_CODE").toString().equals("HB1")){ if(sampleDeliveryTime.contains("06:30:00") || sampleDeliveryTime.contains("10:30:00") || sampleDeliveryTime.contains("17:30:00") || sampleDeliveryTime.contains("20:30:00")){ plineCodeLims = "HB1"; }else if(sampleDeliveryTime.contains("03:00:00") || sampleDeliveryTime.contains("11:00:00") || sampleDeliveryTime.contains("15:00:00") || sampleDeliveryTime.contains("18:00:00") || sampleDeliveryTime.contains("21:00:00") || sampleDeliveryTime.contains("06:00:00") ){ plineCodeLims = "ZB1"; } } obj.put("PLINE_CODE_LIMS", plineCodeLims); obj.put("SPECIMEN_NO", specimenNo); obj.put("SEND_ID", sendId); obj.put("SEND_NAME", sendName);//发送人 obj.put("CONSIGN_NO", consignNo);//委托编号 obj.put("CONSIGN_NO_SEQ", seq++); obj.put("SEND_TIME", dateString);//发送时间 LCplineCode=obj.get("PLINE_CODE").toString();//全自动激光切割加工中心系统 JSONObject smpleD = JSONObject.parseObject(JSON.toJSONString(obj)); //目标json JSONObject tarObj=new JSONObject(); //主表数据 createTarObj(tarObj,smpleD); //发送序号 createSendSeq String sendSeq=createSendSeq(tarObj.getString("plineCode").toString());//发送序号 //String sendQ="select to_number(substr('"+sendSeq+"', 8)) PRINT_SEQ from dual t "; String sendQ="select substr('"+sendSeq+"', 9) PRINT_SEQ from dual t "; List hmsendQ=mapper.query(sendQ.toString()); String PRINT_SEQ=hmsendQ.get(0).get("PRINT_SEQ").toString(); if(tarObj.getString("plineCode").equals("ZB1")){ tarObj.put("printSeq", 'Z'+PRINT_SEQ); PRINT_SEQ='Z'+PRINT_SEQ; }else if(tarObj.getString("plineCode").equals("HB1")){ tarObj.put("printSeq", 'H'+PRINT_SEQ); PRINT_SEQ='H'+PRINT_SEQ; } String qcmSendSeq =" update QCM_JHY_SAMPLE_CONSIGN_D t set SEND_SEQ = '"+sendSeq+"',PRINT_SEQ='"+PRINT_SEQ+"' " + " where PLINE_CODE = '"+obj.get("PLINE_CODE")+"' and ZHB_SPECIMEN_NO = '"+specimenNo+"' "; mapper.updateJudgeStatus(qcmSendSeq.toString()); tarObj.put("sendSeq", sendSeq); tarObj.put("CREATE_ID", sendId); tarObj.put("CREATE_NAME", sendName); tarObj.put("sampleDeliveryTime", sampleDeliveryTime);//送样时间点 tarObj.put("steelCode",tresteelCode);//牌号合并 tarObj.put("steelName",tresteelCode);//牌号合并 tarObj.put("cretInstCode", obj.get("CERT_INST_CODE")); tarObj.put("cretInstName", obj.get("CERT_INST_NAME")); //热处理号 tarObj.put("heatTreatment", obj.get("PROCESS_NOS")); //传给lims的成分标识 String componentsql ="select t.* from QCM_JHY_SAMPLE_CONSIGN_D t,QCM_JHY_SAMPLE_CONSIGN_M m " +" where t.smp_no = m.smp_no and m.SMP_CATG = 'A' and t.batch_no = '"+smpleD.getString("BATCH_NO")+"' "; List componentLog=mapper.query(componentsql.toString()); if(componentLog!=null && componentLog.size()>=1){ tarObj.put("componentLog", '1');//1代表有成分 }else{ tarObj.put("componentLog", '0');//0代表无成分 } if ("5000".equals(obj.get("CERT_INST_CODE"))) { tarObj.put("type", "0"); }else{ tarObj.put("type", "1"); } if ("B".equals(obj.get("SMP_CATG"))) { //材质 sqlucomm.setLength(0); sqlucomm.append("select T.SPECIMEN_NO,T.SEQ,T.PHY_NAME_L,T.PHY_CODE_L,T.PHY_CODE_M,T.PHY_NAME_M,T.PHY_CODE_S," + "T.PHY_NAME_S,T.ITEM_CODE_D,T.ITEM_NAME_D,T.ITEM_CODE_T,T.ITEM_NAME_T,T.ITEM_CODE_S,T.ITEM_NAME_S," + "T.ISJUDGE,T.JUDGE_BASIS,T.PHY_UNIT,T.GROUP_SEQ,T.QUOTE_SPECIMEN_NO,T.MEMO,T.ITEM_CODE_L," + " T.ITEM_DESC_L,T.TEST_QTY,T.SMP_QTY,T.SPECL_FL,T.STDMIN_SIGN,T.STDMIN,T.STDMAX_SIGN,T.STDMAX, " + " T.STDMEMO from QCM_JHY_ZHB_PHYSICS T" + " WHERE T.SPECIMEN_NO='"+specimenNo+"' and t.VAL1 is null and t.SEND_LOG <> '1' "); List items=mapper.query(sqlucomm.toString()); if (items!=null && items.size()>0) { JSONArray arrayItem=new JSONArray(); for(int j = 0 ;j < items.size() ; j++){ JSONObject oldItem =JSONObject.parseObject(JSON.toJSONString(items.get(j))) ; JSONObject tarItem=new JSONObject(); //子表数据 createItem(tarItem,oldItem); if(oldItem.getString("PHY_NAME_M").equals("现场洛氏硬度HRC")){ tarItem.put("tsFlag", "1");//探伤 }else{ tarItem.put("tsFlag", "0");//非探伤 } arrayItem.add(tarItem); } tarObj.put("items", arrayItem); } }else{ //成分 JSONObject chemItem=JSON.parseObject((String)obj.get("CHEM_ITEM")); tarObj.putAll(chemItem); } tarDate.add(tarObj); //全自动激光切割加工中心系统 HashMap hm = new HashMap(); hm.put("SPECIMEN_NO", specimenNo); hm.put("BATCH_NO", obj.get("BATCH_NO").toString()); hm.put("PLINE_CODE", "ZHB"); if(LCplineCode.equals("HB1")){ String lcThick = obj.get("THICK").toString(); double lcThick2 = Double.parseDouble(lcThick); if(lcThick2<=25){ LCtarDate.add(tarObj); String strjg=qcmJg(hm); mapper.insert(strjg); } }else if(LCplineCode.equals("ZB1")){ LCtarDate.add(tarObj); String strjg=qcmJg(hm); mapper.insert(strjg); } } logger.info("-------发送jon数组--"+tarDate.toJSONString()); String tar=tarDate.toString(); String result = "";//调用url try{ result = httpURLPOSTCaseNew(urlStr,tar);//调用url if (result == null ||result.equals("null") || result.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("发送LIMS系统失败!返回值:"+result); SqlSession.rollback(); return cro; } }catch(Exception e){ cro.setV_errCode(-1); cro.setV_errMsg(e.getMessage()); return cro; } String resultlist =result.substring(8, 11); if (!resultlist.equals("200") || resultlist == null || resultlist.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("发送LIMS系统失败!"+result); SqlSession.rollback(); return cro; } if(resultlist.equals("200")){ //把所有的取样编号的委托 状态修改成已发送 String sdtime = "0"; for (String string3 : treeSetSpecimenNo) { sql = ""; sql =" update QCM_JHY_SAMPLE_CONSIGN_D t set STATUS = '2',SEND_TIME=sysdate," + " CONSIGN_NO='"+consignNo+"', CONSIGN_NO_SEQ = '1', " + " SEND_ID = '"+sendId+"',SEND_NAME = '"+sendName+"',t.PLINE_CODE_LIMS = '"+plineCodeLims+"' " + " where t.SPECIMEN_NO ='"+string3+"' "; mapper.updateJudgeStatus(sql.toString()); if(sdtime.equals("0")){ String sql2 = " update QCM_JHY_SAMPLE_CONSIGN_D t " + " set t.SAMPLE_DELIVERY_TIME = '"+sampleDeliveryTime+"' " + " where t.SPECIMEN_NO = '"+string3+"' "; mapper.UpdateQcmWt(sql2.toString()); sdtime = "1"; } } //合并表 sql = ""; sql =" update QCM_JHY_ZHB_PHYSICS t set t.SEND_LOG = '1' " + " where t.SPECIMEN_NO ='"+specimenNo+"' and t.SEND_LOG <> '1' "; mapper.updateJudgeStatus(sql.toString()); } for (HashMap list : lists) { QcmJudgeOperateLog qjog = new QcmJudgeOperateLog(); qjog.setOperate_name(sendName); qjog.setBatchno(list.get("BATCH_NO") == null ?"":list.get("BATCH_NO").toString()); qjog.setOperate_type("同轧批牌号合并发送"); qjog.setParams(list.get("MATERIAL_NO") == null ?"":list.get("MATERIAL_NO").toString()); qjog.setProd_line(list.get("PLINE_CODE") == null ?"":list.get("PLINE_CODE").toString()); qjog.setMemo(list.get("SPECIMEN_NO") == null ?"":list.get("SPECIMEN_NO").toString()); mapper.insertQcmJudgeOperateLog(qjog); } SqlSession.commit(); //全自动激光切割加工中心系统 /* if(LCplineCode.equals("HB1") || LCplineCode.equals("ZB1")){ if(LCtarDate.size()>=1){ String jgkg=QcmJhyJgKg(LCplineCode); if("1".equals(jgkg)){ String LCurlStr = "http://172.16.0.169:82/Limsinterface/http/Tgcut"; String LCtar=LCtarDate.toString(); httpURLPOSTLaserCenter(LCurlStr,LCtar,LCplineCode); } } }*/ } cro.setV_errCode(1); cro.setV_errMsg("发送成功"); } catch (Exception e) { e.printStackTrace(); SqlSession.rollback(); cro.setV_errCode(-1); cro.setV_errMsg("发送委托失败!"+e.getMessage()); return cro; }finally { SqlSession.close(); } return cro; } //船板 同批 同厚度 TMCP和AR/CR交货状态 合并 public String tmcpAr(List tmcpArList,String sendId,String sendName,String sampleDeliveryTime){ String urlStr = "http://172.16.0.169:82/Limsinterface/http/Inspection"; try { String LCplineCode="LC"; StringBuffer sqlucomm = new StringBuffer(); String batchNo=""; String connSpecimenNo = ""; for (int i = 0; i < tmcpArList.size(); i++) { HashMap obj=tmcpArList.get(i); batchNo = (String)obj.get("BATCH_NO"); if ("".equals(connSpecimenNo)) { connSpecimenNo="'"+(String)obj.get("SPECIMEN_NO")+"'"; }else{ connSpecimenNo=connSpecimenNo+"'"+(String)obj.get("SPECIMEN_NO")+"'"; } if (i !=tmcpArList.size()-1) { connSpecimenNo=connSpecimenNo+","; } } String connectSpno = "";//连接这一批的取样编号查询 String connectSpno2 = "";//连接这一批的取样编号(最低牌号) //拿取能合并的所有取样编号 //,'IC009','IC006','IC007','IC002' String sql=""; sql= "select * from (select t.SMP_NO,t.SPECIMEN_NO,t.HEAT_NO,t.BATCH_NO,t.INSPECTION_LOT,t.FREQ_CODE,t.FREQ_NAME," + " t.MATERIAL_NO,t.SEND_MEMO,t.SMP_TYPE_CODE,t.SMP_TYPE_NAME,t.CONSIGN_NO,t.CONSIGN_NO_SEQ,t.TEST_QTY,t.SMP_QTY," + " t.SMP_LOCATION,t.BOARD_NO,t.QUOTE_CONSIGN_NO,t.OLD_CONSIGN_NO,t.PLINE_CODE,t.PLINE_NAME,t.CHEM_ITEM," + " t.SOURCE,t.PRODUCT_CNT,t.MEMO, r.STEEL_CODE,r.STEEL_NAME ,r.THICK,r.WIDTH ,r.LENGTH ,r.DESIGN_KEY," + " m.CERT_INST_CODE,m.CERT_INST_NAME,m.SMP_CATG,t.PROCESS_NOS, " + " r.std_code, QCM_SPECFLAG(r.STEEL_CODE, r.THICK, r.std_code, m.CERT_INST_NAME) qcmSpecflag " +" from qcm_jhy_sample_consign_d t,qcm_jhy_sample_consign_m m, qcm_jhy_sample_r_ord r " +" where t.smp_no = m.smp_no " +" and t.smp_no = r.smp_no " +" and t.freq_code <> 'D' " +" and t.batch_no = '"+batchNo+"' " +" and t.smp_type_code = '0' " +" and t.status = '0' " +" and r.std_code not like '%ASTM%' " +" and r.std_code not like '%ASME%' " +" and r.Cert_Inst_Code in ('5000','IC010','IC003','IC004','IC001')" + " and m.SMP_CATG = 'B' " + " and t.SPECIMEN_NO in ("+connSpecimenNo+") " + " order by r.STEEL_CODE) t where t.qcmSpecflag in ('1','0') "; List lists=mapper.query(sql.toString()); if (lists==null || lists.size()<=0) { return "TMCP/AR/CR合并未找到相应的委托"; } String tresteelCode = ""; TreeSet TREEsteelCode=new TreeSet();//牌号 for (int i = 0; i < lists.size(); i++) { HashMap obj=lists.get(i); TREEsteelCode.add((String)obj.get("STEEL_CODE"));//牌号 //能合并的取样编号 if ("".equals(connectSpno)) { connectSpno="'"+(String)obj.get("SPECIMEN_NO")+"'"; connectSpno2="'"+(String)obj.get("SPECIMEN_NO")+"'"; }else{ connectSpno=connectSpno+"'"+(String)obj.get("SPECIMEN_NO")+"'"; connectSpno2=connectSpno2+"'"+(String)obj.get("SPECIMEN_NO")+"'"; } if (i !=lists.size()-1) { connectSpno=connectSpno+","; connectSpno2=connectSpno2+";"; } } //牌号合并 for (String string2 : TREEsteelCode) {//发给lims String strSteelCode =string2; if(StringUtils.isBlank(tresteelCode)){//是否为空牌号 tresteelCode = strSteelCode; }else{ tresteelCode = tresteelCode +","+strSteelCode; } } //System.out.println("合并牌号:"+tresteelCode); TreeSet treeSetSpecimenNo=new TreeSet();//取样编号 //美标牌号(指标准类别中含ASTM、ASME)不能跟其他标准牌号进行合并。 //查询当前轧批的所有取样编号下的项目(取样编号) sql=""; sql = "select i.* from QCM_JHY_SAMPLE_CONSIGN_D_ITEM i " +" where i.specimen_no in ( "+connectSpno+" ) " + " order by i.phy_code_l asc, i.phy_code_s asc, i.item_code_d asc, i.PHY_CODE_M desc ";//注意:排序按 升序 冲击温度 横向一定要到纵向之前 List hmap=mapper.query(sql.toString()); if(hmap==null && hmap.size()<=0 ){ return "TMCP/AR/CR合并未找到相应项目"; } //判断有没有追加冲击试验 PHY_CODE_M:1 20230803 String phyMT="0"; sql=""; sql = "select i.* from QCM_JHY_SAMPLE_CONSIGN_D_ITEM i " +" where i.specimen_no in ( "+connectSpno+" ) and (i.QUOTE_SPECIMEN_NO is null or i.QUOTE_SPECIMEN_NO='')" +" and i.PHY_CODE_L='HC' and PHY_CODE_M='1' "; List hmHC=mapper.query(sql.toString()); if(hmHC!=null && hmHC.size()>=1 ){ phyMT="1";//有追加冲击试验 } sql =""; sql = "select nvl(max(to_number(substr(SPECIMEN_NO,-2))),0) NUMNO from QCM_JHY_ZHB_PHYSICS t where t.SPECIMEN_NO like 'ZHB"+batchNo+"TMCPAR%'"; List mapnumno=mapper.query(sql.toString()); BigDecimal hmap1 = (BigDecimal) mapnumno.get(0).get("NUMNO"); Integer hmap3 = Integer.parseInt(hmap1.toString()); hmap3++; //ZHB+轧批号+交货状态+两位数 String specimenNo = "ZHB"+batchNo+"TMCPAR"+String.format("%02d", hmap3);//组合取样材料号 for (HashMap hashMap : hmap) {//当前所有项目明细 treeSetSpecimenNo.add((String)hashMap.get("SPECIMEN_NO"));//获取当前所有参于的取样编号 //代码 String phyCodeL = (String) hashMap.get("PHY_CODE_L");//材质检验大项代码 String phyCodeM = (String) hashMap.get("PHY_CODE_M");//试样组代码 String phyCodeS = (String) hashMap.get("PHY_CODE_S");//材质检验项目代码 String itemCodeD = (String) hashMap.get("ITEM_CODE_D");//试验方向代码 String itemCodeT = (String) hashMap.get("ITEM_CODE_T");//试验温度代码 试验温度代码 冲击 被引用 String itemCodeS = (String) hashMap.get("ITEM_CODE_S");//试样尺寸代码 String itemCodeL = (String) hashMap.get("ITEM_CODE_L");//试验位置代码 //名称 String phyNameL = (String) hashMap.get("PHY_NAME_L");//材质检验大项 String phyNameM = (String) hashMap.get("PHY_NAME_M");//试样组 String phyNameS = (String) hashMap.get("PHY_NAME_S");//材质检验项目 String itemNameD = (String) hashMap.get("ITEM_NAME_D");//试验方向 String itemNameT = (String) hashMap.get("ITEM_NAME_T");//试验温度 String itemNameS = (String) hashMap.get("ITEM_NAME_S");//试样尺寸 String itemDescL = (String) hashMap.get("ITEM_DESC_L");//试验位置 String newItem=phyCodeL+"-"+phyCodeM+"-"+phyCodeS; newItem=newItem+"-"+(itemCodeD!=null?itemCodeD:"null"); newItem=newItem+"-"+(itemCodeT!=null?itemCodeT:"null"); newItem=newItem+"-"+(itemCodeS!=null?itemCodeS:"null"); //newItem=newItem+"-"+(itemCodeL!=null?itemCodeL:"null"); String STDMIN_SIGN = (String) hashMap.get("STDMIN_SIGN");//标准范围下限符号 String STDMIN = (String) hashMap.get("STDMIN");//标准范围下限 String STDMAX_SIGN = (String) hashMap.get("STDMAX_SIGN");//标准范围上限符号 String STDMAX = (String) hashMap.get("STDMAX");//标准范围上限 STDMIN_SIGN = (STDMIN_SIGN!=null?STDMIN_SIGN:"");//标准范围下限符号 STDMIN = (STDMIN!=null?STDMIN:"");//标准范围下限 STDMAX_SIGN = (STDMAX_SIGN!=null?STDMAX_SIGN:"");//标准范围上限符号 STDMAX = (STDMAX!=null?STDMAX:"");//标准范围上限 //判断是否是冲击试验 if(phyCodeS.equals("C01") || phyCodeS.equals("C02")){ //有追加冲击试验 20230803 if(phyMT.equals("1")){ sql =""; //材质检验大项代码 HC 材质检验项目C01/C02 试样组0/1(不要) 试验温度 sql = "select t.* from QCM_JHY_ZHB_PHYSICS t where t.specimen_no = '"+specimenNo+"' " + " and t.PHY_CODE_L ='"+phyCodeL+"' and t.ITEM_CODE_T='"+itemCodeT+"'" + " and t.PHY_CODE_S ='"+phyCodeS+"' " + " order by t.phy_code_l,t.phy_code_s,t.item_code_d asc "; List zhbmap=mapper.query(sql.toString()); if(zhbmap==null || zhbmap.size()<=0 ){ //查询当前合并取样编号的最大序号 Integer seq=0; sql =""; sql = "select nvl(max(t.seq),0) seq from QCM_JHY_ZHB_PHYSICS t where t.specimen_no = '"+specimenNo+"' "; List seqmap=mapper.query(sql.toString()); if(seqmap.get(0).get("SEQ")!=null && !"".equals(seqmap.get(0).get("SEQ"))){ BigDecimal big = (BigDecimal)seqmap.get(0).get("SEQ"); String seqs = big.toString(); Integer seqint = Integer.parseInt(seqs); seqint++; seq=seqint; } sql=""; sql = "insert into qcm_jhy_zhb_physics " +" (specimen_no, seq, test_qty, phy_code_l, phy_name_l, phy_code_m, phy_name_m, phy_code_s, phy_name_s, item_code_d, item_name_d, item_code_t, item_name_t, item_code_s, item_name_s, " + " STDMIN,STDMAX_SIGN,STDMAX,group_seq,item_code_l, item_desc_l,ISJUDGE, JUDGE_BASIS,phy_unit, memo, quote_specimen_no, merge_name, merge_time, phy_group_code,SMP_QTY,SPECL_FL,STDMIN_SIGN,ITEM_FLAG,STDMEMO) " +" select '"+specimenNo+"','"+seq+"',TEST_QTY,phy_code_l, phy_name_l, phy_code_m, phy_name_m, phy_code_s, phy_name_s, item_code_d, item_name_d, item_code_t, item_name_t, item_code_s, item_name_s, " + " STDMIN,STDMAX_SIGN,STDMAX,GROUP_SEQ,item_code_l, item_desc_l,ISJUDGE,JUDGE_BASIS,phy_unit,'有追加冲击试验',quote_specimen_no,'"+sendName+"',SYSDATE,'"+newItem+"',SMP_QTY,SPECL_FL,STDMIN_SIGN,ITEM_FLAG,STDMEMO " + " from QCM_JHY_SAMPLE_CONSIGN_D_ITEM t " + " where t.specimen_no = '"+hashMap.get("SPECIMEN_NO")+"' and t.seq = '"+hashMap.get("SEQ")+"' "; mapper.insert(sql); } continue; } sql =""; //材质检验大项代码 HC 试样组0/1 材质检验项目C01/C02 sql = "select t.* from QCM_JHY_ZHB_PHYSICS t where t.specimen_no = '"+specimenNo+"' " + " and t.PHY_CODE_L ='"+phyCodeL+"' and t.PHY_CODE_M='"+phyCodeM+"'" + " and t.PHY_CODE_S ='"+phyCodeS+"' " + " order by t.phy_code_l,t.phy_code_s,t.item_code_d asc "; List zhbmap=mapper.query(sql.toString()); //没有查到说明合并中没有这一项 if(zhbmap==null || zhbmap.size()<=0 ){ //查询当前合并取样编号的最大序号 Integer seq=0; sql =""; sql = "select nvl(max(t.seq),0) seq from QCM_JHY_ZHB_PHYSICS t where t.specimen_no = '"+specimenNo+"' "; List seqmap=mapper.query(sql.toString()); if(seqmap.get(0).get("SEQ")!=null && !"".equals(seqmap.get(0).get("SEQ"))){ BigDecimal big = (BigDecimal)seqmap.get(0).get("SEQ"); String seqs = big.toString(); Integer seqint = Integer.parseInt(seqs); seqint++; seq=seqint; } sql=""; sql = "insert into qcm_jhy_zhb_physics " +" (specimen_no, seq, test_qty, phy_code_l, phy_name_l, phy_code_m, phy_name_m, phy_code_s, phy_name_s, item_code_d, item_name_d, item_code_t, item_name_t, item_code_s, item_name_s, " + " STDMIN,STDMAX_SIGN,STDMAX,group_seq,item_code_l, item_desc_l,ISJUDGE, JUDGE_BASIS,phy_unit, memo, quote_specimen_no, merge_name, merge_time, phy_group_code,SMP_QTY,SPECL_FL,STDMIN_SIGN,ITEM_FLAG,STDMEMO) " +" select '"+specimenNo+"','"+seq+"',TEST_QTY,phy_code_l, phy_name_l, phy_code_m, phy_name_m, phy_code_s, phy_name_s, item_code_d, item_name_d, item_code_t, item_name_t, item_code_s, item_name_s, " + " STDMIN,STDMAX_SIGN,STDMAX,GROUP_SEQ,item_code_l, item_desc_l,ISJUDGE,JUDGE_BASIS,phy_unit,memo,quote_specimen_no,'"+sendName+"',SYSDATE,'"+newItem+"',SMP_QTY,SPECL_FL,STDMIN_SIGN,ITEM_FLAG,STDMEMO " + " from QCM_JHY_SAMPLE_CONSIGN_D_ITEM t " + " where t.specimen_no = '"+hashMap.get("SPECIMEN_NO")+"' and t.seq = '"+hashMap.get("SEQ")+"' "; mapper.insert(sql); }else{ sql =""; //材质检验大项代码 HC 试样组0/1 材质检验项目C01/C02 sql = "select t.* from QCM_JHY_ZHB_PHYSICS t where t.specimen_no = '"+specimenNo+"' " + " and t.PHY_CODE_L ='"+phyCodeL+"' and t.PHY_CODE_M='"+phyCodeM+"'" + " and t.PHY_CODE_S ='"+phyCodeS+"' " + " order by t.phy_code_l,t.phy_code_s,t.item_code_d asc "; List hmitemCode=mapper.query(sql.toString()); TreeSet tritemCode=new TreeSet();//试验方向代码 A 横向 TreeSet tritemCode2=new TreeSet();//试验方向代码 B 纵向 for (int i = 0; i < hmitemCode.size(); i++) { if(hmitemCode.get(i).get("ITEM_CODE_D").toString().equals("A")){ tritemCode.add((String)hmitemCode.get(i).get("ITEM_CODE_D")); }else if(hmitemCode.get(i).get("ITEM_CODE_D").toString().equals("B")){ tritemCode2.add((String)hmitemCode.get(i).get("ITEM_CODE_D")); } } if(itemCodeD.equals("A")){//横向冲击可以替代纵向冲击 String itemCodeT2 = (String) hmitemCode.get(0).get("ITEM_CODE_T");//试验温度代码 Integer co1t= Integer.parseInt(itemCodeT);//被引用 当前循环的数据 Integer co2t= Integer.parseInt(itemCodeT2);//引用 在合并表中的数据 if(co1t < co2t){ // -40 < -20 < 0 < 20 给lims下发最低的温度 sql = ""; sql =" update QCM_JHY_ZHB_PHYSICS t " + " set t.ITEM_CODE_D = '"+itemCodeD+"', t.ITEM_NAME_D = '"+itemNameD+"', " + " t.ITEM_CODE_T = '"+itemCodeT+"',t.ITEM_NAME_T = '"+itemNameT+"', " + " t.ITEM_CODE_S = '"+itemCodeS+"',t.ITEM_NAME_S = '"+itemNameS+"', " + " t.ITEM_CODE_L = '"+itemCodeL+"',t.ITEM_DESC_L = '"+itemDescL+"', " + " t.PHY_GROUP_CODE='"+newItem+"'," + " t.STDMIN_SIGN='"+STDMIN_SIGN+"', t.STDMIN='"+STDMIN+"', t.STDMAX_SIGN='"+STDMAX_SIGN+"', t.STDMAX='"+STDMAX+"' " +" where t.specimen_no = '"+specimenNo+"' " +" and t.PHY_CODE_L ='"+phyCodeL+"' and t.PHY_CODE_M='"+phyCodeM+"'" +" and t.PHY_CODE_S ='"+phyCodeS+"' "; mapper.updateJudgeStatus(sql.toString()); } }else if(itemCodeD.equals("B")){//纵向不能替代横向 如果纵向大于横向 从新加入一条纵向冲击 //判断横向 if(tritemCode.size()<=1 && tritemCode2.size()<=0){//没有纵向 String itemCodeT2 = (String) hmitemCode.get(0).get("ITEM_CODE_T");//试验温度代码 String itemCodeD2 = (String) hmitemCode.get(0).get("ITEM_CODE_D");//试验方向代码 A 横向0 -20 B 纵向 0 -20 Integer co1t= Integer.parseInt(itemCodeT);//被引用 当前循环的数据 纵向温度 Integer co2t= Integer.parseInt(itemCodeT2);//引用 在合并表中的数据 横向温度 if(co1t < co2t){//如果纵向温度低于横向温度 插入 //查询当前合并取样编号的最大序号 Integer seq=0; sql =""; sql = "select nvl(max(t.seq),0) seq from QCM_JHY_ZHB_PHYSICS t where t.specimen_no = '"+specimenNo+"' "; List seqmap=mapper.query(sql.toString()); if(seqmap.get(0).get("SEQ")!=null && !"".equals(seqmap.get(0).get("SEQ"))){ BigDecimal big = (BigDecimal)seqmap.get(0).get("SEQ"); String seqs = big.toString(); Integer seqint = Integer.parseInt(seqs); seqint++; seq=seqint; } sql=""; sql = "insert into qcm_jhy_zhb_physics " +" (specimen_no, seq, test_qty, phy_code_l, phy_name_l, phy_code_m, phy_name_m, phy_code_s, phy_name_s, item_code_d, item_name_d, item_code_t, item_name_t, item_code_s, item_name_s, " + " STDMIN,STDMAX_SIGN,STDMAX,group_seq,item_code_l, item_desc_l,ISJUDGE, JUDGE_BASIS,phy_unit, memo, quote_specimen_no, merge_name, merge_time, phy_group_code,SMP_QTY,SPECL_FL,STDMIN_SIGN,ITEM_FLAG,STDMEMO) " +" select '"+specimenNo+"','"+seq+"',TEST_QTY,phy_code_l, phy_name_l, phy_code_m, phy_name_m, phy_code_s, phy_name_s, item_code_d, item_name_d, item_code_t, item_name_t, item_code_s, item_name_s, " + " STDMIN,STDMAX_SIGN,STDMAX,GROUP_SEQ,item_code_l, item_desc_l,ISJUDGE,JUDGE_BASIS,phy_unit,memo,quote_specimen_no,'"+sendName+"',SYSDATE,'"+newItem+"',SMP_QTY,SPECL_FL,STDMIN_SIGN,ITEM_FLAG,STDMEMO " + " from QCM_JHY_SAMPLE_CONSIGN_D_ITEM t " + " where t.specimen_no = '"+hashMap.get("SPECIMEN_NO")+"' and t.seq = '"+hashMap.get("SEQ")+"' "; mapper.insert(sql); } }else {//到了这一步说明 合并中已经有了纵向的温度 sql =""; //材质检验大项代码 HC 试样组0/1 材质检验项目C01/C02 sql = "select t.* from QCM_JHY_ZHB_PHYSICS t where t.specimen_no = '"+specimenNo+"' " + " and t.PHY_CODE_L ='"+phyCodeL+"' and t.PHY_CODE_M='"+phyCodeM+"'" + " and t.PHY_CODE_S ='"+phyCodeS+"' and t.ITEM_CODE_D = 'B' " + " order by t.phy_code_l,t.phy_code_s,t.item_code_d asc "; List hmB=mapper.query(sql.toString()); String itemCodeT2 = (String) hmB.get(0).get("ITEM_CODE_T");//试验温度代码 Integer co1t= Integer.parseInt(itemCodeT);//被引用 当前循环的数据 纵向温度 Integer co2t= Integer.parseInt(itemCodeT2);//引用 在合并表中的数据 横向温度 if(co1t < co2t){ // -40 < -20 < 0 < 20 给lims下发最低的温度 sql = ""; sql =" update QCM_JHY_ZHB_PHYSICS t " + " set t.ITEM_CODE_D = '"+itemCodeD+"', t.ITEM_NAME_D = '"+itemNameD+"', " + " t.ITEM_CODE_T = '"+itemCodeT+"',t.ITEM_NAME_T = '"+itemNameT+"', " + " t.ITEM_CODE_S = '"+itemCodeS+"',t.ITEM_NAME_S = '"+itemNameS+"', " + " t.ITEM_CODE_L = '"+itemCodeL+"',t.ITEM_DESC_L = '"+itemDescL+"', " + " t.PHY_GROUP_CODE='"+newItem+"'," + " t.STDMIN_SIGN='"+STDMIN_SIGN+"', t.STDMIN='"+STDMIN+"', t.STDMAX_SIGN='"+STDMAX_SIGN+"', t.STDMAX='"+STDMAX+"' " +" where t.specimen_no = '"+specimenNo+"' " +" and t.PHY_CODE_L ='"+phyCodeL+"' and t.PHY_CODE_M='"+phyCodeM+"'" +" and t.PHY_CODE_S ='"+phyCodeS+"' and t.ITEM_CODE_D = 'B' "; mapper.updateJudgeStatus(sql.toString()); } } } } }else{ sql =""; sql = "select t.* from QCM_JHY_ZHB_PHYSICS t where t.specimen_no = '"+specimenNo+"' " + " and t.PHY_GROUP_CODE='"+newItem+"' "; List zhbmap=mapper.query(sql.toString()); //没有查到说明合并中没有这一项 if(zhbmap==null || zhbmap.size()<=0 ){ //查询当前合并取样编号的最大序号 Integer seq=0; sql =""; sql = "select nvl(max(t.seq),0) seq from QCM_JHY_ZHB_PHYSICS t where t.specimen_no = '"+specimenNo+"' "; List seqmap=mapper.query(sql.toString()); if(seqmap.get(0).get("SEQ")!=null && !"".equals(seqmap.get(0).get("SEQ"))){ BigDecimal big = (BigDecimal)seqmap.get(0).get("SEQ"); String seqs = big.toString(); Integer seqint = Integer.parseInt(seqs); seqint++; seq=seqint; } sql=""; sql = "insert into qcm_jhy_zhb_physics " +" (specimen_no, seq, test_qty, phy_code_l, phy_name_l, phy_code_m, phy_name_m, phy_code_s, phy_name_s, item_code_d, item_name_d, item_code_t, item_name_t, item_code_s, item_name_s, " + " STDMIN,STDMAX_SIGN,STDMAX,group_seq,item_code_l, item_desc_l,ISJUDGE, JUDGE_BASIS,phy_unit, memo, quote_specimen_no, merge_name, merge_time, phy_group_code,SMP_QTY,SPECL_FL,STDMIN_SIGN,ITEM_FLAG,STDMEMO) " +" select '"+specimenNo+"','"+seq+"',TEST_QTY,phy_code_l, phy_name_l, phy_code_m, phy_name_m, phy_code_s, phy_name_s, item_code_d, item_name_d, item_code_t, item_name_t, item_code_s, item_name_s, " + " STDMIN,STDMAX_SIGN,STDMAX,GROUP_SEQ,item_code_l, item_desc_l,ISJUDGE,JUDGE_BASIS,phy_unit,memo,quote_specimen_no,'"+sendName+"',SYSDATE,'"+newItem+"',SMP_QTY,SPECL_FL,STDMIN_SIGN,ITEM_FLAG,STDMEMO " + " from QCM_JHY_SAMPLE_CONSIGN_D_ITEM t " + " where t.specimen_no = '"+hashMap.get("SPECIMEN_NO")+"' and t.seq = '"+hashMap.get("SEQ")+"' "; mapper.insert(sql); } } } //修改所有的取样编号 合并标识 for (String string2 : treeSetSpecimenNo) { sql = ""; sql =" update QCM_JHY_SAMPLE_CONSIGN_D t set t.ZHB_SPECIMEN_NO = '"+specimenNo+"' " + " where t.SPECIMEN_NO ='"+string2+"' "; mapper.updateJudgeStatus(sql.toString()); sql = ""; sql =" update QCM_JHY_SAMPLE_CONSIGN_D_ITEM t set t.ZHB_SPECIMEN_NO = '"+specimenNo+"' " + " where t.SPECIMEN_NO ='"+string2+"' "; mapper.updateJudgeStatus(sql.toString()); } JSONArray tarDate=new JSONArray(); JSONArray LCtarDate=new JSONArray();//全自动激光切割加工中心系统 Date date=new Date(); SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString=simpleDateFormat.format(date); //生成委托编号 String consignNo=new SimpleDateFormat("yyyyMMdd").format(date); sqlucomm.setLength(0); sqlucomm.append("SELECT max(to_number(substr(CONSIGN_NO,-3,3))) BIGSEQ from QCM_JHY_SAMPLE_CONSIGN_D where CONSIGN_NO like '"+consignNo+"%'"); HashMap map=mapper.queryOne(sqlucomm.toString()); BigDecimal count = BigDecimal.ZERO; if( null != map.get("BIGSEQ")){ count=(BigDecimal)map.get("BIGSEQ"); } if (count.compareTo(BigDecimal.ZERO)==1) { count=count.add(BigDecimal.ONE); }else{ count=BigDecimal.ONE; } consignNo=consignNo+String.format("%03d", count.intValue()); System.out.println("======="+count.intValue()); int seq=1; String plineCodeLims = "";//中厚板送样产线,按送样时间确定 //lists.size() for (int i = 0; i < 1; i++) { HashMap obj=lists.get(i); //中厚板送样产线 if(obj.get("PLINE_CODE").toString().equals("ZB1") || obj.get("PLINE_CODE").toString().equals("HB1")){ if(sampleDeliveryTime.contains("06:30:00") || sampleDeliveryTime.contains("10:30:00") || sampleDeliveryTime.contains("17:30:00") || sampleDeliveryTime.contains("20:30:00")){ plineCodeLims = "HB1"; }else if(sampleDeliveryTime.contains("03:00:00") || sampleDeliveryTime.contains("11:00:00") || sampleDeliveryTime.contains("15:00:00") || sampleDeliveryTime.contains("18:00:00") || sampleDeliveryTime.contains("21:00:00") || sampleDeliveryTime.contains("06:00:00") ){ plineCodeLims = "ZB1"; } } obj.put("PLINE_CODE_LIMS", plineCodeLims); obj.put("SPECIMEN_NO", specimenNo); obj.put("SEND_ID", sendId); obj.put("SEND_NAME", sendName);//发送人 obj.put("CONSIGN_NO", consignNo);//委托编号 obj.put("CONSIGN_NO_SEQ", seq++); obj.put("SEND_TIME", dateString);//发送时间 LCplineCode=obj.get("PLINE_CODE").toString();//全自动激光切割加工中心系统 JSONObject smpleD = JSONObject.parseObject(JSON.toJSONString(obj)); //目标json JSONObject tarObj=new JSONObject(); //主表数据 createTarObj(tarObj,smpleD); //发送序号 createSendSeq String sendSeq=createSendSeq(tarObj.getString("plineCode").toString());//发送序号 //String sendQ="select to_number(substr('"+sendSeq+"', 8)) PRINT_SEQ from dual t "; String sendQ="select substr('"+sendSeq+"', 9) PRINT_SEQ from dual t "; List hmsendQ=mapper.query(sendQ.toString()); String PRINT_SEQ=hmsendQ.get(0).get("PRINT_SEQ").toString(); if(tarObj.getString("plineCode").equals("ZB1")){ tarObj.put("printSeq", 'Z'+PRINT_SEQ); PRINT_SEQ='Z'+PRINT_SEQ; }else if(tarObj.getString("plineCode").equals("HB1")){ tarObj.put("printSeq", 'H'+PRINT_SEQ); PRINT_SEQ='H'+PRINT_SEQ; } String qcmSendSeq =" update QCM_JHY_SAMPLE_CONSIGN_D t set SEND_SEQ = '"+sendSeq+"',PRINT_SEQ='"+PRINT_SEQ+"' " + " where PLINE_CODE = '"+obj.get("PLINE_CODE")+"' and ZHB_SPECIMEN_NO = '"+specimenNo+"' "; mapper.updateJudgeStatus(qcmSendSeq.toString()); tarObj.put("sendSeq", sendSeq); tarObj.put("CREATE_ID", sendId); tarObj.put("CREATE_NAME", sendName); tarObj.put("sampleDeliveryTime", sampleDeliveryTime);//送样时间点 tarObj.put("steelCode",tresteelCode);//牌号合并 tarObj.put("steelName",tresteelCode);//牌号合并 tarObj.put("cretInstCode", obj.get("CERT_INST_CODE")); tarObj.put("cretInstName", obj.get("CERT_INST_NAME")); //热处理号 tarObj.put("heatTreatment", obj.get("PROCESS_NOS")); //传给lims的成分标识 String componentsql ="select t.* from QCM_JHY_SAMPLE_CONSIGN_D t,QCM_JHY_SAMPLE_CONSIGN_M m " +" where t.smp_no = m.smp_no and m.SMP_CATG = 'A' and t.batch_no = '"+smpleD.getString("BATCH_NO")+"' "; List componentLog=mapper.query(componentsql.toString()); if(componentLog!=null && componentLog.size()>=1){ tarObj.put("componentLog", '1');//1代表有成分 }else{ tarObj.put("componentLog", '0');//0代表无成分 } if ("5000".equals(obj.get("CERT_INST_CODE"))) { tarObj.put("type", "0"); }else{ tarObj.put("type", "1"); } if ("B".equals(obj.get("SMP_CATG"))) { //材质 sqlucomm.setLength(0); sqlucomm.append("select T.SPECIMEN_NO,T.SEQ,T.PHY_NAME_L,T.PHY_CODE_L,T.PHY_CODE_M,T.PHY_NAME_M,T.PHY_CODE_S," + "T.PHY_NAME_S,T.ITEM_CODE_D,T.ITEM_NAME_D,T.ITEM_CODE_T,T.ITEM_NAME_T,T.ITEM_CODE_S,T.ITEM_NAME_S," + "T.ISJUDGE,T.JUDGE_BASIS,T.PHY_UNIT,T.GROUP_SEQ,T.QUOTE_SPECIMEN_NO,T.MEMO,T.ITEM_CODE_L," + " T.ITEM_DESC_L,T.TEST_QTY,T.SMP_QTY,T.SPECL_FL,T.STDMIN_SIGN,T.STDMIN,T.STDMAX_SIGN,T.STDMAX," + " T.STDMEMO from QCM_JHY_ZHB_PHYSICS T " + " WHERE T.SPECIMEN_NO='"+specimenNo+"' and t.VAL1 is null and t.SEND_LOG <> '1' "); List items=mapper.query(sqlucomm.toString()); if (items!=null && items.size()>0) { JSONArray arrayItem=new JSONArray(); for(int j = 0 ;j < items.size() ; j++){ JSONObject oldItem =JSONObject.parseObject(JSON.toJSONString(items.get(j))) ; JSONObject tarItem=new JSONObject(); //子表数据 createItem(tarItem,oldItem); if(oldItem.getString("PHY_NAME_M").equals("现场洛氏硬度HRC")){ tarItem.put("tsFlag", "1");//探伤 }else{ tarItem.put("tsFlag", "0");//非探伤 } arrayItem.add(tarItem); } tarObj.put("items", arrayItem); } }else{ //成分 JSONObject chemItem=JSON.parseObject((String)obj.get("CHEM_ITEM")); tarObj.putAll(chemItem); } tarDate.add(tarObj); HashMap hm = new HashMap(); hm.put("SPECIMEN_NO", specimenNo); hm.put("BATCH_NO", obj.get("BATCH_NO").toString()); hm.put("PLINE_CODE", "ZHB"); //全自动激光切割加工中心系统 if(LCplineCode.equals("HB1")){ String lcThick = obj.get("THICK").toString(); double lcThick2 = Double.parseDouble(lcThick); if(lcThick2<=25){ LCtarDate.add(tarObj); String strjg=qcmJg(hm); mapper.insert(strjg); } }else if(LCplineCode.equals("ZB1")){ LCtarDate.add(tarObj); String strjg=qcmJg(hm); mapper.insert(strjg); } } logger.info("-------发送jon数组--"+tarDate.toJSONString()); String tar=tarDate.toString(); String result = "";//调用url try{ result = httpURLPOSTCaseNew(urlStr,tar);//调用url if (result == null ||result.equals("null") || result.equals("")) { return "TMCP/AR/CR合并LIMS返回:"+result; } }catch(Exception e){ return "TMCP/AR/CR合并LIMS返回:"+result; } String resultlist =result.substring(8, 11); if (!resultlist.equals("200") || resultlist == null || resultlist.equals("")) { return "TMCP/AR/CR合并LIMS返回:"+result; } if(resultlist.equals("200")){ //把所有的取样编号的委托 状态修改成已发送 String sdtime = "0"; for (String string3 : treeSetSpecimenNo) { sql = ""; sql =" update QCM_JHY_SAMPLE_CONSIGN_D t set STATUS = '2',SEND_TIME=sysdate," + " CONSIGN_NO='"+consignNo+"', CONSIGN_NO_SEQ = '1', " + " SEND_ID = '"+sendId+"',SEND_NAME = '"+sendName+"',t.PLINE_CODE_LIMS='"+plineCodeLims+"' " + " where t.SPECIMEN_NO ='"+string3+"' "; mapper.updateJudgeStatus(sql.toString()); if(sdtime.equals("0")){ String sql2 = " update QCM_JHY_SAMPLE_CONSIGN_D t " + " set t.SAMPLE_DELIVERY_TIME = '"+sampleDeliveryTime+"' " + " where t.SPECIMEN_NO = '"+string3+"' "; mapper.UpdateQcmWt(sql2.toString()); sdtime = "1"; } } //合并表 sql = ""; sql =" update QCM_JHY_ZHB_PHYSICS t set t.SEND_LOG = '1' " + " where t.SPECIMEN_NO ='"+specimenNo+"' and t.SEND_LOG <> '1' "; mapper.updateJudgeStatus(sql.toString()); } SqlSession.commit(); //全自动激光切割加工中心系统 /* if(LCplineCode.equals("HB1") || LCplineCode.equals("ZB1")){ if(LCtarDate.size()>=1){ String jgkg=QcmJhyJgKg(LCplineCode); if("1".equals(jgkg)){ String LCurlStr = "http://172.16.0.169:82/Limsinterface/http/Tgcut"; String LCtar=LCtarDate.toString(); httpURLPOSTLaserCenter(LCurlStr,LCtar,LCplineCode); } } }*/ } catch (Exception e) { e.printStackTrace(); SqlSession.rollback(); return "TMCP/AR合并"+e.getMessage(); }/*finally { SqlSession.close(); }*/ return "200"; } /** * 项目转换 * @param tarItem * @param oldItem */ private void createItem(JSONObject tarItem, JSONObject oldItem) { // TODO Auto-generated method stub tarItem.put("specimenNo", oldItem.getString("SPECIMEN_NO")); tarItem.put("seq", oldItem.getInteger("SEQ")); tarItem.put("phyCodeL", oldItem.getString("PHY_CODE_L")); tarItem.put("phyNameL", oldItem.getString("PHY_NAME_L")); tarItem.put("phyCodeM", oldItem.getString("PHY_CODE_M")); tarItem.put("phyNameM", oldItem.getString("PHY_NAME_M")); tarItem.put("phyCodeS", oldItem.getString("PHY_CODE_S")); tarItem.put("phyNameS", oldItem.getString("PHY_NAME_S")); tarItem.put("itemCodeD", oldItem.getString("ITEM_CODE_D")); tarItem.put("itemNameD", oldItem.getString("ITEM_NAME_D")); tarItem.put("itemCodeT", oldItem.getString("ITEM_CODE_T")); tarItem.put("itemNameT", oldItem.getString("ITEM_NAME_T")); tarItem.put("itemCodeS", oldItem.getString("ITEM_CODE_S")); tarItem.put("itemNameS", oldItem.getString("ITEM_NAME_S")); tarItem.put("itemCodeL", oldItem.getString("ITEM_CODE_L")); tarItem.put("itemNameL", oldItem.getString("ITEM_DESC_L")); tarItem.put("groupSeq", oldItem.getString("GROUP_SEQ")); tarItem.put("memo", oldItem.getString("MEMO")); tarItem.put("judgeBasis", oldItem.getString("JUDGE_BASIS")); tarItem.put("unti", oldItem.getString("PHY_UNIT")); tarItem.put("testQty", oldItem.getString("TEST_QTY")); tarItem.put("smpQty", oldItem.getString("SMP_QTY")); String sql = "select t.* from qcm_ord_design_std_pic t " +" where t.design_key in ( " +" select r.design_key from qcm_jhy_sample_r_ord r,qcm_jhy_sample_consign_d d " +" where r.smp_no = d.smp_no " +" and d.specimen_no = '"+oldItem.getString("SPECIMEN_NO")+"') " +" and PHY_CODE_L = '"+oldItem.getString("PHY_CODE_L")+"' " +" and PHY_CODE_M = '"+oldItem.getString("PHY_CODE_M")+"' " +" and PHY_CODE_S = '"+oldItem.getString("PHY_CODE_S")+"' " +" and SPECL_FL = '2' and rownum = 1 "; List items=mapper.query(sql.toString()); if(items!=null && items.size()>=1){ tarItem.put("stdminSign", items.get(0).get("STDMIN_SIGN")); tarItem.put("stdmin", items.get(0).get("STDMIN")); tarItem.put("stdmaxSign", items.get(0).get("STDMAX_SIGN")); tarItem.put("stdmax", items.get(0).get("STDMAX")); }else{ tarItem.put("stdminSign", oldItem.getString("STDMIN_SIGN")); tarItem.put("stdmin", oldItem.getString("STDMIN")); tarItem.put("stdmaxSign", oldItem.getString("STDMAX_SIGN")); tarItem.put("stdmax", oldItem.getString("STDMAX")); } // tarItem.put("createTime", oldItem.getString("ITEM_NAME_S")); // tarItem.put("createName", oldItem.getString("ITEM_NAME_S")); String SqlStdMemo = "select t.* from qcm_ord_design_std_pic t " +" where t.design_key in ( " +" select r.design_key from qcm_jhy_sample_r_ord r,qcm_jhy_sample_consign_d d " +" where r.smp_no = d.smp_no " +" and d.specimen_no = '"+oldItem.getString("SPECIMEN_NO")+"') " +" and PHY_CODE_L = '"+oldItem.getString("PHY_CODE_L")+"' " +" and PHY_CODE_M = '"+oldItem.getString("PHY_CODE_M")+"' " +" and PHY_CODE_S = '"+oldItem.getString("PHY_CODE_S")+"' " +" and SPECL_FL = '"+oldItem.getString("SPECL_FL")+"' and rownum = 1 "; List hmStdMemo=mapper.query(SqlStdMemo.toString()); if(hmStdMemo!=null && hmStdMemo.size()>=1){ tarItem.put("STDMEMO", hmStdMemo.get(0).get("STDMEMO")); }else{ tarItem.put("STDMEMO", oldItem.getString("STDMEMO")); } } /** * 创建目标对象 * @param tarObj * @param obj */ private void createTarObj(JSONObject tarObj, JSONObject obj) { String yzysmpTypeCode = ""; // TODO Auto-generated method stub tarObj.put("smpTage", obj.getString("SMP_CATG")); tarObj.put("smpNo", obj.getString("SMP_NO")); tarObj.put("specimenNo", obj.getString("SPECIMEN_NO")); tarObj.put("heatNo", obj.getString("HEAT_NO")); tarObj.put("batchNo", obj.getString("BATCH_NO")); tarObj.put("inspectionLot", obj.getString("INSPECTION_LOT")); tarObj.put("freqCode", obj.getString("FREQ_CODE")); tarObj.put("freqName", obj.getString("FREQ_NAME")); tarObj.put("materialNo", obj.getString("MATERIAL_NO")); if ("0".equals(obj.getString("SMP_TYPE_CODE"))) { String sql = "select case " +" when t.SMP_TYPE_CODE = '0' then " +" case " +" when t2.CERT_INST_CODE in ('IC003','IC004', 'IC001', 'IC010', '5000') then " +" t.SMP_TYPE_NAME " +" else " +" '认证样' " +" end " +" else " +" t.SMP_TYPE_NAME " +" end SMP_TYPE_NAME " +" from QCM_JHY_SAMPLE_CONSIGN_D t " +" inner join QCM_JHY_SAMPLE_CONSIGN_M t2 " +" on t.SMP_NO = t2.SMP_NO " +" where t.specimen_no = '"+obj.getString("SPECIMEN_NO")+"' and rownum <= 1"; List hMap=mapper.query(sql.toString()); if (hMap!=null || hMap.size()>0) { for (HashMap hm : hMap) { yzysmpTypeCode = (String)hm.get("SMP_TYPE_NAME"); } } if(yzysmpTypeCode.equals("认证样")){ tarObj.put("smpTypeCode", "certifiedSampleTask"); }else{ tarObj.put("smpTypeCode", "routineSampleTask"); } }else if ("1".equals(obj.getString("SMP_TYPE_CODE"))){ tarObj.put("smpTypeCode", "reviewSampleTask"); }else{ tarObj.put("smpTypeCode", "coilSamplingTask"); } if(yzysmpTypeCode.equals("认证样")){ tarObj.put("smpTypeName", "认证样"); }else{ tarObj.put("smpTypeName", obj.getString("SMP_TYPE_NAME")); } tarObj.put("smpTage", obj.getString("SMP_CATG")); tarObj.put("smpLocation", obj.getString("SMP_LOCATION")); tarObj.put("boardNo", obj.getString("BOARD_NO")); //中厚板 正火前 if("ZB1".equals(obj.getString("PLINE_CODE")) || "HB1".equals(obj.getString("PLINE_CODE")) ){ /* String sqlItem = "select GET_ZHB1_PLINE_CODE('"+obj.getString("MATERIAL_NO")+"','"+obj.getString("PLINE_CODE")+"') PLINE_CODE from dual"; List vhchm=mapper.query(sqlItem.toString()); if(vhchm!=null && vhchm.size()>=1){ tarObj.put("plineCode", vhchm.get(0).get("PLINE_CODE").toString()); }else{ tarObj.put("plineCode", obj.getString("PLINE_CODE")); }*/ if(StringUtils.isNotBlank(obj.getString("PLINE_CODE_LIMS").toString())){ if(obj.getString("PLINE_CODE_LIMS").equals("ZB1")){ tarObj.put("plineCode", "ZB1"); tarObj.put("plineName", "中板线"); }else if(obj.getString("PLINE_CODE_LIMS").equals("HB1")){ tarObj.put("plineCode", "HB1"); tarObj.put("plineName", "厚板线"); } }else{ tarObj.put("plineCode", obj.getString("PLINE_CODE")); tarObj.put("plineName", obj.getString("PLINE_NAME")); } }else{ tarObj.put("plineCode", obj.getString("PLINE_CODE")); tarObj.put("plineName", obj.getString("PLINE_NAME")); } tarObj.put("status", obj.getString("STATUS")); tarObj.put("thick", obj.getString("THICK")); tarObj.put("width", obj.getString("WIDTH")); tarObj.put("length", obj.getString("LENGTH")); tarObj.put("sendName", obj.getString("SEND_NAME")); tarObj.put("sendTime", obj.getString("SEND_TIME")); tarObj.put("sendId", obj.getString("SEND_ID")); tarObj.put("consignNo", obj.getString("CONSIGN_NO")); tarObj.put("consignNoSeq", obj.getIntValue("CONSIGN_NO_SEQ")); tarObj.put("productCnt", obj.getString("PRODUCT_CNT")); //tarObj.put("checkMemo", obj.getString("MEMO")); tarObj.put("orderNumber", obj.getString("DESIGN_KEY")); tarObj.put("orderNotes", obj.getString("MEMO")); tarObj.put("steelCode", obj.getString("STEEL_CODE")); tarObj.put("steelName", obj.getString("STEEL_NAME")); tarObj.put("sendMemo", obj.getString("SEND_MEMO")); if ("A".equals(obj.getString("SMP_CATG"))) { tarObj.put("testQty", obj.getString("TEST_QTY")); tarObj.put("smpQty", obj.getString("SMP_QTY")); } } /** * 发送Http Post请求 发送LIMS委托接口*/ public static String httpURLPOSTCaseNew(String methodUrl,String data) { HttpURLConnection connection = null; PrintWriter pw = null; BufferedReader reader = null; String line = ""; StringBuilder result = new StringBuilder(); try { URL url = new URL(methodUrl); // data= URLEncoder.encode(URLEncoder.encode(data,"UTF-8"),"UTF-8"); data= URLEncoder.encode(data,"UTF-8") ; connection = (HttpURLConnection)url.openConnection();// 根据URL生成HttpURLConnection connection.setDoOutput(true);// 设置是否向connection输出,因为这个是post请求,参数要放在http正文内,因此需要设为true,默认情况下是false connection.setDoInput(true); // 设置是否从connection读入,默认情况下是true; connection.setRequestMethod("POST");// 设置请求方式为post,默认GET请求 connection.setUseCaches(false);// post请求不能使用缓存设为false connection.setConnectTimeout(10000);// 连接主机的超时时间 connection.setReadTimeout(10000);// 从主机读取数据的超时时间 connection.setInstanceFollowRedirects(true);// 设置该HttpURLConnection实例是否自动执行重定向 connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive");// 连接复用 connection.setRequestProperty("charset", "utf-8"); connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); connection.connect();// 建立TCP连接,getOutputStream会隐含的进行connect,所以此处可以不要 pw = new PrintWriter(connection.getOutputStream());// 创建输入输出流,用于往连接里面输出携带的参数 pw.write("data="+data);//json数据 pw.flush(); pw.close(); if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));// 发送http请求 // 循环读取流 while (null != (line = reader.readLine())) { result.append(line); } reader.close(); } } catch (IOException e) { e.printStackTrace(); try { throw new Exception("发送LIMS系统失败,具体原因为["+e.getMessage()+"]"); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } finally { connection.disconnect(); } return result.toString(); } /** * 发送Http Post请求 撤销LIMS委托接口 * @throws Exception */ public String httpURLPOSTCase(String methodUrl,String data) throws Exception { HttpURLConnection connection = null; PrintWriter pw = null; BufferedReader reader = null; String line = ""; StringBuilder result = new StringBuilder(); try { URL url = new URL(methodUrl); connection = (HttpURLConnection)url.openConnection();// 根据URL生成HttpURLConnection connection.setDoOutput(true);// 设置是否向connection输出,因为这个是post请求,参数要放在http正文内,因此需要设为true,默认情况下是false connection.setDoInput(true); // 设置是否从connection读入,默认情况下是true; connection.setRequestMethod("POST");// 设置请求方式为post,默认GET请求 connection.setUseCaches(false);// post请求不能使用缓存设为false connection.setConnectTimeout(10000);// 连接主机的超时时间 connection.setReadTimeout(10000);// 从主机读取数据的超时时间 connection.setInstanceFollowRedirects(true);// 设置该HttpURLConnection实例是否自动执行重定向 connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive");// 连接复用 connection.setRequestProperty("charset", "utf-8");//utf-8 GBK connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");//; charset=utf-8 //connection.setRequestProperty("Content-Type", "application/json");//;charset=utf-8 connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); connection.connect();// 建立TCP连接,getOutputStream会隐含的进行connect,所以此处可以不要 // pw = new PrintWriter(connection.getOutputStream());// 创建输入输出流,用于往连接里面输出携带的参数 //pw.write("data="+data);//json数据 // pw.flush(); //pw.close(); OutputStream outputstream = connection.getOutputStream(); String jsonStr = "data="+data; //System.out.println("=========:JSON:"+jsonStr.toString()); outputstream.write(jsonStr.getBytes("UTF-8")); /* String jsonStr = data; System.out.println("=========:JSON:"+jsonStr.toString()); outputstream.write(jsonStr.getBytes("UTF-8"));*/ outputstream.flush(); outputstream.close(); if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));// 发送http请求 // 循环读取流 while (null != (line = reader.readLine())) { result.append(line); } reader.close(); } } catch (IOException e) { e.printStackTrace(); throw new Exception("发送LIMS系统失败,具体原因为["+e.getMessage()+"]"); } finally { connection.disconnect(); } return result.toString(); } /** * 生成不带 "-" 的UUID * * @return */ public static String getUUID() { UUID uuid = UUID.randomUUID(); String str = uuid.toString(); String uuidStr = str.replace("-", ""); return uuidStr; } private void createSmpleLoglist(String josnString ,String memo,String sendName){ StringBuffer sqlucomm1 = new StringBuffer(); sqlucomm1.append("Delete From QCM_JHY_SAMPLE_LOG "); sqlucomm1.append("where CREATE_TIME <= to_date(to_char(sysdate - 90, 'yyyy-MM-dd hh24:mi:ss'),'yyyy-MM-dd hh24:mi:ss') "); try { this.getDao("testDao").ExcuteNonQuery(sqlucomm1.toString()); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); logger.info("---------------------------插入日志表失败-----------------------"+sqlucomm1); } int len = 0; if(josnString.length()<= 3500){ len = josnString.length(); }else{ len = 3000; } String josnli = josnString.substring(0, len); StringBuffer sqlucomm = new StringBuffer(); sqlucomm.append("INSERT INTO QCM_JHY_SAMPLE_LOG (GUID,MEMO,"); sqlucomm.append("CREATE_NAME,CREATE_TIME,JSON_TEXT) VALUES ('"); sqlucomm.append(getUUID()+"','"+memo+"',"); sqlucomm.append("'"+sendName+"',sysdate,'"+josnli+"')"); try { this.getDao("testDao").ExcuteNonQuery(sqlucomm.toString()); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); logger.info("---------------------------插入日志表失败-----------------------"+sqlucomm); } } /** * 调用LIMS接收委托接口,实现委托下发 发送委托 中厚板预测抽样 Q235B Q355B * @return cro * @throws IOException */ @SuppressWarnings("unchecked") public CoreReturnObject ZHBYuCeSample(String Entrust,String sendId,String sendName,String sampleDeliveryTime){ String urlStr = "http://172.16.0.169:82/Limsinterface/http/Inspection"; try { String LCplineCode="LC";//全自动激光切割加工中心系统 StringBuffer sqlucomm = new StringBuffer(); TreeSet treeSet0 = new TreeSet(); String[] ja=Entrust.split(","); String msInfo=""; if (ja!=null && ja.length>0) { for (int i = 0; i < ja.length; i++) { String sp = ja[i]; treeSet0.add(sp); if ("".equals(msInfo)) { msInfo="'"+sp+"'"; }else{ msInfo=msInfo+"'"+sp+"'"; } if (i !=ja.length-1) { msInfo=msInfo+","; } } } if (treeSet0.size()!=1) { cro.setV_errCode(-1); cro.setV_errMsg("预测抽样只能勾选一条委托抽样,请核实数据!"); return cro; } //查询检验 预测抽样 抽的是初样 sqlucomm.append("SELECT nvl(d.CHEM_INTERNALCONTROL,' ') CHEM_INTERNALCONTROL,nvl(d.CRAFT_EXECUTE,' ') CRAFT_EXECUTE,nvl(d.RZ_MIXROLL,' ') RZ_MIXROLL," + " nvl(d.FUNCTION_FUHE,' ') FUNCTION_FUHE,nvl(d.SHOULD_SAMPLE,'1') SHOULD_SAMPLE," + " d.SMP_NO,d.SPECIMEN_NO,d.HEAT_NO,d.BATCH_NO,d.INSPECTION_LOT,d.FREQ_CODE,d.FREQ_NAME," + " d.MATERIAL_NO,d.SEND_MEMO,d.SMP_TYPE_CODE,d.SMP_TYPE_NAME,d.CONSIGN_NO,d.CONSIGN_NO_SEQ,d.TEST_QTY,d.SMP_QTY," + " d.SMP_LOCATION,d.BOARD_NO,d.QUOTE_CONSIGN_NO,d.OLD_CONSIGN_NO,d.PLINE_CODE,d.PLINE_NAME,d.CHEM_ITEM," + " d.SOURCE,d.PRODUCT_CNT,d.MEMO, o.STEEL_CODE,o.STEEL_NAME ,o.THICK,o.WIDTH ,o.LENGTH ,o.DESIGN_KEY,o.DELIVERY_STATE_DESC," + " m.CERT_INST_CODE,m.CERT_INST_NAME,m.SMP_CATG,d.PROCESS_NOS " + " FROM QCM_JHY_SAMPLE_CONSIGN_D d INNER JOIN QCM_JHY_SAMPLE_CONSIGN_M m " + " ON d.SMP_NO=m.SMP_NO INNER JOIN QCM_JHY_SAMPLE_R_ORD O ON d.SMP_NO = o.SMP_NO " + " where d.SPECIMEN_NO in ("+msInfo+") and d.VALIDFLAG='1' and d.STATUS='0'" + " and o.STEEL_CODE in ('Q235B','Q355B') and d.RZ_ROLL_SLAB_SEQ is null " + " and d.SMP_TYPE_CODE='0' and rownum=1 "); List lists=mapper.query(sqlucomm.toString()); if (lists==null || lists.size()<1) { cro.setV_errCode(-1); cro.setV_errMsg("未查到相应的预测抽样委托,只能预测抽样牌号为['Q235B','Q355B']的委托,请核实数据!"); return cro; } String designKey=lists.get(0).get("DESIGN_KEY").toString(); String dkey1 = designKey.substring(0, 5);//XGEC- String dkey2 = designKey.substring(10, 11);//合同号倒数第三个是9 例: W112023010909 倒数第三个9 String dkey3 = designKey.substring(0, 3);//W16 非计划合同 String dkey4 = designKey.substring(0, 2);//16 非计划合同 if(StringUtils.isBlank(lists.get(0).get("CHEM_INTERNALCONTROL").toString()) || StringUtils.isBlank(lists.get(0).get("CRAFT_EXECUTE").toString()) || StringUtils.isBlank(lists.get(0).get("FUNCTION_FUHE").toString())){ cro.setV_errCode(-1); cro.setV_errMsg("当前轧批未给预测值不能预测抽样!请选择其它轧批"); return cro; } if(StringUtils.isBlank(lists.get(0).get("RZ_MIXROLL").toString())){ cro.setV_errCode(-1); cro.setV_errMsg("当前轧批未给抽样时间段标识!请选择其它轧批"); return cro; } String chemInternalcontrol =lists.get(0).get("CHEM_INTERNALCONTROL").toString();//成分是否符合内控标准(1为符合,0为不符合) String craftExecute = lists.get(0).get("CRAFT_EXECUTE").toString();//工艺执行是否符合标准(1为符合,0为不符合) String functionFuhe = lists.get(0).get("FUNCTION_FUHE").toString();//性能预测是否符合标准(1为符合,0为不符合) String shouldSample = lists.get(0).get("SHOULD_SAMPLE").toString();//是否预测抽样(1为送实物样,0为预测抽样,2建议抽取样) String deliveryStateDesc = lists.get(0).get("DELIVERY_STATE_DESC").toString();//交货状态 if(!"1".equals(chemInternalcontrol)){ cro.setV_errCode(-1); cro.setV_errMsg("成分不符合!不能预测抽样,请选择其它轧批"); return cro; } if(!"1".equals(craftExecute)){ cro.setV_errCode(-1); cro.setV_errMsg("工艺不符合!不能预测抽样,请选择其它轧批"); return cro; } if(!"1".equals(functionFuhe)){ cro.setV_errCode(-1); cro.setV_errMsg("性能预测不合格!不能预测抽样,请选择其它轧批"); return cro; } if("XGEC-".equals(dkey1)){ cro.setV_errCode(-1); cro.setV_errMsg("XGEC-出口合同!不能预测抽样,请选择其它轧批"); return cro; } if("9".equals(dkey2)){ cro.setV_errCode(-1); cro.setV_errMsg("重点合同!不能预测抽样,请选择其它轧批"); return cro; } if("W16".equals(dkey3) || "16".equals(dkey4) || "19".equals(dkey4) ){ cro.setV_errCode(-1); cro.setV_errMsg("W16、16、19非计划坯!不能预测抽样,请选择其它轧批"); return cro; } if(!"2".equals(shouldSample)){//2建议抽取样 cro.setV_errCode(-1); cro.setV_errMsg("请在【是否预测抽样】字段中抽取为:Y(抽样)的轧批送样到试验室做试验,当前委托不为建议抽样轧批不能送样!"); return cro; } if(!"AR".equals(deliveryStateDesc) && !"CR".equals(deliveryStateDesc) && !"TMCP".equals(deliveryStateDesc)){//AR CR TMCP cro.setV_errCode(-1); cro.setV_errMsg("交换状态不为【AR、CR、TMCP】不满足预测抽样条件!"); return cro; } /* String sqlSend = "select t.* from QCM_JHY_SAMPLE_CONSIGN_D t " +" where t.rz_mixroll = '"+lists.get(0).get("RZ_MIXROLL").toString()+"' " +" and t.status <> '0' " +" and t.Rz_Old_Sampl_No is not null " +" and t.specimen_no = t.rz_old_sampl_no " +" and t.pline_code in ('ZB1', 'HB1') and rownum=1 "; List listsSend=mapper.query(sqlSend.toString()); if (listsSend!=null && listsSend.size()>=1) { String vrz_mixroll =listsSend.get(0).get("RZ_MIXROLL").toString(); String vbatch_no =listsSend.get(0).get("BATCH_NO").toString(); cro.setV_errCode(-1); cro.setV_errMsg("当前预测区间【'"+vrz_mixroll+"'】已抽样【'"+vbatch_no+"'】轧批不需要预测抽样第二次!"); return cro; }*/ //获取数据进行验证 TreeSet sizes=new TreeSet(); for (int i = 0; i < lists.size(); i++) { HashMap obj=lists.get(i); sizes.add((String)obj.get("SMP_CATG")); } if (sizes.size()!=1) { cro.setV_errCode(-1); cro.setV_errMsg("待发送的检验委托数据只能同时发送一种类型的待检数据,请核实数据!"); return cro; } JSONArray tarDate=new JSONArray(); JSONArray LCtarDate=new JSONArray();//全自动激光切割加工中心系统 Date date=new Date(); SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString=simpleDateFormat.format(date); //生成委托编号 String consignNo=new SimpleDateFormat("yyyyMMdd").format(date); sqlucomm.setLength(0); sqlucomm.append("SELECT max(to_number(substr(CONSIGN_NO,-3,3))) BIGSEQ from QCM_JHY_SAMPLE_CONSIGN_D where CONSIGN_NO like '"+consignNo+"%'"); HashMap map=mapper.queryOne(sqlucomm.toString()); BigDecimal count = BigDecimal.ZERO; if( null != map.get("BIGSEQ")){ count=(BigDecimal)map.get("BIGSEQ"); } if (count.compareTo(BigDecimal.ZERO)==1) { count=count.add(BigDecimal.ONE); }else{ count=BigDecimal.ONE; } consignNo=consignNo+String.format("%03d", count.intValue()); System.out.println("======="+count.intValue()); int seq=1; String plineCodeLims = "";//中厚板送样产线,按送样时间确定 for (int i = 0; i < lists.size(); i++) { HashMap obj=lists.get(i); //中厚板送样产线 if(obj.get("PLINE_CODE").toString().equals("ZB1") || obj.get("PLINE_CODE").toString().equals("HB1")){ if(sampleDeliveryTime.contains("06:30:00") || sampleDeliveryTime.contains("10:30:00") || sampleDeliveryTime.contains("17:30:00") || sampleDeliveryTime.contains("20:30:00")){ plineCodeLims = "HB1"; }else if(sampleDeliveryTime.contains("03:00:00") || sampleDeliveryTime.contains("11:00:00") || sampleDeliveryTime.contains("15:00:00") || sampleDeliveryTime.contains("18:00:00") || sampleDeliveryTime.contains("21:00:00") || sampleDeliveryTime.contains("06:00:00") ){ plineCodeLims = "ZB1"; } } obj.put("PLINE_CODE_LIMS", plineCodeLims); obj.put("SEND_ID", sendId); obj.put("SEND_NAME", sendName); obj.put("CONSIGN_NO", consignNo); obj.put("CONSIGN_NO_SEQ", seq++); obj.put("SEND_TIME", dateString); LCplineCode=obj.get("PLINE_CODE").toString();//全自动激光切割加工中心系统 JSONObject smpleD = JSONObject.parseObject(JSON.toJSONString(obj)); //目标json JSONObject tarObj=new JSONObject(); //主表数据 createTarObj(tarObj,smpleD); //发送序号 createSendSeq String sendSeq=createSendSeq(tarObj.getString("plineCode").toString());//发送序号 //String sendQ="select to_number(substr('"+sendSeq+"', 8)) PRINT_SEQ from dual t "; String sendQ="select substr('"+sendSeq+"', 9) PRINT_SEQ from dual t "; List hmsendQ=mapper.query(sendQ.toString()); String PRINT_SEQ=hmsendQ.get(0).get("PRINT_SEQ").toString(); if(tarObj.getString("plineCode").equals("ZB1")){ tarObj.put("printSeq", 'Z'+PRINT_SEQ); PRINT_SEQ='Z'+PRINT_SEQ; }else if(tarObj.getString("plineCode").equals("HB1")){ tarObj.put("printSeq", 'H'+PRINT_SEQ); PRINT_SEQ='H'+PRINT_SEQ; } String qcmSendSeq =" update QCM_JHY_SAMPLE_CONSIGN_D t set SEND_SEQ = '"+sendSeq+"',PRINT_SEQ='"+PRINT_SEQ+"' " + " where PLINE_CODE = '"+obj.get("PLINE_CODE")+"' and SPECIMEN_NO = '"+obj.get("SPECIMEN_NO")+"' "; mapper.updateJudgeStatus(qcmSendSeq.toString()); tarObj.put("sendSeq", sendSeq); tarObj.put("CREATE_ID", sendId); tarObj.put("CREATE_NAME", sendName); tarObj.put("sampleDeliveryTime", sampleDeliveryTime);//送样时间点 tarObj.put("cretInstCode", obj.get("CERT_INST_CODE")); tarObj.put("cretInstName", obj.get("CERT_INST_NAME")); if(obj.get("PLINE_CODE").equals("ZB1") || obj.get("PLINE_CODE").equals("HB1")){ tarObj.put("heatTreatment", obj.get("PROCESS_NOS")); //传给lims的成分标识 String sql ="select t.* from QCM_JHY_SAMPLE_CONSIGN_D t,QCM_JHY_SAMPLE_CONSIGN_M m " +" where t.smp_no = m.smp_no and m.SMP_CATG = 'A' and t.batch_no = '"+smpleD.getString("BATCH_NO")+"' "; List componentLog=mapper.query(sql.toString()); if(componentLog!=null && componentLog.size()>=1){ tarObj.put("componentLog", '1');//1代表有成分 }else{ tarObj.put("componentLog", '0');//0代表无成分 } } if ("5000".equals(obj.get("CERT_INST_CODE")) || "IC012".equals(obj.get("CERT_INST_CODE")) ) { tarObj.put("type", "0"); }else{ tarObj.put("type", "1"); } if ("B".equals(obj.get("SMP_CATG"))) { //材质 sqlucomm.setLength(0); sqlucomm.append("select T.SPECIMEN_NO,T.SEQ,T.SMP_NO,T.PHY_NAME_L,T.PHY_CODE_L,T.PHY_CODE_M,T.PHY_NAME_M,T.PHY_CODE_S," + "T.PHY_NAME_S,T.ITEM_CODE_D,T.ITEM_NAME_D,T.ITEM_CODE_T,T.ITEM_NAME_T,T.ITEM_CODE_S,T.ITEM_NAME_S," + "T.ISJUDGE,T.JUDGE_BASIS,T.PHY_UNIT,T.GROUP_SEQ,T.QUOTE_SPECIMEN_NO,T.QUOTE_SEQ,T.MEMO,T.ITEM_CODE_L," + " T.ITEM_DESC_L,T.TEST_QTY,T.SMP_QTY,T.CREATE_TIME,T.CREATE_ID,T.CREATE_NAME,T.SPECL_FL, " + "T.STDMIN_SIGN,T.STDMIN,T.STDMAX_SIGN,T.STDMAX,t.STDMEMO from QCM_JHY_SAMPLE_CONSIGN_D_ITEM T" + " WHERE T.SPECIMEN_NO='"+obj.get("SPECIMEN_NO")+"' and (T.QUOTE_SPECIMEN_NO is null or T.QUOTE_SPECIMEN_NO='') and t.Fy_Quote_Specimen_No is null and t.QUOTE_MEMO is null "); List items=mapper.query(sqlucomm.toString()); if (items!=null && items.size()>0) { JSONArray arrayItem=new JSONArray(); for(int j = 0 ;j < items.size() ; j++){ JSONObject oldItem =JSONObject.parseObject(JSON.toJSONString(items.get(j))) ; JSONObject tarItem=new JSONObject(); //子表数据 createItem(tarItem,oldItem); if(oldItem.getString("PHY_NAME_M").equals("现场洛氏硬度HRC")){ tarItem.put("tsFlag", "1");//探伤 }else{ tarItem.put("tsFlag", "0");//非探伤 } arrayItem.add(tarItem); } tarObj.put("items", arrayItem); } }else{ //成分 JSONObject chemItem=JSON.parseObject((String)obj.get("CHEM_ITEM")); tarObj.putAll(chemItem); } tarDate.add(tarObj); //全自动激光切割加工中心系统 HashMap hm = new HashMap(); hm.put("SPECIMEN_NO", obj.get("SPECIMEN_NO").toString()); hm.put("BATCH_NO", obj.get("BATCH_NO").toString()); hm.put("PLINE_CODE", LCplineCode); if(LCplineCode.equals("HB1")){ String lcThick = obj.get("THICK").toString(); double lcThick2 = Double.parseDouble(lcThick); if(lcThick2<=25){ LCtarDate.add(tarObj); String strjg=qcmJg(hm); mapper.insert(strjg); } }else if(LCplineCode.equals("ZB1")){ LCtarDate.add(tarObj); String strjg=qcmJg(hm); mapper.insert(strjg); } } logger.info("-------发送jon数组--"+tarDate.toJSONString()); String tar=tarDate.toString(); String result = "";//调用url try{ result = httpURLPOSTCaseNew(urlStr,tar);//调用url if (result == null ||result.equals("null") || result.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("发送LIMS系统失败!返回值:"+result); SqlSession.rollback(); return cro; } }catch(Exception e){ cro.setV_errCode(-1); cro.setV_errMsg(e.getMessage()); return cro; } String resultlist =result.substring(8, 11); if (!resultlist.equals("200") || resultlist == null || resultlist.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("发送LIMS系统失败!"+result); SqlSession.rollback(); SqlSession.rollback(); return cro; } if(resultlist.equals("200")){ for (HashMap list : lists) { mapper.updateConsignNo((String)list.get("CONSIGN_NO"), (Integer)list.get("CONSIGN_NO_SEQ"), sendId, sendName,(String)list.get("SPECIMEN_NO")); String sql = " update QCM_JHY_SAMPLE_CONSIGN_D t " + " set t.SAMPLE_DELIVERY_TIME = '"+sampleDeliveryTime+"',t.PLINE_CODE_LIMS='"+plineCodeLims+"', " + " t.RZ_OLD_SAMPL_NO='"+list.get("SPECIMEN_NO")+"' " + " where t.SPECIMEN_NO = '"+(String)list.get("SPECIMEN_NO")+"' "; mapper.UpdateQcmWt(sql.toString()); String sqlqu="select * from QCM_JHY_SAMPLE_CONSIGN_D_ITEM t " + " where t.specimen_no = '"+(String)list.get("SPECIMEN_NO")+"' and t.QUOTE_MEMO like '已引用%' "; List hmqu=mapper.query(sqlqu.toString()); if(hmqu==null || hmqu.size()<=0){ //删除 实绩表数据 sql=""; sql = "DELETE QCM_JHY_INSP_PHYSICS t where t.SPECIMEN_NO = '"+list.get("SPECIMEN_NO")+"' "; mapper.delete(sql.toString()); } //存储一下预测的轧批 String sqlins = " insert into qcm_jhy_sample_consign_yuce " +" (smp_no, specimen_no, heat_no, batch_no, inspection_lot, freq_code, freq_name, material_no, smp_type_code, smp_type_name, " +" consign_no, consign_no_seq, test_qty, smp_qty, smp_location, board_no, quote_consign_no, old_consign_no, pline_code, pline_name, " +" status, validflag, source, guid, send_id, send_name, send_time, chem_item, product_cnt, create_time, smp_location_code, memo, weight, " +" weight_std, weight_sfd, specimennozh, send_memo, item_flag, rz_roll_mana_no, rz_mixroll, rz_old_sampl_no, rz_roll_slab_seq, process_no, " +" quote_batch_no, quote_batch_no_one, quote_memo, improve_memo, upr_time, collect_time, artificial_memo, zhb_specimen_no, process_nos, process_code, " +" sample_delivery_time, onememo, sampl_pick_ry, special_quote_memo, chem_internalcontrol, craft_execute, phy_item, stove_time,FUNCTION_FUHE) " +" select smp_no, specimen_no, heat_no, batch_no, inspection_lot, freq_code, freq_name, material_no, smp_type_code, smp_type_name, " +" consign_no, consign_no_seq, test_qty, smp_qty, smp_location, board_no, quote_consign_no, old_consign_no, pline_code, pline_name, " +" status, validflag, source, guid, send_id, send_name, send_time, chem_item, product_cnt, create_time, smp_location_code, memo, weight, " +" weight_std, weight_sfd, specimennozh, send_memo, item_flag, rz_roll_mana_no, rz_mixroll, rz_old_sampl_no, rz_roll_slab_seq, process_no, " +" quote_batch_no, quote_batch_no_one, quote_memo, improve_memo, upr_time, collect_time, artificial_memo, zhb_specimen_no, process_nos, process_code, " +" sample_delivery_time, onememo, sampl_pick_ry, special_quote_memo, chem_internalcontrol, craft_execute, phy_item, stove_time,FUNCTION_FUHE " +" from QCM_JHY_SAMPLE_CONSIGN_D t " +" where t.specimen_no='"+(String)list.get("SPECIMEN_NO")+"' "; mapper.insert(sqlins); sql=""; sql="select * from qcm_jhy_sample_consign_d t,qcm_jhy_sample_r_ord r " + " where t.smp_no=r.smp_no and r.steel_code in ('Q235B','Q355B') and t.STATUS='0' " + " and r.design_key not like '16%' and r.design_key not like 'W16%' and r.design_key not like '19%' " + " and t.Chem_Internalcontrol='1' and t.Craft_Execute='1' and t.FUNCTION_FUHE='1' and t.SHOULD_SAMPLE in ('0') "//,'2' + " and t.RZ_ROLL_SLAB_SEQ is null and t.SPECIMEN_NO <> '"+(String)list.get("SPECIMEN_NO")+"' " + " and t.rz_mixroll = '"+list.get("RZ_MIXROLL")+"' and t.PLINE_CODE='"+list.get("PLINE_CODE")+"' "; List items=mapper.query(sql.toString()); if (items!=null && items.size()>0) { for (int i = 0; i < items.size(); i++) { String itemdesignKey=items.get(i).get("DESIGN_KEY").toString(); String itemddkey1 = itemdesignKey.substring(0, 5);//XGEC- String itemddkey2 = itemdesignKey.substring(10, 11);//合同号倒数第三个是9 例: W112023010909 倒数第三个9 String itemddkey3 = itemdesignKey.substring(0, 3);//W16 非计划合同 String itemddkey4 = itemdesignKey.substring(0, 2);//16 非计划合同 if(!StringUtils.isBlank(items.get(i).get("CHEM_INTERNALCONTROL").toString()) && !StringUtils.isBlank(items.get(i).get("CRAFT_EXECUTE").toString())){ String itemdchemInternalcontrol =items.get(i).get("CHEM_INTERNALCONTROL").toString();//成分是否符合内控标准(1为符合,0为不符合) String itemdcraftExecute = items.get(i).get("CRAFT_EXECUTE").toString();//工艺执行是否符合标准(1为符合,0为不符合) String itemdFunctionFuhe = items.get(i).get("FUNCTION_FUHE").toString();//预测性能是否符合标准(1为符合,0为不符合) if(!"XGEC-".equals(itemddkey1) && !"9".equals(itemddkey2) && "1".equals(itemdchemInternalcontrol) && "1".equals(itemdcraftExecute) && "1".equals(itemdFunctionFuhe) && !"W16".equals(itemddkey3) && !"16".equals(itemddkey4) && !"19".equals(itemddkey4)){ sql=""; sql = " update QCM_JHY_SAMPLE_CONSIGN_D t " + " set STATUS='3',SEND_TIME=sysdate,SEND_ID='"+sendId+"',SEND_NAME='"+sendName+"', " + " t.RZ_OLD_SAMPL_NO='"+list.get("SPECIMEN_NO")+"' " + " where t.SPECIMEN_NO = '"+(String)items.get(i).get("SPECIMEN_NO")+"' "; mapper.UpdateQcmWt(sql.toString()); sql = ""; sql = " INSERT INTO QCM_JUDGE_LOG ( JUDGE_TYPE,MATERIAL_NO,CREATE_TIME,CREATE_NAME,PROD_LINE) " +" VALUES ( 'P', '"+items.get(i).get("SMP_NO")+"', SYSDATE,'system','"+items.get(i).get("PLINE_CODE")+"')"; mapper.insert(sql); } } } } } cro.setV_errCode(1); cro.setV_errMsg("发送成功"); } for (HashMap list : lists) { QcmJudgeOperateLog qjog = new QcmJudgeOperateLog(); qjog.setOperate_name(sendName); qjog.setBatchno(list.get("BATCH_NO") == null ?"":list.get("BATCH_NO").toString()); qjog.setOperate_type("预测抽样发送检验委托"); qjog.setParams(list.get("MATERIAL_NO") == null ?"":list.get("MATERIAL_NO").toString()); qjog.setProd_line(list.get("PLINE_CODE") == null ?"":list.get("PLINE_CODE").toString()); qjog.setMemo(list.get("SPECIMEN_NO") == null ?"":list.get("SPECIMEN_NO").toString()); mapper.insertQcmJudgeOperateLog(qjog); } SqlSession.commit(); //全自动激光切割加工中心系统 /*if(LCplineCode.equals("HB1") || LCplineCode.equals("ZB1")){ if(LCtarDate.size()>=1){ String jgkg=QcmJhyJgKg(LCplineCode); if("1".equals(jgkg)){ String LCurlStr = "http://172.16.0.169:82/Limsinterface/http/Tgcut"; String LCtar=LCtarDate.toString(); httpURLPOSTLaserCenter(LCurlStr,LCtar,LCplineCode); } } }*/ } catch (Exception e) { e.printStackTrace(); SqlSession.rollback(); cro.setV_errCode(-1); cro.setV_errMsg("预测抽样失败!"+e.getMessage()); return cro; }finally { SqlSession.close(); } return cro; } /** * 撤销预测抽样 * @param Entrust * @return */ public CoreReturnObject CancelZHBYuCeSample(String Entrust,String UserName,String zhyy){ try { JSONArray arr = new JSONArray(); String[] ja=Entrust.split(","); String msInfo=""; String resultlist =""; TreeSet treeSet = new TreeSet(); if (ja!=null && ja.length>0) { for (int i = 0; i < ja.length; i++) { String sp = ja[i]; treeSet.add(sp); JSONObject obj = new JSONObject(); obj.put("id",sp); arr.add(obj); if ("".equals(msInfo)) { msInfo="'"+sp+"'"; }else{ msInfo=msInfo+"'"+sp+"'"; } if (i !=ja.length-1) { msInfo=msInfo+","; } } } if (treeSet.size()!=1) { cro.setV_errCode(-1); cro.setV_errMsg("撤销预测抽样只能勾选预测抽样委托,请核实数据!"); return cro; } //循环每个取样编号是否已判定 for (String trs : treeSet) { String QuerySql="SELECT count(1) CNUM from QCM_JHY_SAMPLE_R_ORD t where t.JUDGE_STATUS <> '0' and " + " t.SMP_NO=(SELECT d.SMP_NO from QCM_JHY_SAMPLE_CONSIGN_D d WHERE d.SPECIMEN_NO='"+trs+"')"; List hashMaplist2 = mapper.query(QuerySql.toString()); BigDecimal cou2 = (BigDecimal) hashMaplist2.get(0).get("CNUM"); String coun2 = cou2.toString(); Integer integ2 = Integer.parseInt(coun2); if(integ2 >= 1){ cro.setV_errCode(-1); cro.setV_errMsg("取样编号【"+trs+"】材质已判定,不可撤销,请核实数据!"); return cro; } QuerySql=""; QuerySql="SELECT d.* from QCM_JHY_SAMPLE_CONSIGN_D d WHERE d.SPECIMEN_NO='"+trs+"' "; List HMSP = mapper.query(QuerySql.toString()); if(HMSP!=null && HMSP.size()>=1){ if(!HMSP.get(0).get("SPECIMEN_NO").toString().equals(HMSP.get(0).get("RZ_OLD_SAMPL_NO").toString())){ cro.setV_errCode(-1); cro.setV_errMsg("请撤销发送到LIMS那边的预测抽样的轧批!!!"); return cro; } } } //查询取样编号是否状态是已待确认,只有待确认的才能够撤销 StringBuffer sqlucomm = new StringBuffer(); //调用LZMES撤销委托接口,暂时没有 String urlStr = "http://172.16.0.169:82/Limsinterface/http/Revokeghtask";//调用url String result = ""; try{ JSONObject tarObj=new JSONObject(); Date date=new Date(); SimpleDateFormat simleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String ret=simleDateFormat.format(date);//系统时间 //主表数据 tarObj.put("revokeUser", UserName+"C"); tarObj.put("revokeReason", zhyy); tarObj.put("revokeTime", ret); tarObj.put("revokeOrderList", arr); result = httpURLPOSTCase(urlStr,tarObj.toString());//调用url if (result == null||result.equals("null") || result.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("撤回预测抽样LIMS返回失败!返回值:"+result); return cro; } resultlist =result.substring(8, 11); if (!resultlist.equals("200") || resultlist == null || resultlist.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("撤回预测抽样Lims返回失败!"+result); return cro; } }catch(Exception e){ cro.setV_errCode(-1); cro.setV_errMsg("撤回预测抽样Lims返回失败!"+e.getMessage()); return cro; } if (resultlist.equals("200")) { //记录撤回的数据 String sqlDel = " Insert into QCM_JHY_SAMPLE_CONSIGN_D_DEL(SMP_NO,SPECIMEN_NO,HEAT_NO,BATCH_NO,INSPECTION_LOT,FREQ_CODE,FREQ_NAME,MATERIAL_NO,SMP_TYPE_CODE,SMP_TYPE_NAME,CONSIGN_NO,CONSIGN_NO_SEQ,TEST_QTY,SMP_QTY,SMP_LOCATION,BOARD_NO,QUOTE_CONSIGN_NO,OLD_CONSIGN_NO,PLINE_CODE,PLINE_NAME,STATUS,VALIDFLAG,SOURCE,GUID,SEND_ID,SEND_NAME,SEND_TIME,CHEM_ITEM,PRODUCT_CNT,CREATE_TIME,SMP_LOCATION_CODE,MEMO,WEIGHT,WEIGHT_STD,WEIGHT_SFD,SPECIMENNOZH,SEND_MEMO,ITEM_FLAG,CREATETIMEDEL,CREATENAMEDEL) " + " select SMP_NO,SPECIMEN_NO,HEAT_NO,BATCH_NO,INSPECTION_LOT,FREQ_CODE,FREQ_NAME,MATERIAL_NO,SMP_TYPE_CODE,SMP_TYPE_NAME,CONSIGN_NO,CONSIGN_NO_SEQ,TEST_QTY,SMP_QTY,SMP_LOCATION,BOARD_NO,QUOTE_CONSIGN_NO,OLD_CONSIGN_NO,PLINE_CODE,PLINE_NAME,STATUS,VALIDFLAG,SOURCE,GUID,SEND_ID,SEND_NAME,SEND_TIME,CHEM_ITEM,PRODUCT_CNT,CREATE_TIME,SMP_LOCATION_CODE,MEMO,WEIGHT,WEIGHT_STD,WEIGHT_SFD,'1',SEND_MEMO,ITEM_FLAG,SYSDATE,'"+UserName+"' from QCM_JHY_SAMPLE_CONSIGN_D d" + " where SPECIMEN_NO in ("+msInfo+")"; mapper.insert(sqlDel); String updateSql="UPDATE QCM_JHY_SAMPLE_CONSIGN_D SET STATUS='0',SPECIMENNOZH = '1', PLINE_CODE_LIMS='', " + " SEND_ID ='',SEND_NAME='',SEND_TIME='',SAMPLE_DELIVERY_TIME='',RZ_OLD_SAMPL_NO='',PRINT_SEQ='',PRINT_SEQJ='' " + " where SPECIMEN_NO in ("+msInfo+")"; mapper.UpdateQcmWt(updateSql); /* String sql=""; for (String trs : treeSet) { sql=""; sql="select t.* from qcm_jhy_sample_consign_d t,qcm_jhy_sample_r_ord r " + " where t.smp_no=r.smp_no and r.steel_code in ('Q235B','Q355B') " + " and t.rz_mixroll is not null and t.RZ_ROLL_SLAB_SEQ is null " + " and t.RZ_OLD_SAMPL_NO = '"+trs+"' "; List items=mapper.query(sql.toString()); if (items!=null && items.size()>0) { for (int i = 0; i < items.size(); i++) { sql=""; sql = " update QCM_JHY_SAMPLE_CONSIGN_D t " + " set STATUS='0',SEND_TIME='',SEND_ID='',SEND_NAME='', " + " t.RZ_OLD_SAMPL_NO='' " + " where t.SPECIMEN_NO = '"+(String)items.get(i).get("SPECIMEN_NO")+"' "; mapper.UpdateQcmWt(sql.toString()); } } }*/ } String sqlLog = "select * from QCM_JHY_SAMPLE_CONSIGN_D t where t.specimen_no in ("+msInfo+")"; List lists = mapper.query(sqlLog); for (HashMap list : lists) { QcmJudgeOperateLog qjog = new QcmJudgeOperateLog(); qjog.setOperate_name(UserName); qjog.setBatchno(list.get("BATCH_NO") == null ?"":list.get("BATCH_NO").toString()); qjog.setOperate_type("撤销预测抽样检验委托"); qjog.setParams(list.get("MATERIAL_NO") == null ?"":list.get("MATERIAL_NO").toString()); qjog.setProd_line(list.get("PLINE_CODE") == null ?"":list.get("PLINE_CODE").toString()); qjog.setMemo(list.get("SPECIMEN_NO") == null ?"":list.get("SPECIMEN_NO").toString()); mapper.insertQcmJudgeOperateLog(qjog); } SqlSession.commit(); }catch (Exception e) { e.printStackTrace(); SqlSession.rollback(); cro.setV_errCode(-1); cro.setV_errMsg("撤销预测抽样委托失败,请联系管理员查看问题!"); return cro; }finally { SqlSession.close(); } cro.setV_errCode(1); cro.setV_errMsg("撤销预测抽样发送成功"); return cro; } /** * 发送序号 * @param pline_code * @return */ private String createSendSeq(String pline_code) { // TODO Auto-generated method stub String SendSeq=""; String plineCode=pline_code.substring(0, 1); SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd"); String syh = plineCode +sdf.format(new Date()); StringBuffer sqlucomm = new StringBuffer(); if(pline_code.equals("HB1") || pline_code.equals("ZB1")){ sqlucomm.append("SELECT max(to_number(substr(T.SEND_SEQ, 8))) SEND_SEQ FROM QCM_JHY_SAMPLE_CONSIGN_D T WHERE T.SEND_SEQ like '"+syh+"%' "); }else{ sqlucomm.append("SELECT max(to_number(substr(T.SEND_SEQ, 8))) SEND_SEQ FROM QCM_JHY_SAMPLE_CONSIGN_D T WHERE T.SEND_SEQ like '"+syh+"%' AND T.PLINE_CODE = '"+pline_code+"'"); } HashMap result=mapper.queryOne(sqlucomm.toString()); BigDecimal seq=BigDecimal.ZERO; if (result!=null && result.get("SEND_SEQ")!=null ) { seq=(BigDecimal)result.get("SEND_SEQ"); } seq=seq.add(BigDecimal.ONE); SendSeq=syh+ String.format("%04d", seq.intValue()); return SendSeq; } /** * 发送序号 * @param pline_code * @return */ private String createSendSeq2(String pline_code,String ptime) { // TODO Auto-generated method stub String SendSeq=""; String plineCode=pline_code.substring(0, 1); SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd"); String syh = plineCode +sdf.format(new Date())+ptime; StringBuffer sqlucomm = new StringBuffer(); if(pline_code.equals("HB1") || pline_code.equals("ZB1")){ sqlucomm.append("SELECT max(to_number(substr(T.SEND_SEQ, 12))) SEND_SEQ FROM QCM_JHY_SAMPLE_CONSIGN_D T WHERE T.SEND_SEQ like '"+syh+"%' "); }else{ sqlucomm.append("SELECT max(to_number(substr(T.SEND_SEQ, 8))) SEND_SEQ FROM QCM_JHY_SAMPLE_CONSIGN_D T WHERE T.SEND_SEQ like '"+syh+"%' AND T.PLINE_CODE = '"+pline_code+"'"); } HashMap result=mapper.queryOne(sqlucomm.toString()); BigDecimal seq=BigDecimal.ZERO; if (result!=null && result.get("SEND_SEQ")!=null ) { seq=(BigDecimal)result.get("SEND_SEQ"); } seq=seq.add(BigDecimal.ONE); SendSeq=syh+ String.format("%04d", seq.intValue()); return SendSeq; } /** * 船检编号 * @param pline_code * @return */ private String createPintSeqJ(String pline_code,String cert_inst_code) { // TODO Auto-generated method stub String SendSeq=""; String plineCode=pline_code.substring(0, 1); SimpleDateFormat sdf = new SimpleDateFormat("yyMM"); String syh = plineCode +sdf.format(new Date()); String instCode = ""; if(cert_inst_code.equals("IC005")){ instCode = "ABS*"; }else if(cert_inst_code.equals("IC009")){ instCode = "LR*"; }else if(cert_inst_code.equals("IC006")){ instCode = "NK*"; }else if(cert_inst_code.equals("IC007")){ instCode = "RINA*"; }else if(cert_inst_code.equals("IC002")){ instCode = "RS*"; }else if(cert_inst_code.equals("IC001")){ instCode = "DNV*"; }else if(cert_inst_code.equals("IC008")){ instCode = "IRS*"; } syh += instCode; StringBuffer sqlucomm = new StringBuffer(); sqlucomm.append("SELECT max(to_number(substr(T.PRINT_SEQJ, -4))) PRINT_SEQJ FROM QCM_JHY_SAMPLE_CONSIGN_D T WHERE T.PRINT_SEQJ like '"+syh+"%' AND T.PRINT_SEQJ IS NOT NULL "); HashMap result=mapper.queryOne(sqlucomm.toString()); BigDecimal seq=BigDecimal.ZERO; if (result!=null && result.get("PRINT_SEQJ")!=null ) { seq=(BigDecimal)result.get("PRINT_SEQJ"); } seq=seq.add(BigDecimal.ONE); SendSeq=syh+ String.format("%04d", seq.intValue()); return SendSeq; } /** * 船检编号 * @param pline_code * @return */ private String createPintSeqJ2(String pline_code,String cert_inst_code) { // TODO Auto-generated method stub String SendSeq=""; //String plineCode=pline_code.substring(0, 1); //SimpleDateFormat sdf = new SimpleDateFormat("yyMM"); //String syh = plineCode +sdf.format(new Date()); String syh =""; String instCode = ""; if(cert_inst_code.equals("IC005")){ instCode = "AB";//美国船级社 }else if(cert_inst_code.equals("IC009")){ instCode = "LR";//英国船级社 }else if(cert_inst_code.equals("IC006")){ instCode = "K";//日本船级社 }else if(cert_inst_code.equals("IC007")){ instCode = "RI";//意大利船级社 }else if(cert_inst_code.equals("IC002")){ instCode = "PC";//俄罗斯 } syh = instCode; StringBuffer sqlucomm = new StringBuffer(); sqlucomm.append("SELECT max(to_number(substr(T.PRINT_SEQJ, -4))) PRINT_SEQJ FROM QCM_JHY_SAMPLE_CONSIGN_D T WHERE T.PRINT_SEQJ like '"+syh+"%' " + " AND T.PRINT_SEQJ IS NOT NULL AND T.PRINT_SEQJLOT IS NULL and t.pline_code in ('ZB1','HB1') "); HashMap result=mapper.queryOne(sqlucomm.toString()); BigDecimal seq=BigDecimal.ZERO; if (result!=null && result.get("PRINT_SEQJ")!=null ) { seq=(BigDecimal)result.get("PRINT_SEQJ"); } seq=seq.add(BigDecimal.ONE); SendSeq=syh+ String.format("%04d", seq.intValue()); return SendSeq; } /** * 自动激光切割系统接口开关 * @param pline_code * @return */ private String QcmJhyJgKg(String pline_code) { String sql="select t.* from QCM_JHY_JG_KG t where t.pline_code = '"+pline_code+"' and rownum=1"; HashMap result=mapper.queryOne(sql.toString()); if (result==null || result.size()<=0) { return "0"; } return result.get("KG").toString(); } /** * 发送Http Post请求 全自动激光切割加工中心系统*/ public static void httpURLPOSTLaserCenter(String methodUrl,String data,String plineCode) { HttpURLConnection connection = null; PrintWriter pw = null; BufferedReader reader = null; String line = ""; StringBuilder result = new StringBuilder(); try { URL url = new URL(methodUrl); data= URLEncoder.encode(data,"UTF-8") ; connection = (HttpURLConnection)url.openConnection();// 根据URL生成HttpURLConnection connection.setDoOutput(true);// 设置是否向connection输出,因为这个是post请求,参数要放在http正文内,因此需要设为true,默认情况下是false connection.setDoInput(true); // 设置是否从connection读入,默认情况下是true; connection.setRequestMethod("POST");// 设置请求方式为post,默认GET请求 connection.setUseCaches(false);// post请求不能使用缓存设为false connection.setConnectTimeout(10000);// 连接主机的超时时间 connection.setReadTimeout(10000);// 从主机读取数据的超时时间 connection.setInstanceFollowRedirects(true);// 设置该HttpURLConnection实例是否自动执行重定向 connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive");// 连接复用 connection.setRequestProperty("charset", "utf-8"); connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); connection.connect();// 建立TCP连接,getOutputStream会隐含的进行connect,所以此处可以不要 pw = new PrintWriter(connection.getOutputStream());// 创建输入输出流,用于往连接里面输出携带的参数 pw.write("data="+data);//json数据 pw.flush(); pw.close(); if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));// 发送http请求 // 循环读取流 while (null != (line = reader.readLine())) { result.append(line); } reader.close(); } } catch (IOException e) { /* e.printStackTrace(); try { throw new Exception("发送全自动激光切割加工中心系统失败,具体原因为["+e.getMessage()+"]"); } catch (Exception e1) { e1.printStackTrace(); }*/ } finally { connection.disconnect(); } String kkk=result.toString(); System.out.println("全自动激光切割加工中心系统-----"+kkk); } /** * 补发激光接口 * @return cro * @throws IOException */ @SuppressWarnings("unchecked") public CoreReturnObject SendJG(String Entrust,String sendId,String sendName,HashMap parmas){ try { String h_PLINE_CODE=parmas.get("PLINE_CODE").toString(); String LCplineCode="LC";//全自动激光切割加工中心系统 StringBuffer sqlucomm = new StringBuffer(); String[] ja=Entrust.split(","); String msInfo=""; if (ja!=null && ja.length>0) { for (int i = 0; i < ja.length; i++) { String sp = ja[i]; if ("".equals(msInfo)) { msInfo="'"+sp+"'"; }else{ msInfo=msInfo+"'"+sp+"'"; } if (i !=ja.length-1) { msInfo=msInfo+","; } } } //查询检验 if(sendId.equals("JG")){ if(h_PLINE_CODE.equals("ZHB")){ sqlucomm.append("SELECT d.SMP_NO,d.ZHB_SPECIMEN_NO SPECIMEN_NO,d.HEAT_NO,d.BATCH_NO,d.INSPECTION_LOT,d.FREQ_CODE,d.FREQ_NAME,d.SEND_ID,d.SEND_NAME,nvl(d.PLINE_CODE_LIMS,' ') PLINE_CODE_LIMS," + " d.MATERIAL_NO,d.SEND_MEMO,d.SMP_TYPE_CODE,d.SMP_TYPE_NAME,d.CONSIGN_NO,d.CONSIGN_NO_SEQ,d.TEST_QTY,d.SMP_QTY," + " d.SMP_LOCATION,d.SMP_LOCATION_CODE,d.BOARD_NO,d.QUOTE_CONSIGN_NO,d.OLD_CONSIGN_NO,d.PLINE_CODE,d.PLINE_NAME,d.CHEM_ITEM," + " d.SOURCE,d.PRODUCT_CNT,d.MEMO, o.STEEL_CODE,o.STEEL_NAME ,o.THICK,o.WIDTH ,o.LENGTH ,o.DESIGN_KEY,m.CERT_INST_CODE,m.CERT_INST_NAME," + " m.SMP_CATG,nvl(d.PROCESS_NOS,'null') PROCESS_NOS,nvl(d.SHOULD_SAMPLE,'非预测') SHOULD_SAMPLE,nvl(d.SEND_SEQ,'null') SEND_SEQ, " + " nvl(d.PRINT_SEQ,'null') PRINT_SEQ,nvl(d.PRINT_SEQJ,'null') PRINT_SEQJ, d.CONSIGN_NO,d.CONSIGN_NO_SEQ,nvl(d.SAMPLE_DELIVERY_TIME,'null') SAMPLE_DELIVERY_TIME " + " FROM QCM_JHY_SAMPLE_CONSIGN_D d INNER JOIN QCM_JHY_SAMPLE_CONSIGN_M m " + " ON d.SMP_NO=m.SMP_NO INNER JOIN QCM_JHY_SAMPLE_R_ORD O ON d.SMP_NO = o.SMP_NO " + " where d.ZHB_SPECIMEN_NO in ("+msInfo+") and d.VALIDFLAG='1' and d.STATUS !='0' and d.SAMPLE_DELIVERY_TIME is not null and rownum <=1 "); }else{ sqlucomm.append("SELECT d.SMP_NO,d.SPECIMEN_NO,d.HEAT_NO,d.BATCH_NO,d.INSPECTION_LOT,d.FREQ_CODE,d.FREQ_NAME,d.SEND_ID,d.SEND_NAME,nvl(d.PLINE_CODE_LIMS,' ') PLINE_CODE_LIMS," + " d.MATERIAL_NO,d.SEND_MEMO,d.SMP_TYPE_CODE,d.SMP_TYPE_NAME,d.CONSIGN_NO,d.CONSIGN_NO_SEQ,d.TEST_QTY,d.SMP_QTY," + " d.SMP_LOCATION,d.SMP_LOCATION_CODE,d.BOARD_NO,d.QUOTE_CONSIGN_NO,d.OLD_CONSIGN_NO,d.PLINE_CODE,d.PLINE_NAME,d.CHEM_ITEM," + " d.SOURCE,d.PRODUCT_CNT,d.MEMO, o.STEEL_CODE,o.STEEL_NAME ,o.THICK,o.WIDTH ,o.LENGTH ,o.DESIGN_KEY,m.CERT_INST_CODE,m.CERT_INST_NAME," + " m.SMP_CATG,nvl(d.PROCESS_NOS,'null') PROCESS_NOS,nvl(d.SHOULD_SAMPLE,'非预测') SHOULD_SAMPLE,nvl(d.SEND_SEQ,'null') SEND_SEQ, " + " nvl(d.PRINT_SEQ,'null') PRINT_SEQ,nvl(d.PRINT_SEQJ,'null') PRINT_SEQJ, d.CONSIGN_NO,d.CONSIGN_NO_SEQ,nvl(d.SAMPLE_DELIVERY_TIME,'null') SAMPLE_DELIVERY_TIME " + " FROM QCM_JHY_SAMPLE_CONSIGN_D d INNER JOIN QCM_JHY_SAMPLE_CONSIGN_M m " + " ON d.SMP_NO=m.SMP_NO INNER JOIN QCM_JHY_SAMPLE_R_ORD O ON d.SMP_NO = o.SMP_NO " + " where d.SPECIMEN_NO in ("+msInfo+") and d.VALIDFLAG='1' and d.STATUS !='0' and d.STATUS !='6' "); } }else{ sqlucomm.append("SELECT d.SMP_NO,d.SPECIMEN_NO,d.HEAT_NO,d.BATCH_NO,d.INSPECTION_LOT,d.FREQ_CODE,d.FREQ_NAME," + " d.MATERIAL_NO,d.SEND_MEMO,d.SMP_TYPE_CODE,d.SMP_TYPE_NAME,d.CONSIGN_NO,d.CONSIGN_NO_SEQ,d.TEST_QTY,d.SMP_QTY," + " d.SMP_LOCATION,d.SMP_LOCATION_CODE,d.BOARD_NO,d.QUOTE_CONSIGN_NO,d.OLD_CONSIGN_NO,d.PLINE_CODE,d.PLINE_NAME,d.CHEM_ITEM," + " d.SOURCE,d.PRODUCT_CNT,d.MEMO, o.STEEL_CODE,o.STEEL_NAME ,o.THICK,o.WIDTH ,o.LENGTH ,o.DESIGN_KEY,m.CERT_INST_CODE,m.CERT_INST_NAME," + " m.SMP_CATG,nvl(d.PROCESS_NOS,'null') PROCESS_NOS,nvl(d.SHOULD_SAMPLE,'非预测') SHOULD_SAMPLE,nvl(d.SEND_SEQ,'null') SEND_SEQ, " + " nvl(d.PRINT_SEQ,'null') PRINT_SEQ,nvl(d.PRINT_SEQJ,'null') PRINT_SEQJ, d.CONSIGN_NO,d.CONSIGN_NO_SEQ,nvl(d.SAMPLE_DELIVERY_TIME,'null') SAMPLE_DELIVERY_TIME " + " FROM QCM_JHY_SAMPLE_CONSIGN_D d INNER JOIN QCM_JHY_SAMPLE_CONSIGN_M m " + " ON d.SMP_NO=m.SMP_NO INNER JOIN QCM_JHY_SAMPLE_R_ORD O ON d.SMP_NO = o.SMP_NO " + " where d.SPECIMEN_NO in ("+msInfo+") and d.VALIDFLAG='1' "); } List lists=mapper.query(sqlucomm.toString()); if (lists==null || lists.size()<1) { cro.setV_errCode(-1); cro.setV_errMsg("待发送的检验委托数据已经不存在,请核实数据!"); return cro; } String tresteelCode = "";//合并牌号 if(h_PLINE_CODE.equals("ZHB")){ String sqlZHB= "select r.STEEL_CODE from qcm_jhy_sample_consign_d t,qcm_jhy_sample_r_ord r " +" where t.smp_no = r.smp_no and t.Zhb_Specimen_No in ("+msInfo+") " +" GROUP BY r.steel_code order by r.steel_code"; List listsZHB=mapper.query(sqlZHB.toString()); if(listsZHB!=null && listsZHB.size()>=1){ for (int i = 0; i < listsZHB.size(); i++) { HashMap obj=listsZHB.get(i); String strSteelCode =(String)obj.get("STEEL_CODE"); if(StringUtils.isBlank(tresteelCode)){//是否为空牌号 tresteelCode = strSteelCode; }else{ tresteelCode = tresteelCode +","+strSteelCode; } } }else{ cro.setV_errCode(-1); cro.setV_errMsg("待发送的检验委托数据已经不存在,请核实数据!"); return cro; } } JSONArray tarDate=new JSONArray(); JSONArray LCtarDate=new JSONArray();//全自动激光切割加工中心系统 Date date=new Date(); SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString=simpleDateFormat.format(date); for (int i = 0; i < lists.size(); i++) { HashMap obj=lists.get(i); if(sendId.equals("JG")){ obj.put("SEND_ID", obj.get("SEND_ID").toString()); obj.put("SEND_NAME", obj.get("SEND_NAME").toString()); }else{ obj.put("SEND_ID", sendId); obj.put("SEND_NAME", sendName); } obj.put("CONSIGN_NO", obj.get("CONSIGN_NO").toString()); obj.put("CONSIGN_NO_SEQ", obj.get("CONSIGN_NO_SEQ").toString()); obj.put("SEND_TIME", dateString); LCplineCode=obj.get("PLINE_CODE").toString();//全自动激光切割加工中心系统 JSONObject smpleD = JSONObject.parseObject(JSON.toJSONString(obj)); //目标json JSONObject tarObj=new JSONObject(); //主表数据 createTarObj(tarObj,smpleD); tarObj.put("printSeq", obj.get("PRINT_SEQ").toString());//打印序号 tarObj.put("PRINTSEQJ", obj.get("PRINT_SEQJ").toString());//船检编号 tarObj.put("sendSeq", obj.get("SEND_SEQ").toString());//发送序号 tarObj.put("CREATE_ID", sendId); tarObj.put("CREATE_NAME", sendName); tarObj.put("sampleDeliveryTime", obj.get("SAMPLE_DELIVERY_TIME").toString());//送样时间点 tarObj.put("cretInstCode", obj.get("CERT_INST_CODE")); tarObj.put("cretInstName", obj.get("CERT_INST_NAME")); if(h_PLINE_CODE.equals("ZHB")){ tarObj.put("steelCode",tresteelCode);//牌号合并 tarObj.put("steelName",tresteelCode);//牌号合并 } if(obj.get("PLINE_CODE").equals("ZB1") || obj.get("PLINE_CODE").equals("HB1")){ tarObj.put("heatTreatment", obj.get("PROCESS_NOS")); //传给lims的成分标识 String sql ="select t.* from QCM_JHY_SAMPLE_CONSIGN_D t,QCM_JHY_SAMPLE_CONSIGN_M m " +" where t.smp_no = m.smp_no and m.SMP_CATG = 'A' and t.batch_no = '"+smpleD.getString("BATCH_NO")+"' "; List componentLog=mapper.query(sql.toString()); if(componentLog!=null && componentLog.size()>=1){ tarObj.put("componentLog", '1');//1代表有成分 }else{ tarObj.put("componentLog", '0');//0代表无成分 } } if ("5000".equals(obj.get("CERT_INST_CODE")) || "IC012".equals(obj.get("CERT_INST_CODE")) ) { tarObj.put("type", "0"); }else{ tarObj.put("type", "1"); } if ("B".equals(obj.get("SMP_CATG"))) { //材质 sqlucomm.setLength(0); if(h_PLINE_CODE.equals("ZHB")){ sqlucomm.append("select T.SPECIMEN_NO,T.SEQ,T.PHY_NAME_L,T.PHY_CODE_L,T.PHY_CODE_M,T.PHY_NAME_M,T.PHY_CODE_S," + "T.PHY_NAME_S,T.ITEM_CODE_D,T.ITEM_NAME_D,T.ITEM_CODE_T,T.ITEM_NAME_T,T.ITEM_CODE_S,T.ITEM_NAME_S," + "T.ISJUDGE,T.JUDGE_BASIS,T.PHY_UNIT,T.GROUP_SEQ,T.QUOTE_SPECIMEN_NO,T.MEMO,T.ITEM_CODE_L," + " T.ITEM_DESC_L,T.TEST_QTY,T.SMP_QTY,T.SPECL_FL,T.STDMIN_SIGN,T.STDMIN,T.STDMAX_SIGN,T.STDMAX, " + " T.STDMEMO from QCM_JHY_ZHB_PHYSICS T WHERE T.SPECIMEN_NO='"+Entrust+"' "); }else{ sqlucomm.append("select T.SPECIMEN_NO,T.SEQ,T.SMP_NO,T.PHY_NAME_L,T.PHY_CODE_L,T.PHY_CODE_M,T.PHY_NAME_M,T.PHY_CODE_S," + "T.PHY_NAME_S,T.ITEM_CODE_D,T.ITEM_NAME_D,T.ITEM_CODE_T,T.ITEM_NAME_T,T.ITEM_CODE_S,T.ITEM_NAME_S," + "T.ISJUDGE,T.JUDGE_BASIS,T.PHY_UNIT,T.GROUP_SEQ,T.QUOTE_SPECIMEN_NO,T.QUOTE_SEQ,T.MEMO,T.ITEM_CODE_L," + " T.ITEM_DESC_L,T.TEST_QTY,T.SMP_QTY,T.CREATE_TIME,T.CREATE_ID,T.CREATE_NAME,T.SPECL_FL, " + "T.STDMIN_SIGN,T.STDMIN,T.STDMAX_SIGN,T.STDMAX,t.STDMEMO from QCM_JHY_SAMPLE_CONSIGN_D_ITEM T" + " WHERE T.SPECIMEN_NO='"+obj.get("SPECIMEN_NO")+"' and (T.QUOTE_SPECIMEN_NO is null or T.QUOTE_SPECIMEN_NO='') and t.Fy_Quote_Specimen_No is null and t.QUOTE_MEMO is null "); } List items=mapper.query(sqlucomm.toString()); if (items!=null && items.size()>0) { JSONArray arrayItem=new JSONArray(); for(int j = 0 ;j < items.size() ; j++){ JSONObject oldItem =JSONObject.parseObject(JSON.toJSONString(items.get(j))) ; JSONObject tarItem=new JSONObject(); //子表数据 createItem(tarItem,oldItem); if(oldItem.getString("PHY_NAME_M").equals("现场洛氏硬度HRC")){ tarItem.put("tsFlag", "1");//探伤 }else{ tarItem.put("tsFlag", "0");//非探伤 } arrayItem.add(tarItem); } tarObj.put("items", arrayItem); } }else{ //成分 JSONObject chemItem=JSON.parseObject((String)obj.get("CHEM_ITEM")); tarObj.putAll(chemItem); } tarDate.add(tarObj); //全自动激光切割加工中心系统 if(LCplineCode.equals("HB1")){ String lcThick = obj.get("THICK").toString(); double lcThick2 = Double.parseDouble(lcThick); if(lcThick2<=25){ LCtarDate.add(tarObj); } }else if(LCplineCode.equals("ZB1") || LCplineCode.equals("RZ1")){ LCtarDate.add(tarObj); } } logger.info(new Date().toString()+"--补发激光jon数组--"+tarDate.toJSONString()+"\n"); String tar=tarDate.toString(); String result = ""; //全自动激光切割加工中心系统 if(LCtarDate.size()>=1){ //开关状态 String jgkg=QcmJhyJgKg(LCplineCode); if("1".equals(jgkg)){ String LCurlStr = "http://172.16.0.169:82/Limsinterface/http/Tgcut"; String LCtar=LCtarDate.toString(); result = httpURLPOSTLaserCenter2(LCurlStr,LCtar,LCplineCode); logger.info(new Date().toString()+"--激光返回--"+result+"\n"); } } if ( result == null || result.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("补发激光委托失败!返回值:"+result); System.out.println("定时全自动激光切割加工中心系统失败-----"+result); SqlSession.rollback(); return cro; } JSONObject jobject=JSON.parseObject(result); String limsCode=jobject.getString("code"); String limsMessage=jobject.getString("message"); if(!limsCode.equals("200")){ cro.setV_errCode(-1); cro.setV_errMsg("补发激光委托失败!"+result); System.out.println("定时全自动激光切割加工中心系统失败-----"+result); SqlSession.rollback(); return cro; } for (HashMap list : lists) { QcmJudgeOperateLog qjog = new QcmJudgeOperateLog(); qjog.setOperate_name(sendName); qjog.setBatchno(list.get("BATCH_NO") == null ?"":list.get("BATCH_NO").toString()); qjog.setOperate_type("补发激光委托"); qjog.setParams(list.get("MATERIAL_NO") == null ?"":list.get("MATERIAL_NO").toString()); qjog.setProd_line(list.get("PLINE_CODE") == null ?"":list.get("PLINE_CODE").toString()); qjog.setMemo(list.get("SPECIMEN_NO").toString()); mapper.insertQcmJudgeOperateLog(qjog); } if(sendId.equals("JG")){ String sqlup="update qcm_jhy_sample_consign_jg set yn = 'N',success_memo = '"+result+"' where SPECIMEN_NO= '"+Entrust+"' and YN='Y' "; mapper.updateJudgeStatus(sqlup.toString()); } SqlSession.commit(); } catch (Exception e) { e.printStackTrace(); SqlSession.rollback(); cro.setV_errCode(-1); cro.setV_errMsg("补发激光委托失败!"+e.getMessage()); System.out.println("定时全自动激光切割加工中心系统失败-----"+e.getMessage()); return cro; }finally { SqlSession.close(); } cro.setV_errCode(1); cro.setV_errMsg("补发激光委托成功"); return cro; } /** * 发送Http Post请求 全自动激光切割加工中心系统补发*/ public static String httpURLPOSTLaserCenter2(String methodUrl,String data,String plineCode) { HttpURLConnection connection = null; PrintWriter pw = null; BufferedReader reader = null; String line = ""; StringBuilder result = new StringBuilder(); try { URL url = new URL(methodUrl); data= URLEncoder.encode(data,"UTF-8") ; connection = (HttpURLConnection)url.openConnection();// 根据URL生成HttpURLConnection connection.setDoOutput(true);// 设置是否向connection输出,因为这个是post请求,参数要放在http正文内,因此需要设为true,默认情况下是false connection.setDoInput(true); // 设置是否从connection读入,默认情况下是true; connection.setRequestMethod("POST");// 设置请求方式为post,默认GET请求 connection.setUseCaches(false);// post请求不能使用缓存设为false connection.setConnectTimeout(10000);// 连接主机的超时时间 connection.setReadTimeout(10000);// 从主机读取数据的超时时间 connection.setInstanceFollowRedirects(true);// 设置该HttpURLConnection实例是否自动执行重定向 connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive");// 连接复用 connection.setRequestProperty("charset", "utf-8"); connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); connection.connect();// 建立TCP连接,getOutputStream会隐含的进行connect,所以此处可以不要 pw = new PrintWriter(connection.getOutputStream());// 创建输入输出流,用于往连接里面输出携带的参数 pw.write("data="+data);//json数据 pw.flush(); pw.close(); if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));// 发送http请求 // 循环读取流 while (null != (line = reader.readLine())) { result.append(line); } reader.close(); } } catch (IOException e) { e.printStackTrace(); try { throw new Exception("发送全自动激光切割加工中心系统失败,具体原因为["+e.getMessage()+"]"); } catch (Exception e1) { e1.printStackTrace(); } } finally { connection.disconnect(); } String kkk=result.toString(); System.out.println("全自动激光切割加工中心系统-----"+kkk); return result.toString(); } /** * 生成钢印号 * @return cro * @throws IOException */ @SuppressWarnings("unchecked") public CoreReturnObject GetGenerateSteel(String Entrust,HashMap parmas){ try { String LCplineCode="LC";//全自动激光切割加工中心系统 String[] ja=Entrust.split(","); String msInfo=""; if (ja!=null && ja.length>0) { for (int i = 0; i < ja.length; i++) { String sp = ja[i]; if ("".equals(msInfo)) { msInfo="'"+sp+"'"; }else{ msInfo=msInfo+"'"+sp+"'"; } if (i !=ja.length-1) { msInfo=msInfo+","; } } } //查询检验 String sql="select t.specimen_no,t.batch_no,nvl(t.zhb_specimen_no,' ') zhb_specimen_no,t.material_no,r.thick,t.pline_code,t.Pline_Code_Lims, " + " r.Cert_Inst_Code,t.SAMPLE_DELIVERY_TIME from qcm_jhy_sample_consign_d t,qcm_jhy_sample_r_ord r " +" where t.smp_no = r.smp_no and (t.specimen_no in ("+msInfo+") or t.zhb_specimen_no in ("+msInfo+")) " +" and t.Print_Seq is null and t.Pline_Code_Lims is not null and t.SAMPLE_DELIVERY_TIME is not null " +" order by t.SAMPLE_DELIVERY_TIME asc,r.steel_code asc,t.MATERIAL_NO asc "; List lists=mapper.query(sql.toString()); if (lists==null || lists.size()<1) { cro.setV_errCode(-1); cro.setV_errMsg("数据已经不存在,请核实数据!"); return cro; } TreeSet strcic = new TreeSet();//认证机构 TreeSet strsdt = new TreeSet();//送样时间点 for (int i = 0; i < lists.size(); i++) { HashMap obj=lists.get(i); strcic.add(obj.get("CERT_INST_CODE").toString()); strsdt.add(obj.get("SAMPLE_DELIVERY_TIME").toString()); } /* if(strcic.size()>=2){ cro.setV_errCode(-1); cro.setV_errMsg("只能选择同一个认证机构生成编号!请核实数据!"); return cro; }*/ if(strsdt.size()>=2){ cro.setV_errCode(-1); cro.setV_errMsg("只能选择同一送样时间点!请核实数据!"); return cro; } JSONArray tarDate=new JSONArray();//LIMS JSONArray LCtarDate=new JSONArray();//全自动激光切割加工中心系统 TreeSet strsno = new TreeSet();//取样编号 for (int i = 0; i < lists.size(); i++) { HashMap obj=lists.get(i); LCplineCode=obj.get("PLINE_CODE").toString();//全自动激光切割加工中心系统 String plineCodeLims=obj.get("PLINE_CODE_LIMS").toString();//送样产线 String zhb_specimen_no="";//合并取样编号 if(!StringUtils.isBlank(obj.get("ZHB_SPECIMEN_NO").toString())){ zhb_specimen_no = obj.get("ZHB_SPECIMEN_NO").toString(); } String specimen_no=obj.get("SPECIMEN_NO").toString();//取样编号 //目标json JSONObject tarObj=new JSONObject(); if(!StringUtils.isBlank(zhb_specimen_no)){//是否是合并的 String strno="0"; for (String string : strsno) { if(string.equals(zhb_specimen_no)){ strno="1"; } } if(strno.equals("1")){ continue; } strsno.add(zhb_specimen_no); tarObj.put("SPECIMENNO", zhb_specimen_no);//合并取样编号 }else{ tarObj.put("SPECIMENNO", specimen_no);//取样编号 } //送样时间点 String ptime = ""; String STIME=obj.get("SAMPLE_DELIVERY_TIME").toString(); if(STIME.contains("03:00:00")){ ptime = "0300"; }else if (STIME.contains("06:00:00")){ ptime = "0600"; }else if (STIME.contains("06:30:00") || STIME.contains("10:30:00")){ ptime = "0610"; }else if (STIME.contains("11:00:00")){ ptime = "1100"; }else if (STIME.contains("15:00:00")){ ptime = "1500"; }else if (STIME.contains("17:30:00") || STIME.contains("20:30:00")){ ptime = "1720"; }else if (STIME.contains("18:00:00")){ ptime = "1800"; }else if (STIME.contains("21:00:00")){ ptime = "2100"; }else if (STIME.contains("24:00:00")){ ptime = "2400"; } //流水号 String sendSeq=createSendSeq2(plineCodeLims,ptime); String sendQ="select substr('"+sendSeq+"', 13) PRINT_SEQ from dual t "; List hmsendQ=mapper.query(sendQ.toString()); String PRINT_SEQ=hmsendQ.get(0).get("PRINT_SEQ").toString();//打印序号 if(plineCodeLims.equals("ZB1")){ tarObj.put("PRINTSEQ", 'Z'+PRINT_SEQ);//打印序号 PRINT_SEQ='Z'+PRINT_SEQ; }else if(plineCodeLims.equals("HB1")){ tarObj.put("PRINTSEQ", 'H'+PRINT_SEQ);//打印序号 PRINT_SEQ='H'+PRINT_SEQ; } //船检编号 String printseqj = ""; String plineCodeJ=plineCodeLims; String certInstCodeJ = obj.get("CERT_INST_CODE").toString(); if(certInstCodeJ.equals("IC005") || certInstCodeJ.equals("IC009") || certInstCodeJ.equals("IC006") || certInstCodeJ.equals("IC007") || certInstCodeJ.equals("IC002")){ printseqj = createPintSeqJ2(plineCodeJ,certInstCodeJ); //String printseqj2=printseqj.substring(4, printseqj.length()); tarObj.put("PRINTSEQJ", printseqj);//船检编号 }else{ tarObj.put("PRINTSEQJ", "");//船检编号 } String specimenNosql=" and SPECIMEN_NO = '"+obj.get("SPECIMEN_NO")+"' "; if(!StringUtils.isBlank(zhb_specimen_no)){ specimenNosql =" and ZHB_SPECIMEN_NO = '"+zhb_specimen_no+"' "; } String qcmSendSeq =" update QCM_JHY_SAMPLE_CONSIGN_D t set SEND_SEQ = '"+sendSeq+"',PRINT_SEQ='"+PRINT_SEQ+"',PRINT_SEQJ='"+printseqj+"' " + " where PLINE_CODE = '"+obj.get("PLINE_CODE")+"' " + specimenNosql; mapper.updateJudgeStatus(qcmSendSeq.toString()); //主表数据 tarObj.put("SENDSEQ", sendSeq);//发送序号 tarObj.put("CREATEID", parmas.get("USERID")); tarObj.put("CREATENAME", parmas.get("USERNAME")); tarDate.add(tarObj); //全自动激光切割加工中心系统 if(LCplineCode.equals("HB1")){ String lcThick = obj.get("THICK").toString(); double lcThick2 = Double.parseDouble(lcThick); if(lcThick2<=25){ LCtarDate.add(tarObj); } }else if(LCplineCode.equals("ZB1") || LCplineCode.equals("RZ1")){ LCtarDate.add(tarObj); } QcmJudgeOperateLog qjog = new QcmJudgeOperateLog(); qjog.setOperate_name(parmas.get("USERNAME").toString()); qjog.setBatchno(obj.get("BATCH_NO") == null ?"":obj.get("BATCH_NO").toString()); qjog.setOperate_type("生成钢印号"); qjog.setParams(obj.get("MATERIAL_NO") == null ?"":obj.get("MATERIAL_NO").toString()); qjog.setProd_line(obj.get("PLINE_CODE") == null ?"":obj.get("PLINE_CODE").toString()); qjog.setMemo(obj.get("SPECIMEN_NO").toString()+":"+sendSeq+":"+PRINT_SEQ+":"+printseqj); mapper.insertQcmJudgeOperateLog(qjog); } SqlSession.commit(); /* String tar=tarDate.toString(); System.out.println("LIMS"+tarDate.toString()+"\n"); System.out.println("激光"+LCtarDate.toString()); String result = ""; try{ String urlStr=""; result = httpURLPOSTCaseNew(urlStr,tar);//调用url if (result == null ||result.equals("null") || result.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("发送LIMS/激光系统编号失败!请补发,LIMS返回值:"+result); return cro; } JSONObject jobject=JSON.parseObject(result); String limsCode=jobject.getString("code"); if(!limsCode.equals("200")){ cro.setV_errCode(-1); cro.setV_errMsg("发送LIMS/激光系统编号失败!请补发,LIMS返回值:"+result); return cro; } //全自动激光切割加工中心系统 result = ""; if(LCtarDate.size()>=1){ //开关状态 String jgkg=QcmJhyJgKg(LCplineCode); if("1".equals(jgkg)){ String LCurlStr = ""; String LCtar=LCtarDate.toString(); result = httpURLPOSTLaserCenter2(LCurlStr,LCtar,LCplineCode); } if ( result == null || result.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("发送激光编号返回失败!请补发,返回值:"+result); return cro; } JSONObject jobject2=JSON.parseObject(result); String limsCode2=jobject2.getString("code"); if(!limsCode2.equals("200")){ cro.setV_errCode(-1); cro.setV_errMsg("发送激光编号返回失败!请补发,返回值:"+result); return cro; } } }catch(Exception e){ cro.setV_errCode(-1); cro.setV_errMsg(e.getMessage()); return cro; }*/ } catch (Exception e) { e.printStackTrace(); SqlSession.rollback(); cro.setV_errCode(-1); cro.setV_errMsg("编号生成失败!"+e.getMessage()); return cro; }finally { SqlSession.close(); } cro.setV_errCode(1); cro.setV_errMsg("编号生成成功"); return cro; } /** * 补发钢印号 * @return cro * @throws IOException */ @SuppressWarnings("unchecked") public CoreReturnObject GetDoBLIMS(String Entrust,HashMap parmas){ try { String LCplineCode="LC";//全自动激光切割加工中心系统 String[] ja=Entrust.split(","); String msInfo=""; if (ja!=null && ja.length>0) { for (int i = 0; i < ja.length; i++) { String sp = ja[i]; if ("".equals(msInfo)) { msInfo="'"+sp+"'"; }else{ msInfo=msInfo+"'"+sp+"'"; } if (i !=ja.length-1) { msInfo=msInfo+","; } } } //查询检验 String sql="select t.specimen_no,t.batch_no,nvl(t.zhb_specimen_no,' ') zhb_specimen_no,t.material_no,r.thick,t.pline_code,t.Pline_Code_Lims, " + " r.Cert_Inst_Code,t.SAMPLE_DELIVERY_TIME,t.SEND_SEQ,t.PRINT_SEQ,nvl(t.PRINT_SEQJ,' ') PRINT_SEQJ " + " from qcm_jhy_sample_consign_d t,qcm_jhy_sample_r_ord r " +" where t.smp_no = r.smp_no and (t.specimen_no in ("+msInfo+") or t.zhb_specimen_no in ("+msInfo+")) " +" and t.Print_Seq is not null and t.Pline_Code_Lims is not null " ; List lists=mapper.query(sql.toString()); if (lists==null || lists.size()<1) { cro.setV_errCode(-1); cro.setV_errMsg("数据已经不存在,请核实数据!"); return cro; } JSONArray tarDate=new JSONArray();//LIMS JSONArray LCtarDate=new JSONArray();//全自动激光切割加工中心系统 TreeSet strsno = new TreeSet();//取样编号 for (int i = 0; i < lists.size(); i++) { HashMap obj=lists.get(i); LCplineCode=obj.get("PLINE_CODE").toString();//全自动激光切割加工中心系统 String zhb_specimen_no="";//合并取样编号 if(!StringUtils.isBlank(obj.get("ZHB_SPECIMEN_NO").toString())){ zhb_specimen_no = obj.get("ZHB_SPECIMEN_NO").toString(); } String specimen_no=obj.get("SPECIMEN_NO").toString();//取样编号 //目标json JSONObject tarObj=new JSONObject(); if(!StringUtils.isBlank(zhb_specimen_no)){//是否是合并的 String strno="0"; for (String string : strsno) { if(string.equals(zhb_specimen_no)){ strno="1"; } } if(strno.equals("1")){ continue; } strsno.add(zhb_specimen_no); tarObj.put("SPECIMENNO", zhb_specimen_no);//合并取样编号 }else{ tarObj.put("SPECIMENNO", specimen_no);//取样编号 } tarObj.put("SENDSEQ", obj.get("SEND_SEQ").toString());//发送序号 tarObj.put("PRINTSEQ", obj.get("PRINT_SEQ").toString());//打印序号 if(!StringUtils.isBlank(obj.get("PRINT_SEQJ").toString())){ tarObj.put("PRINTSEQJ", obj.get("PRINT_SEQJ").toString());//船检编号 }else{ tarObj.put("PRINTSEQJ", "");//船检编号 } tarObj.put("CREATEID", parmas.get("USERID")); tarObj.put("CREATENAME", parmas.get("USERNAME")); tarDate.add(tarObj); //全自动激光切割加工中心系统 if(LCplineCode.equals("HB1")){ String lcThick = obj.get("THICK").toString(); double lcThick2 = Double.parseDouble(lcThick); if(lcThick2<=25){ LCtarDate.add(tarObj); } }else if(LCplineCode.equals("ZB1")){ LCtarDate.add(tarObj); } } String tar=tarDate.toString(); String result = ""; try{ if(parmas.get("BLG").equals("1")){ String urlStr=""; result = httpURLPOSTCaseNew(urlStr,tar);//调用url if (result == null ||result.equals("null") || result.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("发LIMS系统失败,LIMS返回值:"+result); return cro; } JSONObject jobject=JSON.parseObject(result); String limsCode=jobject.getString("code"); if(!limsCode.equals("200")){ cro.setV_errCode(-1); cro.setV_errMsg("发LIMS系统失败,LIMS返回值:"+result); return cro; } }else if(parmas.get("BLG").equals("2")){ //全自动激光切割加工中心系统 result = ""; if(LCtarDate.size()>=1){ String LCurlStr = ""; String LCtar=LCtarDate.toString(); result = httpURLPOSTLaserCenter2(LCurlStr,LCtar,LCplineCode); if ( result == null || result.equals("")) { cro.setV_errCode(-1); cro.setV_errMsg("发激光系统失败,返回值:"+result); return cro; } JSONObject jobject2=JSON.parseObject(result); String limsCode2=jobject2.getString("code"); if(!limsCode2.equals("200")){ cro.setV_errCode(-1); cro.setV_errMsg("发激光系统失败,返回值:"+result); return cro; } } } }catch(Exception e){ cro.setV_errCode(-1); cro.setV_errMsg(e.getMessage()); return cro; } SqlSession.commit(); } catch (Exception e) { e.printStackTrace(); SqlSession.rollback(); cro.setV_errCode(-1); cro.setV_errMsg("发送失败!"+e.getMessage()); return cro; }finally { SqlSession.close(); } cro.setV_errCode(1); cro.setV_errMsg("发送成功"); return cro; } //激光中间表 public String qcmJg(HashMap parmas){ String sql =" insert into qcm_jhy_sample_consign_jg (specimen_no, batch_no, pline_code) " +" values ('"+parmas.get("SPECIMEN_NO")+"', '"+parmas.get("BATCH_NO")+"', '"+parmas.get("PLINE_CODE")+"') "; return sql; } }