MESHelperServiceImpl.java 93 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352
  1. package com.uas.eis.serviceImpl;
  2. import com.uas.eis.core.config.SpObserver;
  3. import com.uas.eis.dao.BaseDao;
  4. import com.uas.eis.dao.SqlRowList;
  5. import com.uas.eis.entity.ErrorMessage;
  6. import com.uas.eis.entity.HelperType;
  7. import com.uas.eis.exception.ApiSystemException;
  8. import com.uas.eis.sdk.entity.ApiResult;
  9. import com.uas.eis.service.MESDataService;
  10. import com.uas.eis.service.MESHelperService;
  11. import com.uas.eis.utils.*;
  12. import flexjson.JSON;
  13. import net.sf.json.JSONArray;
  14. import net.sf.json.JSONObject;
  15. import net.sf.json.JsonConfig;
  16. import org.apache.commons.lang.StringUtils;
  17. import org.dom4j.DocumentException;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.beans.factory.annotation.Value;
  20. import org.springframework.boot.jackson.JsonObjectDeserializer;
  21. import org.springframework.stereotype.Service;
  22. import org.springframework.web.bind.annotation.RequestBody;
  23. import org.w3c.dom.Document;
  24. import org.w3c.dom.Element;
  25. import org.w3c.dom.Node;
  26. import org.w3c.dom.NodeList;
  27. import org.xml.sax.SAXException;
  28. import sun.awt.TimedWindowEvent;
  29. import java.io.IOException;
  30. import java.sql.Timestamp;
  31. import java.util.*;
  32. import org.dom4j.DocumentHelper;
  33. import javax.xml.parsers.DocumentBuilder;
  34. import javax.xml.parsers.DocumentBuilderFactory;
  35. import javax.xml.parsers.ParserConfigurationException;
  36. import org.xml.sax.InputSource;
  37. import java.io.StringReader;
  38. @Service
  39. public class MESHelperServiceImpl implements MESHelperService {
  40. @Autowired
  41. private BaseDao baseDao;
  42. @Value("${spring.datasource.username}")
  43. private String username;
  44. @Override
  45. public Map<Object,Object> Radium(String data) {
  46. Map<String, Object> map=null;
  47. Map<Object, Object> rmap = new HashMap<Object, Object>();
  48. String oErrMessage="";
  49. String UserName="";
  50. try{
  51. map =BaseUtil.convertJsonToMap(data);
  52. }catch (Exception e){
  53. System.out.printf(e.getMessage()) ;
  54. }
  55. if(map.get("SN")==null){
  56. rmap.put("code",-1);
  57. rmap.put("message","SN号不能为空");
  58. return rmap;
  59. }
  60. if(map.get("MO")==null){
  61. rmap.put("code",-1);
  62. rmap.put("message","工单号不能为空");
  63. return rmap;
  64. }
  65. if(map.get("SpecificationName")==null){
  66. rmap.put("code",-1);
  67. rmap.put("message","工序不能为空");
  68. return rmap;
  69. }
  70. if(map.get("UserName")==null){
  71. rmap.put("code",-1);
  72. rmap.put("message","用户不能为空");
  73. return rmap;
  74. }
  75. String specificationName=map.get("SpecificationName").toString();
  76. String MO=map.get("MO").toString();
  77. Map<Object,Object> map1=BaseUtil.parseFormStoreToMap(map.get("SN").toString());
  78. for (Map.Entry<Object, Object> entry : map1.entrySet()) {
  79. Object key = entry.getKey();
  80. Object value = entry.getValue();
  81. SqlRowList rs=baseDao.queryForRowSet("select 1 from makesnlist where msl_sncode='"+value.toString().toUpperCase()+"'" +
  82. " and msl_makecode='"+MO+"' and msl_Radium=-1");
  83. if(rs.next()){
  84. oErrMessage+="序列号"+value.toString().toUpperCase()+"已镭雕,";
  85. }else {
  86. baseDao.execute("update makesnlist set msl_Radium=-1 where msl_sncode='"+value.toString().toUpperCase()+"' and " +
  87. "msl_makecode='"+MO+"'");
  88. }
  89. //启用过站
  90. if(baseDao.getFieldDataByCondition("configs","data","caller='MESSetting' and code='Radium'").toString().equals("1")){
  91. oErrMessage+=GoMo(value.toString().toUpperCase(),MO, specificationName);
  92. if(oErrMessage.equals("null")){
  93. oErrMessage="";
  94. }else{
  95. rmap.put("code",-1);
  96. rmap.put("message",oErrMessage);
  97. return rmap;
  98. }
  99. oErrMessage+=CheckRoutePassed(value.toString().toUpperCase(),specificationName);
  100. if(oErrMessage.equals("null")){
  101. oErrMessage="";
  102. }else{
  103. rmap.put("code",-1);
  104. rmap.put("message",oErrMessage);
  105. return rmap;
  106. }
  107. oErrMessage+=SetPcbaData(value.toString().toUpperCase(),specificationName,UserName,"OK");
  108. if(oErrMessage.equals("null")){
  109. oErrMessage="";
  110. }else{
  111. rmap.put("code",-1);
  112. rmap.put("message",oErrMessage);
  113. return rmap;
  114. }
  115. }
  116. }
  117. if(oErrMessage.equals("")||oErrMessage==null){
  118. rmap.put("code",0);
  119. rmap.put("message","镭射识别绑定成功");
  120. return rmap;
  121. }else{
  122. rmap.put("code",-1);
  123. rmap.put("message",oErrMessage);
  124. return rmap;
  125. }
  126. }
  127. @Override
  128. public Map<Object,Object> SPI(String data) {
  129. Map<Object, Object> rmap = new HashMap<Object, Object>();
  130. try {
  131. JSONObject object = JSONObject.fromObject(data);
  132. if (!object.containsKey("SPIRecord") || object.get("SPIRecord") == null) {
  133. rmap.put("code", "-1");
  134. rmap.put("result","NG");
  135. rmap.put("message", "缺少必要节点: SPIRecord");
  136. return rmap;
  137. }
  138. JSONObject record = JSONObject.fromObject(object.get("SPIRecord"));
  139. String Username = record.optString("Username", "");
  140. String Shiftname = record.optString("Shiftname", "");
  141. String MachineNO = record.optString("MachineNO", "");
  142. String LineNO = record.optString("LineNO", "");
  143. String procedure = record.optString("procedure", "");
  144. String Moname = record.optString("Moname", "");
  145. String Lotsn = record.optString("Lotsn", "");
  146. String Side = record.optString("Side", "");
  147. String Result = record.optString("Result", "");
  148. String Defect = record.optString("Defect", "");
  149. String elementQTY = record.optString("elementQTY", "");
  150. String TestQTY = record.optString("TestQTY", "");
  151. String Time = record.optString("Time", "");
  152. if (Time.contains("T")) {
  153. Time = Time.substring(0, 19).replaceAll("T", " ");
  154. }
  155. SqlRowList rs=baseDao.queryForRowSet("SELECT devicetestinfo_seq.NEXTVAL seq FROM dual");
  156. Map<Object, Object> paramsMap = new HashMap<Object, Object>();
  157. if(rs.next()){
  158. paramsMap.put("DTI_ID",rs.getString("seq"));
  159. paramsMap.put("DTI_SNCODE",Lotsn);
  160. paramsMap.put("DTI_USERNAME",Username);
  161. paramsMap.put("DTI_MACHINE",MachineNO);
  162. paramsMap.put("DTI_LINECODE",LineNO);
  163. paramsMap.put("DTI_RESULT",Result);
  164. paramsMap.put("DTI_MAKECODE",Moname);
  165. paramsMap.put("DTI_SHIFTNAME",Shiftname);
  166. paramsMap.put("DTI_PROGRAM",procedure);
  167. paramsMap.put("DTI_DEFECT",Defect);
  168. paramsMap.put("DTI_TESTQTY",TestQTY);
  169. paramsMap.put("DTI_MACHINETYPE","SPI");
  170. paramsMap.put("DTI_TYPE","SPI");
  171. paramsMap.put("DTI_TIME",Time);
  172. paramsMap.put("DTI_SOURCECONTENT","");
  173. paramsMap.put("dti_elementQTY",elementQTY);
  174. paramsMap.put("dti_side",Side);
  175. baseDao.execute(SqlUtil.getInsertSqlByMap(paramsMap,"devicetestinfo"));
  176. }
  177. Map<Object, Object> stepMap = SetStepFinish(Moname, Username, Lotsn, "", "OK", Username, "");
  178. if(stepMap.get("oErrMessage") != null){
  179. rmap.put("code", "-1");
  180. rmap.put("result","NG");
  181. rmap.put("message", stepMap.get("oErrMessage") );
  182. }else {
  183. rmap.put("code","0");
  184. rmap.put("result","OK");
  185. rmap.put("ServerMessage","MES:检查数据上传成功!");
  186. }
  187. } catch (Exception e) {
  188. rmap.put("code", "-1");
  189. rmap.put("result","NG");
  190. rmap.put("message", e.getMessage());
  191. }
  192. return rmap;
  193. }
  194. @Override
  195. public Map<Object, Object> AOI(String data) {
  196. Map<Object, Object> rmap = new HashMap<Object, Object>();
  197. try {
  198. JSONObject object = JSONObject.fromObject(data);
  199. if (!object.containsKey("AOIRecord") || object.get("AOIRecord") == null) {
  200. rmap.put("code", "-1");
  201. rmap.put("result", "NG");
  202. rmap.put("message", "缺少必要节点: AOIRecord");
  203. return rmap;
  204. }
  205. JSONObject record = JSONObject.fromObject(object.get("AOIRecord"));
  206. String Username = record.optString("Username", "");
  207. String Shiftname = record.optString("Shiftname", "");
  208. String MachineNO = record.optString("MachineNO", "");
  209. String LineNO = record.optString("LineNO", "");
  210. String procedure = record.optString("procedure", "");
  211. String Moname = record.optString("Moname", "");
  212. String Lotsn = record.optString("Lotsn", "");
  213. String Side = record.optString("Side", "");
  214. String Result = record.optString("Result", "");
  215. String Defect = record.optString("Defect", "");
  216. String elementQTY = record.optString("elementQTY", "");
  217. String TestQTY = record.optString("TestQTY", "");
  218. String Type = record.optString("Type", "AOI");
  219. String Time = record.optString("Time", "");
  220. if (Time.contains("T")) {
  221. Time = Time.substring(0, 19).replaceAll("T", " ");
  222. }
  223. SqlRowList rs = baseDao.queryForRowSet("SELECT devicetestinfo_seq.NEXTVAL seq FROM dual");
  224. Map<Object, Object> paramsMap = new HashMap<Object, Object>();
  225. if (rs.next()) {
  226. paramsMap.put("DTI_ID", rs.getString("seq"));
  227. paramsMap.put("DTI_SNCODE", Lotsn);
  228. paramsMap.put("DTI_USERNAME", Username);
  229. paramsMap.put("DTI_MACHINE", MachineNO);
  230. paramsMap.put("DTI_LINECODE", LineNO);
  231. paramsMap.put("DTI_RESULT", Result);
  232. paramsMap.put("DTI_MAKECODE", Moname);
  233. paramsMap.put("DTI_SHIFTNAME", Shiftname);
  234. paramsMap.put("DTI_PROGRAM", procedure);
  235. paramsMap.put("DTI_DEFECT", Defect);
  236. paramsMap.put("DTI_TESTQTY", TestQTY);
  237. paramsMap.put("DTI_MACHINETYPE", Type);
  238. paramsMap.put("DTI_TYPE", "AOI");
  239. paramsMap.put("DTI_TIME", Time);
  240. paramsMap.put("DTI_SOURCECONTENT", "");
  241. paramsMap.put("dti_elementQTY", elementQTY);
  242. paramsMap.put("dti_side", Side);
  243. baseDao.execute(SqlUtil.getInsertSqlByMap(paramsMap, "devicetestinfo"));
  244. }
  245. String[] items = Defect.split(",");
  246. String errCode = "";
  247. for (String item : items) {
  248. SqlRowList rs1 = baseDao.queryForRowSet("SELECT bc_code FROM BADCODE where bc_name = '"+ item +"'");
  249. if(rs1.next()){
  250. errCode = errCode + "," +rs1.getString("bc_code");
  251. }
  252. }
  253. Map<Object, Object> stepMap = SetStepFinish(Moname, Username, Lotsn, "", Result, Username, errCode);
  254. if(stepMap.get("oErrMessage") != null){
  255. rmap.put("code", "-1");
  256. rmap.put("result","NG");
  257. rmap.put("message", stepMap.get("oErrMessage") );
  258. }else {
  259. rmap.put("code","0");
  260. rmap.put("result","OK");
  261. rmap.put("ServerMessage", "MES:AOI数据上传成功!");
  262. }
  263. } catch (Exception e) {
  264. rmap.put("code", "-1");
  265. rmap.put("result", "NG");
  266. rmap.put("message", "AOI接口异常: " + e.getMessage());
  267. }
  268. return rmap;
  269. }
  270. @Override
  271. public Map<Object,Object> ReflowOvenCheck(String data){
  272. Map<Object,Object> rmap = new HashMap<Object,Object>();
  273. JSONObject object = JSONObject.fromObject(data);
  274. String SN = object.optString("SN", "");
  275. String TERMINAL_NAME = object.optString("TERMINAL_NAME", "");
  276. String EMP_NO = object.optString("EMP_NO", "");
  277. try{
  278. SqlRowList rs = baseDao.queryForRowSet("SELECT ms_makecode FROM makeserial where ms_sncode ='"+SN+"'");
  279. if (rs.next()) {
  280. String wo = rs.getString("ms_makecode");
  281. List<String> list = new ArrayList<String>();
  282. list = baseDao.callProcedureWithOut("CS_CHECKSTEPSNANDMACODE", new Object[]{
  283. String.valueOf(wo),
  284. String.valueOf(TERMINAL_NAME),
  285. String.valueOf(SN),
  286. String.valueOf(EMP_NO)
  287. }, new Integer[]{1, 2, 3, 4}, new Integer[]{5, 6, 7});
  288. String oErrMessage=list.get(2);
  289. if(oErrMessage == null){
  290. rmap.put("SN", SN);
  291. rmap.put("Status", true);
  292. rmap.put("Message", "Success");
  293. }else{
  294. rmap.put("SN", SN);
  295. rmap.put("Status", false);
  296. rmap.put("Message", "NG," + oErrMessage);
  297. }
  298. }else{
  299. rmap.put("SN", SN);
  300. rmap.put("Status", false);
  301. rmap.put("Message", "NG,产品序列号未绑定MES工单");
  302. }
  303. }catch (Exception ex){
  304. rmap.put("SN", SN);
  305. rmap.put("Status", false);
  306. rmap.put("Message", "NG," + ex.getMessage());
  307. }
  308. return rmap;
  309. }
  310. @Override
  311. public Map<Object,Object> ReflowOven(String data){
  312. Map<Object,Object> rmap = new HashMap<Object,Object>();
  313. try{
  314. JSONObject object = JSONObject.fromObject(data);
  315. Map<Object, Object> paramsMap = new HashMap<Object, Object>();
  316. SqlRowList rs = baseDao.queryForRowSet("SELECT hlh_seq.NEXTVAL seq FROM dual");
  317. if (rs.next()) {
  318. paramsMap.put("HLH_ID", rs.getString("seq"));
  319. }
  320. // paramsMap.put("HLH_INDATE", "sysdate");
  321. // 基本信息
  322. paramsMap.put("WorkMode", object.optString("WorkMode", ""));
  323. paramsMap.put("ProjectName", object.optString("ProjectName", ""));
  324. paramsMap.put("TrackLength", object.optString("TrackLength", ""));
  325. // 冷区温度
  326. paramsMap.put("CZoneT1_RV", object.optString("CZoneT1_RV", ""));
  327. paramsMap.put("CZoneT2_RV", object.optString("CZoneT2_RV", ""));
  328. paramsMap.put("CZoneT3_RV", object.optString("CZoneT3_RV", ""));
  329. paramsMap.put("CZoneT4_RV", object.optString("CZoneT4_RV", ""));
  330. paramsMap.put("CZoneT5_RV", object.optString("CZoneT5_RV", ""));
  331. paramsMap.put("CZoneT1_SV", object.optString("CZoneT1_SV", ""));
  332. paramsMap.put("CZoneT2_SV", object.optString("CZoneT2_SV", ""));
  333. paramsMap.put("CZoneT3_SV", object.optString("CZoneT3_SV", ""));
  334. paramsMap.put("CZoneT4_SV", object.optString("CZoneT4_SV", ""));
  335. paramsMap.put("CZoneT5_SV", object.optString("CZoneT5_SV", ""));
  336. // 风机转速
  337. paramsMap.put("MotorRev1_RV", object.optString("MotorRev1_RV", ""));
  338. paramsMap.put("MotorRev2_RV", object.optString("MotorRev2_RV", ""));
  339. paramsMap.put("MotorRev3_RV", object.optString("MotorRev3_RV", ""));
  340. paramsMap.put("MotorRev4_RV", object.optString("MotorRev4_RV", ""));
  341. paramsMap.put("MotorRev5_RV", object.optString("MotorRev5_RV", ""));
  342. paramsMap.put("MotorRev1_SV", object.optString("MotorRev1_SV", ""));
  343. paramsMap.put("MotorRev2_SV", object.optString("MotorRev2_SV", ""));
  344. paramsMap.put("MotorRev3_SV", object.optString("MotorRev3_SV", ""));
  345. paramsMap.put("MotorRev4_SV", object.optString("MotorRev4_SV", ""));
  346. paramsMap.put("MotorRev5_SV", object.optString("MotorRev5_SV", ""));
  347. // 链速
  348. paramsMap.put("Speeds1_RV", object.optString("Speeds1_RV", ""));
  349. paramsMap.put("Speeds2_RV", object.optString("Speeds2_RV", ""));
  350. paramsMap.put("Speeds1_SV", object.optString("Speeds1_SV", ""));
  351. paramsMap.put("Speeds2_SV", object.optString("Speeds2_SV", ""));
  352. // 氧气浓度
  353. paramsMap.put("O21_RV", object.optString("O21_RV", ""));
  354. paramsMap.put("O21_SV", object.optString("O21_SV", ""));
  355. // 指示灯状态
  356. paramsMap.put("bLight_red", object.optString("bLight_red", ""));
  357. paramsMap.put("bLight_yellow", object.optString("bLight_yellow", ""));
  358. paramsMap.put("bLight_green", object.optString("bLight_green", ""));
  359. // 上温区当前温度
  360. paramsMap.put("T1_RV", object.optString("T1_RV", ""));
  361. paramsMap.put("T2_RV", object.optString("T2_RV", ""));
  362. paramsMap.put("T3_RV", object.optString("T3_RV", ""));
  363. paramsMap.put("T4_RV", object.optString("T4_RV", ""));
  364. paramsMap.put("T5_RV", object.optString("T5_RV", ""));
  365. paramsMap.put("T6_RV", object.optString("T6_RV", ""));
  366. paramsMap.put("T7_RV", object.optString("T7_RV", ""));
  367. paramsMap.put("T8_RV", object.optString("T8_RV", ""));
  368. paramsMap.put("T9_RV", object.optString("T9_RV", ""));
  369. paramsMap.put("T10_RV", object.optString("T10_RV", ""));
  370. paramsMap.put("T11_RV", object.optString("T11_RV", ""));
  371. paramsMap.put("T12_RV", object.optString("T12_RV", ""));
  372. paramsMap.put("T13_RV", object.optString("T13_RV", ""));
  373. // 上温区设定温度
  374. paramsMap.put("T1_SV", object.optString("T1_SV", ""));
  375. paramsMap.put("T2_SV", object.optString("T2_SV", ""));
  376. paramsMap.put("T3_SV", object.optString("T3_SV", ""));
  377. paramsMap.put("T4_SV", object.optString("T4_SV", ""));
  378. paramsMap.put("T5_SV", object.optString("T5_SV", ""));
  379. paramsMap.put("T6_SV", object.optString("T6_SV", ""));
  380. paramsMap.put("T7_SV", object.optString("T7_SV", ""));
  381. paramsMap.put("T8_SV", object.optString("T8_SV", ""));
  382. paramsMap.put("T9_SV", object.optString("T9_SV", ""));
  383. paramsMap.put("T10_SV", object.optString("T10_SV", ""));
  384. paramsMap.put("T11_SV", object.optString("T11_SV", ""));
  385. paramsMap.put("T12_SV", object.optString("T12_SV", ""));
  386. paramsMap.put("T13_SV", object.optString("T13_SV", ""));
  387. // 下温区当前温度
  388. paramsMap.put("B1_RV", object.optString("B1_RV", ""));
  389. paramsMap.put("B2_RV", object.optString("B2_RV", ""));
  390. paramsMap.put("B3_RV", object.optString("B3_RV", ""));
  391. paramsMap.put("B4_RV", object.optString("B4_RV", ""));
  392. paramsMap.put("B5_RV", object.optString("B5_RV", ""));
  393. paramsMap.put("B6_RV", object.optString("B6_RV", ""));
  394. paramsMap.put("B7_RV", object.optString("B7_RV", ""));
  395. paramsMap.put("B8_RV", object.optString("B8_RV", ""));
  396. paramsMap.put("B9_RV", object.optString("B9_RV", ""));
  397. paramsMap.put("B10_RV", object.optString("B10_RV", ""));
  398. paramsMap.put("B11_RV", object.optString("B11_RV", ""));
  399. paramsMap.put("B12_RV", object.optString("B12_RV", ""));
  400. paramsMap.put("B13_RV", object.optString("B13_RV", ""));
  401. // 下温区设定温度
  402. paramsMap.put("B1_SV", object.optString("B1_SV", ""));
  403. paramsMap.put("B2_SV", object.optString("B2_SV", ""));
  404. paramsMap.put("B3_SV", object.optString("B3_SV", ""));
  405. paramsMap.put("B4_SV", object.optString("B4_SV", ""));
  406. paramsMap.put("B5_SV", object.optString("B5_SV", ""));
  407. paramsMap.put("B6_SV", object.optString("B6_SV", ""));
  408. paramsMap.put("B7_SV", object.optString("B7_SV", ""));
  409. paramsMap.put("B8_SV", object.optString("B8_SV", ""));
  410. paramsMap.put("B9_SV", object.optString("B9_SV", ""));
  411. paramsMap.put("B10_SV", object.optString("B10_SV", ""));
  412. paramsMap.put("B11_SV", object.optString("B11_SV", ""));
  413. paramsMap.put("B12_SV", object.optString("B12_SV", ""));
  414. paramsMap.put("B13_SV", object.optString("B13_SV", ""));
  415. baseDao.execute(SqlUtil.getInsertSqlByMap(paramsMap, "HLH"));
  416. rmap.put("Status", true);
  417. rmap.put("Message", "Success");
  418. }catch (Exception ex){
  419. rmap.put("Status", false);
  420. rmap.put("Message", "Fail");
  421. }
  422. return rmap;
  423. }
  424. @Override
  425. public Map<Object, Object> PrintCheck(String data) {
  426. Map<Object, Object> rmap = new HashMap<Object, Object>();
  427. JSONObject object = JSONObject.fromObject(data);
  428. JSONObject obj1=object.getJSONObject("Header");
  429. JSONObject obj2=object.getJSONObject("Body");
  430. if(obj1!=null){
  431. String Command=obj1.get("Command").toString();
  432. String SessionID=obj1.get("SessionID").toString();
  433. String TimeStamp=obj1.get("TimeStamp").toString();
  434. String Direction=obj1.get("Direction").toString();
  435. String Vendor=obj1.get("Vendor").toString();
  436. String Line=obj1.get("Line").toString();
  437. String MachineSN=obj1.get("MachineSN").toString();
  438. String MachineType=obj1.get("MachineType").toString();
  439. String FrontSqueegeeSN="";
  440. String RearSqueegeeSN="";
  441. String StencilSN="";
  442. String PasteSN="";
  443. if(obj2!=null){
  444. FrontSqueegeeSN=obj2.get("FrontSqueegeeSN").toString();
  445. RearSqueegeeSN=obj2.get("RearSqueegeeSN").toString();
  446. StencilSN=obj2.get("StencilSN").toString();
  447. PasteSN=obj2.get("PasteSN").toString();
  448. }
  449. int code = 200;
  450. String returnmessage = "";
  451. if(!baseDao.checkIf("Stencil","nvl(st_usestatus,'') = '在线' and st_code = '"+FrontSqueegeeSN+"'"))
  452. {
  453. code = 222;
  454. returnmessage = returnmessage + "刮刀:"+FrontSqueegeeSN+"未在线,校验失败.\n";
  455. }
  456. if(!baseDao.checkIf("Stencil","nvl(st_usestatus,'') = '在线' and st_code = '"+RearSqueegeeSN+"'"))
  457. {
  458. code = 222;
  459. returnmessage = returnmessage + "刮刀:"+RearSqueegeeSN+"未在线,校验失败.\n";
  460. }
  461. if(!baseDao.checkIf("Stencil","nvl(st_usestatus,'') = '在线' and st_code = '"+StencilSN+"'"))
  462. {
  463. code = 222;
  464. returnmessage = returnmessage + "钢网:"+StencilSN+"未在线,校验失败.\n";
  465. }
  466. if(!baseDao.checkIf("SPMBARCODE","nvl(SPB_STATUS,'') = '已开封' and SPB_BARCODE = '"+PasteSN+"'"))
  467. {
  468. code = 222;
  469. returnmessage = returnmessage + "锡膏:"+FrontSqueegeeSN+"未开封,校验失败.\n";
  470. }
  471. Map<Object, Object> rmap1 = new HashMap<Object, Object>();
  472. rmap1.put("Command","MaterialVerify");
  473. rmap1.put("SessionID",SessionID);
  474. rmap1.put("TimeStamp",TimeStamp);
  475. rmap1.put("Direction","Response");
  476. rmap.put("Header",rmap1);
  477. Map<Object, Object> rmap2 = new HashMap<Object, Object>();
  478. rmap2.put("Code",code);
  479. rmap2.put("Message",returnmessage);
  480. rmap.put("Body",rmap2);
  481. }
  482. return rmap;
  483. }
  484. @Override
  485. public String UploadSteel(String SteelMeshCode,String scraperCode, String SteelMeshCount, String scraperCount, String datatime) {
  486. String err = CheckSteel(SteelMeshCode);
  487. //判断钢网编号
  488. if(SteelMeshCode!=null&&!"".equals(SteelMeshCode)){
  489. baseDao.execute("insert into devicetestinfo(DTI_ID, DTI_SNCODE,DTI_TESTQTY, DTI_MACHINETYPE, DTI_TYPE, DTI_TIME, DTI_SOURCECONTENT)values(devicetestinfo_seq.nextval,'"+scraperCode+"','"+scraperCount+"','钢网','钢网',to_date('"+datatime+"','yyyy-mm-dd hh24:mi:ss'),'')");
  490. baseDao.execute("update stencil set st_usecount=nvl(st_usecount,0)+"+scraperCount +" where st_code='"+SteelMeshCode+"'");
  491. }
  492. //判断刮刀编号
  493. if(scraperCode!=null&&!"".equals(scraperCode)){
  494. baseDao.execute("insert into devicetestinfo(DTI_ID, DTI_SNCODE,DTI_TESTQTY, DTI_MACHINETYPE, DTI_TYPE, DTI_TIME, DTI_SOURCECONTENT)values(devicetestinfo_seq.nextval,'"+scraperCode+"','"+scraperCount+"','刮刀','刮刀',to_date('"+datatime+"','yyyy-mm-dd hh24:mi:ss'),'')");
  495. baseDao.execute("update stencil set st_usecount=nvl(st_usecount,0)+"+scraperCount +" where st_code='"+scraperCode+"'");
  496. }
  497. return err;
  498. }
  499. @Override
  500. public String CheckSteel(String SteelMeshCode) {
  501. Map<Object, Object> rmap = new HashMap<Object, Object>();
  502. SqlRowList rs=baseDao.queryForRowSet("select st_kind,nvl(st_usecount,0)st_usecount,nvl(st_maxusecount,0)st_maxusecount from stencil where st_code='"+SteelMeshCode+"'");
  503. if(rs.next()){
  504. String st_usecount=rs.getString("st_usecount");
  505. String st_maxusecount=rs.getString("st_maxusecount");
  506. String st_kind=rs.getString("st_kind");
  507. if(Integer.parseInt(st_usecount)>=Integer.parseInt(st_maxusecount)){
  508. return rs.getString("st_kind")+"已使用"+st_usecount+",超出最大使用次数"+st_maxusecount;
  509. }
  510. }else{
  511. return "编号不存在";
  512. }
  513. return "";
  514. }
  515. @Override
  516. public Map<Object,Object> SetupResultDataInterface(String data) {
  517. Map<Object, Object> rmap = new HashMap<Object, Object>();
  518. JSONObject object = JSONObject.fromObject(data);
  519. Object object1 = object.get("data");
  520. JSONObject obj = JSONObject.fromObject(object1);
  521. JSONObject SetupResultDetail=obj.getJSONObject("SetupResultDetail");
  522. if(SetupResultDetail!=null){
  523. String ActionType=SetupResultDetail.get("ActionType").toString();
  524. String MessageSendTime=Time(SetupResultDetail.getString("MessageSendTime"));
  525. String LineName=SetupResultDetail.get("LineName").toString();
  526. String SetupName=SetupResultDetail.get("SetupName").toString();
  527. String MachineName=SetupResultDetail.get("MachineName").toString();
  528. String OrderNumber=SetupResultDetail.get("OrderNumber").toString();
  529. String DockingStationID=SetupResultDetail.get("DockingStationID").toString();
  530. String Operator=SetupResultDetail.get("Operator").toString();
  531. String TableLocation=SetupResultDetail.get("TableLocation").toString();
  532. String TableId=SetupResultDetail.get("TableId").toString();
  533. String Track=SetupResultDetail.get("Track").toString();
  534. String FeederTypeName=SetupResultDetail.get("FeederTypeName").toString();
  535. String FeederID=SetupResultDetail.get("FeederID").toString();
  536. JSONObject PackagingUnitDetail=SetupResultDetail.getJSONObject("PackagingUnit");
  537. if(PackagingUnitDetail!=null){
  538. String PUID=PackagingUnitDetail.getString("PUID");
  539. String ComponentBarcode=PackagingUnitDetail.getString("ComponentBarcode");
  540. String ComponentBarcodeFragment=PackagingUnitDetail.getString("ComponentBarcodeFragment");
  541. String OriginalQuantity=PackagingUnitDetail.getString("OriginalQuantity");
  542. String Quantity=PackagingUnitDetail.getString("Quantity");
  543. String CreateDate=Time(PackagingUnitDetail.getString("CreateDate"));
  544. String DateCode=PackagingUnitDetail.getString("DateCode");
  545. String BatchId=PackagingUnitDetail.getString("BatchId");
  546. String MsdLevel=PackagingUnitDetail.getString("MsdLevel");
  547. JSONObject LockInfoList=null;
  548. try{
  549. LockInfoList=PackagingUnitDetail.getJSONObject("LockInfoList");
  550. }catch (Exception e){
  551. }
  552. JSONObject SplicedPackagingUnitList=null;
  553. try{
  554. SplicedPackagingUnitList=PackagingUnitDetail.getJSONObject("SplicedPackagingUnitList");
  555. }catch (Exception e){
  556. }
  557. String smt_line="";
  558. if(LineName.equals("Line1")){
  559. smt_line="贴片L1线";
  560. }
  561. if(LineName.equals("Line2")){
  562. smt_line="贴片L2线";
  563. }
  564. if(LineName.equals("Line3")||LineName.equals("L3")){
  565. smt_line="贴片L3线";
  566. }
  567. if(LineName.equals("Line4")||LineName.equals("L4")){
  568. smt_line="贴片L4线";
  569. }
  570. if(LineName.equals("Line5")){
  571. smt_line="贴片L5线";
  572. }
  573. if(LineName.equals("Line6")){
  574. smt_line="贴片L6线";
  575. }
  576. Object makecode=baseDao.getFieldDataByCondition("Line","li_makecode","li_code='"+smt_line+"'");
  577. int sr_id=baseDao.getSeqId("SETUPRESULTDETAIL_seq");
  578. baseDao.execute("insert into SETUPRESULTDETAIL(sr_id,ACTIONTYPE,LINENAME,SetupName,ORDERNUMBER,MACHINENAME," +
  579. "TABLEID,DOCKINGSTATIONID,OPERATOR,TableLocation,FeederTypeName,FeederID,MessageSendTime)values('"+sr_id+"'," +
  580. "'"+ActionType+"','"+LineName+"','"+SetupName+"','"+OrderNumber+"','"+MachineName+"','"+TableId+"','"+DockingStationID+"'," +
  581. "'"+Operator+"','"+TableLocation+"','"+FeederTypeName+"','"+FeederID+"',to_date('"+MessageSendTime+"','yyyy-mm-dd hh24:mi:ss'))");
  582. int pu_id=baseDao.getSeqId("PACKAGINGUNIT_seq");
  583. baseDao.execute("insert into PACKAGINGUNIT(PU_ID,PUID,PU_SRID,ComponentBarcodeFragment,ComponentBarcode,OriginalQuantity,Quantity,CreateDate," +
  584. "DateCode,BatchId,MsdLevel,makecode)values('"+pu_id+"','"+PUID+"','"+sr_id+"','"+ComponentBarcodeFragment+"','"+ComponentBarcode+"','"+OriginalQuantity+"','"+Quantity+"',to_date('"+CreateDate+"','yyyy-mm-dd hh24:mi:ss')," +
  585. "'"+DateCode+"','"+BatchId+"','"+MsdLevel+"','"+makecode+"')");
  586. if(LockInfoList!=null){
  587. JSONArray LockInfoItem=LockInfoList.getJSONArray("LockInfoItem");
  588. for(int i=0;i<LockInfoItem.size();i++){
  589. JSONObject map=LockInfoItem.getJSONObject(i);
  590. String Date=Time(map.getString("Date"));
  591. String Message=map.getString("Message");
  592. String Reason=map.getString("Reason");
  593. String Source=map.getString("Source");
  594. baseDao.execute("insert into LOCKINFOLIST(LF_ID,lf_puid,INDATE,MESSAGE,REASON,SOURCE)" +
  595. "values(LOCKINFOLIST_seq.nextval,'"+pu_id+"',to_date('"+Date+"','yyyy-mm-dd hh24:mi:ss'),'"+Message+"'," +
  596. "'"+Reason+"','"+Source+"')");
  597. }
  598. }
  599. if(SplicedPackagingUnitList!=null){
  600. JSONArray SplicedPackagingUnitItem=SplicedPackagingUnitList.getJSONArray("SplicedPackagingUnitItem");
  601. for(int i=0;i<SplicedPackagingUnitItem.size();i++){
  602. JSONObject map=SplicedPackagingUnitItem.getJSONObject(i);
  603. String UID1=map.getString("PUID");
  604. String ComponentBarcode1=map.getString("ComponentBarcode");
  605. String ComponentName=map.getString("ComponentName");
  606. String OriginalQuantity1=map.getString("OriginalQuantity");
  607. String Quantity1=map.getString("Quantity");
  608. String ManufacturePartNumber=map.getString("ManufacturePartNumber");
  609. String Manufacturer=map.getString("Manufacturer");
  610. String Supplier=map.getString("Supplier");
  611. baseDao.execute("insert into SPLICEDPACKAGING (SP_ID,SP_PUID,PUID,COMPONENTBARCODE,ORIGINALQUANTITY,QUANTITY)" +
  612. "values(SPLICEDPACKAGING_seq.nextval,'"+pu_id+"','"+UID1+"','"+ComponentBarcode1+"','"+OriginalQuantity1+"','"+Quantity1+"')");
  613. }
  614. }
  615. }
  616. rmap.put("code","0");
  617. rmap.put("result","OK");
  618. rmap.put("ServerMessage","MES:贴片机数据记录成功");
  619. }
  620. return rmap;
  621. }
  622. @Override
  623. public Map<Object,Object> StateEventDetail(String data) {
  624. Map<Object, Object> rmap = new HashMap<Object, Object>();
  625. JSONObject object = JSONObject.fromObject(data);
  626. Object object1 = object.get("data");
  627. JSONObject obj = JSONObject.fromObject(object1);
  628. JSONObject StateEventDetail=obj.getJSONObject("StateEventDetail");
  629. if(StateEventDetail!=null){
  630. int st_id=baseDao.getSeqId("StateEventDetail_seq");
  631. String MessageSendTime=Time(StateEventDetail.getString("MessageSendTime"));
  632. String CompletionStatusType=StateEventDetail.getString("CompletionStatusType");
  633. String LineFullPath=StateEventDetail.getString("LineFullPath");
  634. String LineName=StateEventDetail.getString("LineName");
  635. String MachineFullPath=StateEventDetail.getString("MachineFullPath");
  636. String MachineName=StateEventDetail.getString("MachineName");
  637. String JobFullPath=StateEventDetail.getString("JobFullPath");
  638. String JobName=StateEventDetail.getString("JobName");
  639. String RecipeFullPath=StateEventDetail.getString("RecipeFullPath");
  640. String RecipeName=StateEventDetail.getString("RecipeName");
  641. String SetupFullPath=StateEventDetail.getString("SetupFullPath");
  642. String SetupName=StateEventDetail.getString("SetupName");
  643. String BoardFullPath=StateEventDetail.getString("BoardFullPath");
  644. String BoardName=StateEventDetail.getString("BoardName");
  645. String OrderNumber=StateEventDetail.getString("OrderNumber");
  646. String ConveyorMode=StateEventDetail.getString("ConveyorMode");
  647. String DownloadMode=StateEventDetail.getString("DownloadMode");
  648. String FactoryLayoutPath=StateEventDetail.getString("FactoryLayoutPath");
  649. String MachineId=StateEventDetail.getString("MachineId");
  650. String MachineType=StateEventDetail.getString("MachineType");
  651. String TypeName=StateEventDetail.getString("TypeName");
  652. String ProcessingAreaCount=StateEventDetail.getString("ProcessingAreaCount");
  653. String StationSoftwareVersion=StateEventDetail.getString("StationSoftwareVersion");
  654. String MonitoringServiceVersion=StateEventDetail.getString("MonitoringServiceVersion");
  655. String ComputerAddress=StateEventDetail.getString("ComputerAddress");
  656. baseDao.execute("insert into StateEventDetail(ST_ID, MESSAGESENDTIME, COMPLETIONSTATUSTYPE, LINEFULLPATH, LINENAME, MACHINEFULLPATH, MACHINENAME, JOBFULLPATH, JOBNAME, RECIPEFULLPATH, RECIPENAME, SETUPFULLPATH, SETUPNAME, BOARDFULLPATH, BOARDNAME, ORDERNUMBER, CONVEYORMODE, DOWNLOADMODE, FACTORYLAYOUTPATH, MACHINEID, MACHINETYPE, TYPENAME, PROCESSINGAREACOUNT, STATIONSOFTWAREVERSION, MONITORINGSERVICEVERSION, COMPUTERADDRESS)" +
  657. "values("+st_id+", to_date('"+MessageSendTime+"','yyyy-mm-dd hh24:mi:ss'), '"+CompletionStatusType+"', '"+LineFullPath+"', '"+LineName+"', '"+MachineFullPath+"', '"+MachineName+"', '"+JobFullPath+"', '"+JobName+"', '"+RecipeFullPath+"', '"+RecipeName+"', '"+SetupFullPath+"', '"+SetupName+"', '"+BoardFullPath+"', '"+BoardName+"', '"+OrderNumber+"', '"+ConveyorMode+"', '"+DownloadMode+"', '"+FactoryLayoutPath+"', '"+MachineId+"', '"+MachineType+"', '"+TypeName+"', '"+ProcessingAreaCount+"', '"+StationSoftwareVersion+"', '"+MonitoringServiceVersion+"', '"+ComputerAddress+"')");
  658. JSONArray ProcessingAreaStateList=StateEventDetail.getJSONArray("ProcessingAreaStateList");
  659. for (int i=0;i<ProcessingAreaStateList.size();i++){
  660. JSONObject map1=ProcessingAreaStateList.getJSONObject(i);
  661. String ProcessingArea=map1.getString("ProcessingArea");
  662. String Conveyor=map1.getString("Conveyor");
  663. String CurrentStateBegin=map1.getString("CurrentStateBegin");
  664. String CurrentStateCode=map1.getString("CurrentStateCode");
  665. String CurrentStateDescription=map1.getString("CurrentStateDescription");
  666. String PreviousStateCode=map1.getString("PreviousStateCode");
  667. String PreviousStateDescription=map1.getString("PreviousStateDescription");
  668. baseDao.execute("insert into ProcessingAreaStateList(RAS_ID, RAS_STID, PROCESSINGAREA, CONVEYOR, CURRENTSTATEBEGIN, CURRENTSTATECODE, CURRENTSTATEDESCRIPTION, PREVIOUSSTATECODE, PREVIOUSSTATEDESCRIPTION)" +
  669. "values(ProcessingAreaStateList_seq.nextval,'"+st_id+"','"+ProcessingArea+"','"+Conveyor+"','"+CurrentStateBegin+"'," +
  670. "'"+CurrentStateCode+"','"+CurrentStateDescription+"','"+PreviousStateCode+"','"+PreviousStateDescription+"')");
  671. }
  672. }
  673. rmap.put("code","0");
  674. rmap.put("result","OK");
  675. rmap.put("ServerMessage","MES:贴片机数据记录成功");
  676. return rmap;
  677. }
  678. @Override
  679. public Map<Object,Object> SendPlaceData(String data) {
  680. Map<Object, Object> rmap = new HashMap<Object, Object>();
  681. JSONObject object = JSONObject.fromObject(data);
  682. Object object1 = object.get("data");
  683. JSONObject obj = JSONObject.fromObject(object1);
  684. JSONObject PlacedDataDetail=obj.getJSONObject("PlacedDataDetail");
  685. if(PlacedDataDetail!=null){
  686. int pd_id=baseDao.getSeqId("PlacedDataDetail_seq");
  687. String MESSAGESENDTIME=Time(PlacedDataDetail.getString("MessageSendTime"));
  688. String COMPLETIONSTATUSTYPE=PlacedDataDetail.getString("CompletionStatusType");
  689. String LINEFULLPATH=PlacedDataDetail.getString("LineFullPath");
  690. String MACHINEFULLPATH=PlacedDataDetail.getString("MachineFullPath");
  691. String RECIPEFULLPATH=PlacedDataDetail.getString("RecipeFullPath");
  692. String RECIPENAME=PlacedDataDetail.getString("RecipeName");
  693. String SETUPFULLPATH=PlacedDataDetail.getString("SetupName");
  694. String BOARDFULLPATH=PlacedDataDetail.getString("BoardFullPath");
  695. String FACTORYLAYOUTPATH=PlacedDataDetail.getString("FactoryLayoutPath");
  696. String MACHINEID=PlacedDataDetail.getString("MachineId");
  697. String MACHINETYPE=PlacedDataDetail.getString("MachineType");
  698. String STATIONSOFTWAREVERSION=PlacedDataDetail.getString("StationSoftwareVersion");
  699. String MONITORINGSERVICEVERSION=PlacedDataDetail.getString("MonitoringServiceVersion");
  700. String COMPUTERADDRESS=PlacedDataDetail.getString("ComputerAddress");
  701. baseDao.execute("insert into PlacedDataDetail(pd_id,MessageSendTime,CompletionStatusType,LineFullPath,MachineFullPath,RecipeFullPath," +
  702. "RecipeName,SETUPFULLPATH,BoardFullPath,FactoryLayoutPath,MachineId,MachineType,StationSoftwareVersion,MonitoringServiceVersion," +
  703. "ComputerAddress)values('"+pd_id+"',to_date('"+MESSAGESENDTIME+"','yyyy-mm-dd hh24:mi:ss'),'"+COMPLETIONSTATUSTYPE+"'," +
  704. "'"+LINEFULLPATH+"','"+MACHINEFULLPATH+"','"+RECIPEFULLPATH+"','"+RECIPENAME+"','"+SETUPFULLPATH+"','"+BOARDFULLPATH+"'," +
  705. "'"+FACTORYLAYOUTPATH+"','"+MACHINEID+"','"+MACHINETYPE+"','"+STATIONSOFTWAREVERSION+"','"+MONITORINGSERVICEVERSION+"','"+COMPUTERADDRESS+"')");
  706. JSONArray PanelList=PlacedDataDetail.getJSONArray("PlacedComponentList");
  707. for (int i=0;i<PanelList.size();i++){
  708. JSONObject map1=PanelList.getJSONObject(i);
  709. String TABLELOCATION =map1.getString("TableLocation");
  710. String TRACK=map1.getString("Track");
  711. String DIVISION=map1.getString("Division");
  712. String COMPONENTFULLPATH=map1.getString("ComponentFullPath");
  713. String COMPONENTNAME=map1.getString("ComponentName");
  714. String COMPONENTSHAPEFULLPATH=map1.getString("ComponentShapeFullPath");
  715. String FEEDERCATEGORY=map1.getString("FeederCategory");
  716. String FEEDERTYPENAME=map1.getString("FeederTypeName");
  717. String FEEDERID=map1.getString("FeederID");
  718. String ACCESSTOTAL=map1.getString("AccessTotal");
  719. String PlacedComponents=map1.getString("PlacedComponents");
  720. String REJECTQTY=map1.getString("RejectQty");
  721. String REJECTIDENT=map1.getString("RejectIdent");
  722. String REJECTVACUUM=map1.getString("RejectVacuum");
  723. String TRACKEMPTY=map1.getString("TrackEmpty");
  724. String IDENTERRROR=map1.getString("IdentErrror");
  725. String MATERIALDEFECT=map1.getString("MaterialDefect");
  726. String ABSENCEAFTERPICK=map1.getString("AbsenceAfterPick");
  727. String ABSENCEBEFOREPLACEMENT=map1.getString("AbsenceBeforePlacement");
  728. String TREATMENTERROR=map1.getString("TreatmentError");
  729. baseDao.execute("insert into PlacedComponentList(pc_id,pc_pdid,TABLELOCATION,TRACK,DIVISION,COMPONENTFULLPATH," +
  730. "COMPONENTNAME,COMPONENTSHAPEFULLPATH,FEEDERCATEGORY,FEEDERTYPENAME,FEEDERID,ACCESSTOTAL,PlacedComponents," +
  731. "REJECTQTY,REJECTIDENT,REJECTVACUUM,TRACKEMPTY,IDENTERRROR,MATERIALDEFECT,ABSENCEAFTERPICK,ABSENCEBEFOREPLACEMENT,TREATMENTERROR)" +
  732. "values(PlacedComponentList_seq.nextval,'"+pd_id+"','"+TABLELOCATION+"','"+TRACK+"','"+DIVISION+"','"+COMPONENTFULLPATH+"'" +
  733. ",'"+COMPONENTNAME+"','"+COMPONENTSHAPEFULLPATH+"','"+FEEDERCATEGORY+"','"+FEEDERTYPENAME+"','"+FEEDERID+"'," +
  734. "'"+ACCESSTOTAL+"','"+PlacedComponents+"','"+REJECTQTY+"','"+REJECTIDENT+"','"+REJECTVACUUM+"','"+TRACKEMPTY+"'," +
  735. "'"+IDENTERRROR+"','"+MATERIALDEFECT+"','"+ABSENCEAFTERPICK+"','"+ABSENCEBEFOREPLACEMENT+"','"+TREATMENTERROR+"')");
  736. }
  737. JSONArray PickupErrorList=PlacedDataDetail.getJSONArray("PickupErrorList");
  738. for (int i=0;i<PickupErrorList.size();i++){
  739. JSONObject map1=PickupErrorList.getJSONObject(i);
  740. String GANTRY=map1.getString("Gantry");
  741. String HEAD=map1.getString("Head");
  742. String SEGMENT1=map1.getString("Segment");
  743. String NOZZLE=map1.getString("Nozzle");
  744. String TABLELOCATION=map1.getString("TableLocation");
  745. String TRACK=map1.getString("Track");
  746. String DIVISION=map1.getString("Division");
  747. String TOWER=map1.getString("Tower");
  748. String LEVEL1=map1.getString("Level");
  749. String COMPONENTFULLPATH=map1.getString("ComponentFullPath");
  750. String COMPONENTNAME=map1.getString("ComponentName");
  751. String COMPONENTSHAPEFULLPATH=map1.getString("ComponentShapeFullPath");
  752. String COMPONENTSHAPENAME=map1.getString("ComponentShapeName");
  753. String FEEDERCATEGORY=map1.getString("FeederCategory");
  754. String FEEDERTYPENAME=map1.getString("FeederTypeName");
  755. String FEEDERID=map1.getString("FeederID");
  756. String ERRORTYPE=map1.getString("ErrorType");
  757. String ERRORDESCRIPTION=map1.getString("ErrorDescription");
  758. baseDao.execute("insert into PickupErrorList(pe_id,pe_pdid,Gantry,Head,SEGMENT1,NOZZLE,TABLELOCATION,TRACK,DIVISION,TOWER" +
  759. ",LEVEL1,COMPONENTFULLPATH,COMPONENTNAME,COMPONENTSHAPEFULLPATH,COMPONENTSHAPENAME,FEEDERCATEGORY,FEEDERTYPENAME," +
  760. "FEEDERID,ERRORTYPE,ERRORDESCRIPTION)values(PickupErrorList_seq.nextval,'"+pd_id+"','"+GANTRY+"','"+HEAD+"','"+SEGMENT1+"','"+NOZZLE+"'," +
  761. "'"+TABLELOCATION+"','"+TRACK+"','"+DIVISION+"','"+TOWER+"','"+LEVEL1+"','"+COMPONENTFULLPATH+"','"+COMPONENTNAME+"'," +
  762. "'"+COMPONENTSHAPEFULLPATH+"','"+COMPONENTSHAPENAME+"','"+FEEDERCATEGORY+"','"+FEEDERTYPENAME+"','"+FEEDERID+"','"+ERRORTYPE+"'," +
  763. "'"+ERRORDESCRIPTION+"')");
  764. }
  765. }
  766. rmap.put("code","0");
  767. rmap.put("result","OK");
  768. rmap.put("ServerMessage","MES:贴片机数据记录成功");
  769. return rmap;
  770. }
  771. @Override
  772. public Map<Object,Object> TraceabilityDataInterface(String data) {
  773. Integer td_id=baseDao.getSeqId("TRACEDATA_seq");
  774. Map<Object, Object> rmap = new HashMap<Object, Object>();
  775. JSONObject object = JSONObject.fromObject(data);
  776. Object object1 = object.get("data");
  777. JSONObject obj = JSONObject.fromObject(object1);
  778. JSONObject TraceabilityDataDetail=obj.getJSONObject("TraceabilityDataDetail");
  779. if(TraceabilityDataDetail!=null){
  780. String DateBegin=Time(TraceabilityDataDetail.get("DateBegin").toString());
  781. String DateCompleted=Time(TraceabilityDataDetail.get("DateCompleted").toString());
  782. String LineName=TraceabilityDataDetail.get("LineName").toString();
  783. String MachineName=TraceabilityDataDetail.get("MachineName").toString();
  784. String BoardName=TraceabilityDataDetail.get("BoardName").toString();
  785. String MachineID=TraceabilityDataDetail.get("MachineID").toString();
  786. String BoardSide=TraceabilityDataDetail.get("BoardSide").toString();
  787. String OrderNumber=TraceabilityDataDetail.get("OrderNumber").toString();
  788. String PCBBarcode=TraceabilityDataDetail.get("PCBBarcode").toString();
  789. baseDao.execute("insert into TRACEDATA(TD_ID,DateBegin,DateCompleted,LineName,MachineName,BoardName,MachineID,BoardSide,OrderNumber,PCBBarcode,TD_INDATE)" +
  790. "values("+td_id+",to_date('"+DateBegin+"','yyyy-mm-dd hh24:mi:ss'),to_date('"+DateCompleted+"','yyyy-mm-dd hh24:mi:ss')," +
  791. "'"+LineName+"','"+MachineName+"','"+BoardName+"','"+MachineID+"','"+BoardSide+"','"+OrderNumber+"','"+PCBBarcode+"',sysdate)");
  792. JSONObject MaterialTraceabilityDetail=null;
  793. try{
  794. MaterialTraceabilityDetail=TraceabilityDataDetail.getJSONObject("MaterialTraceabilityDetail");
  795. }catch (Exception e){
  796. }
  797. JSONObject MaterialConsumptionDetail=null;
  798. try{
  799. MaterialConsumptionDetail=TraceabilityDataDetail.getJSONObject("MaterialConsumptionDetail");
  800. }catch (Exception e){
  801. }
  802. //上料信息
  803. if(MaterialTraceabilityDetail!=null){
  804. JSONArray PanelList=MaterialTraceabilityDetail.getJSONArray("PanelList");
  805. for (int i=0;i<PanelList.size();i++){
  806. JSONObject map=PanelList.getJSONObject(i);
  807. String PanelName=map.get("PanelName").toString();
  808. JSONArray PackagingUnitRefList=map.getJSONArray("PackagingUnitRefList");
  809. System.out.println(PackagingUnitRefList.size());
  810. if(PackagingUnitRefList!=null){
  811. for (int j=0;j<PackagingUnitRefList.size();j++){
  812. String PlaceRefID="";
  813. JSONObject map1=PackagingUnitRefList.getJSONObject(j);
  814. String PUID=map1.getString("PUID");
  815. String TableLocation=map1.getString("TableLocation");
  816. String Track=map1.getString("Track");
  817. String ComponentBarcode=map1.getString("ComponentBarcode");
  818. String OriginalQuantity=map1.getString("OriginalQuantity");
  819. String Quantity=map1.getString("Quantity");
  820. String CreateDate=Time(map1.getString("CreateDate"));
  821. String DateCode=map1.getString("DateCode");
  822. String Batch2=map1.getString("Batch2");
  823. String MsdLevel=map1.getString("MsdLevel");
  824. String VerifiedDate=Time(map1.getString("VerifiedDate"));
  825. String Operator=map1.getString("Operator");
  826. JSONArray PlaceRefList=map1.getJSONArray("PlaceRefList");
  827. if(PlaceRefList!=null){
  828. for (int k=0;k<PlaceRefList.size();k++){
  829. JSONObject map2=PlaceRefList.getJSONObject(k);
  830. PlaceRefID+=map2.getString("PlaceRefID")+",";
  831. }
  832. }
  833. baseDao.execute("insert into MATERIALTRACE(MT_ID,MT_TDID,PANELNAME,PUID,PlaceRefList,TableLocation,Track,ComponentBarcode,OriginalQuantity,Quantity,CreateDate,DateCode,Batch2,MsdLevel,VerifiedDate,Operator)" +
  834. "values(MATERIALTRACE_seq.nextval,'"+td_id+"','"+PanelName+"','"+PUID+"','"+PlaceRefID+"','"+TableLocation+"','"+Track+"','"+ComponentBarcode+"','"+OriginalQuantity+"','"+Quantity+"',to_date('"+CreateDate+"','yyyy-mm-dd hh24:mi:ss'),'"+DateCode+"','"+Batch2+"'," +
  835. "'"+MsdLevel+"',to_date('"+CreateDate+"','yyyy-mm-dd hh24:mi:ss'),'"+Operator+"')");
  836. }
  837. }
  838. }
  839. }
  840. //扣料信息
  841. if(MaterialConsumptionDetail!=null){
  842. JSONArray ConsumedPackagingUnitList=MaterialConsumptionDetail.getJSONArray("ConsumedPackagingUnitList");
  843. for (int i=0;i<ConsumedPackagingUnitList.size();i++){
  844. JSONObject map1=ConsumedPackagingUnitList.getJSONObject(i);
  845. String PUID=map1.getString("PUID");
  846. String AccessTotal=map1.getString("AccessTotal");
  847. String RejectIdent=map1.getString("RejectIdent");
  848. String RejectVacuum=map1.getString("RejectVacuum");
  849. String TrackEmpty=map1.getString("TrackEmpty");
  850. baseDao.execute("insert into CONSUMEDPACKAGING(cp_id,cp_tdid,puid,AccessTotal,RejectIdent,RejectVacuum" +
  851. ",TrackEmpty) values(CONSUMEDPACKAGING_seq.nextval,'"+td_id+"','"+PUID+"','"+AccessTotal+"','"+RejectIdent+"','"+RejectVacuum+"'," +
  852. "'"+TrackEmpty+"')");
  853. }
  854. }
  855. rmap.put("code","0");
  856. rmap.put("result","OK");
  857. rmap.put("ServerMessage","MES:贴片机数据记录成功");
  858. }
  859. return rmap;
  860. }
  861. public Map<Object,Object> XrayTestDataSave(String data){
  862. Map<Object, Object> rmap = new HashMap<Object, Object>();
  863. Map<String, Object> map=null;
  864. JSONObject object = JSONObject.fromObject(data);
  865. Object object1 = object.get("data");
  866. JSONObject obj = JSONObject.fromObject(object1);
  867. JSONArray object2=obj.getJSONArray("NonconformData");
  868. Object Barcode=obj.get("Barcode");
  869. Object EquipmentEncode=obj.get("EquipmentEncode");
  870. Object ModelType=obj.get("ModelType");
  871. Object CheckNumber=obj.get("CheckNumber");
  872. Object NcmNumber=obj.get("NcmNumber");
  873. Object NonconformNumber=obj.get("NonconformNumber");
  874. Object CheckDate=obj.get("CheckDate");
  875. Object ShiftName=obj.get("ShiftName");
  876. Object LineBody=obj.get("LineBody");
  877. Object Inspector=obj.get("Inspector");
  878. int XT_ID = baseDao.getSeqId("xraytest_seq");
  879. baseDao.execute("insert into xraytest(XT_ID, BARCODE, EQUIPMENTENCODE, MODELTYPE, CHECKNUMBER, NCMNUMBER, NONCONFORMNUMBER, CHECKDATE, SHIFTNAME, LINEBODY, INSPECTOR)" +
  880. "values("+XT_ID+",'"+Barcode+"','"+EquipmentEncode+"','"+ModelType+"','"+CheckNumber+"','"+NcmNumber+"','"+NonconformNumber+"',to_date('"+CheckDate+"','yyyy-mm-dd hh24:mi:ss')" +
  881. ",'"+ShiftName+"','"+LineBody+"','"+Inspector+"')");
  882. for (int i=0;i<object2.size();i++){
  883. JSONObject map1=object2.getJSONObject(i);
  884. String NonconformANo=map1.getString("NonconformANo");
  885. String NonconformDescription=map1.getString("NonconformDescription");
  886. baseDao.execute("insert into XrayTestdetail(xtd_xtid,xtd_id,NONCONFORMANO, NONCONFORMDESCRIPTION)" +
  887. "values("+XT_ID+",XrayTestdetail_seq.nextval,'"+NonconformANo+"','"+NonconformDescription+"')");
  888. }
  889. rmap.put("code","0");
  890. rmap.put("result","OK");
  891. rmap.put("ServerMessage","MES:检查数据上传成功!");
  892. return rmap;
  893. }
  894. public String Time(String time){
  895. return time.replaceAll("T"," ").substring(0,19);
  896. }
  897. @Override
  898. public Map<Object,Object> Weigh(String data) {
  899. Map<Object, Object> rmap = new HashMap<Object, Object>();
  900. String oErrMessage="";
  901. String lotSN="";
  902. String specificationName="";
  903. String weight="";
  904. String moName="";
  905. String workcenterName="";
  906. Map<String, Object> map=null;
  907. try{
  908. map =BaseUtil.convertJsonToMap(data);
  909. }catch (Exception e){
  910. System.out.printf(e.getMessage()) ;
  911. }
  912. if(map.get("lotSN")==null){
  913. oErrMessage = "SN不能为空";
  914. rmap.put("oErrMessage",oErrMessage);
  915. return rmap;
  916. }
  917. if(map.get("lotSN")==null){
  918. oErrMessage = "SN不能为空";
  919. rmap.put("oErrMessage",oErrMessage);
  920. return rmap;
  921. }
  922. if(map.get("specificationName")==null){
  923. oErrMessage = "工序不能为空";
  924. rmap.put("oErrMessage",oErrMessage);
  925. return rmap;
  926. }
  927. if(map.get("weight")==null){
  928. oErrMessage = "重量不能为空";
  929. rmap.put("oErrMessage",oErrMessage);
  930. return rmap;
  931. }
  932. lotSN=map.get("lotSN").toString();
  933. SqlRowList rs=baseDao.queryForRowSet("select ms_sncode from makeserial where ms_imei1='"+lotSN+"' or ms_imei2='"+lotSN+"' or ms_imei3='"+lotSN+"' or ms_imei4='"+lotSN+"'");
  934. if(rs.next()){
  935. lotSN=rs.getString("ms_sncode");
  936. }else{
  937. rs=baseDao.queryForRowSet("select mil_sncode from makeimeilist where mil_imei1='"+lotSN+"' or mil_imei2='"+lotSN+"' or mil_imei3='"+lotSN+"' or mil_imei4='"+lotSN+"'");
  938. if(rs.next()){
  939. lotSN=rs.getString("mil_sncode");
  940. }
  941. }
  942. specificationName=map.get("specificationName").toString();
  943. weight=map.get("weight").toString().replaceAll("KG","");
  944. oErrMessage=CheckRoutePassed(lotSN,specificationName);
  945. if(oErrMessage!=null){
  946. rmap.put("code",-1);
  947. rmap.put("message",oErrMessage);
  948. Map<String, String> rmap1 = new HashMap<String, String>();
  949. rmap1.put("minWeight","");
  950. rmap1.put("maxWeightc","");
  951. rmap1.put("machineModel","");
  952. rmap.put("dataInfo",rmap1);
  953. return rmap;
  954. }
  955. Object[] obj = baseDao.getFieldsDataByCondition("makeserial left join product on pr_code=ms_prodcode","pr_colorboxminw,pr_colorboxmaxw","ms_id =(select max(ms_id) from makeserial where ms_sncode='"+lotSN+"')");
  956. if(obj[0]!=null&&obj[1]!=null){
  957. //不在设置的重量范围内
  958. if(Double.parseDouble(weight)<Double.parseDouble(obj[0].toString())||Double.parseDouble(weight)>Double.parseDouble(obj[1].toString())){
  959. rmap.put("code",-1);
  960. rmap.put("message","SN["+lotSN+"]重量为"+weight+",不符合重量范围"+obj[0]+"-"+obj[1]);
  961. Map<String, String> rmap1 = new HashMap<String, String>();
  962. rmap1.put("minWeight",obj[0].toString());
  963. rmap1.put("maxWeight",obj[1].toString());
  964. rmap1.put("machineModel","");
  965. rmap.put("dataInfo",rmap1);
  966. return rmap;
  967. }
  968. Object oErr=SetPcbaData(lotSN,specificationName,specificationName,"OK");
  969. if(oErr==null){
  970. rmap.put("code",0);
  971. rmap.put("message","SN["+lotSN+"]重量为"+weight+",符合重量范围"+obj[0]+"-"+obj[1]+",称重通过");
  972. Object ms_id=baseDao.getFieldDataByCondition("makeserial","max(ms_id)","ms_sncode='"+lotSN+"'");
  973. baseDao.execute("update makeserial set ms_grossw ='"+weight+"' where ms_id="+ms_id);
  974. }else{
  975. rmap.put("code",-1);
  976. rmap.put("message",oErr);
  977. }
  978. Map<String, String> rmap1 = new HashMap<String, String>();
  979. rmap1.put("minWeight",obj[0].toString());
  980. rmap1.put("maxWeight",obj[1].toString());
  981. rmap1.put("machineModel","");
  982. rmap.put("dataInfo",rmap1);
  983. return rmap;
  984. }
  985. return rmap;
  986. }
  987. @Override
  988. public Map<Object,Object> UploadReelInfo(String data) {
  989. Map<Object, Object> rmap = new HashMap<Object, Object>();
  990. String oErrMessage="";
  991. String ReelId="";
  992. String Quantity="";
  993. Map<String, Object> map=null;
  994. try{
  995. map =BaseUtil.convertJsonToMap(data);
  996. }catch (Exception e){
  997. System.out.printf(e.getMessage()) ;
  998. }
  999. if(map.get("ReelId")==null){
  1000. rmap.put("Status","NG");
  1001. rmap.put("Meassage","料盘ID不能为空");
  1002. return rmap;
  1003. }
  1004. if(map.get("Quantity")==null){
  1005. rmap.put("Status","NG");
  1006. rmap.put("Meassage","数量不能为空");
  1007. return rmap;
  1008. }
  1009. ReelId=map.get("ReelId").toString();
  1010. Quantity=map.get("Quantity").toString();
  1011. SqlRowList rs=baseDao.queryForRowSet("select bar_id,bar_prodcode,bar_remain,pr_spec,to_char(nvl(bar_madedate,sysdate),'yyyy-mm-dd')bar_madedate,bar_vendcode,bar_vendbarcode,pr_detail,bar_ordercode from barcode left join product on bar_prodcode = pr_code where bar_code=?",ReelId);
  1012. if(rs.next()){
  1013. /*baseDao.execute("update barcode@ERP_JMDZ_HF set bar_remain=?,bar_status = 2 where bar_id=?",Quantity,rs.getString("bar_id"));
  1014. baseDao.execute("insert into barcodechange@ERP_JMDZ_HF(BC_ID,BC_INDATE, BC_REASON, BC_QTY, BC_BARCODE, BC_PRODCODE, BC_NEWQTY)" +
  1015. "values(barcodechange_seq.nextval@ERP_JMDZ_HF,sysdate,'点料机更新条码数量',?,?,?,?)",rs.getString("bar_remain"),ReelId,rs.getString("bar_prodcode"),Quantity);*/
  1016. baseDao.execute("update barcode set bar_remain=?,bar_status = 1,bar_outno = '' where bar_code=?",Quantity,ReelId);
  1017. baseDao.execute("insert into barcodechange(BC_ID,BC_INDATE, BC_REASON, BC_QTY, BC_BARCODE, BC_PRODCODE, BC_NEWQTY)" +
  1018. "values(barcodechange_seq.nextval,sysdate,'点料机更新条码数量',?,?,?,?)",rs.getString("bar_remain"),ReelId,rs.getString("bar_prodcode"),Quantity);
  1019. rmap.put("Status","OK");
  1020. rmap.put("Meassage","通过");
  1021. rmap.put("PN",rs.getString("bar_prodcode"));
  1022. rmap.put("MPN",rs.getString("pr_spec"));
  1023. rmap.put("DataCode",rs.getString("bar_madedate"));
  1024. rmap.put("VENDCODE",rs.getString("bar_vendcode") != null ? rs.getString("bar_vendcode") : "");
  1025. rmap.put("VENDBARCODE",rs.getString("bar_vendbarcode") != null ? rs.getString("bar_vendbarcode") : "");
  1026. rmap.put("PRDETAIL",rs.getString("pr_detail") != null ? rs.getString("bar_vendbarcode") : "");
  1027. rmap.put("ORDERCODE",rs.getString("bar_ordercode") != null ? rs.getString("bar_ordercode") : "");
  1028. }else {
  1029. rmap.put("Status","NG");
  1030. rmap.put("Meassage","条码不存在");
  1031. return rmap;
  1032. }
  1033. return rmap;
  1034. }
  1035. @Override
  1036. public Map<Object,Object> SendSolderExecuteNode(String data) {
  1037. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1038. String SolderCode="",ScanTime ="",Station ="",Node ="";
  1039. String SysName = "",UserName ="";
  1040. Map<String, Object> map=null;
  1041. try{
  1042. map =BaseUtil.convertJsonToMap(data);
  1043. }catch (Exception e){
  1044. System.out.printf(e.getMessage()) ;
  1045. }
  1046. if(map.get("SolderCode")==null){
  1047. rmap.put("Result","NG");
  1048. rmap.put("Meassage","锡膏条码不能为空");
  1049. return rmap;
  1050. }
  1051. if(map.get("ScanTime")==null){
  1052. rmap.put("Result","NG");
  1053. rmap.put("Meassage","扫描时间不能为空");
  1054. return rmap;
  1055. }
  1056. if(map.get("Station")==null){
  1057. rmap.put("Result","NG");
  1058. rmap.put("Meassage","设备编码不能为空");
  1059. return rmap;
  1060. }
  1061. if(map.get("Node")==null){
  1062. rmap.put("Result","NG");
  1063. rmap.put("Meassage","当前节点状态不能为空");
  1064. return rmap;
  1065. }
  1066. SolderCode=map.get("SolderCode").toString();
  1067. ScanTime=Time(map.get("ScanTime").toString());
  1068. Station=map.get("Station").toString();
  1069. Node=map.get("Node").toString();
  1070. UserName=map.get("UserName").toString();
  1071. SysName=map.get("SysName").toString();
  1072. //SqlRowList rs=baseDao.queryForRowSet("select bar_id,bar_prodcode,bar_remain,pr_spec,to_char(nvl(bar_madedate,sysdate),'yyyy-mm-dd')bar_madedate from barcode@ERP_JMDZ_HF left join product on bar_prodcode = pr_code where bar_code=?",SolderCode);
  1073. SqlRowList rs=baseDao.queryForRowSet("SELECT spb_id,nvl(spb_use_count,1) spb_use_count FROM spmbarcode WHERE spb_barcode = ?",SolderCode);
  1074. if(rs.next()){
  1075. String curCount = rs.getString("spb_use_count");
  1076. if(Node.contains("回温开始")){
  1077. int spb_use_count = Integer.parseInt(curCount) + 1;
  1078. baseDao.updateByCondition("spmbarcode", "spb_status = '"+Node+"',spb_update_time = to_date('"+ScanTime+"','yyyy-mm-dd hh24:mi:ss'),spb_use_count = '"+ spb_use_count +"'", "spb_barcode='" + SolderCode + "'");
  1079. baseDao.execute("INSERT INTO spmlog ( spl_id, spl_date, spl_operation, spl_operator, spl_barcode, spl_user_count, spl_equipment,spl_sysname) VALUES ( spmlog_seq.NEXTVAL, TO_DATE(?, 'yyyy-mm-dd hh24:mi:ss'), ?, ?, ?, ?, ?,?)",ScanTime,Node,UserName,SolderCode,spb_use_count,Station,SysName);
  1080. rmap.put("Result","OK");
  1081. rmap.put("Meassage", Node +": 记录成功");
  1082. }else{
  1083. baseDao.updateByCondition("spmbarcode", "spb_status = '"+Node+"',spb_update_time = to_date('"+ScanTime+"','yyyy-mm-dd hh24:mi:ss'),spb_use_count = '"+ curCount +"'", "spb_barcode='" + SolderCode + "'");
  1084. baseDao.execute("INSERT INTO spmlog ( spl_id, spl_date, spl_operation, spl_operator, spl_barcode, spl_user_count, spl_equipment,spl_sysname) VALUES ( spmlog_seq.NEXTVAL, TO_DATE(?, 'yyyy-mm-dd hh24:mi:ss'), ?, ?, ?, ?, ?,?)",ScanTime,Node,UserName,SolderCode,curCount,Station,SysName);
  1085. rmap.put("Result","OK");
  1086. rmap.put("Meassage",Node +": 记录成功");
  1087. }
  1088. }else {
  1089. rmap.put("Result","NG");
  1090. rmap.put("Meassage","锡膏条码不存在,请先录入锡膏");
  1091. return rmap;
  1092. }
  1093. return rmap;
  1094. }
  1095. @Override
  1096. public Map<Object,Object> StencilInspect(String data){
  1097. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1098. String MeshCode ="",InspectMode ="";
  1099. Map<String, Object> map=null;
  1100. try{
  1101. map =BaseUtil.convertJsonToMap(data);
  1102. }catch (Exception e){
  1103. System.out.printf(e.getMessage()) ;
  1104. }
  1105. if(map.get("MeshCode")==null){
  1106. rmap.put("Result","NG");
  1107. rmap.put("Meassage","钢网编码不能为空");
  1108. return rmap;
  1109. }
  1110. InspectMode=map.get("InspectMode").toString();
  1111. MeshCode = map.get("MeshCode").toString();
  1112. Map<Object, Object> paramsMap = new HashMap<Object, Object>();
  1113. Map<Object, Object> paramsMap1 = new HashMap<Object, Object>();
  1114. try{
  1115. SqlRowList rs=baseDao.queryForRowSet("SELECT st_id,st_line,nvl(st_cleannums, 0) st_cleannums FROM stencil WHERE st_kind = '钢网' AND st_code = ?",MeshCode);
  1116. if(rs.next()){
  1117. String cleannums = rs.getString("st_cleannums");
  1118. SqlRowList rs1=baseDao.queryForRowSet("SELECT stenciluse_seq.NEXTVAL seq FROM dual");
  1119. if(rs1.next()){
  1120. paramsMap.put("su_id",rs1.getString("seq"));
  1121. paramsMap.put("su_useman",map.get("Inspector").toString());
  1122. paramsMap.put("su_stcode",MeshCode);
  1123. paramsMap.put("su_stid",rs.getString("st_id"));
  1124. paramsMap.put("su_status",InspectMode);
  1125. paramsMap.put("su_linecode",rs.getString("st_line"));
  1126. paramsMap.put("su_usedate",map.get("InspectTime").toString());
  1127. paramsMap.put("su_ensiona",map.get("Tension1").toString());
  1128. paramsMap.put("su_ensionb",map.get("Tension2").toString());
  1129. paramsMap.put("su_ensionc",map.get("Tension3").toString());
  1130. paramsMap.put("su_ensiond",map.get("Tension4").toString());
  1131. paramsMap.put("su_ensione",map.get("Tension5").toString());
  1132. if(InspectMode.contains("清洗")){
  1133. paramsMap.put("su_cleannums",Integer.parseInt(cleannums) + 1);
  1134. baseDao.execute(SqlUtil.getInsertSqlByMap(paramsMap,"stenciluse"));
  1135. }else{
  1136. paramsMap.put("su_cleannums",cleannums);
  1137. baseDao.execute(SqlUtil.getInsertSqlByMap(paramsMap,"stenciluse"));
  1138. }
  1139. // paramsMap1.put("std_id","steptestdetail_seq.NEXTVAL");
  1140. paramsMap1.put("std_class",InspectMode);
  1141. paramsMap1.put("STD_SUBCLASS1",rs1.getString("seq"));
  1142. paramsMap1.put("STD_DATE",map.get("InspectTime").toString());
  1143. paramsMap1.put("STD_VALUE1",map.get("DeviceCode").toString());
  1144. paramsMap1.put("STD_VALUE2",map.get("action").toString());
  1145. paramsMap1.put("STD_VALUE3",map.get("Inspector").toString());
  1146. paramsMap1.put("STD_VALUE4",map.get("HoleResult").toString());
  1147. paramsMap1.put("STD_VALUE5",map.get("TensionResult").toString());
  1148. paramsMap1.put("STD_VALUE6",map.get("InspectResult").toString());
  1149. paramsMap1.put("STD_VALUE7",map.get("InspectState").toString());
  1150. paramsMap1.put("STD_VALUE8",map.get("SizeErrNum").toString());
  1151. paramsMap1.put("STD_VALUE9",map.get("LocationErrNum").toString());
  1152. paramsMap1.put("STD_VALUE10",map.get("SurplusNum").toString());
  1153. paramsMap1.put("STD_VALUE11",map.get("InsufficientNum").toString());
  1154. paramsMap1.put("STD_VALUE12",map.get("AreaErrNum").toString());
  1155. paramsMap1.put("STD_VALUE13",map.get("ForeignMatterNum").toString());
  1156. paramsMap1.put("STD_VALUE14",map.get("PlugHoleNum").toString());
  1157. paramsMap1.put("STD_VALUE15",map.get("OtherErrNum").toString());
  1158. paramsMap1.put("STD_VALUE16",map.get("ErrCount").toString());
  1159. paramsMap1.put("STD_VALUE17",map.get("HoleCount").toString());
  1160. baseDao.execute(SqlUtil.getInsertSqlByMap(paramsMap1,"steptestdetail"));
  1161. rmap.put("Result","OK");
  1162. rmap.put("Meassage",InspectMode +": 记录成功");
  1163. }else{
  1164. rmap.put("Result","NG");
  1165. rmap.put("Meassage","获取序列失败");
  1166. }
  1167. }else {
  1168. rmap.put("Result","NG");
  1169. rmap.put("Meassage","钢网条码不存在,请先录入钢网");
  1170. return rmap;
  1171. }
  1172. }catch(Exception e){
  1173. rmap.put("Result", "NG");
  1174. rmap.put("Meassage", "系统异常: " + e.getMessage());
  1175. }
  1176. return rmap;
  1177. }
  1178. @Override
  1179. public Map<Object,Object> FirstInspect(String data){
  1180. Map<String, Object> map=null;
  1181. try{
  1182. map =BaseUtil.convertJsonToMap(data);
  1183. }catch (Exception e){
  1184. System.out.printf(e.getMessage()) ;
  1185. }
  1186. baseDao.execute("insert into "+username+".EISDATA(ed_id,ed_data,ed_indate)values("+username+".EISDATA_seq.nextval,?,sysdate)",data);
  1187. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1188. rmap.put("Result", "OK");
  1189. rmap.put("Meassage", "成功");
  1190. return rmap;
  1191. }
  1192. @Override
  1193. public Map<Object,Object> DLLMain(String accessKey, String requestId, String data) {
  1194. String AE_MASTER = "N_MES";
  1195. SpObserver.putSp(AE_MASTER);
  1196. Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data);
  1197. //解析map
  1198. if(!StringUtil.hasText(map.get("type"))){
  1199. throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_TYPENULL,requestId));
  1200. }
  1201. if(!StringUtil.hasText(map.get("detail"))){
  1202. throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_DATAILLEGAL,requestId));
  1203. }
  1204. String type = map.get("type").toString();
  1205. JSONObject json = JSONObject.fromObject(map.get("detail"));
  1206. HelperType helperType = HelperType.getTypeByCode(type);
  1207. if(null == helperType){
  1208. throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_TYPEILLEGAL,requestId));
  1209. }
  1210. baseDao.execute("insert into EISDATA(ed_id,ed_data,ed_indate)values(EISDATA_seq.nextval,?,sysdate)",data);
  1211. int err = 0;
  1212. //返回值
  1213. Map<Object, Object> remap = new HashMap<Object, Object>();
  1214. switch(helperType){
  1215. case CheckRoutePassed:
  1216. remap = CheckRoutePassed(json);
  1217. break;
  1218. case CheckUserAndResourcePassed:
  1219. remap = CheckUserAndResourcePassed(json);
  1220. break;
  1221. case GetAddressRangeByMO:
  1222. remap = GetAddressRangeByMO(json);
  1223. break;
  1224. case GetMEIOrNetCodeRange:
  1225. remap = GetMEIOrNetCodeRange(json);
  1226. break;
  1227. case GetRcardMOInfo:
  1228. remap = GetRcardMOInfo(json);
  1229. break;
  1230. case GetMobileAllInfo:
  1231. remap = GetMobileAllInfo(json);
  1232. break;
  1233. case SetAddressInfo:
  1234. remap = SetAddressInfo(json);
  1235. break;
  1236. case GetMaster:
  1237. remap = GetMaster(json);
  1238. break;
  1239. case SetMobileData:
  1240. remap = SetMobileData(json);
  1241. break;
  1242. case SetIMEIInfo:
  1243. remap = SetIMEIInfo(json);
  1244. break;
  1245. case SetTestDetail:
  1246. remap = SetTestDetail(json);
  1247. break;
  1248. case SetPcbaData:
  1249. remap = SetPcbaData(json);
  1250. break;
  1251. case GetInfoByMaterial:
  1252. remap = GetInfoByMaterial(json);
  1253. break;
  1254. case GoMo:
  1255. remap = GoMo(json);
  1256. break;
  1257. case GetMakeInfoBySN:
  1258. remap = GetMakeInfoBySN(json);
  1259. break;
  1260. default:
  1261. err = -1;
  1262. break;
  1263. }
  1264. if(err == -1){
  1265. throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_TYPEILLEGAL,requestId));
  1266. }
  1267. SpObserver.putSp(username);
  1268. return remap;
  1269. }
  1270. private Map<Object,Object> GoMo(JSONObject map){
  1271. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1272. String iSN=null;
  1273. String iResCode=null;
  1274. String iMo=null;
  1275. String oErrMessage=null;
  1276. if(map.get("iMo")==null){
  1277. oErrMessage = "工单号不能为空";
  1278. rmap.put("oErrMessage",oErrMessage);
  1279. return rmap;
  1280. }
  1281. if(map.get("iResCode")==null){
  1282. oErrMessage = "岗位资源不能为空";
  1283. rmap.put("oErrMessage",oErrMessage);
  1284. return rmap;
  1285. }
  1286. if(map.get("iSN")==null){
  1287. oErrMessage = "SN不能为空";
  1288. rmap.put("oErrMessage",oErrMessage);
  1289. return rmap;
  1290. }
  1291. iSN=map.get("iSN").toString();
  1292. iResCode=map.get("iResCode").toString();
  1293. iMo=map.get("iMo").toString();
  1294. List<String> list = new ArrayList<String>();
  1295. list = baseDao.callProcedureWithOut("CS_CHECKSTEPSNANDMACODE", new Object[]{
  1296. String.valueOf(iMo),
  1297. String.valueOf(iResCode),
  1298. String.valueOf(iSN),
  1299. String.valueOf("")
  1300. }, new Integer[]{1, 2, 3, 4}, new Integer[]{5, 6, 7});
  1301. oErrMessage=list.get(2);
  1302. SqlRowList rs = baseDao.queryForRowSet("select ms_status,ms_stepcode,ms_nextstepcode from makeserial where ms_id=( select max(ms_id) from makeserial where ms_sncode in ( select '" + iSN + "' from dual union select sn from makesnrelation where beforesn='" + iSN + "' and sn<>' ' union select beforesn from makesnrelation where sn='" + iSN + "' and beforesn<>' '))");
  1303. String ms_status = "";
  1304. String ms_stepcode = "";
  1305. String ms_nextstepcode = "";
  1306. if(rs.next()){
  1307. ms_status= rs.getString("ms_status");
  1308. ms_stepcode=rs.getString("ms_stepcode");
  1309. ms_nextstepcode=rs.getString("ms_nextstepcode");
  1310. }
  1311. String stepcode = GetStepCodeBySource(iResCode);
  1312. if ( oErrMessage == null || (ms_status == "3" && ms_stepcode == stepcode))
  1313. {
  1314. if (ms_status == "3")
  1315. {
  1316. oErrMessage = null;
  1317. }
  1318. }
  1319. rmap.put("oErrMessage",oErrMessage);
  1320. return rmap;
  1321. }
  1322. private String GoMo(String iSN,String iMo,String iResCode){
  1323. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1324. String oErrMessage=null;
  1325. List<String> list = new ArrayList<String>();
  1326. list = baseDao.callProcedureWithOut("CS_CHECKSTEPSNANDMACODE", new Object[]{
  1327. String.valueOf(iMo),
  1328. String.valueOf(iResCode),
  1329. String.valueOf(iSN),
  1330. String.valueOf("")
  1331. }, new Integer[]{1, 2, 3, 4}, new Integer[]{5, 6, 7});
  1332. oErrMessage=list.get(2);
  1333. SqlRowList rs = baseDao.queryForRowSet("select ms_status,ms_stepcode,ms_nextstepcode from makeserial where ms_id=( select max(ms_id) from makeserial where ms_sncode in ( select '" + iSN + "' from dual union select sn from makesnrelation where beforesn='" + iSN + "' and sn<>' ' union select beforesn from makesnrelation where sn='" + iSN + "' and beforesn<>' '))");
  1334. String ms_status = "";
  1335. String ms_stepcode = "";
  1336. String ms_nextstepcode = "";
  1337. if(rs.next()){
  1338. ms_status= rs.getString("ms_status");
  1339. ms_stepcode=rs.getString("ms_stepcode");
  1340. ms_nextstepcode=rs.getString("ms_nextstepcode");
  1341. }
  1342. String stepcode = GetStepCodeBySource(iResCode);
  1343. if ( oErrMessage == null || (ms_status == "3" && ms_stepcode == stepcode))
  1344. {
  1345. if (ms_status == "3")
  1346. {
  1347. oErrMessage = null;
  1348. }
  1349. }
  1350. return oErrMessage;
  1351. }
  1352. private Map<Object,Object> GetInfoByMaterial(JSONObject map){
  1353. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1354. String iPCBA=null;
  1355. String oErrMessage=null;
  1356. if(map.get("iPCBA")==null){
  1357. oErrMessage = "主板SN不能为空";
  1358. rmap.put("oErrMessage",oErrMessage);
  1359. return rmap;
  1360. }
  1361. iPCBA=map.get("iPCBA").toString();
  1362. SqlRowList rs=baseDao.queryForRowSet("select nvl(max(ms_id),0)ms_id from CRAFTMATERIAL left join makeserial on ms_firstsn=cm_firstsn where cm_barcode='"+iPCBA+"' and nvl(cm_status,0)<>-1 order by cm_id desc");
  1363. if(rs.next()){
  1364. if(!rs.getString("ms_id").equals("0")){
  1365. rs=baseDao.queryForRowSet("select ma_bios,ma_ec,ms_sncode,ma_hardware from makeserial left join make on ms_makecode=ma_code where ms_id='"+rs.getString("ms_id")+"'");
  1366. if (rs.next()){
  1367. rmap.put("oSN",rs.getString("ms_sncode"));
  1368. rmap.put("oBIOS",rs.getString("ma_bios"));
  1369. rmap.put("oEC",rs.getString("ma_ec"));
  1370. rmap.put("oHardWare",rs.getString("ma_hardware"));
  1371. }
  1372. }else{
  1373. oErrMessage = "主板SN未查询到关联信息";
  1374. rmap.put("oErrMessage",oErrMessage);
  1375. return rmap;
  1376. }
  1377. }
  1378. return rmap;
  1379. }
  1380. private Map<Object,Object> CheckRoutePassed(JSONObject map){
  1381. //实际业务数据
  1382. Map<Object, Object> rmap = new HashMap<>();
  1383. String iSN=map.get("iSN").toString();
  1384. String iResCode=map.get("iResCode").toString();
  1385. String oErrMessage="";
  1386. if (iSN ==null)
  1387. {
  1388. oErrMessage = "SN不能为空";
  1389. }
  1390. List<String> list = new ArrayList<String>();
  1391. list = baseDao.callProcedureWithOut("CS_CHECKSTEPSNANDMACODE", new Object[]{
  1392. String.valueOf(""),
  1393. String.valueOf(iResCode),
  1394. String.valueOf(iSN),
  1395. String.valueOf("")
  1396. }, new Integer[]{1, 2, 3, 4}, new Integer[]{5, 6, 7});
  1397. oErrMessage=list.get(2);
  1398. if(oErrMessage!=null){
  1399. rmap.put("oErrMessage",oErrMessage);
  1400. return rmap;
  1401. }
  1402. SqlRowList rs = baseDao.queryForRowSet("select ms_status,ms_stepcode,ms_nextstepcode from makeserial where ms_id=( select max(ms_id) from makeserial where ms_sncode in ( select '" + iSN + "' from dual union select sn from makesnrelation where beforesn='" + iSN + "' and sn<>' ' union select beforesn from makesnrelation where sn='" + iSN + "' and beforesn<>' '))");
  1403. String ms_status = "";
  1404. String ms_stepcode = "";
  1405. String ms_nextstepcode = "";
  1406. if(rs.next()){
  1407. ms_status= rs.getString("ms_status");
  1408. ms_stepcode=rs.getString("ms_stepcode");
  1409. ms_nextstepcode=rs.getString("ms_nextstepcode");
  1410. }
  1411. String stepcode = GetStepCodeBySource(iResCode);
  1412. if (ms_nextstepcode != "" && !ms_nextstepcode.equals(stepcode))
  1413. {
  1414. oErrMessage = "当前序列号下一工序" + ms_nextstepcode;
  1415. }
  1416. rmap.put("oErrMessage",oErrMessage);
  1417. return rmap;
  1418. }
  1419. private String CheckRoutePassed(String iSN,String iResCode){
  1420. //实际业务数据
  1421. Map<Object, Object> rmap = new HashMap<>();
  1422. String oErrMessage;
  1423. if (iSN ==null)
  1424. {
  1425. oErrMessage = "SN不能为空";
  1426. }
  1427. List<String> list = new ArrayList<String>();
  1428. list = baseDao.callProcedureWithOut("CS_CHECKSTEPSNANDMACODE", new Object[]{
  1429. String.valueOf(""),
  1430. String.valueOf(iResCode),
  1431. String.valueOf(iSN),
  1432. String.valueOf("")
  1433. }, new Integer[]{1, 2, 3, 4}, new Integer[]{5, 6, 7});
  1434. oErrMessage=list.get(2);
  1435. if(oErrMessage!=null){
  1436. return oErrMessage;
  1437. }
  1438. SqlRowList rs = baseDao.queryForRowSet("select ms_status,ms_stepcode,ms_nextstepcode from makeserial where ms_id=( select max(ms_id) from makeserial where ms_sncode in ( select '" + iSN + "' from dual union select sn from makesnrelation where beforesn='" + iSN + "' and sn<>' ' union select beforesn from makesnrelation where sn='" + iSN + "' and beforesn<>' '))");
  1439. String ms_status = "";
  1440. String ms_stepcode = "";
  1441. String ms_nextstepcode = "";
  1442. if(rs.next()){
  1443. ms_status= rs.getString("ms_status");
  1444. ms_stepcode=rs.getString("ms_stepcode");
  1445. ms_nextstepcode=rs.getString("ms_nextstepcode");
  1446. }
  1447. String stepcode = GetStepCodeBySource(iResCode);
  1448. if (ms_nextstepcode != "" && !ms_nextstepcode.equals(stepcode))
  1449. {
  1450. oErrMessage = "当前序列号"+iSN+"下一工序" + ms_nextstepcode;
  1451. }
  1452. return oErrMessage;
  1453. }
  1454. private Map<Object,Object> CheckUserAndResourcePassed(JSONObject map){
  1455. //实际业务数据
  1456. Map<Object, Object> rmap = new HashMap<>();
  1457. String oErrMessage = null;
  1458. if (map.get("iUserCode") == null || map.get("iResCode") == null || map.get("iPassWord") == null)
  1459. {
  1460. oErrMessage = "用户名,密码,岗位资源必须填写";
  1461. rmap.put("oErrMessage",oErrMessage);
  1462. return rmap;
  1463. }
  1464. String iUserCode=map.get("iUserCode").toString();
  1465. String iPassWord=map.get("iPassWord").toString();
  1466. String iResCode=map.get("iResCode").toString();
  1467. if (CheckUserLogin(iUserCode, iPassWord))
  1468. {
  1469. String SQL = "select em_code,em_type,em_name from employee where em_code=? ";
  1470. SqlRowList rs = baseDao.queryForRowSet(SQL, iUserCode);
  1471. if (rs.next())
  1472. {
  1473. String em_name = rs.getString("em_name");
  1474. String em_type = rs.getString("em_type");
  1475. if (iResCode ==null)
  1476. {
  1477. oErrMessage = "岗位资源不允许为空";
  1478. rmap.put("oErrMessage",oErrMessage);
  1479. return rmap;
  1480. }
  1481. if (em_type.equals("admin"))
  1482. {
  1483. if (!baseDao.checkIf("Source", "sc_code='" + iResCode + "' and sc_statuscode='AUDITED'"))
  1484. {
  1485. oErrMessage = "岗位资源编号错误或者未审核!";
  1486. }
  1487. }
  1488. else
  1489. {
  1490. SqlRowList rs1=baseDao.queryForRowSet("select ur_resourcecode from cs$empgroup left join cs$userresource on ur_groupcode=eg_groupcode left join source on ur_resourcecode=sc_code where eg_emcode = '"+ iUserCode + "' and sc_statuscode='AUDITED'");
  1491. //如果存在该编号
  1492. if (rs1.next())
  1493. {
  1494. //判断如果多个岗位资源存在,用户输入的只要在其中就行
  1495. while (rs.next())
  1496. {
  1497. if (!rs.getString("ur_resourcecode").equals("iResCode")){
  1498. oErrMessage = "用户不处于当前资源所属分组!";
  1499. }else
  1500. {
  1501. oErrMessage=null;
  1502. continue;
  1503. }
  1504. }
  1505. }
  1506. else
  1507. oErrMessage = "岗位资源编号错误或者未审核!";
  1508. }
  1509. }
  1510. else
  1511. oErrMessage = "用户不存在!";
  1512. }else{
  1513. oErrMessage = "用户名密码不正确!";
  1514. }
  1515. rmap.put("oErrMessage",oErrMessage);
  1516. return rmap;
  1517. }
  1518. private Map<Object,Object> GetAddressRangeByMO(JSONObject map){
  1519. //实际业务数据
  1520. Map<Object, Object> rmap = new HashMap<>();
  1521. String iSN="";
  1522. String oErrMessage = null;
  1523. String oWIFI = "";
  1524. String oBT = "";
  1525. String oNetCard = "";
  1526. String oCode1 = "";
  1527. String oCode2 = "";
  1528. String oCode3 = "";
  1529. if(map.get("iSN")==null){
  1530. oErrMessage = "SN不能为空";
  1531. rmap.put("oErrMessage",oErrMessage);
  1532. return rmap;
  1533. }
  1534. iSN=map.get("iSN").toString();
  1535. //判断工单是否归属
  1536. JSONObject map3=new JSONObject();
  1537. map3.put("iSN",iSN);
  1538. Map<Object, Object> map2=GetRcardMOInfo(map3);
  1539. if(map2.get("oErrMessage")!=null){
  1540. oErrMessage=map2.get("oErrMessage").toString();
  1541. rmap.put("oErrMessage",oErrMessage);
  1542. return rmap;
  1543. }
  1544. List<String> list = new ArrayList<String>();
  1545. list = baseDao.callProcedureWithOut("CS_GETADDRESSBYMAKECODE_FIMEI", new Object[]{
  1546. String.valueOf(iSN),
  1547. String.valueOf(map2.get("oMoCode").toString()),
  1548. }, new Integer[]{1,2}, new Integer[]{3,4,5,6,7,8,9});
  1549. oWIFI = list.get(0);
  1550. oBT = list.get(1);
  1551. oNetCard = list.get(2);
  1552. oCode1 = list.get(3);
  1553. oCode2 = list.get(4);
  1554. oCode3 = list.get(5);
  1555. oErrMessage= list.get(6);
  1556. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  1557. rmap.put("oWIFI",oWIFI);
  1558. rmap.put("oBT",oBT);
  1559. rmap.put("oNetCard",oNetCard);
  1560. rmap.put("oCode1",oCode1);
  1561. rmap.put("oCode2",oCode2);
  1562. rmap.put("oCode3",oCode3);
  1563. rmap.put("oErrMessage",oErrMessage);
  1564. }
  1565. else
  1566. rmap.put("oErrMessage",oErrMessage);
  1567. return rmap;
  1568. }
  1569. private Map<Object,Object> GetMEIOrNetCodeRange(JSONObject map){
  1570. //实际业务数据
  1571. Map<Object, Object> rmap = new HashMap<>();
  1572. String iSN="";
  1573. String oErrMessage = null;
  1574. String oIMEI1 = "";
  1575. String oIMEI2 = "";
  1576. String oIMEI3 = "";
  1577. String oIMEI4 = "";
  1578. String oMEID = "";
  1579. String oNetCode = "";
  1580. String oPSN = "";
  1581. String oID1 = "";
  1582. String oID2 = "";
  1583. String oID3 = "";
  1584. String oID4 = "";
  1585. String oID5 = "";
  1586. if(map.get("iSN")==null){
  1587. oErrMessage = "SN不能为空";
  1588. rmap.put("oErrMessage",oErrMessage);
  1589. return rmap;
  1590. }
  1591. if(map.get("iIMEI1")!=null){
  1592. oIMEI1=map.get("iIMEI1").toString();
  1593. }
  1594. if(map.get("iNetCode")!=null){
  1595. oNetCode=map.get("iNetCode").toString();
  1596. }
  1597. iSN=map.get("iSN").toString();
  1598. Object MAC_IMEI=baseDao.getFieldDataByCondition("makeaddresslist", "mal_imei", "mal_sncode='" + iSN + "'");
  1599. if(MAC_IMEI!=null){
  1600. oIMEI1=MAC_IMEI.toString();
  1601. }
  1602. List<String> list = new ArrayList<String>();
  1603. list = baseDao.callProcedureWithOut("CS_GETIMEIORNETCODERANGE_FIMEI", new Object[]{
  1604. String.valueOf(iSN),
  1605. String.valueOf(""),
  1606. String.valueOf(oIMEI1),
  1607. String.valueOf(oNetCode),
  1608. }, new Integer[]{1,2,3,4}, new Integer[]{5,6,7,8,9,10,11,12,13,14,15});
  1609. oIMEI1 = list.get(0);
  1610. oIMEI2 = list.get(1);
  1611. oIMEI3 = list.get(2);
  1612. oIMEI4 = list.get(3);
  1613. oMEID = list.get(4);
  1614. oNetCode = list.get(5);
  1615. oPSN = list.get(6);
  1616. oID1 = list.get(7);
  1617. oID2 = list.get(8);
  1618. oID3 = list.get(9);
  1619. oErrMessage= list.get(10);
  1620. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  1621. rmap.put("oIMEI1",oIMEI1);
  1622. rmap.put("oIMEI2",oIMEI2);
  1623. rmap.put("oIMEI3",oIMEI3);
  1624. rmap.put("oIMEI4",oIMEI4);
  1625. rmap.put("oMEID",oMEID);
  1626. rmap.put("oNetCode",oNetCode);
  1627. rmap.put("oPSN",oPSN);
  1628. rmap.put("oID1",oID1);
  1629. rmap.put("oID2",oID2);
  1630. rmap.put("oID3",oID3);
  1631. rmap.put("oErrMessage",oErrMessage);
  1632. }
  1633. else
  1634. rmap.put("oErrMessage",oErrMessage);
  1635. return rmap;
  1636. }
  1637. private Map<Object,Object> GetRcardMOInfo(JSONObject map){
  1638. //实际业务数据
  1639. Map<Object, Object> rmap = new HashMap<>();
  1640. //取MakeProcess表中的执行记录ID最大的一个工单的号码
  1641. String oErrMessage = null;
  1642. if(map.get("iSN")==null){
  1643. oErrMessage = "SN不能为空";
  1644. rmap.put("oErrMessage",oErrMessage);
  1645. return rmap;
  1646. }
  1647. String iSN=map.get("iSN").toString();
  1648. StringBuffer sql=new StringBuffer();
  1649. sql.append("select max(ms_id)ms_id from makeserial where ms_sncode in (select '" + iSN + "' from dual union select sn from ");
  1650. sql.append("makesnrelation where beforesn='" + iSN + "' and sn<>' ' union select beforesn from makesnrelation where sn='" + iSN + "' and beforesn<>' ')");
  1651. SqlRowList rs = baseDao.queryForRowSet(sql.toString());
  1652. String ms_id="";
  1653. if(rs.next()){
  1654. if(rs.getString("ms_id")==null){
  1655. oErrMessage = "序列号:" + iSN + " 未归属工单";
  1656. rmap.put("oErrMessage",oErrMessage);
  1657. return rmap;
  1658. }
  1659. else{
  1660. ms_id= rs.getString("ms_id");
  1661. }
  1662. }
  1663. Object oMoCode = baseDao.getFieldDataByCondition("MakeSerial", "ms_makecode", "ms_id='" + ms_id + "'");
  1664. if (oMoCode != null){
  1665. rmap.put("oMoCode",oMoCode);
  1666. oErrMessage= null;
  1667. }
  1668. else
  1669. {
  1670. oErrMessage = "序列号:" + iSN + " 未归属工单";
  1671. }
  1672. rmap.put("oErrMessage",oErrMessage);
  1673. return rmap;
  1674. }
  1675. private Map<Object,Object> GetMobileAllInfo(JSONObject map){
  1676. //实际业务数据
  1677. Map<Object, Object> rmap = new HashMap<>();
  1678. String iSN="";
  1679. String oErrMessage = null;
  1680. String oIMEI1 = "";
  1681. String oIMEI2 = "";
  1682. String oIMEI3 = "";
  1683. String oIMEI4 = "";
  1684. String oMEID = "";
  1685. String oNetCode = "";
  1686. String oNetCard = "";
  1687. String oPSN = "";
  1688. String oID1 = "";
  1689. String oID2 = "";
  1690. String oID3 = "";
  1691. String oID4 = "";
  1692. String oID5 = "";
  1693. String oWIFI = "";
  1694. String oBT = "";
  1695. String oCode1 = "";
  1696. String oCode2 = "";
  1697. String oCode3 = "";
  1698. if(map.get("iSN")==null){
  1699. oErrMessage = "SN不能为空";
  1700. rmap.put("oErrMessage",oErrMessage);
  1701. return rmap;
  1702. }
  1703. iSN=map.get("iSN").toString();
  1704. Object ms_id =baseDao.getFieldDataByCondition("makeserial", "max(ms_id)", "ms_sncode='" + iSN + "'");
  1705. if(ms_id!=null)
  1706. {
  1707. SqlRowList rs=baseDao.queryForRowSet("select ms_imei4,ms_id, ms_mac, ms_bt, ms_meid, ms_netcode, ms_psn, ms_imei1, ms_imei2, ms_imei3, ms_othcode1, ms_othcode2, ms_othcode3, ms_othid1, ms_othid2, ms_othid3,ms_netcard from MakeSerial where ms_id="+ms_id.toString());
  1708. if(rs.next()){
  1709. oWIFI = rs.getString("ms_mac");
  1710. oBT = rs.getString("ms_bt");
  1711. oPSN = rs.getString("ms_psn");
  1712. oNetCode = rs.getString("ms_netcode");
  1713. oNetCard = rs.getString("ms_netcard");
  1714. oMEID = rs.getString("ms_meid");
  1715. oIMEI1 = rs.getString("ms_imei1");
  1716. oIMEI2 = rs.getString("ms_imei2");
  1717. oIMEI3 = rs.getString("ms_imei3");
  1718. oIMEI4 = rs.getString("ms_imei4");
  1719. oCode1 = rs.getString("ms_othcode1");
  1720. oCode2 = rs.getString("ms_othcode2");
  1721. oCode3 = rs.getString("ms_othcode3");
  1722. oID1 = rs.getString("ms_othid1");
  1723. oID2 = rs.getString("ms_othid2");
  1724. oID3 = rs.getString("ms_othid3");
  1725. }
  1726. }else
  1727. {
  1728. oErrMessage = "序列号" + iSN + "不存在";
  1729. rmap.put("oErrMessage",oErrMessage);
  1730. return rmap;
  1731. }
  1732. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  1733. rmap.put("oIMEI1",oIMEI1);
  1734. rmap.put("oIMEI2",oIMEI2);
  1735. rmap.put("oIMEI3",oIMEI3);
  1736. rmap.put("oIMEI4",oIMEI4);
  1737. rmap.put("oMEID",oMEID);
  1738. rmap.put("oNetCode",oNetCode);
  1739. rmap.put("oNetCard",oNetCard);
  1740. rmap.put("oPSN",oPSN);
  1741. rmap.put("oID1",oID1);
  1742. rmap.put("oID2",oID2);
  1743. rmap.put("oID3",oID3);
  1744. rmap.put("oID4",oID4);
  1745. rmap.put("oID5",oID5);
  1746. rmap.put("oWIFI",oWIFI);
  1747. rmap.put("oBT",oBT);
  1748. rmap.put("oCode1",oCode1);
  1749. rmap.put("oCode2",oCode2);
  1750. rmap.put("oCode3",oCode3);
  1751. rmap.put("oErrMessage","");
  1752. }
  1753. else
  1754. rmap.put("oErrMessage",oErrMessage);
  1755. return rmap;
  1756. }
  1757. private Map<Object,Object> SetAddressInfo(JSONObject map){
  1758. //实际业务数据
  1759. Map<Object, Object> rmap = new HashMap<>();
  1760. String oErrMessage = null;
  1761. if(map.get("iSN")==null){
  1762. oErrMessage = "SN不能为空";
  1763. rmap.put("oErrMessage",oErrMessage);
  1764. return rmap;
  1765. }
  1766. String iSN=map.get("iSN").toString();
  1767. String iWIFI = null;
  1768. String iBT = null;
  1769. String iCode1 = null;
  1770. String iCode2 = null;
  1771. String iCode3 = null;
  1772. String iNetCard=null;
  1773. if(map.get("iWIFI")!=null){
  1774. iWIFI=map.get("iWIFI").toString();
  1775. }
  1776. if(map.get("iMAC")!=null){
  1777. iWIFI=map.get("iMAC").toString();
  1778. }
  1779. if(map.get("iBT")!=null){
  1780. iBT=map.get("iBT").toString();
  1781. }
  1782. if(map.get("iCode1")!=null){
  1783. iCode1=map.get("iCode1").toString();
  1784. }
  1785. if(map.get("iNetCard")!=null){
  1786. iNetCard=map.get("iNetCard").toString();
  1787. }
  1788. if(map.get("iCode2")!=null){
  1789. iCode2=map.get("iCode2").toString();
  1790. }
  1791. if(map.get("iCode3")!=null){
  1792. iCode3=map.get("iCode3").toString();
  1793. }
  1794. List<String> list = new ArrayList<String>();
  1795. list = baseDao.callProcedureWithOut("CS_SETADDRESSINFO_FIMEI", new Object[]{
  1796. String.valueOf(iSN),
  1797. String.valueOf(iWIFI),
  1798. String.valueOf(iBT),
  1799. String.valueOf(iNetCard),
  1800. String.valueOf(iCode1),
  1801. String.valueOf(iCode2),
  1802. String.valueOf(iCode3)
  1803. }, new Integer[]{1, 2, 3, 4, 5, 6,7}, new Integer[]{8});
  1804. oErrMessage = list.get(0);
  1805. rmap.put("oErrMessage",oErrMessage);
  1806. return rmap;
  1807. }
  1808. private Map<Object,Object> GetMaster(JSONObject map){
  1809. //实际业务数据
  1810. Map<Object, Object> rmap = new HashMap<>();
  1811. SqlRowList rs=baseDao.queryForRowSet("select ma_user from mes.master");
  1812. while(rs.next())
  1813. {
  1814. rmap.put(rs.getString("ma_user"),rs.getString("ma_user"));
  1815. }
  1816. return rmap;
  1817. }
  1818. private Map<Object,Object> SetMobileData(JSONObject map){
  1819. //实际业务数据
  1820. Map<Object, Object> rmap = new HashMap<>();
  1821. String oErrMessage = null;
  1822. if(map.get("iSN")==null||map.get("iTSN")==null){
  1823. oErrMessage = "SN不能为空";
  1824. rmap.put("oErrMessage",oErrMessage);
  1825. return rmap;
  1826. }
  1827. String iSN=map.get("iSN").toString();
  1828. String iTSN=map.get("iTSN").toString();
  1829. String iSourceCode = null;
  1830. String iOperater = null;
  1831. String iResult = null;
  1832. String flag = null;
  1833. String iErrCode = null;
  1834. if(map.get("iSourceCode")!=null){
  1835. iSourceCode=map.get("iSourceCode").toString();
  1836. }
  1837. if(map.get("iOperater")!=null){
  1838. iOperater=map.get("iOperater").toString();
  1839. }
  1840. if(map.get("iResult")!=null){
  1841. iResult=map.get("iResult").toString();
  1842. }
  1843. if(map.get("flag")!=null){
  1844. flag=map.get("flag").toString();
  1845. }
  1846. if(map.get("iErrCode")!=null){
  1847. iErrCode=map.get("iErrCode").toString();
  1848. }
  1849. List<String> list = new ArrayList<String>();
  1850. list = baseDao.callProcedureWithOut("CS_DLLSNCHANGE", new Object[]{
  1851. String.valueOf(iTSN),
  1852. String.valueOf(iSN),
  1853. String.valueOf(iSourceCode),
  1854. String.valueOf(iOperater),
  1855. String.valueOf(iResult),
  1856. String.valueOf(iErrCode),
  1857. }, new Integer[]{1, 2, 3, 4, 5, 6}, new Integer[]{7});
  1858. oErrMessage = list.get(0);
  1859. rmap.put("oErrMessage",oErrMessage);
  1860. return rmap;
  1861. }
  1862. private Map<Object,Object> SetIMEIInfo(JSONObject map){
  1863. //实际业务数据
  1864. Map<Object, Object> rmap = new HashMap<>();
  1865. String oErrMessage = null;
  1866. if(map.get("iSN")==null){
  1867. oErrMessage = "SN不能为空";
  1868. rmap.put("oErrMessage",oErrMessage);
  1869. return rmap;
  1870. }
  1871. String iSN=map.get("iSN").toString();
  1872. String iIMEI1=null;
  1873. String iIMEI2 = null;
  1874. String iIMEI3 = null;
  1875. String iIMEI4 = null;
  1876. String iMEID = null;
  1877. String iPSN = null;
  1878. String iNET = null;
  1879. String iID1 = null;
  1880. String iID2 = null;
  1881. String iID3 = null;
  1882. if(map.get("iPSN")!=null){
  1883. iPSN=map.get("iPSN").toString();
  1884. }
  1885. if(map.get("iIMEI1")!=null){
  1886. iIMEI1=map.get("iIMEI1").toString();
  1887. }
  1888. if(map.get("iIMEI2")!=null){
  1889. iIMEI2=map.get("iIMEI2").toString();
  1890. }
  1891. if(map.get("iIMEI3")!=null){
  1892. iIMEI3=map.get("iIMEI3").toString();
  1893. }
  1894. if(map.get("iIMEI4")!=null){
  1895. iIMEI4=map.get("iIMEI4").toString();
  1896. }
  1897. if(map.get("iMEID")!=null){
  1898. iMEID=map.get("iMEID").toString();
  1899. }
  1900. if(map.get("iNET")!=null){
  1901. iNET=map.get("iNET").toString();
  1902. }
  1903. if(map.get("iID1")!=null){
  1904. iID1=map.get("iID1").toString();
  1905. }
  1906. if(map.get("iID2")!=null){
  1907. iID2=map.get("iID2").toString();
  1908. }
  1909. if(map.get("iID3")!=null){
  1910. iID3=map.get("iID3").toString();
  1911. }
  1912. List<String> list = new ArrayList<String>();
  1913. list = baseDao.callProcedureWithOut("CS_SETIMEIINFO_FIMEI", new Object[]{
  1914. String.valueOf(iSN),
  1915. String.valueOf(iIMEI1),
  1916. String.valueOf(iIMEI2),
  1917. String.valueOf(iIMEI3),
  1918. String.valueOf(iIMEI4),
  1919. String.valueOf(iMEID),
  1920. String.valueOf(iNET),
  1921. String.valueOf(iPSN),
  1922. String.valueOf(iID1),
  1923. String.valueOf(iID2),
  1924. String.valueOf(iID3),
  1925. }, new Integer[]{1, 2, 3, 4, 5, 6,7,8,9,10,11}, new Integer[]{12});
  1926. oErrMessage = list.get(0);
  1927. rmap.put("oErrMessage",oErrMessage);
  1928. return rmap;
  1929. }
  1930. private Map<Object,Object> SetTestDetail(JSONObject map){
  1931. //实际业务数据
  1932. Map<Object, Object> rmap = new HashMap<>();
  1933. String oErrMessage=null;
  1934. if(map.get("iSN")==null){
  1935. oErrMessage = "SN不能为空";
  1936. rmap.put("oErrMessage",oErrMessage);
  1937. return rmap;
  1938. }
  1939. String iSN=map.get("iSN").toString();
  1940. String iTestResult= "";
  1941. String iResCode= "";
  1942. String iClassName="";
  1943. String iTestDetail= "";
  1944. if(map.get("iTestResult")!=null){
  1945. iTestResult=map.get("iTestResult").toString();
  1946. }
  1947. if(map.get("iClassName")!=null){
  1948. iClassName=map.get("iClassName").toString();
  1949. }
  1950. if(map.get("iResCode")!=null){
  1951. iResCode=map.get("iResCode").toString();
  1952. }
  1953. if(map.get("iTestDetail")!=null){
  1954. iTestDetail=map.get("iTestDetail").toString();
  1955. }
  1956. JSONObject map3=new JSONObject();
  1957. map3.put("iSN",iSN);
  1958. Map<Object, Object> map2=GetRcardMOInfo(map3);
  1959. String omakeCode = "";
  1960. StringBuffer sql=new StringBuffer();
  1961. String[] name=iClassName.split("\\|");
  1962. String[] result=iTestResult.split("\\|");
  1963. String[] value=iTestDetail.split("\\|");
  1964. if(name.length!=value.length||name.length!=result.length){
  1965. rmap.put("oErrMessage","测试项目名称和值的项次不一致");
  1966. return rmap;
  1967. }
  1968. for (int i=0;i<name.length;i++){
  1969. sql.setLength(0);
  1970. sql.append("Insert into STEPTESTDETAIL (STD_ID,STD_CLASS,STD_SN,STD_MAKECODE,STD_ACTUALVALUE,STD_TESTRESULT,STD_INDATE,STD_RESCODE)");
  1971. sql.append("values(STEPTESTDETAIL_SEQ.nextval,'"+name[i]+"','" + iSN + "','" + map2.get("oMoCode") + "','" + value[i] + "','" + result[i] + "',sysdate,'" + iResCode + "')");
  1972. baseDao.execute(sql.toString());
  1973. }
  1974. rmap.put("oErrMessage",oErrMessage);
  1975. return rmap;
  1976. }
  1977. private Map<Object,Object> SetPcbaData(JSONObject map){
  1978. //实际业务数据
  1979. Map<Object, Object> rmap = new HashMap<>();
  1980. String oErrMessage = null;
  1981. if(map.get("iSN")==null){
  1982. oErrMessage = "SN不能为空";
  1983. rmap.put("oErrMessage",oErrMessage);
  1984. return rmap;
  1985. }
  1986. String iSN=map.get("iSN").toString();
  1987. String iResCode = null;
  1988. String iOperator = null;
  1989. String iResult = null;
  1990. String iErrCode = null;
  1991. if(map.get("iResCode")!=null){
  1992. iResCode=map.get("iResCode").toString();
  1993. }
  1994. if(map.get("iOperator")!=null){
  1995. iOperator=map.get("iOperator").toString();
  1996. }
  1997. if(map.get("iResult")!=null){
  1998. iResult=map.get("iResult").toString();
  1999. }
  2000. if(map.get("iErrCode")!=null){
  2001. iErrCode=map.get("iErrCode").toString();
  2002. }
  2003. JSONObject map3=new JSONObject();
  2004. map3.put("iSN",iSN);
  2005. Map<Object, Object> map2=GetRcardMOInfo(map3);
  2006. String oMoCode=null;
  2007. if(map2.get("oMoCode")!=null){
  2008. oMoCode=map2.get("oMoCode").toString();
  2009. }
  2010. if (map2.get("oErrMessage")==null)
  2011. return SetStepFinish(oMoCode, iResCode, iSN, "", iResult, iOperator, iErrCode);
  2012. return rmap;
  2013. }
  2014. private Object SetPcbaData(String iSN,String iResCode,String iOperator,String iResult){
  2015. //实际业务数据
  2016. Map<Object, Object> rmap = new HashMap<>();
  2017. String iErrCode = null;
  2018. if(iSN==null){
  2019. iErrCode = "SN不能为空";
  2020. return iErrCode;
  2021. }
  2022. JSONObject map3=new JSONObject();
  2023. map3.put("iSN",iSN);
  2024. Map<Object, Object> map2=GetRcardMOInfo(map3);
  2025. String oMoCode=null;
  2026. if(map2.get("oMoCode")!=null){
  2027. oMoCode=map2.get("oMoCode").toString();
  2028. }
  2029. if (map2.get("oErrMessage")==null)
  2030. map2= SetStepFinish(oMoCode, iResCode, iSN, "", iResult, iResCode, iErrCode);
  2031. return map2.get("oErrMessage");
  2032. }
  2033. /// <summary>
  2034. /// 获取步骤代码
  2035. /// </summary>
  2036. /// <param name="Source"></param>
  2037. /// <returns></returns>
  2038. private String GetStepCodeBySource(String Source)
  2039. {
  2040. Object o=baseDao.getFieldDataByCondition("source", "sc_stepcode", "sc_code='" + Source + "'");
  2041. if(o!=null)
  2042. return o.toString();
  2043. else
  2044. return "";
  2045. }
  2046. private Boolean CheckUserLogin(String iUserCode, String iPassWord)
  2047. {
  2048. SqlRowList rs =baseDao.queryForRowSet("select em_code from employee where em_code='"+iUserCode+"' and em_password =?",iPassWord);
  2049. if (rs.next())
  2050. return true;
  2051. else
  2052. {
  2053. return false;
  2054. }
  2055. }
  2056. private Map<Object,Object> GetMakeInfoBySN(JSONObject map)
  2057. {
  2058. Map<Object, Object> rmap = new HashMap<Object, Object>();
  2059. String iSN=null;
  2060. String oErrMessage=null;
  2061. if(map.get("iSN")==null){
  2062. oErrMessage = "SN不能为空";
  2063. rmap.put("oErrMessage",oErrMessage);
  2064. return rmap;
  2065. }
  2066. iSN=map.get("iSN").toString();
  2067. SqlRowList rs=baseDao.queryForRowSet("select ma_remark1,ma_remark2,ma_remark3,ma_remark4,ma_remark5,ma_remark6,ma_remark7,ma_remark8,ma_remark9,ma_remark10,ma_remark11,ma_remark12,ma_remark13,ma_remark14,ma_remark15,ma_remark16 from make " +
  2068. "left join makeserial on ms_makecode=ma_code where ms_sncode='"+iSN+"'");
  2069. if(rs.next()){
  2070. rmap.put("oMaremark1",rs.getString("ma_remark1"));
  2071. rmap.put("oMaremark2",rs.getString("ma_remark2"));
  2072. rmap.put("oMaremark3",rs.getString("ma_remark3"));
  2073. rmap.put("oMaremark4",rs.getString("ma_remark4"));
  2074. rmap.put("oMaremark5",rs.getString("ma_remark5"));
  2075. rmap.put("oMaremark6",rs.getString("ma_remark6"));
  2076. rmap.put("oMaremark7",rs.getString("ma_remark7"));
  2077. rmap.put("oMaremark8",rs.getString("ma_remark8"));
  2078. rmap.put("oMaremark9",rs.getString("ma_remark9"));
  2079. rmap.put("oMaremark10",rs.getString("ma_remark10"));
  2080. rmap.put("oMaremark11",rs.getString("ma_remark11"));
  2081. rmap.put("oMaremark12",rs.getString("ma_remark12"));
  2082. rmap.put("oMaremark13",rs.getString("ma_remark13"));
  2083. rmap.put("oMaremark14",rs.getString("ma_remark14"));
  2084. rmap.put("oMaremark15",rs.getString("ma_remark15"));
  2085. rmap.put("oMaremark16",rs.getString("ma_remark16"));
  2086. return rmap;
  2087. }else{
  2088. oErrMessage = "SN未查询到关联信息";
  2089. rmap.put("oErrMessage",oErrMessage);
  2090. return rmap;
  2091. }
  2092. }
  2093. public Map<Object,Object> SetStepFinish(String iMakeCode, String iSourceCode, String iSN, String iMPKind, String iResult, String iUserCode, String iErrCode)
  2094. {
  2095. String oErrMessage = null;
  2096. Object StepCode = baseDao.getFieldDataByCondition("Makeserial", "ms_stepcode", "ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  2097. String CurrentStep = GetStepCodeBySource(iSourceCode);
  2098. Object BgCode = baseDao.getFieldDataByCondition("step", "nvl(st_badgroupcode,' ')", "st_code='" + CurrentStep + "'");
  2099. Map<Object, Object> rmap = new HashMap<>();
  2100. switch (iResult)
  2101. {
  2102. case "OK":
  2103. break;
  2104. case "NG":
  2105. if (iErrCode == "")
  2106. {
  2107. oErrMessage = "测试结果为NG时必须传递不良代码";
  2108. rmap.put("oErrMessage",oErrMessage);
  2109. return rmap;
  2110. }
  2111. else
  2112. {
  2113. baseDao.updateByCondition("makebad", "mb_status=-1", "mb_sncode='" + iSN + "' and mb_makecode='" + iMakeCode + "' and mb_stepcode='" + CurrentStep + "' and mb_status=0");
  2114. String[] BadCode = iErrCode.split(",");
  2115. StringBuffer sql=new StringBuffer();
  2116. for (int i = 0; i < BadCode.length; i++)
  2117. {
  2118. if(!baseDao.checkIf("badcode","bc_code='"+ BadCode[i]+"'")){
  2119. oErrMessage = "不良代码"+BadCode[i]+"不存在";
  2120. rmap.put("oErrMessage",oErrMessage);
  2121. return rmap;
  2122. }
  2123. int mb_id = baseDao.getSeqId("makebad_seq");
  2124. sql.setLength(0);
  2125. sql.append("insert into makebad(mb_id,mb_makecode,mb_mscode,mb_sncode,mb_inman,mb_indate,mb_stepcode");
  2126. sql.append(",mb_sourcecode,mb_badcode,mb_badtable,mb_bgcode,mb_soncode,mb_status) select '" + mb_id + "'");
  2127. sql.append(",ma_code,ms_code,ms_sncode,'" + iUserCode + "',sysdate,'" + CurrentStep + "','" + iSourceCode + "','" + BadCode[i] + "','',");
  2128. sql.append("'" + BgCode + "',sp_soncode,'0' from make left join makeSerial on ms_makecode=ma_code left join stepProduct on ");
  2129. sql.append("sp_mothercode=ma_prodcode and sp_stepcode=ms_nextstepcode where ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  2130. baseDao.execute(sql.toString());
  2131. }
  2132. //将不良的序列号的状态码设为3
  2133. baseDao.execute("update makeserial set ms_status='3' where ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  2134. }
  2135. break;
  2136. default:
  2137. oErrMessage = "测试结果必须为NG或者OK";
  2138. rmap.put("oErrMessage",oErrMessage);
  2139. return rmap;
  2140. }
  2141. //不良采集为良品是更新
  2142. if (StepCode!=null &&StepCode.toString().equals(CurrentStep) && iResult == "OK")
  2143. {
  2144. Object[] ob = baseDao.getFieldsDataByCondition("makeserial", "ms_status,ms_craftcode,ms_prodcode", "ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  2145. if (ob!=null)
  2146. {
  2147. String ms_status =ob[0].toString();
  2148. String ms_craftcode= ob[1].toString();
  2149. String ms_prodcode = ob[2].toString();
  2150. if (ms_status == "3")
  2151. {
  2152. String nextstepcode =baseDao.getFieldDataByCondition("craft left join craftdetail on cr_id=cd_crid ", "cd_nextstepcode", "cr_code='" + ms_craftcode + "' and cr_prodcode='" + ms_prodcode + "' and cd_stepcode='" + CurrentStep + "'").toString();
  2153. baseDao.updateByCondition("makeserial", "ms_status=1,ms_nextstepcode='" + nextstepcode + "'", "ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  2154. baseDao.updateByCondition("makebad", "mb_status=-1", "mb_sncode='" + iSN + "' and mb_makecode='" + iMakeCode + "'");
  2155. }
  2156. }
  2157. }
  2158. return CS_SetFinish(iMakeCode, iSourceCode, iSN, iUserCode, iResult);
  2159. }
  2160. private Map<Object,Object> CS_SetFinish(String iMakeCode, String iSourceCode, String iSN, String iUserCode, String iResult)
  2161. {
  2162. Map<Object, Object> rmap = new HashMap<>();
  2163. String oErrMessage=null;
  2164. List<String> list = new ArrayList<String>();
  2165. list = baseDao.callProcedureWithOut("CS_SETSTEPRESULT", new Object[]{
  2166. String.valueOf(iMakeCode),
  2167. String.valueOf(iSourceCode),
  2168. String.valueOf(iSN),
  2169. String.valueOf(iUserCode),
  2170. String.valueOf(iResult),
  2171. }, new Integer[]{1, 2, 3, 4, 5}, new Integer[]{6});
  2172. oErrMessage = list.get(0);
  2173. rmap.put("oErrMessage",oErrMessage);
  2174. return rmap;
  2175. }
  2176. @Override
  2177. public Map<Object,Object> getMESSnCode(String data) {
  2178. Map<String, Object> map=null;
  2179. Map<Object, Object> rmap = new HashMap<Object, Object>();
  2180. try{
  2181. map =BaseUtil.convertJsonToMap(data);
  2182. }catch (Exception e){
  2183. rmap.put("code",-1);
  2184. rmap.put("message",e.getMessage());
  2185. System.out.printf(e.getMessage()) ;
  2186. return rmap;
  2187. }
  2188. String macode = map.get("moid") == null ? "" : String.valueOf(map.get("moid"));
  2189. if("".equals(macode)){
  2190. rmap.put("code",-1);
  2191. rmap.put("message","工单不能为空");
  2192. return rmap;
  2193. }
  2194. if (!baseDao.checkIf("make","ma_code='"+macode+"'")){
  2195. rmap.put("code",-1);
  2196. rmap.put("message","工单【"+macode+"】不存在");
  2197. return rmap;
  2198. }
  2199. if (baseDao.checkIf("make","nvl(ma_statuscode,' ')<>'STARTED' and ma_code='"+macode+"'")){
  2200. rmap.put("code",-1);
  2201. rmap.put("message","工单不是已下放状态");
  2202. return rmap;
  2203. }
  2204. if (!baseDao.checkIf("MakeSnList","msl_makecode='"+macode+"'")){
  2205. rmap.put("code",-1);
  2206. rmap.put("message","工单未维护SN");
  2207. return rmap;
  2208. }
  2209. double sncount = map.get("count") == null ? 0 : Double.parseDouble(map.get("count").toString());
  2210. if(sncount<=0){
  2211. rmap.put("code",-1);
  2212. rmap.put("message","SN数量必须大于0");
  2213. return rmap;
  2214. }
  2215. int count = baseDao.getCountByCondition("MakeSnList", "msl_makecode='" + macode + "' and nvl(msl_status,0)=0");
  2216. if (count<sncount){
  2217. rmap.put("code",-1);
  2218. rmap.put("message","SN不足!");
  2219. return rmap;
  2220. }
  2221. List<String> sqls = new ArrayList<>();
  2222. List<Map<String, Object>> maps = new ArrayList<>();
  2223. Map<String, Object> snmap=null;
  2224. SqlRowList rs = baseDao.queryForRowSet("select msl_sncode,msl_id from (select msl_sncode,msl_id from MakeSnList where msl_makecode='" + macode + "' and nvl(msl_status,0)=0 order by msl_sncode) where rownum<="+sncount +" order by msl_sncode ");
  2225. String mainbarcode="";
  2226. String msl_id="";
  2227. while (rs.next()){
  2228. snmap=new HashMap<String, Object>();
  2229. snmap.put("serialNo",rs.getGeneralString("msl_sncode"));
  2230. mainbarcode=rs.getGeneralString("msl_sncode");
  2231. maps.add(snmap);
  2232. sqls.add("update MakeSnList set msl_signtime=sysdate,msl_status=-1 where msl_id="+rs.getGeneralInt("msl_id"));
  2233. msl_id+=rs.getGeneralInt("msl_id")+",";
  2234. }
  2235. msl_id+="0";
  2236. baseDao.execute("update MakeSnList set msl_mainbarcode='"+mainbarcode+"' where msl_id in ("+msl_id+")");
  2237. if (sqls!=null&&sqls.size()>0){
  2238. baseDao.execute(sqls);
  2239. }
  2240. rmap.put("code",0);
  2241. rmap.put("data",maps);
  2242. return rmap;
  2243. }
  2244. }