MESHelperServiceImpl.java 83 KB

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