MESHelperServiceImpl.java 98 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505
  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.*;
  6. import com.uas.eis.exception.ApiSystemException;
  7. import com.uas.eis.sdk.entity.ApiResult;
  8. import com.uas.eis.service.MESDataService;
  9. import com.uas.eis.service.MESHelperService;
  10. import com.uas.eis.utils.*;
  11. import flexjson.JSON;
  12. import net.sf.json.JSONArray;
  13. import net.sf.json.JSONObject;
  14. import net.sf.json.JsonConfig;
  15. import org.apache.commons.lang.StringUtils;
  16. import org.dom4j.DocumentException;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.beans.factory.annotation.Value;
  19. import org.springframework.boot.jackson.JsonObjectDeserializer;
  20. import org.springframework.stereotype.Service;
  21. import org.springframework.web.bind.annotation.RequestBody;
  22. import org.w3c.dom.Document;
  23. import org.w3c.dom.Element;
  24. import org.w3c.dom.Node;
  25. import org.w3c.dom.NodeList;
  26. import org.xml.sax.SAXException;
  27. import sun.awt.TimedWindowEvent;
  28. import java.io.IOException;
  29. import java.sql.Timestamp;
  30. import java.util.*;
  31. import org.dom4j.DocumentHelper;
  32. import javax.print.DocFlavor;
  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,msl_zone='"+StringUtil.nvl(key,"").replace("sn","").replace("SN","")+"' 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. DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  132. DocumentBuilder builder = factory.newDocumentBuilder();
  133. try {
  134. try{
  135. Element root;
  136. NodeList books;
  137. Document document = builder.parse(new InputSource(new StringReader(data)));
  138. root = document.getDocumentElement();
  139. books = root.getChildNodes();
  140. String Username="";
  141. String Shiftname="";
  142. String MachineNO="";
  143. String LineNO="";
  144. String procedure="";
  145. String Moname="";
  146. String Lotsn="";
  147. String Side="";
  148. String Result="";
  149. String Defect="";
  150. String elementQTY="";
  151. String TestQTY="";
  152. String Time="";
  153. for (Node node = books.item(1).getFirstChild(); node != null; node = node.getNextSibling()) {
  154. {
  155. if (node.getNodeName().equals("UpdAOISPIRecord")) {
  156. NodeList books1 = node.getChildNodes();
  157. for (int i = 0; i < books1.getLength(); i++) {
  158. Node node1 = books1.item(i);
  159. if(!node1.getNodeName().equals("#text")){
  160. switch (node1.getNodeName()){
  161. case "Username":{
  162. Username=node1.getTextContent();
  163. break;
  164. }
  165. case "Shiftname":{
  166. Shiftname=node1.getTextContent();
  167. break;
  168. }
  169. case "MachineNO":{
  170. MachineNO=node1.getTextContent(); break;
  171. }
  172. case "LineNO":{
  173. LineNO=node1.getTextContent();
  174. break;
  175. }
  176. case "procedure":
  177. procedure=node1.getTextContent();
  178. break;
  179. case "Moname":
  180. Moname=node1.getTextContent();
  181. break;
  182. case "Lotsn":
  183. Lotsn=node1.getTextContent();
  184. break;
  185. case "Side":
  186. Side=node1.getTextContent();
  187. break;
  188. case "Result":
  189. Result=node1.getTextContent();
  190. break;
  191. case "Defect":
  192. Defect=node1.getTextContent();
  193. break;
  194. case "elementQTY":
  195. elementQTY=node1.getTextContent();
  196. break;
  197. case "TestQTY":
  198. TestQTY=node1.getTextContent();
  199. break;
  200. case "Time":
  201. Time=node1.getTextContent();
  202. break;
  203. default:
  204. break;
  205. }
  206. //System.out.printf("名称:"+node1.getNodeName());
  207. //System.out.printf("值:"+node1.getTextContent());
  208. //System.out.printf("类型:"+node1.getNodeType());
  209. }
  210. }
  211. }
  212. }
  213. }
  214. Time=Time.substring(0,19).replaceAll("T"," ");
  215. baseDao.execute("insert into devicetestinfo(DTI_ID, DTI_SNCODE, DTI_USERNAME, DTI_MACHINE, DTI_LINECODE, DTI_RESULT, DTI_MAKECODE, DTI_SHIFTNAME, DTI_PROGRAM, DTI_DEFECT, " +
  216. "DTI_TESTQTY, DTI_MACHINETYPE, DTI_TYPE, DTI_TIME, DTI_SOURCECONTENT,dti_elementQTY)values(devicetestinfo_seq.nextval,'"+Lotsn+"','"+Username+"','"+MachineNO+"','"+LineNO+"','"+Result+"'" +
  217. ",'"+Moname+"','"+Shiftname+"','"+procedure+"','"+Defect+"','"+TestQTY+"','SPI','SPI',to_date('"+Time+"','yyyy-mm-dd hh24:mi:ss'),'','"+elementQTY+"')");
  218. }catch (IOException e){
  219. System.out.printf(e.getMessage());
  220. }
  221. }
  222. catch (SAXException e){
  223. }
  224. }catch (ParserConfigurationException e){
  225. }
  226. return rmap;
  227. }
  228. @Override
  229. public String AOI(String Username,String Shiftname, String MachineNO, String LineNO, String procedure,String Moname, String Lotsn,String Side,String Result,String Defect,String elementQTY,String TestQTY,String Type,String Time) {
  230. baseDao.execute("insert into devicetestinfo(DTI_ID, DTI_SNCODE, DTI_USERNAME, DTI_MACHINE, DTI_LINECODE, DTI_RESULT, DTI_MAKECODE, DTI_SHIFTNAME, DTI_PROGRAM, DTI_DEFECT, " +
  231. "DTI_TESTQTY, DTI_MACHINETYPE, DTI_TYPE, DTI_TIME, DTI_SOURCECONTENT,dti_elementQTY)values(devicetestinfo_seq.nextval,'"+Lotsn+"','"+Username+"','"+MachineNO+"','"+LineNO+"','"+Result+"'" +
  232. ",'"+Moname+"','"+Shiftname+"','"+procedure+"','"+Defect+"','"+TestQTY+"','"+Type+"','AOI',to_date('"+Time+"','yyyy-mm-dd hh24:mi:ss'),'','"+elementQTY+"')");
  233. return "";
  234. }
  235. @Override
  236. public String UploadSteel(String SteelMeshCode,String scraperCode, String SteelMeshCount, String scraperCount, String datatime) {
  237. String err = CheckSteel(SteelMeshCode);
  238. //判断钢网编号
  239. if(SteelMeshCode!=null&&!"".equals(SteelMeshCode)){
  240. 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'),'')");
  241. baseDao.execute("update stencil set st_usecount=nvl(st_usecount,0)+"+scraperCount +" where st_code='"+SteelMeshCode+"'");
  242. }
  243. //判断刮刀编号
  244. if(scraperCode!=null&&!"".equals(scraperCode)){
  245. 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'),'')");
  246. baseDao.execute("update stencil set st_usecount=nvl(st_usecount,0)+"+scraperCount +" where st_code='"+scraperCode+"'");
  247. }
  248. return err;
  249. }
  250. @Override
  251. public String CheckSteel(String SteelMeshCode) {
  252. Map<Object, Object> rmap = new HashMap<Object, Object>();
  253. 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+"'");
  254. if(rs.next()){
  255. String st_usecount=rs.getString("st_usecount");
  256. String st_maxusecount=rs.getString("st_maxusecount");
  257. String st_kind=rs.getString("st_kind");
  258. if(Integer.parseInt(st_usecount)>=Integer.parseInt(st_maxusecount)){
  259. return rs.getString("st_kind")+"已使用"+st_usecount+",超出最大使用次数"+st_maxusecount;
  260. }
  261. }else{
  262. return "编号不存在";
  263. }
  264. return "";
  265. }
  266. @Override
  267. public Map<Object,Object> SetupResultDataInterface(String data) {
  268. Map<Object, Object> rmap = new HashMap<Object, Object>();
  269. JSONObject object = JSONObject.fromObject(data);
  270. Object object1 = object.get("data");
  271. JSONObject obj = JSONObject.fromObject(object1);
  272. JSONObject SetupResultDetail=obj.getJSONObject("SetupResultDetail");
  273. if(SetupResultDetail!=null){
  274. String ActionType=SetupResultDetail.get("ActionType").toString();
  275. String MessageSendTime=Time(SetupResultDetail.getString("MessageSendTime"));
  276. String LineName=SetupResultDetail.get("LineName").toString();
  277. String MachineName=SetupResultDetail.get("MachineName").toString();
  278. String OrderNumber=SetupResultDetail.get("OrderNumber").toString();
  279. String DockingStationID=SetupResultDetail.get("DockingStationID").toString();
  280. String Operator=SetupResultDetail.get("Operator").toString();
  281. String TableLocation=SetupResultDetail.get("TableLocation").toString();
  282. String TableId=SetupResultDetail.get("TableId").toString();
  283. String Track=SetupResultDetail.get("Track").toString();
  284. String FeederTypeName=SetupResultDetail.get("FeederTypeName").toString();
  285. String FeederID=SetupResultDetail.get("FeederID").toString();
  286. JSONObject PackagingUnitDetail=SetupResultDetail.getJSONObject("PackagingUnit");
  287. if(PackagingUnitDetail!=null){
  288. String PUID=PackagingUnitDetail.getString("PUID");
  289. String ComponentBarcode=PackagingUnitDetail.getString("ComponentBarcode");
  290. String OriginalQuantity=PackagingUnitDetail.getString("OriginalQuantity");
  291. String Quantity=PackagingUnitDetail.getString("Quantity");
  292. String CreateDate=Time(PackagingUnitDetail.getString("CreateDate"));
  293. String DateCode=PackagingUnitDetail.getString("DateCode");
  294. String BatchId=PackagingUnitDetail.getString("BatchId");
  295. String MsdLevel=PackagingUnitDetail.getString("MsdLevel");
  296. JSONObject LockInfoList=null;
  297. try{
  298. LockInfoList=PackagingUnitDetail.getJSONObject("LockInfoList");
  299. }catch (Exception e){
  300. }
  301. JSONObject SplicedPackagingUnitList=null;
  302. try{
  303. SplicedPackagingUnitList=PackagingUnitDetail.getJSONObject("SplicedPackagingUnitList");
  304. }catch (Exception e){
  305. }
  306. int sr_id=baseDao.getSeqId("SETUPRESULTDETAIL_seq");
  307. baseDao.execute("insert into SETUPRESULTDETAIL(sr_id,ACTIONTYPE,LINENAME,ORDERNUMBER,MACHINENAME," +
  308. "TABLEID,DOCKINGSTATIONID,OPERATOR,TableLocation,FeederTypeName,FeederID,MessageSendTime)values('"+sr_id+"'," +
  309. "'"+ActionType+"','"+LineName+"','"+OrderNumber+"','"+MachineName+"','"+TableId+"','"+DockingStationID+"'," +
  310. "'"+Operator+"','"+TableLocation+"','"+FeederTypeName+"','"+FeederID+"',to_date('"+MessageSendTime+"','yyyy-mm-dd hh24:mi:ss'))");
  311. int pu_id=baseDao.getSeqId("PACKAGINGUNIT_seq");
  312. baseDao.execute("insert into PACKAGINGUNIT(PU_ID,PU_SRID,ComponentBarcode,OriginalQuantity,Quantity,CreateDate," +
  313. "DateCode,BatchId,MsdLevel)values('"+pu_id+"','"+sr_id+"','"+ComponentBarcode+"','"+OriginalQuantity+"','"+Quantity+"',to_date('"+CreateDate+"','yyyy-mm-dd hh24:mi:ss')," +
  314. "'"+DateCode+"','"+BatchId+"','"+MsdLevel+"')");
  315. if(LockInfoList!=null){
  316. JSONArray LockInfoItem=LockInfoList.getJSONArray("LockInfoItem");
  317. for(int i=0;i<LockInfoItem.size();i++){
  318. JSONObject map=LockInfoItem.getJSONObject(i);
  319. String Date=Time(map.getString("Date"));
  320. String Message=map.getString("Message");
  321. String Reason=map.getString("Reason");
  322. String Source=map.getString("Source");
  323. baseDao.execute("insert into LOCKINFOLIST(LF_ID,lf_puid,INDATE,MESSAGE,REASON,SOURCE)" +
  324. "values(LOCKINFOLIST_seq.nextval,'"+pu_id+"',to_date('"+Date+"','yyyy-mm-dd hh24:mi:ss'),'"+Message+"'," +
  325. "'"+Reason+"','"+Source+"')");
  326. }
  327. }
  328. if(SplicedPackagingUnitList!=null){
  329. JSONArray SplicedPackagingUnitItem=SplicedPackagingUnitList.getJSONArray("SplicedPackagingUnitItem");
  330. for(int i=0;i<SplicedPackagingUnitItem.size();i++){
  331. JSONObject map=SplicedPackagingUnitItem.getJSONObject(i);
  332. String UID1=map.getString("PUID");
  333. String ComponentBarcode1=map.getString("ComponentBarcode");
  334. String ComponentBarcodeFragment=map.getString("ComponentBarcodeFragment");
  335. String ComponentName=map.getString("ComponentName");
  336. String OriginalQuantity1=map.getString("OriginalQuantity");
  337. String Quantity1=map.getString("Quantity");
  338. String ManufacturePartNumber=map.getString("ManufacturePartNumber");
  339. String Manufacturer=map.getString("Manufacturer");
  340. String Supplier=map.getString("Supplier");
  341. baseDao.execute("insert into SPLICEDPACKAGING (SP_ID,SP_PUID,PUID,COMPONENTBARCODE,ORIGINALQUANTITY,QUANTITY)" +
  342. "values(SPLICEDPACKAGING_seq.nextval,'"+pu_id+"','"+UID1+"','"+ComponentBarcode1+"','"+OriginalQuantity1+"','"+Quantity1+"')");
  343. }
  344. }
  345. }
  346. rmap.put("code","0");
  347. rmap.put("result","OK");
  348. rmap.put("ServerMessage","MES:贴片机数据记录成功");
  349. }
  350. return rmap;
  351. }
  352. @Override
  353. public Map<Object,Object> StateEventDetail(String data) {
  354. Map<Object, Object> rmap = new HashMap<Object, Object>();
  355. JSONObject object = JSONObject.fromObject(data);
  356. Object object1 = object.get("data");
  357. JSONObject obj = JSONObject.fromObject(object1);
  358. JSONObject StateEventDetail=obj.getJSONObject("StateEventDetail");
  359. if(StateEventDetail!=null){
  360. int st_id=baseDao.getSeqId("StateEventDetail_seq");
  361. String MessageSendTime=Time(StateEventDetail.getString("MessageSendTime"));
  362. String CompletionStatusType=StateEventDetail.getString("CompletionStatusType");
  363. String LineFullPath=StateEventDetail.getString("LineFullPath");
  364. String LineName=StateEventDetail.getString("LineName");
  365. String MachineFullPath=StateEventDetail.getString("MachineFullPath");
  366. String MachineName=StateEventDetail.getString("MachineName");
  367. String JobFullPath=StateEventDetail.getString("JobFullPath");
  368. String JobName=StateEventDetail.getString("JobName");
  369. String RecipeFullPath=StateEventDetail.getString("RecipeFullPath");
  370. String RecipeName=StateEventDetail.getString("RecipeName");
  371. String SetupFullPath=StateEventDetail.getString("SetupFullPath");
  372. String SetupName=StateEventDetail.getString("SetupName");
  373. String BoardFullPath=StateEventDetail.getString("BoardFullPath");
  374. String BoardName=StateEventDetail.getString("BoardName");
  375. String OrderNumber=StateEventDetail.getString("OrderNumber");
  376. String ConveyorMode=StateEventDetail.getString("ConveyorMode");
  377. String DownloadMode=StateEventDetail.getString("DownloadMode");
  378. String FactoryLayoutPath=StateEventDetail.getString("FactoryLayoutPath");
  379. String MachineId=StateEventDetail.getString("MachineId");
  380. String MachineType=StateEventDetail.getString("MachineType");
  381. String TypeName=StateEventDetail.getString("TypeName");
  382. String ProcessingAreaCount=StateEventDetail.getString("ProcessingAreaCount");
  383. String StationSoftwareVersion=StateEventDetail.getString("StationSoftwareVersion");
  384. String MonitoringServiceVersion=StateEventDetail.getString("MonitoringServiceVersion");
  385. String ComputerAddress=StateEventDetail.getString("ComputerAddress");
  386. 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)" +
  387. "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+"')");
  388. JSONArray ProcessingAreaStateList=StateEventDetail.getJSONArray("ProcessingAreaStateList");
  389. for (int i=0;i<ProcessingAreaStateList.size();i++){
  390. JSONObject map1=ProcessingAreaStateList.getJSONObject(i);
  391. String ProcessingArea=map1.getString("ProcessingArea");
  392. String Conveyor=map1.getString("Conveyor");
  393. String CurrentStateBegin=map1.getString("CurrentStateBegin");
  394. String CurrentStateCode=map1.getString("CurrentStateCode");
  395. String CurrentStateDescription=map1.getString("CurrentStateDescription");
  396. String PreviousStateCode=map1.getString("PreviousStateCode");
  397. String PreviousStateDescription=map1.getString("PreviousStateDescription");
  398. baseDao.execute("insert into ProcessingAreaStateList(RAS_ID, RAS_STID, PROCESSINGAREA, CONVEYOR, CURRENTSTATEBEGIN, CURRENTSTATECODE, CURRENTSTATEDESCRIPTION, PREVIOUSSTATECODE, PREVIOUSSTATEDESCRIPTION)" +
  399. "values(ProcessingAreaStateList_seq.nextval,'"+st_id+"','"+ProcessingArea+"','"+Conveyor+"','"+CurrentStateBegin+"'," +
  400. "'"+CurrentStateCode+"','"+CurrentStateDescription+"','"+PreviousStateCode+"','"+PreviousStateDescription+"')");
  401. }
  402. }
  403. rmap.put("code","0");
  404. rmap.put("result","OK");
  405. rmap.put("ServerMessage","MES:贴片机数据记录成功");
  406. return rmap;
  407. }
  408. @Override
  409. public Map<Object,Object> SendPlaceData(String data) {
  410. Map<Object, Object> rmap = new HashMap<Object, Object>();
  411. JSONObject object = JSONObject.fromObject(data);
  412. Object object1 = object.get("data");
  413. JSONObject obj = JSONObject.fromObject(object1);
  414. JSONObject PlacedDataDetail=obj.getJSONObject("PlacedDataDetail");
  415. if(PlacedDataDetail!=null){
  416. int pd_id=baseDao.getSeqId("PlacedDataDetail_seq");
  417. String MESSAGESENDTIME=Time(PlacedDataDetail.getString("MessageSendTime"));
  418. String COMPLETIONSTATUSTYPE=PlacedDataDetail.getString("CompletionStatusType");
  419. String LINEFULLPATH=PlacedDataDetail.getString("LineFullPath");
  420. String MACHINEFULLPATH=PlacedDataDetail.getString("MachineFullPath");
  421. String RECIPEFULLPATH=PlacedDataDetail.getString("RecipeFullPath");
  422. String RECIPENAME=PlacedDataDetail.getString("RecipeName");
  423. String SETUPFULLPATH=PlacedDataDetail.getString("SetupName");
  424. String BOARDFULLPATH=PlacedDataDetail.getString("BoardFullPath");
  425. String FACTORYLAYOUTPATH=PlacedDataDetail.getString("FactoryLayoutPath");
  426. String MACHINEID=PlacedDataDetail.getString("MachineId");
  427. String MACHINETYPE=PlacedDataDetail.getString("MachineType");
  428. String STATIONSOFTWAREVERSION=PlacedDataDetail.getString("StationSoftwareVersion");
  429. String MONITORINGSERVICEVERSION=PlacedDataDetail.getString("MonitoringServiceVersion");
  430. String COMPUTERADDRESS=PlacedDataDetail.getString("ComputerAddress");
  431. baseDao.execute("insert into PlacedDataDetail(pd_id,MessageSendTime,CompletionStatusType,LineFullPath,MachineFullPath,RecipeFullPath," +
  432. "RecipeName,SETUPFULLPATH,BoardFullPath,FactoryLayoutPath,MachineId,MachineType,StationSoftwareVersion,MonitoringServiceVersion," +
  433. "ComputerAddress)values('"+pd_id+"',to_date('"+MESSAGESENDTIME+"','yyyy-mm-dd hh24:mi:ss'),'"+COMPLETIONSTATUSTYPE+"'," +
  434. "'"+LINEFULLPATH+"','"+MACHINEFULLPATH+"','"+RECIPEFULLPATH+"','"+RECIPENAME+"','"+SETUPFULLPATH+"','"+BOARDFULLPATH+"'," +
  435. "'"+FACTORYLAYOUTPATH+"','"+MACHINEID+"','"+MACHINETYPE+"','"+STATIONSOFTWAREVERSION+"','"+MONITORINGSERVICEVERSION+"','"+COMPUTERADDRESS+"')");
  436. JSONArray PanelList=PlacedDataDetail.getJSONArray("PlacedComponentList");
  437. for (int i=0;i<PanelList.size();i++){
  438. JSONObject map1=PanelList.getJSONObject(i);
  439. String TABLELOCATION =map1.getString("TableLocation");
  440. String TRACK=map1.getString("Track");
  441. String DIVISION=map1.getString("Division");
  442. String COMPONENTFULLPATH=map1.getString("ComponentFullPath");
  443. String COMPONENTNAME=map1.getString("ComponentName");
  444. String COMPONENTSHAPEFULLPATH=map1.getString("ComponentShapeFullPath");
  445. String FEEDERCATEGORY=map1.getString("FeederCategory");
  446. String FEEDERTYPENAME=map1.getString("FeederTypeName");
  447. String FEEDERID=map1.getString("FeederID");
  448. String ACCESSTOTAL=map1.getString("AccessTotal");
  449. String PlacedComponents=map1.getString("PlacedComponents");
  450. String REJECTQTY=map1.getString("RejectQty");
  451. String REJECTIDENT=map1.getString("RejectIdent");
  452. String REJECTVACUUM=map1.getString("RejectVacuum");
  453. String TRACKEMPTY=map1.getString("TrackEmpty");
  454. String IDENTERRROR=map1.getString("IdentErrror");
  455. String MATERIALDEFECT=map1.getString("MaterialDefect");
  456. String ABSENCEAFTERPICK=map1.getString("AbsenceAfterPick");
  457. String ABSENCEBEFOREPLACEMENT=map1.getString("AbsenceBeforePlacement");
  458. String TREATMENTERROR=map1.getString("TreatmentError");
  459. baseDao.execute("insert into PlacedComponentList(pc_id,pc_pdid,TABLELOCATION,TRACK,DIVISION,COMPONENTFULLPATH," +
  460. "COMPONENTNAME,COMPONENTSHAPEFULLPATH,FEEDERCATEGORY,FEEDERTYPENAME,FEEDERID,ACCESSTOTAL,PlacedComponents," +
  461. "REJECTQTY,REJECTIDENT,REJECTVACUUM,TRACKEMPTY,IDENTERRROR,MATERIALDEFECT,ABSENCEAFTERPICK,ABSENCEBEFOREPLACEMENT,TREATMENTERROR)" +
  462. "values(PlacedComponentList_seq.nextval,'"+pd_id+"','"+TABLELOCATION+"','"+TRACK+"','"+DIVISION+"','"+COMPONENTFULLPATH+"'" +
  463. ",'"+COMPONENTNAME+"','"+COMPONENTSHAPEFULLPATH+"','"+FEEDERCATEGORY+"','"+FEEDERTYPENAME+"','"+FEEDERID+"'," +
  464. "'"+ACCESSTOTAL+"','"+PlacedComponents+"','"+REJECTQTY+"','"+REJECTIDENT+"','"+REJECTVACUUM+"','"+TRACKEMPTY+"'," +
  465. "'"+IDENTERRROR+"','"+MATERIALDEFECT+"','"+ABSENCEAFTERPICK+"','"+ABSENCEBEFOREPLACEMENT+"','"+TREATMENTERROR+"')");
  466. }
  467. JSONArray PickupErrorList=PlacedDataDetail.getJSONArray("PickupErrorList");
  468. for (int i=0;i<PickupErrorList.size();i++){
  469. JSONObject map1=PickupErrorList.getJSONObject(i);
  470. String GANTRY=map1.getString("Gantry");
  471. String HEAD=map1.getString("Head");
  472. String SEGMENT1=map1.getString("Segment");
  473. String NOZZLE=map1.getString("Nozzle");
  474. String TABLELOCATION=map1.getString("TableLocation");
  475. String TRACK=map1.getString("Track");
  476. String DIVISION=map1.getString("Division");
  477. String TOWER=map1.getString("Tower");
  478. String LEVEL1=map1.getString("Level");
  479. String COMPONENTFULLPATH=map1.getString("ComponentFullPath");
  480. String COMPONENTNAME=map1.getString("ComponentName");
  481. String COMPONENTSHAPEFULLPATH=map1.getString("ComponentShapeFullPath");
  482. String COMPONENTSHAPENAME=map1.getString("ComponentShapeName");
  483. String FEEDERCATEGORY=map1.getString("FeederCategory");
  484. String FEEDERTYPENAME=map1.getString("FeederTypeName");
  485. String FEEDERID=map1.getString("FeederID");
  486. String ERRORTYPE=map1.getString("ErrorType");
  487. String ERRORDESCRIPTION=map1.getString("ErrorDescription");
  488. baseDao.execute("insert into PickupErrorList(pe_id,pe_pdid,Gantry,Head,SEGMENT1,NOZZLE,TABLELOCATION,TRACK,DIVISION,TOWER" +
  489. ",LEVEL1,COMPONENTFULLPATH,COMPONENTNAME,COMPONENTSHAPEFULLPATH,COMPONENTSHAPENAME,FEEDERCATEGORY,FEEDERTYPENAME," +
  490. "FEEDERID,ERRORTYPE,ERRORDESCRIPTION)values(PickupErrorList_seq.nextval,'"+pd_id+"','"+GANTRY+"','"+HEAD+"','"+SEGMENT1+"','"+NOZZLE+"'," +
  491. "'"+TABLELOCATION+"','"+TRACK+"','"+DIVISION+"','"+TOWER+"','"+LEVEL1+"','"+COMPONENTFULLPATH+"','"+COMPONENTNAME+"'," +
  492. "'"+COMPONENTSHAPEFULLPATH+"','"+COMPONENTSHAPENAME+"','"+FEEDERCATEGORY+"','"+FEEDERTYPENAME+"','"+FEEDERID+"','"+ERRORTYPE+"'," +
  493. "'"+ERRORDESCRIPTION+"')");
  494. }
  495. }
  496. rmap.put("code","0");
  497. rmap.put("result","OK");
  498. rmap.put("ServerMessage","MES:贴片机数据记录成功");
  499. return rmap;
  500. }
  501. @Override
  502. public Map<Object,Object> TraceabilityDataInterface(String data) {
  503. Integer td_id=baseDao.getSeqId("TRACEDATA_seq");
  504. Map<Object, Object> rmap = new HashMap<Object, Object>();
  505. JSONObject object = JSONObject.fromObject(data);
  506. Object object1 = object.get("data");
  507. JSONObject obj = JSONObject.fromObject(object1);
  508. JSONObject TraceabilityDataDetail=obj.getJSONObject("TraceabilityDataDetail");
  509. if(TraceabilityDataDetail!=null){
  510. String DateBegin=Time(TraceabilityDataDetail.get("DateBegin").toString());
  511. String DateCompleted=Time(TraceabilityDataDetail.get("DateCompleted").toString());
  512. String LineName=TraceabilityDataDetail.get("LineName").toString();
  513. String MachineName=TraceabilityDataDetail.get("MachineName").toString();
  514. String BoardName=TraceabilityDataDetail.get("BoardName").toString();
  515. String MachineID=TraceabilityDataDetail.get("MachineID").toString();
  516. String BoardSide=TraceabilityDataDetail.get("BoardSide").toString();
  517. String OrderNumber=TraceabilityDataDetail.get("OrderNumber").toString();
  518. String PCBBarcode=TraceabilityDataDetail.get("PCBBarcode").toString();
  519. baseDao.execute("insert into TRACEDATA(TD_ID,DateBegin,DateCompleted,LineName,MachineName,BoardName,MachineID,BoardSide,OrderNumber,PCBBarcode,TD_INDATE)" +
  520. "values("+td_id+",to_date('"+DateBegin+"','yyyy-mm-dd hh24:mi:ss'),to_date('"+DateCompleted+"','yyyy-mm-dd hh24:mi:ss')," +
  521. "'"+LineName+"','"+MachineName+"','"+BoardName+"','"+MachineID+"','"+BoardSide+"','"+OrderNumber+"','"+PCBBarcode+"',sysdate)");
  522. JSONObject MaterialTraceabilityDetail=null;
  523. try{
  524. MaterialTraceabilityDetail=TraceabilityDataDetail.getJSONObject("MaterialTraceabilityDetail");
  525. }catch (Exception e){
  526. }
  527. JSONObject MaterialConsumptionDetail=null;
  528. try{
  529. MaterialConsumptionDetail=TraceabilityDataDetail.getJSONObject("MaterialConsumptionDetail");
  530. }catch (Exception e){
  531. }
  532. //上料信息
  533. if(MaterialTraceabilityDetail!=null){
  534. JSONArray PanelList=MaterialTraceabilityDetail.getJSONArray("PanelList");
  535. for (int i=0;i<PanelList.size();i++){
  536. JSONObject map=PanelList.getJSONObject(i);
  537. String PanelName=map.get("PanelName").toString();
  538. JSONArray PackagingUnitRefList=map.getJSONArray("PackagingUnitRefList");
  539. System.out.println(PackagingUnitRefList.size());
  540. if(PackagingUnitRefList!=null){
  541. for (int j=0;j<PackagingUnitRefList.size();j++){
  542. String PlaceRefID="";
  543. JSONObject map1=PackagingUnitRefList.getJSONObject(j);
  544. String PUID=map1.getString("PUID");
  545. String TableLocation=map1.getString("TableLocation");
  546. String Track=map1.getString("Track");
  547. String ComponentBarcode=map1.getString("ComponentBarcode");
  548. String OriginalQuantity=map1.getString("OriginalQuantity");
  549. String Quantity=map1.getString("Quantity");
  550. String CreateDate=Time(map1.getString("CreateDate"));
  551. String DateCode=map1.getString("DateCode");
  552. String Batch2=map1.getString("Batch2");
  553. String MsdLevel=map1.getString("MsdLevel");
  554. String VerifiedDate=Time(map1.getString("VerifiedDate"));
  555. String Operator=map1.getString("Operator");
  556. JSONArray PlaceRefList=map1.getJSONArray("PlaceRefList");
  557. if(PlaceRefList!=null){
  558. for (int k=0;k<PlaceRefList.size();k++){
  559. JSONObject map2=PlaceRefList.getJSONObject(k);
  560. PlaceRefID+=map2.getString("PlaceRefID")+",";
  561. }
  562. }
  563. baseDao.execute("insert into MATERIALTRACE(MT_ID,MT_TDID,PANELNAME,PUID,PlaceRefList,TableLocation,Track,ComponentBarcode,OriginalQuantity,Quantity,CreateDate,DateCode,Batch2,MsdLevel,VerifiedDate,Operator)" +
  564. "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+"'," +
  565. "'"+MsdLevel+"',to_date('"+CreateDate+"','yyyy-mm-dd hh24:mi:ss'),'"+Operator+"')");
  566. }
  567. }
  568. }
  569. }
  570. //扣料信息
  571. if(MaterialConsumptionDetail!=null){
  572. JSONArray ConsumedPackagingUnitList=MaterialConsumptionDetail.getJSONArray("ConsumedPackagingUnitList");
  573. for (int i=0;i<ConsumedPackagingUnitList.size();i++){
  574. JSONObject map1=ConsumedPackagingUnitList.getJSONObject(i);
  575. String PUID=map1.getString("PUID");
  576. String AccessTotal=map1.getString("AccessTotal");
  577. String RejectIdent=map1.getString("RejectIdent");
  578. String RejectVacuum=map1.getString("RejectVacuum");
  579. String TrackEmpty=map1.getString("TrackEmpty");
  580. baseDao.execute("insert into CONSUMEDPACKAGING(cp_id,cp_tdid,puid,AccessTotal,RejectIdent,RejectVacuum" +
  581. ",TrackEmpty) values(CONSUMEDPACKAGING_seq.nextval,'"+td_id+"','"+PUID+"','"+AccessTotal+"','"+RejectIdent+"','"+RejectVacuum+"'," +
  582. "'"+TrackEmpty+"')");
  583. }
  584. }
  585. rmap.put("code","0");
  586. rmap.put("result","OK");
  587. rmap.put("ServerMessage","MES:贴片机数据记录成功");
  588. }
  589. return rmap;
  590. }
  591. public Map<Object,Object> XrayTestDataSave(String data){
  592. Map<Object, Object> rmap = new HashMap<Object, Object>();
  593. Map<String, Object> map=null;
  594. JSONObject object = JSONObject.fromObject(data);
  595. Object object1 = object.get("data");
  596. JSONObject obj = JSONObject.fromObject(object1);
  597. JSONArray object2=obj.getJSONArray("NonconformData");
  598. Object Barcode=obj.get("Barcode");
  599. Object EquipmentEncode=obj.get("EquipmentEncode");
  600. Object ModelType=obj.get("ModelType");
  601. Object CheckNumber=obj.get("CheckNumber");
  602. Object NcmNumber=obj.get("NcmNumber");
  603. Object NonconformNumber=obj.get("NonconformNumber");
  604. Object CheckDate=obj.get("CheckDate");
  605. Object ShiftName=obj.get("ShiftName");
  606. Object LineBody=obj.get("LineBody");
  607. Object Inspector=obj.get("Inspector");
  608. int XT_ID = baseDao.getSeqId("xraytest_seq");
  609. baseDao.execute("insert into xraytest(XT_ID, BARCODE, EQUIPMENTENCODE, MODELTYPE, CHECKNUMBER, NCMNUMBER, NONCONFORMNUMBER, CHECKDATE, SHIFTNAME, LINEBODY, INSPECTOR)" +
  610. "values("+XT_ID+",'"+Barcode+"','"+EquipmentEncode+"','"+ModelType+"','"+CheckNumber+"','"+NcmNumber+"','"+NonconformNumber+"',to_date('"+CheckDate+"','yyyy-mm-dd hh24:mi:ss')" +
  611. ",'"+ShiftName+"','"+LineBody+"','"+Inspector+"')");
  612. for (int i=0;i<object2.size();i++){
  613. JSONObject map1=object2.getJSONObject(i);
  614. String NonconformANo=map1.getString("NonconformANo");
  615. String NonconformDescription=map1.getString("NonconformDescription");
  616. baseDao.execute("insert into XrayTestdetail(xtd_xtid,xtd_id,NONCONFORMANO, NONCONFORMDESCRIPTION)" +
  617. "values("+XT_ID+",XrayTestdetail_seq.nextval,'"+NonconformANo+"','"+NonconformDescription+"')");
  618. }
  619. rmap.put("code","0");
  620. rmap.put("result","OK");
  621. rmap.put("ServerMessage","MES:检查数据上传成功!");
  622. return rmap;
  623. }
  624. public Map<Object,Object> SPITestInfo(String data){
  625. Map<Object, Object> rmap = new HashMap<Object, Object>();
  626. JSONObject object = JSONObject.fromObject(data);
  627. String MachineID=object.get("MachineID").toString();
  628. String MachineName=object.get("MachineName").toString();
  629. String Operator=object.get("Operator").toString();
  630. String Side=object.get("Side").toString();
  631. String JobName=object.get("JobName").toString();
  632. String LineName=object.get("LineName").toString();
  633. String WorkStation=object.get("WorkStation").toString();
  634. String WorkNo=object.get("WorkNo").toString();
  635. String BoardBarCode=object.get("BoardBarCode").toString();
  636. String BoardStatus=object.get("BoardStatus").toString();
  637. String DateTime=object.get("DateTime").toString();
  638. JSONArray Array = object.getJSONArray("Array");
  639. int ID=baseDao.getSeqId("machine_seq");
  640. baseDao.execute("insert into machine(MACHINEID, MACHINENAME, OPERATOR, SIDE, JOBNAME, LINENAME, WORKSTATION, WORKNO, BOARDBARCODE, BOARDSTATUS, DATETIME)" +
  641. "values('"+ID+"','"+MachineName+"','"+Operator+"','"+Side+"','"+JobName+"','"+LineName+"','"+WorkStation+"','"+WorkNo+"','"+BoardBarCode+"','"+BoardStatus+"',to_date('"+DateTime+"','yyyy-mm-dd hh24:mi:ss'))");
  642. if(Array!=null){
  643. for (int i=0;i<Array.size();i++){
  644. JSONObject map1=Array.getJSONObject(i);
  645. String ArrayBarCode=map1.getString("ArrayBarCode");
  646. String ArrayStatus=map1.getString("ArrayStatus");
  647. int ARRAYID=baseDao.getSeqId("ARRAY_seq");
  648. JSONArray Pads = map1.getJSONArray("Pads");
  649. baseDao.execute("insert into array(ARRAYID, ARRAYSTATUS, ARRAYBARCODE, MACHINEID)" +
  650. "values('"+ARRAYID+"','"+ArrayStatus+"','"+ArrayBarCode+"','"+ID+"')"
  651. );
  652. for (int j=0;j<Pads.size();j++){
  653. JSONObject map2=Pads.getJSONObject(j);
  654. String ComponentID=map2.get("ComponentID").toString();
  655. String Type=map2.get("Type").toString();
  656. String PerArea=map2.get("PerArea").toString();
  657. String Height=map2.get("Height").toString();
  658. String PerVolume=map2.get("PerVolume").toString();
  659. String XOffset=map2.get("XOffset").toString();
  660. String YOffset=map2.get("YOffset").toString();
  661. String PadSizeX=map2.get("PadSizeX").toString();
  662. String PadSizeY=map2.get("PadSizeY").toString();
  663. String Area=map2.get("Area").toString();
  664. String PerHeight=map2.get("PerHeight").toString();
  665. String Volume=map2.get("Volume").toString();
  666. String Result=map2.get("Result").toString();
  667. String Errcode=map2.get("Errcode").toString();
  668. String PinNum=map2.get("PinNum").toString();
  669. String Barcode=map2.get("Barcode").toString();
  670. String Date=map2.get("Date").toString();
  671. String Time=map2.get("Time").toString();
  672. int PADID=baseDao.getSeqId("pad_seq");
  673. baseDao.execute("insert into pad(PADID, COMPONENTID, TYPE, PERAREA, HEIGHT, PERVOLUME, XOFFSET, YOFFSET, PADSIZEX, PADSIZEY, AREA, PERHEIGHT, VOLUME, RESULT, ERRCODE, PINNUM, BARCODE, DATE1, TIME, ARRAYID)" +
  674. "values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",PADID, ComponentID, Type, PerArea, Height, PerVolume,
  675. XOffset, YOffset, PadSizeX, PadSizeY, Area, PerHeight, Volume, Result, Errcode, PinNum, Barcode, Date, Time, ARRAYID);
  676. }
  677. }
  678. rmap.put("EventCode","0");
  679. rmap.put("Result","OK");
  680. rmap.put("Message","数据录入成功");
  681. }
  682. return rmap;
  683. }
  684. public Map<Object,Object> PrintInfo(String data){
  685. Map<Object, Object> rmap = new HashMap<Object, Object>();
  686. JSONObject object = JSONObject.fromObject(data);
  687. JSONObject obj1=object.getJSONObject("Header");
  688. JSONObject obj2=object.getJSONObject("Body");
  689. if(obj1!=null){
  690. String Command=obj1.get("Command").toString();
  691. String SessionID=obj1.get("SessionID").toString();
  692. String TimeStamp=obj1.get("TimeStamp").toString();
  693. String Direction=obj1.get("Direction").toString();
  694. String Vendor=obj1.get("Vendor").toString();
  695. String Line=obj1.get("Line").toString();
  696. String MachineSN=obj1.get("MachineSN").toString();
  697. String MachineType=obj1.get("MachineType").toString();
  698. String WorkOrder="";
  699. String RecipeName="";
  700. if(obj2!=null){
  701. WorkOrder=obj2.get("WorkOrder").toString();
  702. RecipeName=obj2.get("RecipeName").toString();
  703. }
  704. JSONArray BarcodeList = obj2.getJSONArray("BarcodeList");
  705. for (int i=0;i<BarcodeList.size();i++){
  706. String barcode=BarcodeList.get(i).toString();
  707. int HEADERID=baseDao.getSeqId("ProductionInfo_seq");
  708. baseDao.execute("insert into ProductionInfo(HEADERID, COMMAND, SESSIONID, TIMESTAMP, DIRECTION, VENDOR, LINE, " +
  709. "MACHINESN, MACHINETYPE, WORKORDER, RECIPENAME, BARCODELIST)" +
  710. "values('"+HEADERID+"','"+Command+"','"+SessionID+"',to_date(substr('"+TimeStamp+"',0,19),'yyyy-mm-dd hh24:mi:ss')" +
  711. ",'"+Direction+"','"+Vendor+"','"+Line+"','"+MachineSN+"','"+MachineType+"','"+WorkOrder+"','"+RecipeName+"'" +
  712. ",'"+barcode+"')");
  713. }
  714. Map<Object, Object> rmap1 = new HashMap<Object, Object>();
  715. rmap1.put("Command","ProductionInfo");
  716. rmap1.put("SessionID",SessionID);
  717. rmap1.put("TimeStamp",TimeStamp);
  718. rmap1.put("Direction","Response");
  719. Map<Object, Object> rmap2 = new HashMap<Object, Object>();
  720. rmap2.put("Code",200);
  721. rmap2.put("Message","成功");
  722. rmap.put("Header",rmap1);
  723. rmap.put("Body",rmap2);
  724. }
  725. return rmap;
  726. }
  727. @Override
  728. public Map<Object, Object> PrintCheck(String data) {
  729. Map<Object, Object> rmap = new HashMap<Object, Object>();
  730. JSONObject object = JSONObject.fromObject(data);
  731. JSONObject obj1=object.getJSONObject("Header");
  732. JSONObject obj2=object.getJSONObject("Body");
  733. if(obj1!=null){
  734. String Command=obj1.get("Command").toString();
  735. String SessionID=obj1.get("SessionID").toString();
  736. String TimeStamp=obj1.get("TimeStamp").toString();
  737. String Direction=obj1.get("Direction").toString();
  738. String Vendor=obj1.get("Vendor").toString();
  739. String Line=obj1.get("Line").toString();
  740. String MachineSN=obj1.get("MachineSN").toString();
  741. String MachineType=obj1.get("MachineType").toString();
  742. String FrontSqueegeeSN="";
  743. String RearSqueegeeSN="";
  744. String StencilSN="";
  745. String PasteSN="";
  746. if(obj2!=null){
  747. FrontSqueegeeSN=obj2.get("FrontSqueegeeSN").toString();
  748. RearSqueegeeSN=obj2.get("RearSqueegeeSN").toString();
  749. StencilSN=obj2.get("StencilSN").toString();
  750. PasteSN=obj2.get("PasteSN").toString();
  751. }
  752. int code = 200;
  753. String returnmessage = "";
  754. if(!baseDao.checkIf("Stencil","nvl(st_usestatus,'') = '在线' and st_code = '"+FrontSqueegeeSN+"'"))
  755. {
  756. code = 222;
  757. returnmessage = returnmessage + "刮刀:"+FrontSqueegeeSN+"未在线,校验失败.\n";
  758. }
  759. if(!baseDao.checkIf("Stencil","nvl(st_usestatus,'') = '在线' and st_code = '"+RearSqueegeeSN+"'"))
  760. {
  761. code = 222;
  762. returnmessage = returnmessage + "刮刀:"+RearSqueegeeSN+"未在线,校验失败.\n";
  763. }
  764. if(!baseDao.checkIf("Stencil","nvl(st_usestatus,'') = '在线' and st_code = '"+StencilSN+"'"))
  765. {
  766. code = 222;
  767. returnmessage = returnmessage + "钢网:"+StencilSN+"未在线,校验失败.\n";
  768. }
  769. if(!baseDao.checkIf("SPMBARCODE","nvl(SPB_STATUS,'') = '已开封' and SPB_BARCODE = '"+PasteSN+"'"))
  770. {
  771. code = 222;
  772. returnmessage = returnmessage + "锡膏:"+FrontSqueegeeSN+"未开封,校验失败.\n";
  773. }
  774. Map<Object, Object> rmap1 = new HashMap<Object, Object>();
  775. rmap1.put("Command","ProductionInfo");
  776. rmap1.put("SessionID",SessionID);
  777. rmap1.put("TimeStamp",TimeStamp);
  778. rmap1.put("Direction","Response");
  779. Map<Object, Object> rmap2 = new HashMap<Object, Object>();
  780. rmap2.put("Code",code);
  781. rmap2.put("Message",returnmessage);
  782. rmap.put("Header",rmap1);
  783. rmap.put("Body",rmap2);
  784. }
  785. return rmap;
  786. }
  787. @Override
  788. public Map<Object, Object> PrintOnOffline(String data) {
  789. Map<Object, Object> rmap = new HashMap<Object, Object>();
  790. JSONObject object = JSONObject.fromObject(data);
  791. JSONObject obj1=object.getJSONObject("Header");
  792. JSONObject obj2=object.getJSONObject("Body");
  793. if(obj1!=null){
  794. String Command=obj1.get("Command").toString();
  795. String SessionID=obj1.get("SessionID").toString();
  796. String TimeStamp=obj1.get("TimeStamp").toString();
  797. String Direction=obj1.get("Direction").toString();
  798. String Vendor=obj1.get("Vendor").toString();
  799. String Line=obj1.get("Line").toString();
  800. String MachineSN=obj1.get("MachineSN").toString();
  801. String MachineType=obj1.get("MachineType").toString();
  802. String Action="";
  803. String MaterialType="";
  804. String MaterialSN="";
  805. if(obj2!=null){
  806. Action=obj2.get("Action").toString();
  807. MaterialType=obj2.get("MaterialType").toString();
  808. MaterialSN=obj2.get("MaterialSN").toString();
  809. }
  810. if(Action.equals("Online")&&!baseDao.checkIf("GKGINTO","GI_MATERIALTYPE = '"+MaterialType+"' and GI_MATERIALSN = '"+MaterialSN+"' and GI_LINE = '"+Line+"' and GI_OFFDATE is null")) {
  811. int GKGINTOID = baseDao.getSeqId("GKGINTO_seq");
  812. baseDao.execute("insert into GKGINTO(GI_ID,GI_COMMAND,GI_SESSIONID,GI_ONDATE,GI_DIRECTION,GI_VENDOR," +
  813. "GI_LINE,GI_MACHINESN,GI_MACHINETYPE,GI_MATERIALTYPE,GI_MATERIALSN)" +
  814. "values('" + GKGINTOID + "','" + Command + "','" + SessionID + "',to_date(substr('" + TimeStamp + "',0,19),'yyyy-mm-dd hh24:mi:ss')" +
  815. ",'" + Direction + "','" + Vendor + "','" + Line + "','" + MachineSN + "','" + MachineType + "','" + MaterialType + "','" + MaterialSN + "'" +
  816. ")");
  817. } else if (Action.equals("OffLine")&&baseDao.checkIf("GKGINTO","GI_MATERIALTYPE = '"+MaterialType+"' and GI_MATERIALSN = '"+MaterialSN+"' and GI_LINE = '"+Line+"' and GI_OFFDATE is null"))
  818. {
  819. int outqty = baseDao.getCountByCondition("PRODUCTIONINFO"," LINE = '"+Line+"' AND TIMESTAMP BETWEEN " +
  820. " (SELECT MAX(GI_ONDATE) FROM GKGINTO WHERE GI_MATERIALTYPE = '"+MaterialType+"' and GI_MATERIALSN = '"+MaterialSN+"' and GI_LINE = '"+Line+"' and GI_OFFDATE is null ) and to_date(substr('" + TimeStamp + "',0,19),'yyyy-mm-dd hh24:mi:ss') ");
  821. baseDao.updateByCondition("GKGINTO","GI_OFFDATE = to_date(substr('" + TimeStamp + "',0,19),'yyyy-mm-dd hh24:mi:ss'),GI_OUTPUT = '"+outqty+"'","GI_MATERIALTYPE = '"+MaterialType+"' and GI_MATERIALSN = '"+MaterialSN+"' and GI_LINE = '"+Line+"' and GI_OFFDATE is null");
  822. }
  823. Map<Object, Object> rmap1 = new HashMap<Object, Object>();
  824. rmap1.put("Command","ProductionInfo");
  825. rmap1.put("SessionID",SessionID);
  826. rmap1.put("TimeStamp",TimeStamp);
  827. rmap1.put("Direction","Response");
  828. Map<Object, Object> rmap2 = new HashMap<Object, Object>();
  829. rmap2.put("Code",200);
  830. rmap2.put("Message","成功");
  831. rmap.put("Header",rmap1);
  832. rmap.put("Body",rmap2);
  833. }
  834. return rmap;
  835. }
  836. public String Time(String time){
  837. return time.replaceAll("T"," ").substring(0,19);
  838. }
  839. @Override
  840. public Map<Object,Object> UploadReelInfo(String data) {
  841. Map<Object, Object> rmap = new HashMap<Object, Object>();
  842. String oErrMessage="";
  843. String ReelId="";
  844. String Quantity="";
  845. Map<String, Object> map=null;
  846. try{
  847. map =BaseUtil.convertJsonToMap(data);
  848. }catch (Exception e){
  849. System.out.printf(e.getMessage()) ;
  850. }
  851. if(map.get("ReelId")==null){
  852. rmap.put("Status","NG");
  853. rmap.put("Meassage","料盘ID不能为空");
  854. return rmap;
  855. }
  856. if(map.get("Quantity")==null){
  857. rmap.put("Status","NG");
  858. rmap.put("Meassage","数量不能为空");
  859. return rmap;
  860. }
  861. ReelId=map.get("ReelId").toString();
  862. Quantity=map.get("Quantity").toString();
  863. 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 left join product on bar_prodcode = pr_code where bar_code=?",ReelId);
  864. if(rs.next()){
  865. baseDao.execute("update barcode@ERP set bar_remain=?,bar_status = 2 where bar_id=?",Quantity,rs.getString("bar_id"));
  866. baseDao.execute("insert into barcodechange@ERP(BC_ID,BC_INDATE, BC_REASON, BC_QTY, BC_BARCODE, BC_PRODCODE, BC_NEWQTY)" +
  867. "values(barcodechange_seq.nextval@ERP,sysdate,'点料机更新条码数量',?,?,?,?)",rs.getString("bar_remain"),ReelId,rs.getString("bar_prodcode"),Quantity);
  868. baseDao.execute("update barcode set bar_remain=?,bar_status = 1,bar_outno = '' where bar_code=?",Quantity,ReelId);
  869. baseDao.execute("insert into barcodechange(BC_ID,BC_INDATE, BC_REASON, BC_QTY, BC_BARCODE, BC_PRODCODE, BC_NEWQTY)" +
  870. "values(barcodechange_seq.nextval,sysdate,'点料机更新条码数量',?,?,?,?)",rs.getString("bar_remain"),ReelId,rs.getString("bar_prodcode"),Quantity);
  871. rmap.put("Status","OK");
  872. rmap.put("Meassage","通过");
  873. rmap.put("PN",rs.getString("bar_prodcode"));
  874. rmap.put("MPN",rs.getString("pr_spec"));
  875. rmap.put("DataCode",rs.getString("bar_madedate"));
  876. }else {
  877. rmap.put("Status","NG");
  878. rmap.put("Meassage","条码不存在");
  879. return rmap;
  880. }
  881. return rmap;
  882. }
  883. @Override
  884. public Map<Object,Object> Weigh(String data) {
  885. Map<Object, Object> rmap = new HashMap<Object, Object>();
  886. String oErrMessage="";
  887. String lotSN="";
  888. String specificationName="";
  889. String weight="";
  890. String moName="";
  891. String workcenterName="";
  892. Map<String, Object> map=null;
  893. try{
  894. map =BaseUtil.convertJsonToMap(data);
  895. }catch (Exception e){
  896. System.out.printf(e.getMessage()) ;
  897. }
  898. if(map.get("lotSN")==null){
  899. oErrMessage = "SN不能为空";
  900. rmap.put("oErrMessage",oErrMessage);
  901. return rmap;
  902. }
  903. if(map.get("lotSN")==null){
  904. oErrMessage = "SN不能为空";
  905. rmap.put("oErrMessage",oErrMessage);
  906. return rmap;
  907. }
  908. if(map.get("specificationName")==null){
  909. oErrMessage = "工序不能为空";
  910. rmap.put("oErrMessage",oErrMessage);
  911. return rmap;
  912. }
  913. if(map.get("weight")==null){
  914. oErrMessage = "重量不能为空";
  915. rmap.put("oErrMessage",oErrMessage);
  916. return rmap;
  917. }
  918. lotSN=map.get("lotSN").toString();
  919. SqlRowList rs=baseDao.queryForRowSet("select ms_sncode from makeserial where ms_imei1='"+lotSN+"' or ms_imei2='"+lotSN+"' or ms_imei3='"+lotSN+"'");
  920. if(rs.next()){
  921. lotSN=rs.getString("ms_sncode");
  922. }else{
  923. rs=baseDao.queryForRowSet("select mil_sncode from makeimeilist where mil_imei1='"+lotSN+"' or mil_imei2='"+lotSN+"' or mil_imei3='"+lotSN+"'");
  924. if(rs.next()){
  925. lotSN=rs.getString("mil_sncode");
  926. }
  927. }
  928. specificationName=map.get("specificationName").toString();
  929. weight=map.get("weight").toString().replaceAll("KG","");
  930. oErrMessage=CheckRoutePassed(lotSN,specificationName);
  931. if(oErrMessage!=null){
  932. rmap.put("code",-1);
  933. rmap.put("message",oErrMessage);
  934. Map<String, String> rmap1 = new HashMap<String, String>();
  935. rmap1.put("minWeight","");
  936. rmap1.put("maxWeightc","");
  937. rmap1.put("machineModel","");
  938. rmap.put("dataInfo",rmap1);
  939. return rmap;
  940. }
  941. 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+"')");
  942. if(obj[0]!=null&&obj[1]!=null){
  943. //不在设置的重量范围内
  944. if(Double.parseDouble(weight)<Double.parseDouble(obj[0].toString())||Double.parseDouble(weight)>Double.parseDouble(obj[1].toString())){
  945. rmap.put("code",-1);
  946. rmap.put("message","SN["+lotSN+"]重量为"+weight+",不符合重量范围"+obj[0]+"-"+obj[1]);
  947. Map<String, String> rmap1 = new HashMap<String, String>();
  948. rmap1.put("minWeight",obj[0].toString());
  949. rmap1.put("maxWeight",obj[1].toString());
  950. rmap1.put("machineModel","");
  951. rmap.put("dataInfo",rmap1);
  952. return rmap;
  953. }
  954. Object oErr=SetPcbaData(lotSN,specificationName,specificationName,"OK");
  955. if(oErr==null){
  956. rmap.put("code",0);
  957. rmap.put("message","SN["+lotSN+"]重量为"+weight+",符合重量范围"+obj[0]+"-"+obj[1]+",称重通过");
  958. Object ms_id=baseDao.getFieldDataByCondition("makeserial","max(ms_id)","ms_sncode='"+lotSN+"'");
  959. baseDao.execute("update makeserial set ms_grossw ='"+weight+"' where ms_id="+ms_id);
  960. }else{
  961. rmap.put("code",-1);
  962. rmap.put("message",oErr);
  963. }
  964. Map<String, String> rmap1 = new HashMap<String, String>();
  965. rmap1.put("minWeight",obj[0].toString());
  966. rmap1.put("maxWeight",obj[1].toString());
  967. rmap1.put("machineModel","");
  968. rmap.put("dataInfo",rmap1);
  969. return rmap;
  970. }
  971. return rmap;
  972. }
  973. @Override
  974. public Map<Object,Object> DLLMain(String accessKey, String requestId, String data) {
  975. String AE_MASTER = "N_MES";
  976. SpObserver.putSp(AE_MASTER);
  977. Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data);
  978. //解析map
  979. if(!StringUtil.hasText(map.get("type"))){
  980. throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_TYPENULL,requestId));
  981. }
  982. if(!StringUtil.hasText(map.get("detail"))){
  983. throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_DATAILLEGAL,requestId));
  984. }
  985. String type = map.get("type").toString();
  986. JSONObject json = JSONObject.fromObject(map.get("detail"));
  987. HelperType helperType = HelperType.getTypeByCode(type);
  988. if(null == helperType){
  989. throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_TYPEILLEGAL,requestId));
  990. }
  991. int err = 0;
  992. //返回值
  993. Map<Object, Object> remap = new HashMap<Object, Object>();
  994. switch(helperType){
  995. case CheckRoutePassed:
  996. remap = CheckRoutePassed(json);
  997. break;
  998. case CheckUserAndResourcePassed:
  999. remap = CheckUserAndResourcePassed(json);
  1000. break;
  1001. case GetAddressRangeByMO:
  1002. remap = GetAddressRangeByMO(json);
  1003. break;
  1004. case GetMEIOrNetCodeRange:
  1005. remap = GetMEIOrNetCodeRange(json);
  1006. break;
  1007. case GetRcardMOInfo:
  1008. remap = GetRcardMOInfo(json);
  1009. break;
  1010. case GetMobileAllInfo:
  1011. remap = GetMobileAllInfo(json);
  1012. break;
  1013. case SetAddressInfo:
  1014. remap = SetAddressInfo(json);
  1015. break;
  1016. case GetMaster:
  1017. remap = GetMaster(json);
  1018. break;
  1019. case SetMobileData:
  1020. remap = SetMobileData(json);
  1021. break;
  1022. case SetIMEIInfo:
  1023. remap = SetIMEIInfo(json);
  1024. break;
  1025. case SetTestDetail:
  1026. remap = SetTestDetail(json);
  1027. break;
  1028. case SetPcbaData:
  1029. remap = SetPcbaData(json);
  1030. break;
  1031. case GetInfoByMaterial:
  1032. remap = GetInfoByMaterial(json);
  1033. break;
  1034. case GoMo:
  1035. remap = GoMo(json);
  1036. break;
  1037. case GetMakeInfoBySN:
  1038. remap = GetMakeInfoBySN(json);
  1039. break;
  1040. case SetBpMaterial:
  1041. remap = SetBpMaterial(json);
  1042. break;
  1043. case GetSnRepm:
  1044. remap = GetSnRepm(json);
  1045. break;
  1046. default:
  1047. err = -1;
  1048. break;
  1049. }
  1050. if(err == -1){
  1051. throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_TYPEILLEGAL,requestId));
  1052. }
  1053. SpObserver.putSp(username);
  1054. return remap;
  1055. }
  1056. private Map<Object,Object> GoMo(JSONObject map){
  1057. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1058. String iSN=null;
  1059. String iResCode=null;
  1060. String iMo=null;
  1061. String oErrMessage=null;
  1062. if(map.get("iMo")==null){
  1063. oErrMessage = "工单号不能为空";
  1064. rmap.put("oErrMessage",oErrMessage);
  1065. return rmap;
  1066. }
  1067. if(map.get("iResCode")==null){
  1068. oErrMessage = "岗位资源不能为空";
  1069. rmap.put("oErrMessage",oErrMessage);
  1070. return rmap;
  1071. }
  1072. if(map.get("iSN")==null){
  1073. oErrMessage = "SN不能为空";
  1074. rmap.put("oErrMessage",oErrMessage);
  1075. return rmap;
  1076. }
  1077. iSN=map.get("iSN").toString();
  1078. iResCode=map.get("iResCode").toString();
  1079. iMo=map.get("iMo").toString();
  1080. List<String> list = new ArrayList<String>();
  1081. list = baseDao.callProcedureWithOut("CS_CHECKSTEPSNANDMACODE", new Object[]{
  1082. String.valueOf(iMo),
  1083. String.valueOf(iResCode),
  1084. String.valueOf(iSN),
  1085. String.valueOf("")
  1086. }, new Integer[]{1, 2, 3, 4}, new Integer[]{5, 6, 7});
  1087. oErrMessage=list.get(2);
  1088. 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<>' '))");
  1089. String ms_status = "";
  1090. String ms_stepcode = "";
  1091. String ms_nextstepcode = "";
  1092. if(rs.next()){
  1093. ms_status= rs.getString("ms_status");
  1094. ms_stepcode=rs.getString("ms_stepcode");
  1095. ms_nextstepcode=rs.getString("ms_nextstepcode");
  1096. }
  1097. String stepcode = GetStepCodeBySource(iResCode);
  1098. if ( oErrMessage == null || (ms_status == "3" && ms_stepcode == stepcode))
  1099. {
  1100. if (ms_status == "3")
  1101. {
  1102. oErrMessage = null;
  1103. }
  1104. }
  1105. rmap.put("oErrMessage",oErrMessage);
  1106. return rmap;
  1107. }
  1108. private String GoMo(String iSN,String iMo,String iResCode){
  1109. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1110. String oErrMessage=null;
  1111. List<String> list = new ArrayList<String>();
  1112. list = baseDao.callProcedureWithOut("CS_CHECKSTEPSNANDMACODE", new Object[]{
  1113. String.valueOf(iMo),
  1114. String.valueOf(iResCode),
  1115. String.valueOf(iSN),
  1116. String.valueOf("")
  1117. }, new Integer[]{1, 2, 3, 4}, new Integer[]{5, 6, 7});
  1118. oErrMessage=list.get(2);
  1119. 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<>' '))");
  1120. String ms_status = "";
  1121. String ms_stepcode = "";
  1122. String ms_nextstepcode = "";
  1123. if(rs.next()){
  1124. ms_status= rs.getString("ms_status");
  1125. ms_stepcode=rs.getString("ms_stepcode");
  1126. ms_nextstepcode=rs.getString("ms_nextstepcode");
  1127. }
  1128. String stepcode = GetStepCodeBySource(iResCode);
  1129. if ( oErrMessage == null || (ms_status == "3" && ms_stepcode == stepcode))
  1130. {
  1131. if (ms_status == "3")
  1132. {
  1133. oErrMessage = null;
  1134. }
  1135. }
  1136. return oErrMessage;
  1137. }
  1138. private Map<Object,Object> GetInfoByMaterial(JSONObject map){
  1139. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1140. String iPCBA=null;
  1141. String oErrMessage=null;
  1142. if(map.get("iPCBA")==null){
  1143. oErrMessage = "主板SN不能为空";
  1144. rmap.put("oErrMessage",oErrMessage);
  1145. return rmap;
  1146. }
  1147. iPCBA=map.get("iPCBA").toString();
  1148. 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");
  1149. if(rs.next()){
  1150. if(!rs.getString("ms_id").equals("0")){
  1151. 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")+"'");
  1152. if (rs.next()){
  1153. rmap.put("oSN",rs.getString("ms_sncode"));
  1154. rmap.put("oBIOS",rs.getString("ma_bios"));
  1155. rmap.put("oEC",rs.getString("ma_ec"));
  1156. rmap.put("oHardWare",rs.getString("ma_hardware"));
  1157. }
  1158. }else{
  1159. oErrMessage = "主板SN未查询到关联信息";
  1160. rmap.put("oErrMessage",oErrMessage);
  1161. return rmap;
  1162. }
  1163. }
  1164. return rmap;
  1165. }
  1166. private Map<Object,Object> CheckRoutePassed(JSONObject map){
  1167. //实际业务数据
  1168. Map<Object, Object> rmap = new HashMap<>();
  1169. String iSN=map.get("iSN").toString();
  1170. String iResCode=map.get("iResCode").toString();
  1171. String oErrMessage="";
  1172. if (iSN ==null)
  1173. {
  1174. oErrMessage = "SN不能为空";
  1175. }
  1176. List<String> list = new ArrayList<String>();
  1177. list = baseDao.callProcedureWithOut("CS_CHECKSTEPSNANDMACODE", new Object[]{
  1178. String.valueOf(""),
  1179. String.valueOf(iResCode),
  1180. String.valueOf(iSN),
  1181. String.valueOf("")
  1182. }, new Integer[]{1, 2, 3, 4}, new Integer[]{5, 6, 7});
  1183. oErrMessage=list.get(2);
  1184. if(oErrMessage!=null){
  1185. rmap.put("oErrMessage",oErrMessage);
  1186. return rmap;
  1187. }
  1188. 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<>' '))");
  1189. String ms_status = "";
  1190. String ms_stepcode = "";
  1191. String ms_nextstepcode = "";
  1192. if(rs.next()){
  1193. ms_status= rs.getString("ms_status");
  1194. ms_stepcode=rs.getString("ms_stepcode");
  1195. ms_nextstepcode=rs.getString("ms_nextstepcode");
  1196. }
  1197. String stepcode = GetStepCodeBySource(iResCode);
  1198. if (ms_nextstepcode != "" && !ms_nextstepcode.equals(stepcode)&& !ms_stepcode.equals(stepcode))
  1199. {
  1200. oErrMessage = "当前序列号下一工序" + ms_nextstepcode;
  1201. }
  1202. rmap.put("oErrMessage",oErrMessage);
  1203. return rmap;
  1204. }
  1205. private String CheckRoutePassed(String iSN,String iResCode){
  1206. //实际业务数据
  1207. Map<Object, Object> rmap = new HashMap<>();
  1208. String oErrMessage;
  1209. if (iSN ==null)
  1210. {
  1211. oErrMessage = "SN不能为空";
  1212. }
  1213. List<String> list = new ArrayList<String>();
  1214. list = baseDao.callProcedureWithOut("CS_CHECKSTEPSNANDMACODE", new Object[]{
  1215. String.valueOf(""),
  1216. String.valueOf(iResCode),
  1217. String.valueOf(iSN),
  1218. String.valueOf("")
  1219. }, new Integer[]{1, 2, 3, 4}, new Integer[]{5, 6, 7});
  1220. oErrMessage=list.get(2);
  1221. if(oErrMessage!=null){
  1222. return oErrMessage;
  1223. }
  1224. 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<>' '))");
  1225. String ms_status = "";
  1226. String ms_stepcode = "";
  1227. String ms_nextstepcode = "";
  1228. if(rs.next()){
  1229. ms_status= rs.getString("ms_status");
  1230. ms_stepcode=rs.getString("ms_stepcode");
  1231. ms_nextstepcode=rs.getString("ms_nextstepcode");
  1232. }
  1233. String stepcode = GetStepCodeBySource(iResCode);
  1234. if (ms_nextstepcode != "" && !ms_nextstepcode.equals(stepcode)&& !ms_stepcode.equals(stepcode))
  1235. {
  1236. oErrMessage = "当前序列号"+iSN+"下一工序" + ms_nextstepcode;
  1237. }
  1238. return oErrMessage;
  1239. }
  1240. private Map<Object,Object> CheckUserAndResourcePassed(JSONObject map){
  1241. //实际业务数据
  1242. Map<Object, Object> rmap = new HashMap<>();
  1243. String oErrMessage = null;
  1244. if (map.get("iUserCode") == null || map.get("iResCode") == null || map.get("iPassWord") == null)
  1245. {
  1246. oErrMessage = "用户名,密码,岗位资源必须填写";
  1247. rmap.put("oErrMessage",oErrMessage);
  1248. return rmap;
  1249. }
  1250. String iUserCode=map.get("iUserCode").toString();
  1251. String iPassWord=map.get("iPassWord").toString();
  1252. String iResCode=map.get("iResCode").toString();
  1253. if (CheckUserLogin(iUserCode, iPassWord))
  1254. {
  1255. String SQL = "select em_code,em_type,em_name from employee where em_code=? ";
  1256. SqlRowList rs = baseDao.queryForRowSet(SQL, iUserCode);
  1257. if (rs.next())
  1258. {
  1259. String em_name = rs.getString("em_name");
  1260. String em_type = rs.getString("em_type");
  1261. if (iResCode ==null)
  1262. {
  1263. oErrMessage = "岗位资源不允许为空";
  1264. rmap.put("oErrMessage",oErrMessage);
  1265. return rmap;
  1266. }
  1267. if (em_type.equals("admin"))
  1268. {
  1269. if (!baseDao.checkIf("Source", "sc_code='" + iResCode + "' and sc_statuscode='AUDITED'"))
  1270. {
  1271. oErrMessage = "岗位资源编号错误或者未审核!";
  1272. }
  1273. }
  1274. else
  1275. {
  1276. 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'");
  1277. //如果存在该编号
  1278. if (rs1.next())
  1279. {
  1280. //判断如果多个岗位资源存在,用户输入的只要在其中就行
  1281. while (rs.next())
  1282. {
  1283. if (!rs.getString("ur_resourcecode").equals("iResCode")){
  1284. oErrMessage = "用户不处于当前资源所属分组!";
  1285. }else
  1286. {
  1287. oErrMessage=null;
  1288. continue;
  1289. }
  1290. }
  1291. }
  1292. else
  1293. oErrMessage = "岗位资源编号错误或者未审核!";
  1294. }
  1295. }
  1296. else
  1297. oErrMessage = "用户不存在!";
  1298. }else{
  1299. oErrMessage = "用户名密码不正确!";
  1300. }
  1301. rmap.put("oErrMessage",oErrMessage);
  1302. return rmap;
  1303. }
  1304. private Map<Object,Object> GetAddressRangeByMO(JSONObject map){
  1305. //实际业务数据
  1306. Map<Object, Object> rmap = new HashMap<>();
  1307. String iSN="";
  1308. String oErrMessage = null;
  1309. String oWIFI = "";
  1310. String oBT = "";
  1311. String oCode1 = "";
  1312. String oCode2 = "";
  1313. String oCode3 = "";
  1314. if(map.get("iSN")==null){
  1315. oErrMessage = "SN不能为空";
  1316. rmap.put("oErrMessage",oErrMessage);
  1317. return rmap;
  1318. }
  1319. iSN=map.get("iSN").toString();
  1320. //判断工单是否归属
  1321. JSONObject map3=new JSONObject();
  1322. map3.put("iSN",iSN);
  1323. Map<Object, Object> map2=GetRcardMOInfo(map3);
  1324. if(map2.get("oErrMessage")!=null){
  1325. oErrMessage=map2.get("oErrMessage").toString();
  1326. rmap.put("oErrMessage",oErrMessage);
  1327. return rmap;
  1328. }
  1329. List<String> list = new ArrayList<String>();
  1330. list = baseDao.callProcedureWithOut("CS_GETADDRESSBYMAKECODE", new Object[]{
  1331. String.valueOf(iSN),
  1332. String.valueOf(map2.get("oMoCode").toString()),
  1333. }, new Integer[]{1,2}, new Integer[]{3,4,5,6,7,8});
  1334. oWIFI = list.get(0);
  1335. oBT = list.get(1);
  1336. oCode1 = list.get(2);
  1337. oCode2 = list.get(3);
  1338. oCode3 = list.get(4);
  1339. oErrMessage= list.get(5);
  1340. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  1341. rmap.put("oWIFI",oWIFI);
  1342. rmap.put("oBT",oBT);
  1343. rmap.put("oCode1",oCode1);
  1344. rmap.put("oCode2",oCode2);
  1345. rmap.put("oCode3",oCode3);
  1346. }
  1347. else
  1348. rmap.put("oErrMessage",oErrMessage);
  1349. return rmap;
  1350. }
  1351. private Map<Object,Object> GetMEIOrNetCodeRange(JSONObject map){
  1352. //实际业务数据
  1353. Map<Object, Object> rmap = new HashMap<>();
  1354. String iSN="";
  1355. String oErrMessage = null;
  1356. String oIMEI1 = "";
  1357. String oIMEI2 = "";
  1358. String oMEID = "";
  1359. String oNetCode = "";
  1360. String oPSN = "";
  1361. String oID1 = "";
  1362. String oID2 = "";
  1363. String oID3 = "";
  1364. String oID4 = "";
  1365. String oID5 = "";
  1366. if(map.get("iSN")==null){
  1367. oErrMessage = "SN不能为空";
  1368. rmap.put("oErrMessage",oErrMessage);
  1369. return rmap;
  1370. }
  1371. if(map.get("iIMEI1")!=null){
  1372. oIMEI1=map.get("iIMEI1").toString();
  1373. }
  1374. if(map.get("iNetCode")!=null){
  1375. oNetCode=map.get("iNetCode").toString();
  1376. }
  1377. iSN=map.get("iSN").toString();
  1378. List<String> list = new ArrayList<String>();
  1379. list = baseDao.callProcedureWithOut("CS_GETIMEIORNETCODERANGE", new Object[]{
  1380. String.valueOf(iSN),
  1381. String.valueOf(""),
  1382. String.valueOf(oIMEI1),
  1383. String.valueOf(oNetCode),
  1384. }, new Integer[]{1,2,3,4}, new Integer[]{5,6,7,8,9,10,11,12,13,14});
  1385. oIMEI1 = list.get(0);
  1386. oIMEI2 = list.get(1);
  1387. oMEID = list.get(2);
  1388. oNetCode = list.get(3);
  1389. oID1 = list.get(4);
  1390. oID2 = list.get(5);
  1391. oID3 = list.get(6);
  1392. oID4 = list.get(7);
  1393. oID5 = list.get(8);
  1394. oErrMessage= list.get(9);
  1395. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  1396. rmap.put("oIMEI1",oIMEI1);
  1397. rmap.put("oIMEI2",oIMEI2);
  1398. rmap.put("oMEID",oMEID);
  1399. rmap.put("oNetCode",oNetCode);
  1400. rmap.put("oPSN",oPSN);
  1401. rmap.put("oID1",oID1);
  1402. rmap.put("oID2",oID2);
  1403. rmap.put("oID3",oID3);
  1404. rmap.put("oID4",oID4);
  1405. rmap.put("oID5",oID5);
  1406. }
  1407. else
  1408. rmap.put("oErrMessage",oErrMessage);
  1409. return rmap;
  1410. }
  1411. private Map<Object,Object> GetRcardMOInfo(JSONObject map){
  1412. //实际业务数据
  1413. Map<Object, Object> rmap = new HashMap<>();
  1414. //取MakeProcess表中的执行记录ID最大的一个工单的号码
  1415. String oErrMessage = null;
  1416. if(map.get("iSN")==null){
  1417. oErrMessage = "SN不能为空";
  1418. rmap.put("oErrMessage",oErrMessage);
  1419. return rmap;
  1420. }
  1421. String iSN=map.get("iSN").toString();
  1422. StringBuffer sql=new StringBuffer();
  1423. sql.append("select max(ms_id)ms_id from makeserial where ms_sncode in (select '" + iSN + "' from dual union select sn from ");
  1424. sql.append("makesnrelation where beforesn='" + iSN + "' and sn<>' ' union select beforesn from makesnrelation where sn='" + iSN + "' and beforesn<>' ')");
  1425. SqlRowList rs = baseDao.queryForRowSet(sql.toString());
  1426. String ms_id="";
  1427. if(rs.next()){
  1428. if(rs.getString("ms_id")==null){
  1429. oErrMessage = "序列号:" + iSN + " 未归属工单";
  1430. rmap.put("oErrMessage",oErrMessage);
  1431. return rmap;
  1432. }
  1433. else{
  1434. ms_id= rs.getString("ms_id");
  1435. }
  1436. }
  1437. Object oMoCode = baseDao.getFieldDataByCondition("MakeSerial", "ms_makecode", "ms_id='" + ms_id + "'");
  1438. if (oMoCode != null){
  1439. rmap.put("oMoCode",oMoCode);
  1440. oErrMessage= null;
  1441. }
  1442. else
  1443. {
  1444. oErrMessage = "序列号:" + iSN + " 未归属工单";
  1445. }
  1446. rmap.put("oErrMessage",oErrMessage);
  1447. return rmap;
  1448. }
  1449. private Map<Object,Object> GetMobileAllInfo(JSONObject map){
  1450. //实际业务数据
  1451. Map<Object, Object> rmap = new HashMap<>();
  1452. String iSN="";
  1453. String oErrMessage = null;
  1454. String oIMEI1 = "";
  1455. String oIMEI2 = "";
  1456. String oMEID = "";
  1457. String oNetCode = "";
  1458. String oPSN = "";
  1459. String oID1 = "";
  1460. String oID2 = "";
  1461. String oID3 = "";
  1462. String oID4 = "";
  1463. String oID5 = "";
  1464. String oWIFI = "";
  1465. String oBT = "";
  1466. String oCode1 = "";
  1467. String oCode2 = "";
  1468. String oCode3 = "";
  1469. if(map.get("iSN")==null){
  1470. oErrMessage = "SN不能为空";
  1471. rmap.put("oErrMessage",oErrMessage);
  1472. return rmap;
  1473. }
  1474. iSN=map.get("iSN").toString();
  1475. Object ms_id =baseDao.getFieldDataByCondition("makeserial", "max(ms_id)", "ms_sncode='" + iSN + "'");
  1476. if(ms_id!=null)
  1477. {
  1478. SqlRowList rs=baseDao.queryForRowSet("select 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 from MakeSerial where ms_id="+ms_id.toString());
  1479. if(rs.next()){
  1480. oWIFI = rs.getString("ms_mac");
  1481. oBT = rs.getString("ms_bt");
  1482. oPSN = rs.getString("ms_psn");
  1483. oNetCode = rs.getString("ms_netcode");
  1484. oMEID = rs.getString("ms_meid");
  1485. oIMEI1 = rs.getString("ms_imei1");
  1486. oIMEI2 = rs.getString("ms_imei2");
  1487. oCode1 = rs.getString("ms_othcode1");
  1488. oCode2 = rs.getString("ms_othcode2");
  1489. oCode3 = rs.getString("ms_othcode3");
  1490. oID1 = rs.getString("ms_othid3");
  1491. oID2 = rs.getString("ms_othid3");
  1492. oID3 = rs.getString("ms_othid3");
  1493. }
  1494. }else
  1495. {
  1496. oErrMessage = "序列号" + iSN + "不存在";
  1497. rmap.put("oErrMessage",oErrMessage);
  1498. return rmap;
  1499. }
  1500. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  1501. rmap.put("oIMEI1",oIMEI1);
  1502. rmap.put("oIMEI2",oIMEI2);
  1503. rmap.put("oMEID",oMEID);
  1504. rmap.put("oNetCode",oNetCode);
  1505. rmap.put("oPSN",oPSN);
  1506. rmap.put("oID1",oID1);
  1507. rmap.put("oID2",oID2);
  1508. rmap.put("oID3",oID3);
  1509. rmap.put("oID4",oID4);
  1510. rmap.put("oID5",oID5);
  1511. rmap.put("oWIFI",oWIFI);
  1512. rmap.put("oBT",oBT);
  1513. rmap.put("oCode1",oCode1);
  1514. rmap.put("oCode2",oCode2);
  1515. rmap.put("oCode3",oCode3);
  1516. }
  1517. else
  1518. rmap.put("oErrMessage",oErrMessage);
  1519. return rmap;
  1520. }
  1521. private Map<Object,Object> SetAddressInfo(JSONObject map){
  1522. //实际业务数据
  1523. Map<Object, Object> rmap = new HashMap<>();
  1524. String oErrMessage = null;
  1525. if(map.get("iSN")==null){
  1526. oErrMessage = "SN不能为空";
  1527. rmap.put("oErrMessage",oErrMessage);
  1528. return rmap;
  1529. }
  1530. String iSN=map.get("iSN").toString();
  1531. String iWIFI = null;
  1532. String iBT = null;
  1533. String iCode1 = null;
  1534. String iCode2 = null;
  1535. String iCode3 = null;
  1536. if(map.get("iWIFI")!=null){
  1537. iWIFI=map.get("iWIFI").toString();
  1538. }
  1539. if(map.get("iBT")!=null){
  1540. iBT=map.get("iBT").toString();
  1541. }
  1542. if(map.get("iCode1")!=null){
  1543. iCode1=map.get("iCode1").toString();
  1544. }
  1545. if(map.get("iCode2")!=null){
  1546. iCode2=map.get("iCode2").toString();
  1547. }
  1548. if(map.get("iCode3")!=null){
  1549. iCode3=map.get("iCode3").toString();
  1550. }
  1551. List<String> list = new ArrayList<String>();
  1552. list = baseDao.callProcedureWithOut("CS_SETADDRESSINFO", new Object[]{
  1553. String.valueOf(iSN),
  1554. String.valueOf(iWIFI),
  1555. String.valueOf(iBT),
  1556. String.valueOf(iCode1),
  1557. String.valueOf(iCode2),
  1558. String.valueOf(iCode3)
  1559. }, new Integer[]{1, 2, 3, 4, 5, 6}, new Integer[]{7});
  1560. oErrMessage = list.get(0);
  1561. rmap.put("oErrMessage",oErrMessage);
  1562. return rmap;
  1563. }
  1564. private Map<Object,Object> GetMaster(JSONObject map){
  1565. //实际业务数据
  1566. Map<Object, Object> rmap = new HashMap<>();
  1567. SqlRowList rs=baseDao.queryForRowSet("select ma_user from mes.master");
  1568. while(rs.next())
  1569. {
  1570. rmap.put(rs.getString("ma_user"),rs.getString("ma_user"));
  1571. }
  1572. return rmap;
  1573. }
  1574. private Map<Object,Object> SetMobileData(JSONObject map){
  1575. //实际业务数据
  1576. Map<Object, Object> rmap = new HashMap<>();
  1577. String oErrMessage = null;
  1578. if(map.get("iSN")==null||map.get("iTSN")==null){
  1579. oErrMessage = "SN不能为空";
  1580. rmap.put("oErrMessage",oErrMessage);
  1581. return rmap;
  1582. }
  1583. String iSN=map.get("iSN").toString();
  1584. String iTSN=map.get("iTSN").toString();
  1585. String iSourceCode = null;
  1586. String iOperater = null;
  1587. String iResult = null;
  1588. String flag = null;
  1589. String iErrCode = null;
  1590. if(map.get("iResCode")!=null){
  1591. iSourceCode=map.get("iResCode").toString();
  1592. }
  1593. if(map.get("iOperater")!=null){
  1594. iOperater=map.get("iOperater").toString();
  1595. }
  1596. if(map.get("iResult")!=null){
  1597. iResult=map.get("iResult").toString();
  1598. }
  1599. if(map.get("flag")!=null){
  1600. flag=map.get("flag").toString();
  1601. }
  1602. if(map.get("iErrCode")!=null){
  1603. iErrCode=map.get("iErrCode").toString();
  1604. }
  1605. List<String> list = new ArrayList<String>();
  1606. list = baseDao.callProcedureWithOut("CS_DLLSNCHANGE", new Object[]{
  1607. String.valueOf(iTSN),
  1608. String.valueOf(iSN),
  1609. String.valueOf(iSourceCode),
  1610. String.valueOf(iOperater),
  1611. String.valueOf(iResult),
  1612. String.valueOf(iErrCode),
  1613. }, new Integer[]{1, 2, 3, 4, 5, 6}, new Integer[]{7});
  1614. oErrMessage = list.get(0);
  1615. rmap.put("oErrMessage",oErrMessage);
  1616. return rmap;
  1617. }
  1618. private Map<Object,Object> SetIMEIInfo(JSONObject map){
  1619. //实际业务数据
  1620. Map<Object, Object> rmap = new HashMap<>();
  1621. String oErrMessage = null;
  1622. if(map.get("iSN")==null){
  1623. oErrMessage = "SN不能为空";
  1624. rmap.put("oErrMessage",oErrMessage);
  1625. return rmap;
  1626. }
  1627. String iSN=map.get("iSN").toString();
  1628. String iIMEI1=null;
  1629. String iIMEI2 = null;
  1630. String iIMEI3 = null;
  1631. String iMEID = null;
  1632. String iNET = null;
  1633. String iID1 = null;
  1634. String iID2 = null;
  1635. String iID3 = null;
  1636. if(map.get("iIMEI1")!=null){
  1637. iIMEI1=map.get("iIMEI1").toString();
  1638. }
  1639. if(map.get("iIMEI2")!=null){
  1640. iIMEI2=map.get("iIMEI2").toString();
  1641. }
  1642. if(map.get("iIMEI3")!=null){
  1643. iIMEI3=map.get("iIMEI3").toString();
  1644. }
  1645. if(map.get("iMEID")!=null){
  1646. iMEID=map.get("iMEID").toString();
  1647. }
  1648. if(map.get("iNET")!=null){
  1649. iNET=map.get("iNET").toString();
  1650. }
  1651. if(map.get("iID1")!=null){
  1652. iID1=map.get("iID1").toString();
  1653. }
  1654. if(map.get("iID2")!=null){
  1655. iID2=map.get("iID2").toString();
  1656. }
  1657. if(map.get("iID3")!=null){
  1658. iID3=map.get("iID3").toString();
  1659. }
  1660. List<String> list = new ArrayList<String>();
  1661. list = baseDao.callProcedureWithOut("CS_SETIMEIINFO", new Object[]{
  1662. String.valueOf(iSN),
  1663. String.valueOf(iIMEI1),
  1664. String.valueOf(iIMEI2),
  1665. String.valueOf(iIMEI3),
  1666. String.valueOf(iMEID),
  1667. String.valueOf(iNET),
  1668. String.valueOf(""),
  1669. String.valueOf(iID1),
  1670. String.valueOf(iID2),
  1671. String.valueOf(iID3),
  1672. }, new Integer[]{1, 2, 3, 4, 5, 6,7,8,9,10}, new Integer[]{11});
  1673. oErrMessage = list.get(0);
  1674. rmap.put("oErrMessage",oErrMessage);
  1675. return rmap;
  1676. }
  1677. private Map<Object,Object> SetTestDetail(JSONObject map){
  1678. //实际业务数据
  1679. Map<Object, Object> rmap = new HashMap<>();
  1680. String oErrMessage=null;
  1681. if(map.get("iSN")==null){
  1682. oErrMessage = "SN不能为空";
  1683. rmap.put("oErrMessage",oErrMessage);
  1684. return rmap;
  1685. }
  1686. String iSN=map.get("iSN").toString();
  1687. String iTestResult= "";
  1688. String iResCode= "";
  1689. String iClassName="";
  1690. String iTestDetail= "";
  1691. if(map.get("iTestResult")!=null){
  1692. iTestResult=map.get("iTestResult").toString();
  1693. }
  1694. if(map.get("iClassName")!=null){
  1695. iClassName=map.get("iClassName").toString();
  1696. }
  1697. if(map.get("iResCode")!=null){
  1698. iResCode=map.get("iResCode").toString();
  1699. }
  1700. if(map.get("iTestDetail")!=null){
  1701. iTestDetail=map.get("iTestDetail").toString();
  1702. }
  1703. JSONObject map3=new JSONObject();
  1704. map3.put("iSN",iSN);
  1705. Map<Object, Object> map2=GetRcardMOInfo(map3);
  1706. String omakeCode = "";
  1707. StringBuffer sql=new StringBuffer();
  1708. String[] name=iClassName.split("\\|");
  1709. String[] result=iTestResult.split("\\|");
  1710. String[] value=iTestDetail.split("\\|");
  1711. if(name.length!=value.length||name.length!=result.length){
  1712. rmap.put("oErrMessage","测试项目名称和值的项次不一致");
  1713. return rmap;
  1714. }
  1715. for (int i=0;i<name.length;i++){
  1716. sql.setLength(0);
  1717. sql.append("Insert into STEPTESTDETAIL (STD_ID,STD_CLASS,STD_SN,STD_MAKECODE,STD_ACTUALVALUE,STD_TESTRESULT,STD_INDATE,STD_RESCODE)");
  1718. sql.append("values(STEPTESTDETAIL_SEQ.nextval,'"+name[i]+"','" + iSN + "','" + map2.get("oMoCode") + "','" + value[i] + "','" + result[i] + "',sysdate,'" + iResCode + "')");
  1719. baseDao.execute(sql.toString());
  1720. }
  1721. rmap.put("oErrMessage",oErrMessage);
  1722. return rmap;
  1723. }
  1724. private Map<Object,Object> SetPcbaData(JSONObject map){
  1725. //实际业务数据
  1726. Map<Object, Object> rmap = new HashMap<>();
  1727. String oErrMessage = null;
  1728. if(map.get("iSN")==null||map.get("iSN").toString().equals("")){
  1729. oErrMessage = "SN不能为空";
  1730. rmap.put("oErrMessage",oErrMessage);
  1731. return rmap;
  1732. }
  1733. if(map.get("iResCode")==null||map.get("iResCode").toString().equals("")){
  1734. oErrMessage = "岗位资源不能为空";
  1735. rmap.put("oErrMessage",oErrMessage);
  1736. return rmap;
  1737. }
  1738. String iSN=map.get("iSN").toString();
  1739. String iResCode = null;
  1740. String iOperator = null;
  1741. String iResult = null;
  1742. String iErrCode = null;
  1743. if(map.get("iResCode")!=null){
  1744. iResCode=map.get("iResCode").toString();
  1745. }
  1746. if(map.get("iOperater")!=null){
  1747. iOperator=map.get("iOperater").toString();
  1748. }
  1749. if(map.get("iResult")!=null){
  1750. iResult=map.get("iResult").toString();
  1751. }
  1752. if(map.get("iErrCode")!=null){
  1753. iErrCode=map.get("iErrCode").toString();
  1754. }
  1755. JSONObject map3=new JSONObject();
  1756. map3.put("iSN",iSN);
  1757. Map<Object, Object> map2=GetRcardMOInfo(map3);
  1758. String oMoCode=null;
  1759. if(map2.get("oMoCode")!=null){
  1760. oMoCode=map2.get("oMoCode").toString();
  1761. }
  1762. if (map2.get("oErrMessage")==null)
  1763. return SetStepFinish(oMoCode, iResCode, iSN, "", iResult, iOperator, iErrCode);
  1764. return rmap;
  1765. }
  1766. private Object SetPcbaData(String iSN,String iResCode,String iOperator,String iResult){
  1767. //实际业务数据
  1768. Map<Object, Object> rmap = new HashMap<>();
  1769. String iErrCode = null;
  1770. if(iSN==null){
  1771. iErrCode = "SN不能为空";
  1772. return iErrCode;
  1773. }
  1774. JSONObject map3=new JSONObject();
  1775. map3.put("iSN",iSN);
  1776. Map<Object, Object> map2=GetRcardMOInfo(map3);
  1777. String oMoCode=null;
  1778. if(map2.get("oMoCode")!=null){
  1779. oMoCode=map2.get("oMoCode").toString();
  1780. }
  1781. if (map2.get("oErrMessage")==null)
  1782. map2= SetStepFinish(oMoCode, iResCode, iSN, "", iResult, iResCode, iErrCode);
  1783. return map2.get("oErrMessage");
  1784. }
  1785. /// <summary>
  1786. /// 获取步骤代码
  1787. /// </summary>
  1788. /// <param name="Source"></param>
  1789. /// <returns></returns>
  1790. private String GetStepCodeBySource(String Source)
  1791. {
  1792. Object o=baseDao.getFieldDataByCondition("source", "sc_stepcode", "sc_code='" + Source + "'");
  1793. if(o!=null)
  1794. return o.toString();
  1795. else
  1796. return "";
  1797. }
  1798. private Boolean CheckUserLogin(String iUserCode, String iPassWord)
  1799. {
  1800. SqlRowList rs =baseDao.queryForRowSet("select em_code from employee where em_code='"+iUserCode+"' and em_password =?",iPassWord);
  1801. if (rs.next())
  1802. return true;
  1803. else
  1804. {
  1805. return false;
  1806. }
  1807. }
  1808. private Map<Object,Object> GetMakeInfoBySN(JSONObject map)
  1809. {
  1810. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1811. String iSN=null;
  1812. String oErrMessage=null;
  1813. if(map.get("iSN")==null){
  1814. oErrMessage = "SN不能为空";
  1815. rmap.put("oErrMessage",oErrMessage);
  1816. return rmap;
  1817. }
  1818. iSN=map.get("iSN").toString();
  1819. 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 " +
  1820. "left join makeserial on ms_makecode=ma_code where ms_sncode='"+iSN+"'");
  1821. if(rs.next()){
  1822. rmap.put("oMaremark1",rs.getString("ma_remark1"));
  1823. rmap.put("oMaremark2",rs.getString("ma_remark2"));
  1824. rmap.put("oMaremark3",rs.getString("ma_remark3"));
  1825. rmap.put("oMaremark4",rs.getString("ma_remark4"));
  1826. rmap.put("oMaremark5",rs.getString("ma_remark5"));
  1827. rmap.put("oMaremark6",rs.getString("ma_remark6"));
  1828. rmap.put("oMaremark7",rs.getString("ma_remark7"));
  1829. rmap.put("oMaremark8",rs.getString("ma_remark8"));
  1830. rmap.put("oMaremark9",rs.getString("ma_remark9"));
  1831. rmap.put("oMaremark10",rs.getString("ma_remark10"));
  1832. rmap.put("oMaremark11",rs.getString("ma_remark11"));
  1833. rmap.put("oMaremark12",rs.getString("ma_remark12"));
  1834. rmap.put("oMaremark13",rs.getString("ma_remark13"));
  1835. rmap.put("oMaremark14",rs.getString("ma_remark14"));
  1836. rmap.put("oMaremark15",rs.getString("ma_remark15"));
  1837. rmap.put("oMaremark16",rs.getString("ma_remark16"));
  1838. return rmap;
  1839. }else{
  1840. oErrMessage = "SN未查询到关联信息";
  1841. rmap.put("oErrMessage",oErrMessage);
  1842. return rmap;
  1843. }
  1844. }
  1845. public Map<Object,Object> SetStepFinish(String iMakeCode, String iSourceCode, String iSN, String iMPKind, String iResult, String iUserCode, String iErrCode)
  1846. {
  1847. String oErrMessage = null;
  1848. Object StepCode = baseDao.getFieldDataByCondition("Makeserial", "ms_stepcode", "ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  1849. String CurrentStep = GetStepCodeBySource(iSourceCode);
  1850. Object BgCode = baseDao.getFieldDataByCondition("step", "nvl(st_badgroupcode,' ')", "st_code='" + CurrentStep + "'");
  1851. String mscode = baseDao.getFieldDataByCondition("Makeserial", "ms_code", "ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'").toString();
  1852. Map<Object, Object> rmap = new HashMap<>();
  1853. switch (iResult)
  1854. {
  1855. case "OK":
  1856. break;
  1857. case "NG":
  1858. if (iErrCode == "")
  1859. {
  1860. oErrMessage = "测试结果为NG时必须传递不良代码";
  1861. rmap.put("oErrMessage",oErrMessage);
  1862. return rmap;
  1863. }
  1864. else
  1865. {
  1866. String[] BadCode = iErrCode.split(",");
  1867. Set<String> uniqueStrings = new HashSet<>();
  1868. for (String str : BadCode) {
  1869. uniqueStrings.add(str);
  1870. }
  1871. BadCode = uniqueStrings.toArray(new String[0]);
  1872. if (!mscode.equals(iSN))
  1873. {
  1874. List<String> sqls = new ArrayList<>();
  1875. sqls.add("update makeserial set ms_sncode = '"+mscode+"',ms_beforesn = '' where ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  1876. sqls.add(" update makesnlist set msl_status = '' where msl_sncode = '"+iSN+"' and msl_makecode = '"+iMakeCode+"' ");
  1877. sqls.add("delete makesnrelation where sn = '"+iSN+"'");
  1878. if (sqls!=null&&sqls.size()>0){
  1879. baseDao.execute(sqls);
  1880. }
  1881. iSN = mscode;
  1882. }
  1883. baseDao.updateByCondition("makebad", "mb_status=-1", "mb_sncode='" + iSN + "' and mb_makecode='" + iMakeCode + "' and mb_stepcode='" + CurrentStep + "' and mb_status=0");
  1884. StringBuffer sql=new StringBuffer();
  1885. for (int i = 0; i < BadCode.length; i++)
  1886. {
  1887. if(!baseDao.checkIf("badcode","bc_code='"+ BadCode[i].split(";")[0]+"'")){
  1888. oErrMessage = "不良代码"+BadCode[i].split(";")[0]+"不存在";
  1889. rmap.put("oErrMessage",oErrMessage);
  1890. return rmap;
  1891. }
  1892. int mb_id = baseDao.getSeqId("makebad_seq");
  1893. String badlocation = null;
  1894. try {
  1895. badlocation = BadCode[i].split(";")[1];
  1896. }catch (Exception ex)
  1897. {
  1898. badlocation = "";
  1899. }
  1900. BgCode = baseDao.getFieldDataByCondition("badcode","bc_groupcode","bc_code = '"+BadCode[i].split(";")[0]+"'").toString();
  1901. sql.setLength(0);
  1902. sql.append("insert into makebad(mb_id,mb_makecode,mb_mscode,mb_sncode,mb_inman,mb_indate,mb_stepcode");
  1903. sql.append(",mb_sourcecode,mb_badremark,mb_badcode,mb_badtable,mb_bgcode,mb_soncode,mb_status) select '" + mb_id + "'");
  1904. sql.append(",ma_code,ms_code,ms_sncode,'" + iUserCode + "',sysdate,'" + CurrentStep + "','" + iSourceCode + "','"+badlocation+"','" + BadCode[i].split(";")[0] + "','',");
  1905. sql.append("'" + BgCode + "',sp_soncode,'0' from make left join makeSerial on ms_makecode=ma_code left join stepProduct on ");
  1906. sql.append("sp_mothercode=ma_prodcode and sp_stepcode=ms_nextstepcode where ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  1907. baseDao.execute(sql.toString());
  1908. }
  1909. //将不良的序列号的状态码设为3
  1910. baseDao.execute("update makeserial set ms_status='3',ms_mccode = '' where ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  1911. }
  1912. break;
  1913. default:
  1914. oErrMessage = "测试结果必须为NG或者OK";
  1915. rmap.put("oErrMessage",oErrMessage);
  1916. return rmap;
  1917. }
  1918. //不良采集为良品是更新
  1919. if (StepCode!=null &&StepCode.toString().equals(CurrentStep) && iResult == "OK")
  1920. {
  1921. Object[] ob = baseDao.getFieldsDataByCondition("makeserial", "ms_status,ms_craftcode,ms_prodcode", "ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  1922. if (ob!=null)
  1923. {
  1924. String ms_status =ob[0].toString();
  1925. String ms_craftcode= ob[1].toString();
  1926. String ms_prodcode = ob[2].toString();
  1927. if (ms_status == "3")
  1928. {
  1929. 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();
  1930. baseDao.updateByCondition("makeserial", "ms_status=1,ms_nextstepcode='" + nextstepcode + "'", "ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  1931. baseDao.updateByCondition("makebad", "mb_status=-1", "mb_sncode='" + iSN + "' and mb_makecode='" + iMakeCode + "'");
  1932. }
  1933. }
  1934. }
  1935. return CS_SetFinish(iMakeCode, iSourceCode, iSN, iUserCode, iResult);
  1936. }
  1937. private Map<Object,Object> CS_SetFinish(String iMakeCode, String iSourceCode, String iSN, String iUserCode, String iResult)
  1938. {
  1939. Map<Object, Object> rmap = new HashMap<>();
  1940. String oErrMessage=null;
  1941. List<String> list = new ArrayList<String>();
  1942. list = baseDao.callProcedureWithOut("CS_SETSTEPRESULT", new Object[]{
  1943. String.valueOf(iMakeCode),
  1944. String.valueOf(iSourceCode),
  1945. String.valueOf(iSN),
  1946. String.valueOf(iUserCode),
  1947. String.valueOf(iResult),
  1948. }, new Integer[]{1, 2, 3, 4, 5}, new Integer[]{6});
  1949. oErrMessage = list.get(0);
  1950. rmap.put("oErrMessage",oErrMessage);
  1951. return rmap;
  1952. }
  1953. private String checkAccessKey(String accessKey,String requestId){
  1954. Object accessSecret_O = baseDao.getFieldDataByCondition("APIEMPLOYEE", "AE_SECRET", "AE_KEY='" + accessKey + "'");
  1955. Object AE_MASTER = baseDao.getFieldDataByCondition("APIEMPLOYEE", "AE_MASTER", "AE_KEY='" + accessKey + "'");
  1956. String accessSecret = accessSecret_O == null ? "" : accessSecret_O.toString();
  1957. // 检查KEY是否合理
  1958. if (StringUtils.isEmpty(accessKey) || StringUtils.isEmpty(accessSecret) || AE_MASTER== null || "".equals(AE_MASTER.toString())) {
  1959. ApiResult apiResult = new ApiResult(ErrorMessage.ACCESSKEY_ILLEGAL.getCode(),ErrorMessage.ACCESSKEY_ILLEGAL.getMessage(),requestId);
  1960. throw new ApiSystemException(apiResult);
  1961. }
  1962. return AE_MASTER.toString();
  1963. }
  1964. @Override
  1965. public Map<Object,Object> getMESSnCode(String data) {
  1966. Map<String, Object> map=null;
  1967. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1968. try{
  1969. map =BaseUtil.convertJsonToMap(data);
  1970. }catch (Exception e){
  1971. rmap.put("code",-1);
  1972. rmap.put("message",e.getMessage());
  1973. System.out.printf(e.getMessage()) ;
  1974. return rmap;
  1975. }
  1976. String macode = map.get("moid") == null ? "" : String.valueOf(map.get("moid"));
  1977. if("".equals(macode)){
  1978. rmap.put("code",-1);
  1979. rmap.put("message","工单不能为空");
  1980. return rmap;
  1981. }
  1982. if (!baseDao.checkIf("make","ma_code='"+macode+"'")){
  1983. rmap.put("code",-1);
  1984. rmap.put("message","工单不存在");
  1985. return rmap;
  1986. }
  1987. if (baseDao.checkIf("make","nvl(ma_statuscode,' ')<>'STARTED' and ma_code='"+macode+"'")){
  1988. rmap.put("code",-1);
  1989. rmap.put("message","工单不是已下放状态");
  1990. return rmap;
  1991. }
  1992. if (!baseDao.checkIf("MakeSnList","msl_makecode='"+macode+"'")){
  1993. rmap.put("code",-1);
  1994. rmap.put("message","工单未维护SN");
  1995. return rmap;
  1996. }
  1997. double sncount = map.get("count") == null ? 0 : Double.parseDouble(map.get("count").toString());
  1998. if(sncount<=0){
  1999. rmap.put("code",-1);
  2000. rmap.put("message","SN数量必须大于0");
  2001. return rmap;
  2002. }
  2003. int count = baseDao.getCountByCondition("MakeSnList", "msl_makecode='" + macode + "' and nvl(msl_status,0)=0");
  2004. if (count<sncount){
  2005. rmap.put("code",-1);
  2006. rmap.put("message","SN不足!");
  2007. return rmap;
  2008. }
  2009. List<String> sqls = new ArrayList<>();
  2010. List<Map<String, Object>> maps = new ArrayList<>();
  2011. Map<String, Object> snmap=null;
  2012. 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 ");
  2013. String mainbarcode="";
  2014. String msl_id="";
  2015. while (rs.next()){
  2016. snmap=new HashMap<String, Object>();
  2017. snmap.put("serialNo",rs.getGeneralString("msl_sncode"));
  2018. mainbarcode=rs.getGeneralString("msl_sncode");
  2019. maps.add(snmap);
  2020. sqls.add("update MakeSnList set msl_signtime=sysdate,msl_status=-1 where msl_id="+rs.getGeneralInt("msl_id"));
  2021. msl_id+=rs.getGeneralInt("msl_id")+",";
  2022. }
  2023. msl_id+="0";
  2024. baseDao.execute("update MakeSnList set msl_mainbarcode='"+mainbarcode+"' where msl_id in ("+msl_id+")");
  2025. if (sqls!=null&&sqls.size()>0){
  2026. baseDao.execute(sqls);
  2027. }
  2028. rmap.put("code",0);
  2029. rmap.put("data",maps);
  2030. return rmap;
  2031. }
  2032. @Override
  2033. public Map<Object, Object> getMakeSnCode(String data) {
  2034. Map<String, Object> map=null;
  2035. Map<Object, Object> rmap = new HashMap<Object, Object>();
  2036. try{
  2037. map =BaseUtil.convertJsonToMap(data);
  2038. }catch (Exception e){
  2039. rmap.put("code",-1);
  2040. rmap.put("message",e.getMessage());
  2041. System.out.printf(e.getMessage()) ;
  2042. return rmap;
  2043. }
  2044. String macode = map.get("moid") == null ? "" : String.valueOf(map.get("moid"));
  2045. if("".equals(macode)){
  2046. rmap.put("code",-1);
  2047. rmap.put("message","工单不能为空");
  2048. return rmap;
  2049. }
  2050. if (!baseDao.checkIf("make","ma_code='"+macode+"'")){
  2051. rmap.put("code",-1);
  2052. rmap.put("message","工单不存在");
  2053. return rmap;
  2054. }
  2055. if (baseDao.checkIf("make","nvl(ma_statuscode,' ')<>'STARTED' and ma_code='"+macode+"'")){
  2056. rmap.put("code",-1);
  2057. rmap.put("message","工单不是已下放状态");
  2058. return rmap;
  2059. }
  2060. if (!baseDao.checkIf("MakeSnList","msl_makecode='"+macode+"'")){
  2061. rmap.put("code",-1);
  2062. rmap.put("message","工单未维护SN");
  2063. return rmap;
  2064. }
  2065. double sncount = map.get("count") == null ? 1 : Double.parseDouble(map.get("count").toString());
  2066. if(sncount<=0){
  2067. rmap.put("code",-1);
  2068. rmap.put("message","SN数量必须大于0");
  2069. return rmap;
  2070. }
  2071. String mType = map.get("mType") == null ? "" : String.valueOf(map.get("mType"));
  2072. if("".equals(mType)){
  2073. rmap.put("code",-1);
  2074. rmap.put("message","类型不能为空");
  2075. return rmap;
  2076. }
  2077. int count = baseDao.getCountByCondition("MakeSnList", "msl_makecode='" + macode + "' and nvl(msl_type,' ')='"+mType+"' and nvl(msl_status,0)=0");
  2078. if (count<sncount){
  2079. rmap.put("code",-1);
  2080. rmap.put("message","SN不足!");
  2081. return rmap;
  2082. }
  2083. List<String> sqls = new ArrayList<>();
  2084. List<Map<String, Object>> maps = new ArrayList<>();
  2085. Map<String, Object> snmap=null;
  2086. SqlRowList rs = baseDao.queryForRowSet("select msl_sncode,msl_id from (select msl_sncode,msl_id from MakeSnList where msl_makecode='" + macode + "' and nvl(msl_type,' ')='"+mType+"' and nvl(msl_status,0)=0 order by msl_sncode) where rownum<="+sncount +" order by msl_sncode ");
  2087. String mainbarcode="";
  2088. String msl_id="";
  2089. while (rs.next()){
  2090. snmap=new HashMap<String, Object>();
  2091. snmap.put("serialNo",rs.getGeneralString("msl_sncode"));
  2092. mainbarcode=rs.getGeneralString("msl_sncode");
  2093. maps.add(snmap);
  2094. sqls.add("update MakeSnList set msl_signtime=sysdate,msl_status=-1 where msl_id="+rs.getGeneralInt("msl_id"));
  2095. msl_id+=rs.getGeneralInt("msl_id")+",";
  2096. }
  2097. msl_id+="0";
  2098. baseDao.execute("update MakeSnList set msl_mainbarcode='"+mainbarcode+"' where msl_id in ("+msl_id+")");
  2099. if (sqls!=null&&sqls.size()>0){
  2100. baseDao.execute(sqls);
  2101. }
  2102. rmap.put("code",0);
  2103. rmap.put("data",maps);
  2104. return rmap;
  2105. }
  2106. @Override
  2107. public Map<Object, Object> getMainAllSnCode(String data) {
  2108. Map<String, Object> map=null;
  2109. Map<Object, Object> rmap = new HashMap<Object, Object>();
  2110. try{
  2111. map =BaseUtil.convertJsonToMap(data);
  2112. }catch (Exception e){
  2113. rmap.put("code",-1);
  2114. rmap.put("message",e.getMessage());
  2115. System.out.printf(e.getMessage()) ;
  2116. return rmap;
  2117. }
  2118. String sn = StringUtil.nvl(map.get("sn"),"");
  2119. if("".equals(sn)){
  2120. rmap.put("code",-1);
  2121. rmap.put("message","SN不能为空");
  2122. return rmap;
  2123. }
  2124. List<Map<String, Object>> maps = baseDao.queryForList("select msl_sncode serialNo,msl_zone zone from MakeSnList where msl_mainbarcode=(select msl_mainbarcode from MakeSnList where msl_sncode='" + sn + "')");
  2125. rmap.put("code",0);
  2126. rmap.put("data",maps);
  2127. return rmap;
  2128. }
  2129. /**
  2130. * 增加对接静电数据
  2131. * @param json
  2132. * {
  2133. * "dataList": [
  2134. * {
  2135. * "id": 0,
  2136. * "factoryName": "",
  2137. * "lineName": "",
  2138. * "seatNo": 0,
  2139. * "seatDeviceName": "",
  2140. * "seatDeviceMark": "",
  2141. * "seatSort": 0,
  2142. * "employee": "",
  2143. * "jobNum": "",
  2144. * "wristStrapNum": "",
  2145. * "bodyTemperature": 0.0,
  2146. * "staticState": 0,
  2147. * "createTime": "2025-03-24 20:18:43"
  2148. * }
  2149. * ],
  2150. * "timestamp": 1742818758248,
  2151. * "sign": "F62A20ABA50F0E5D8095EAF7282CCF1F"
  2152. * }
  2153. * @return
  2154. *
  2155. * 接⼝秘钥secret R&XSMOQyRbDm2136sSTGWDRf ,⽤于下⾯接⼝加密签名
  2156. * "timestamp": 1742818758248,
  2157. */
  2158. @Override
  2159. public Map<String, Object> saveSeatDevice(String json) {
  2160. Map<Object,Object> da = BaseUtil.parseFormStoreToMap(json);
  2161. Map<String,Object> rmap = new HashMap<>();
  2162. //校验时间戳
  2163. String err = checkTimeStamp(da);
  2164. if(null != err){
  2165. rmap.put("success",false);
  2166. rmap.put("code",500);
  2167. rmap.put("message",err);
  2168. rmap.put("data",null);
  2169. rmap.put("exceptionClazz",null);
  2170. return rmap;
  2171. }
  2172. if(!StringUtil.hasText(da.get("dataList"))){
  2173. rmap.put("success",false);
  2174. rmap.put("code",500);
  2175. rmap.put("message","静电数据集合dataList为空");
  2176. rmap.put("data",null);
  2177. rmap.put("exceptionClazz",null);
  2178. return rmap;
  2179. }
  2180. try {
  2181. MainSeatDevice device = FlexJsonUtil.fromJson(json,MainSeatDevice.class);
  2182. List<String> sqls = new ArrayList<>();
  2183. List<MainSeatDeviceState> states = device.getDataList();
  2184. for(MainSeatDeviceState state : states){
  2185. sqls.add(state.toSqlString());
  2186. }
  2187. baseDao.execute(sqls);
  2188. rmap.put("success",true);
  2189. rmap.put("code",200);
  2190. rmap.put("message","请求成功");
  2191. return rmap;
  2192. }catch (Exception e){
  2193. e.printStackTrace();
  2194. rmap.put("success",false);
  2195. rmap.put("code",500);
  2196. rmap.put("message",e.getMessage().length()>1000?e.getMessage().substring(0,1000):e.getMessage() );
  2197. rmap.put("data",null);
  2198. rmap.put("exceptionClazz",null);
  2199. return rmap;
  2200. }
  2201. }
  2202. /**
  2203. *增加对接机器数据
  2204. * @param json
  2205. * @return
  2206. */
  2207. @Override
  2208. public Map<String, Object> saveMachineDevice(String json) {
  2209. Map<Object,Object> da = BaseUtil.parseFormStoreToMap(json);
  2210. Map<String,Object> rmap = new HashMap<>();
  2211. //校验时间戳
  2212. String err = checkTimeStamp(da);
  2213. if(null != err){
  2214. rmap.put("success",false);
  2215. rmap.put("code",500);
  2216. rmap.put("message",err);
  2217. rmap.put("data",null);
  2218. rmap.put("exceptionClazz",null);
  2219. return rmap;
  2220. }
  2221. if(!StringUtil.hasText(da.get("dataList"))){
  2222. rmap.put("success",false);
  2223. rmap.put("code",500);
  2224. rmap.put("message","机器数据集合dataList为空");
  2225. rmap.put("data",null);
  2226. rmap.put("exceptionClazz",null);
  2227. return rmap;
  2228. }
  2229. try {
  2230. MainMachineDevice device = FlexJsonUtil.fromJson(json,MainMachineDevice.class);
  2231. List<String> sqls = new ArrayList<>();
  2232. List<MainMachineDeviceState> states = device.getDataList();
  2233. for(MainMachineDeviceState state : states){
  2234. sqls.add(state.toSqlString());
  2235. }
  2236. baseDao.execute(sqls);
  2237. rmap.put("success",true);
  2238. rmap.put("code",200);
  2239. rmap.put("message","请求成功");
  2240. return rmap;
  2241. }catch (Exception e){
  2242. e.printStackTrace();
  2243. rmap.put("success",false);
  2244. rmap.put("code",500);
  2245. rmap.put("message",e.getMessage().length()>1000?e.getMessage().substring(0,1000):e.getMessage() );
  2246. rmap.put("data",null);
  2247. rmap.put("exceptionClazz",null);
  2248. return rmap;
  2249. }
  2250. }
  2251. /**
  2252. * 增加对接台垫数据
  2253. * @param json
  2254. * @return
  2255. */
  2256. @Override
  2257. public Map<String, Object> saveCushionDevice(String json) {
  2258. Map<Object,Object> da = BaseUtil.parseFormStoreToMap(json);
  2259. Map<String,Object> rmap = new HashMap<>();
  2260. //校验时间戳
  2261. String err = checkTimeStamp(da);
  2262. if(null != err){
  2263. rmap.put("success",false);
  2264. rmap.put("code",500);
  2265. rmap.put("message",err);
  2266. rmap.put("data",null);
  2267. rmap.put("exceptionClazz",null);
  2268. return rmap;
  2269. }
  2270. if(!StringUtil.hasText(da.get("dataList"))){
  2271. rmap.put("success",false);
  2272. rmap.put("code",500);
  2273. rmap.put("message","台垫数据集合dataList为空");
  2274. rmap.put("data",null);
  2275. rmap.put("exceptionClazz",null);
  2276. return rmap;
  2277. }
  2278. try {
  2279. MainCushionDevice device = FlexJsonUtil.fromJson(json,MainCushionDevice.class);
  2280. List<String> sqls = new ArrayList<>();
  2281. List<MainCushionDeviceState> states = device.getDataList();
  2282. for(MainCushionDeviceState state : states){
  2283. sqls.add(state.toSqlString());
  2284. }
  2285. baseDao.execute(sqls);
  2286. rmap.put("success",true);
  2287. rmap.put("code",200);
  2288. rmap.put("message","请求成功");
  2289. return rmap;
  2290. }catch (Exception e){
  2291. e.printStackTrace();
  2292. rmap.put("success",false);
  2293. rmap.put("code",500);
  2294. rmap.put("message",e.getMessage().length()>1000?e.getMessage().substring(0,1000):e.getMessage() );
  2295. rmap.put("data",null);
  2296. rmap.put("exceptionClazz",null);
  2297. return rmap;
  2298. }
  2299. }
  2300. /** 接⼝秘钥secret R&XSMOQyRbDm2136sSTGWDRf ,⽤于下⾯接⼝加密签名
  2301. * "timestamp": 1742818758248,
  2302. * 当前系统13位毫秒级时间戳,⽤于校验签名,5分钟有效期
  2303. * "sign": "F62A20ABA50F0E5D8095EAF7282CCF1F"
  2304. * 接⼝签名:
  2305. * 1. 拼接字符串:timestamp={毫秒级时间戳}&secret={接⼝秘钥}
  2306. * 2. 将第1步拼接后的字符串,进⾏MD5 加密,⽣成32位的16进制MD5字符串
  2307. */
  2308. private String checkTimeStamp(Map<Object,Object> da){
  2309. if(!StringUtil.hasText(da.get("timestamp"))){
  2310. return "时间戳timestamp值为空";
  2311. }
  2312. if(!StringUtil.hasText(da.get("sign"))){
  2313. return "签名sign值为空";
  2314. }
  2315. if(System.currentTimeMillis()-Long.parseLong(da.get("timestamp").toString())>5*60*1000){
  2316. return "时间戳已失效,上传失败";
  2317. }
  2318. StringBuilder temp = new StringBuilder();
  2319. temp.append("timestamp=").append(da.get("timestamp")).append("&secret=").append("R&XSMOQyRbDm2136sSTGWDRf");
  2320. String sign = MD5Util.encrypt32Up(temp.toString()).toUpperCase();
  2321. System.out.println(sign);
  2322. if(!sign.equals(da.get("sign"))){
  2323. return "签名错误,请检查";
  2324. }
  2325. return null;
  2326. }
  2327. private Map<Object,Object> GetSnRepm(JSONObject map)
  2328. {
  2329. Map<Object, Object> rmap = new HashMap<Object, Object>();
  2330. String iSN=null;
  2331. String oErrMessage=null;
  2332. String mbr_solutionname=null;
  2333. if(map.get("iSN")==null){
  2334. oErrMessage = "SN不能为空";
  2335. rmap.put("oErrMessage",oErrMessage);
  2336. return rmap;
  2337. }
  2338. iSN=map.get("iSN").toString();
  2339. SqlRowList rs = baseDao.queryForRowSet("select mbr_solutionname from makebad left join MAKEBADREASON on mb_id = mbr_mbid where mb_sncode = ? order by mb_id desc",iSN);
  2340. if (rs.next())
  2341. {
  2342. mbr_solutionname = rs.getString("mbr_solutionname");
  2343. if ("更换屏幕".equals(mbr_solutionname)) {
  2344. oErrMessage = "需要更换屏幕";
  2345. }else
  2346. {
  2347. oErrMessage = "不需要更换屏幕";
  2348. }
  2349. rmap.put("oErrMessage",oErrMessage);
  2350. return rmap;
  2351. }else
  2352. {
  2353. oErrMessage = "SN"+iSN+"没有不良记录";
  2354. rmap.put("oErrMessage",oErrMessage);
  2355. return rmap;
  2356. }
  2357. }
  2358. private Map<Object,Object> SetBpMaterial(JSONObject map)
  2359. {
  2360. Map<Object, Object> rmap = new HashMap<Object, Object>();
  2361. String iSN=null;
  2362. String oErrMessage=null;
  2363. String iZJ=null;
  2364. String iResCode = null;
  2365. String linecode = null;
  2366. String stepcode = null;
  2367. if(map.get("iSN")==null){
  2368. oErrMessage = "SN不能为空";
  2369. rmap.put("oErrMessage",oErrMessage);
  2370. return rmap;
  2371. }
  2372. if(map.get("iZJ")==null){
  2373. oErrMessage = "载具号不能为空";
  2374. rmap.put("oErrMessage",oErrMessage);
  2375. return rmap;
  2376. }
  2377. iSN=map.get("iSN").toString();
  2378. iZJ=map.get("iZJ").toString();
  2379. iResCode=map.get("iResCode").toString();
  2380. linecode = GetlineCodeBySource(iResCode);
  2381. stepcode = GetStepCodeBySource(iResCode);
  2382. JSONObject map3=new JSONObject();
  2383. map3.put("iSN",iSN);
  2384. Map<Object, Object> map2=GetRcardMOInfo(map3);
  2385. String oMoCode=null;
  2386. if(map2.get("oMoCode")!=null){
  2387. oMoCode=map2.get("oMoCode").toString();
  2388. }
  2389. // if(!baseDao.checkIf("BEFOREHANDPROCESS","bhp_maincode = '"+iZJ+"' and nvl(BHP_STATUS,0) = 0"))
  2390. // {
  2391. // oErrMessage = "载具号"+iZJ+"内无材料";
  2392. // rmap.put("oErrMessage",oErrMessage);
  2393. // return rmap;
  2394. // }
  2395. baseDao.execute("update Craftmaterial set cm_status = -1 where cm_sncode = '"+iSN+"' and cm_makecode = '"+oMoCode+"'");
  2396. baseDao.execute("insert into Craftmaterial (cm_id ,cm_makecode,cm_maid,cm_maprodcode, cm_soncode, cm_mscode, cm_sncode, cm_stepcode, cm_stepname,cm_fsoncode," +
  2397. " cm_craftcode,cm_craftname,cm_barcode,cm_inqty,cm_indate,cm_inman,cm_linecode,cm_wccode,cm_sourcecode,cm_spid,cm_status,cm_materialtype,cm_firstsn) " +
  2398. " select Craftmaterial_seq.nextval,ma_code, ma_id, ma_prodcode,sp_soncode,ms_code,ms_sncode,mcd_stepcode,mcd_stepname,sp_fsoncode," +
  2399. " ms_craftcode,ms_craftname,bhp_barcode,1,sysdate,'','" + linecode +"',ma_wccode,'" + iResCode + "',sp_id,0,1,ms_firstsn" +
  2400. " from make left join makecraftdetail on mcd_macode=ma_code left join stepproduct on sp_stepcode=mcd_stepcode and sp_mothercode = ma_prodcode left join" +
  2401. " makeserial on ms_makecode=ma_code and sp_craftcode=ms_craftcode left join (select * from " +
  2402. " BEFOREHANDPROCESS where bhp_maincode='" + iZJ + "' and nvl(bhp_status,0) =0 ) on sp_fsoncode=bhp_prodcode" +
  2403. " where ma_code='" + oMoCode + "' and mcd_stepcode = '" + stepcode + "' and ms_sncode='" + iSN + "' and bhp_barcode is not null ");
  2404. baseDao.execute(" update BEFOREHANDPROCESS set bhp_status = -1 where bhp_maincode = '"+iZJ+"' and nvl(bhp_status,0) =0 ");
  2405. return SetStepFinish(oMoCode, iResCode, iSN, "", "OK", "ADMIN", "");
  2406. }
  2407. private String GetlineCodeBySource(String Source)
  2408. {
  2409. Object o=baseDao.getFieldDataByCondition("source", "sc_linecode", "sc_code='" + Source + "'");
  2410. if(o!=null)
  2411. return o.toString();
  2412. else
  2413. return "";
  2414. }
  2415. }