MESHelperServiceImpl.java 80 KB

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