MESHelperServiceImpl.java 91 KB

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