MESHelperServiceImpl.java 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236
  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 net.sf.json.JSONObject;
  13. import net.sf.json.JsonConfig;
  14. import org.apache.commons.lang.StringUtils;
  15. import org.dom4j.DocumentException;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.beans.factory.annotation.Value;
  18. import org.springframework.stereotype.Service;
  19. import org.springframework.web.bind.annotation.RequestBody;
  20. import org.w3c.dom.Document;
  21. import org.w3c.dom.Element;
  22. import org.w3c.dom.Node;
  23. import org.w3c.dom.NodeList;
  24. import org.xml.sax.SAXException;
  25. import sun.awt.TimedWindowEvent;
  26. import java.io.IOException;
  27. import java.sql.Timestamp;
  28. import java.util.*;
  29. import org.dom4j.DocumentHelper;
  30. import javax.xml.parsers.DocumentBuilder;
  31. import javax.xml.parsers.DocumentBuilderFactory;
  32. import javax.xml.parsers.ParserConfigurationException;
  33. import org.xml.sax.InputSource;
  34. import java.io.StringReader;
  35. @Service
  36. public class MESHelperServiceImpl implements MESHelperService {
  37. @Autowired
  38. private BaseDao baseDao;
  39. @Value("${spring.datasource.username}")
  40. private String username;
  41. @Override
  42. public Map<Object,Object> Radium(String data) {
  43. Map<String, Object> map=null;
  44. Map<Object, Object> rmap = new HashMap<Object, Object>();
  45. String oErrMessage="";
  46. String UserName="";
  47. try{
  48. map =BaseUtil.convertJsonToMap(data);
  49. }catch (Exception e){
  50. System.out.printf(e.getMessage()) ;
  51. }
  52. if(map.get("SN")==null){
  53. rmap.put("code",-1);
  54. rmap.put("message","SN号不能为空");
  55. return rmap;
  56. }
  57. if(map.get("MO")==null){
  58. rmap.put("code",-1);
  59. rmap.put("message","工单号不能为空");
  60. return rmap;
  61. }
  62. if(map.get("SpecificationName")==null){
  63. rmap.put("code",-1);
  64. rmap.put("message","工序不能为空");
  65. return rmap;
  66. }
  67. if(map.get("UserName")==null){
  68. rmap.put("code",-1);
  69. rmap.put("message","用户不能为空");
  70. return rmap;
  71. }
  72. String specificationName=map.get("SpecificationName").toString();
  73. String MO=map.get("MO").toString();
  74. Map<Object,Object> map1=BaseUtil.parseFormStoreToMap(map.get("SN").toString());
  75. for (Map.Entry<Object, Object> entry : map1.entrySet()) {
  76. Object key = entry.getKey();
  77. Object value = entry.getValue();
  78. oErrMessage+=GoMo(value.toString().toUpperCase(),MO, specificationName);
  79. if(oErrMessage.equals("null")){
  80. oErrMessage="";
  81. }else{
  82. rmap.put("code",-1);
  83. rmap.put("message",oErrMessage);
  84. return rmap;
  85. }
  86. oErrMessage+=CheckRoutePassed(value.toString().toUpperCase(),specificationName);
  87. if(oErrMessage.equals("null")){
  88. oErrMessage="";
  89. }else{
  90. rmap.put("code",-1);
  91. rmap.put("message",oErrMessage);
  92. return rmap;
  93. }
  94. oErrMessage+=SetPcbaData(value.toString().toUpperCase(),specificationName,UserName,"OK");
  95. if(oErrMessage.equals("null")){
  96. oErrMessage="";
  97. }else{
  98. rmap.put("code",-1);
  99. rmap.put("message",oErrMessage);
  100. return rmap;
  101. }
  102. }
  103. if(oErrMessage.equals("")||oErrMessage==null){
  104. rmap.put("code",0);
  105. rmap.put("message","镭射识别绑定成功");
  106. return rmap;
  107. }
  108. return rmap;
  109. }
  110. @Override
  111. public Map<Object,Object> SPI(String data) {
  112. Map<Object, Object> rmap = new HashMap<Object, Object>();
  113. try{
  114. DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  115. DocumentBuilder builder = factory.newDocumentBuilder();
  116. try {
  117. try{
  118. Element root;
  119. NodeList books;
  120. Document document = builder.parse(new InputSource(new StringReader(data)));
  121. root = document.getDocumentElement();
  122. books = root.getChildNodes();
  123. for (Node node = books.item(1).getFirstChild(); node != null; node = node.getNextSibling()) {
  124. {
  125. if (node.getNodeName().equals("UpdAOISPIRecord")) {
  126. NodeList books1 = node.getChildNodes();
  127. for (int i = 0; i < books1.getLength(); i++) {
  128. Node node1 = books1.item(i);
  129. if(!node1.getNodeName().equals("#text")){
  130. System.out.printf("名称:"+node1.getNodeName());
  131. System.out.printf("值:"+node1.getTextContent());
  132. System.out.printf("类型:"+node1.getNodeType());
  133. }
  134. }
  135. }
  136. }
  137. }
  138. }catch (IOException e){
  139. System.out.printf(e.getMessage());
  140. }
  141. }
  142. catch (SAXException e){
  143. }
  144. }catch (ParserConfigurationException e){
  145. }
  146. return rmap;
  147. }
  148. @Override
  149. public Map<Object,Object> AOI(String data) {
  150. Map<Object, Object> rmap = new HashMap<Object, Object>();
  151. return rmap;
  152. }
  153. @Override
  154. public Map<Object,Object> Weigh(String data) {
  155. Map<Object, Object> rmap = new HashMap<Object, Object>();
  156. String oErrMessage="";
  157. String lotSN="";
  158. String specificationName="";
  159. String weight="";
  160. String moName="";
  161. String workcenterName="";
  162. Map<String, Object> map=null;
  163. try{
  164. map =BaseUtil.convertJsonToMap(data);
  165. }catch (Exception e){
  166. System.out.printf(e.getMessage()) ;
  167. }
  168. if(map.get("lotSN")==null){
  169. oErrMessage = "SN不能为空";
  170. rmap.put("oErrMessage",oErrMessage);
  171. return rmap;
  172. }
  173. if(map.get("lotSN")==null){
  174. oErrMessage = "SN不能为空";
  175. rmap.put("oErrMessage",oErrMessage);
  176. return rmap;
  177. }
  178. if(map.get("specificationName")==null){
  179. oErrMessage = "工序不能为空";
  180. rmap.put("oErrMessage",oErrMessage);
  181. return rmap;
  182. }
  183. if(map.get("weight")==null){
  184. oErrMessage = "重量不能为空";
  185. rmap.put("oErrMessage",oErrMessage);
  186. return rmap;
  187. }
  188. lotSN=map.get("lotSN").toString();
  189. specificationName=map.get("specificationName").toString();
  190. weight=map.get("weight").toString().replaceAll("KG","");
  191. oErrMessage=CheckRoutePassed(lotSN,specificationName);
  192. if(oErrMessage!=null){
  193. rmap.put("code",-1);
  194. rmap.put("message",oErrMessage);
  195. Map<String, String> rmap1 = new HashMap<String, String>();
  196. rmap1.put("minWeight","");
  197. rmap1.put("maxWeightc","");
  198. rmap1.put("machineModel","");
  199. rmap.put("dataInfo",rmap1);
  200. return rmap;
  201. }
  202. Object[] obj = baseDao.getFieldsDataByCondition("makeserial left join product on pr_code=ms_prodcode","pr_colorboxminw,pr_colorboxmaxw","ms_sncode='"+lotSN+"'");
  203. if(obj[0]!=null&&obj[1]!=null){
  204. //不在设置的重量范围内
  205. if(Double.parseDouble(weight)<Double.parseDouble(obj[0].toString())||Double.parseDouble(weight)>Double.parseDouble(obj[1].toString())){
  206. rmap.put("code",-1);
  207. rmap.put("message","SN重量为"+weight+",不符合重量范围"+obj[0]+"-"+obj[1]);
  208. Map<String, String> rmap1 = new HashMap<String, String>();
  209. rmap1.put("minWeight",obj[0].toString());
  210. rmap1.put("maxWeight",obj[1].toString());
  211. rmap1.put("machineModel","");
  212. rmap.put("dataInfo",rmap1);
  213. return rmap;
  214. }
  215. Object oErr=SetPcbaData(lotSN,specificationName,specificationName,"OK");
  216. if(oErr==null){
  217. rmap.put("code",0);
  218. rmap.put("message","SN重量为"+weight+",符合重量范围"+obj[0]+"-"+obj[1]+",称重通过");
  219. Object ms_id=baseDao.getFieldDataByCondition("makeserial","max(ms_id)","ms_sncode='"+lotSN+"'");
  220. baseDao.execute("update makeserial set ms_grossw ='"+weight+"' where ms_id="+ms_id);
  221. }else{
  222. rmap.put("code",-1);
  223. rmap.put("message",oErr);
  224. }
  225. Map<String, String> rmap1 = new HashMap<String, String>();
  226. rmap1.put("minWeight",obj[0].toString());
  227. rmap1.put("maxWeight",obj[1].toString());
  228. rmap1.put("machineModel","");
  229. rmap.put("dataInfo",rmap1);
  230. return rmap;
  231. }
  232. return rmap;
  233. }
  234. @Override
  235. public Map<Object,Object> DLLMain(String accessKey, String requestId, String data) {
  236. String AE_MASTER = "N_MES_T";
  237. SpObserver.putSp(AE_MASTER);
  238. Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data);
  239. //解析map
  240. if(!StringUtil.hasText(map.get("type"))){
  241. throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_TYPENULL,requestId));
  242. }
  243. if(!StringUtil.hasText(map.get("detail"))){
  244. throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_DATAILLEGAL,requestId));
  245. }
  246. String type = map.get("type").toString();
  247. JSONObject json = JSONObject.fromObject(map.get("detail"));
  248. HelperType helperType = HelperType.getTypeByCode(type);
  249. if(null == helperType){
  250. throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_TYPEILLEGAL,requestId));
  251. }
  252. int err = 0;
  253. //返回值
  254. Map<Object, Object> remap = new HashMap<Object, Object>();
  255. switch(helperType){
  256. case CheckRoutePassed:
  257. remap = CheckRoutePassed(json);
  258. break;
  259. case CheckUserAndResourcePassed:
  260. remap = CheckUserAndResourcePassed(json);
  261. break;
  262. case GetAddressRangeByMO:
  263. remap = GetAddressRangeByMO(json);
  264. break;
  265. case GetMEIOrNetCodeRange:
  266. remap = GetMEIOrNetCodeRange(json);
  267. break;
  268. case GetRcardMOInfo:
  269. remap = GetRcardMOInfo(json);
  270. break;
  271. case GetMobileAllInfo:
  272. remap = GetMobileAllInfo(json);
  273. break;
  274. case SetAddressInfo:
  275. remap = SetAddressInfo(json);
  276. break;
  277. case GetMaster:
  278. remap = GetMaster(json);
  279. break;
  280. case SetMobileData:
  281. remap = SetMobileData(json);
  282. break;
  283. case SetIMEIInfo:
  284. remap = SetIMEIInfo(json);
  285. break;
  286. case SetTestDetail:
  287. remap = SetTestDetail(json);
  288. break;
  289. case SetPcbaData:
  290. remap = SetPcbaData(json);
  291. break;
  292. case GetInfoByMaterial:
  293. remap = GetInfoByMaterial(json);
  294. break;
  295. case GoMo:
  296. remap = GoMo(json);
  297. break;
  298. case GetMakeInfoBySN:
  299. remap = GetMakeInfoBySN(json);
  300. break;
  301. default:
  302. err = -1;
  303. break;
  304. }
  305. if(err == -1){
  306. throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_TYPEILLEGAL,requestId));
  307. }
  308. SpObserver.putSp(username);
  309. return remap;
  310. }
  311. private Map<Object,Object> GoMo(JSONObject map){
  312. Map<Object, Object> rmap = new HashMap<Object, Object>();
  313. String iSN=null;
  314. String iResCode=null;
  315. String iMo=null;
  316. String oErrMessage=null;
  317. if(map.get("iMo")==null){
  318. oErrMessage = "工单号不能为空";
  319. rmap.put("oErrMessage",oErrMessage);
  320. return rmap;
  321. }
  322. if(map.get("iResCode")==null){
  323. oErrMessage = "岗位资源不能为空";
  324. rmap.put("oErrMessage",oErrMessage);
  325. return rmap;
  326. }
  327. if(map.get("iSN")==null){
  328. oErrMessage = "SN不能为空";
  329. rmap.put("oErrMessage",oErrMessage);
  330. return rmap;
  331. }
  332. iSN=map.get("iSN").toString();
  333. iResCode=map.get("iResCode").toString();
  334. iMo=map.get("iMo").toString();
  335. List<String> list = new ArrayList<String>();
  336. list = baseDao.callProcedureWithOut("CS_CHECKSTEPSNANDMACODE", new Object[]{
  337. String.valueOf(iMo),
  338. String.valueOf(iResCode),
  339. String.valueOf(iSN),
  340. String.valueOf("")
  341. }, new Integer[]{1, 2, 3, 4}, new Integer[]{5, 6, 7});
  342. oErrMessage=list.get(2);
  343. 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<>' '))");
  344. String ms_status = "";
  345. String ms_stepcode = "";
  346. String ms_nextstepcode = "";
  347. if(rs.next()){
  348. ms_status= rs.getString("ms_status");
  349. ms_stepcode=rs.getString("ms_stepcode");
  350. ms_nextstepcode=rs.getString("ms_nextstepcode");
  351. }
  352. String stepcode = GetStepCodeBySource(iResCode);
  353. if ( oErrMessage == null || (ms_status == "3" && ms_stepcode == stepcode))
  354. {
  355. if (ms_status == "3")
  356. {
  357. oErrMessage = null;
  358. }
  359. }
  360. rmap.put("oErrMessage",oErrMessage);
  361. return rmap;
  362. }
  363. private String GoMo(String iSN,String iMo,String iResCode){
  364. Map<Object, Object> rmap = new HashMap<Object, Object>();
  365. String oErrMessage=null;
  366. List<String> list = new ArrayList<String>();
  367. list = baseDao.callProcedureWithOut("CS_CHECKSTEPSNANDMACODE", new Object[]{
  368. String.valueOf(iMo),
  369. String.valueOf(iResCode),
  370. String.valueOf(iSN),
  371. String.valueOf("")
  372. }, new Integer[]{1, 2, 3, 4}, new Integer[]{5, 6, 7});
  373. oErrMessage=list.get(2);
  374. 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<>' '))");
  375. String ms_status = "";
  376. String ms_stepcode = "";
  377. String ms_nextstepcode = "";
  378. if(rs.next()){
  379. ms_status= rs.getString("ms_status");
  380. ms_stepcode=rs.getString("ms_stepcode");
  381. ms_nextstepcode=rs.getString("ms_nextstepcode");
  382. }
  383. String stepcode = GetStepCodeBySource(iResCode);
  384. if ( oErrMessage == null || (ms_status == "3" && ms_stepcode == stepcode))
  385. {
  386. if (ms_status == "3")
  387. {
  388. oErrMessage = null;
  389. }
  390. }
  391. return oErrMessage;
  392. }
  393. private Map<Object,Object> GetInfoByMaterial(JSONObject map){
  394. Map<Object, Object> rmap = new HashMap<Object, Object>();
  395. String iPCBA=null;
  396. String oErrMessage=null;
  397. if(map.get("iPCBA")==null){
  398. oErrMessage = "主板SN不能为空";
  399. rmap.put("oErrMessage",oErrMessage);
  400. return rmap;
  401. }
  402. iPCBA=map.get("iPCBA").toString();
  403. 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");
  404. if(rs.next()){
  405. if(!rs.getString("ms_id").equals("0")){
  406. 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")+"'");
  407. if (rs.next()){
  408. rmap.put("oSN",rs.getString("ms_sncode"));
  409. rmap.put("oBIOS",rs.getString("ma_bios"));
  410. rmap.put("oEC",rs.getString("ma_ec"));
  411. rmap.put("oHardWare",rs.getString("ma_hardware"));
  412. }
  413. }else{
  414. oErrMessage = "主板SN未查询到关联信息";
  415. rmap.put("oErrMessage",oErrMessage);
  416. return rmap;
  417. }
  418. }
  419. return rmap;
  420. }
  421. private Map<Object,Object> CheckRoutePassed(JSONObject map){
  422. //实际业务数据
  423. Map<Object, Object> rmap = new HashMap<>();
  424. String iSN=map.get("iSN").toString();
  425. String iResCode=map.get("iResCode").toString();
  426. String oErrMessage="";
  427. if (iSN ==null)
  428. {
  429. oErrMessage = "SN不能为空";
  430. }
  431. List<String> list = new ArrayList<String>();
  432. list = baseDao.callProcedureWithOut("CS_CHECKSTEPSNANDMACODE", new Object[]{
  433. String.valueOf(""),
  434. String.valueOf(iResCode),
  435. String.valueOf(iSN),
  436. String.valueOf("")
  437. }, new Integer[]{1, 2, 3, 4}, new Integer[]{5, 6, 7});
  438. oErrMessage=list.get(2);
  439. if(oErrMessage!=null){
  440. rmap.put("oErrMessage",oErrMessage);
  441. return rmap;
  442. }
  443. 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<>' '))");
  444. String ms_status = "";
  445. String ms_stepcode = "";
  446. String ms_nextstepcode = "";
  447. if(rs.next()){
  448. ms_status= rs.getString("ms_status");
  449. ms_stepcode=rs.getString("ms_stepcode");
  450. ms_nextstepcode=rs.getString("ms_nextstepcode");
  451. }
  452. String stepcode = GetStepCodeBySource(iResCode);
  453. if (ms_nextstepcode != "" && !ms_nextstepcode.equals(stepcode))
  454. {
  455. oErrMessage = "当前序列号下一工序" + ms_nextstepcode;
  456. }
  457. rmap.put("oErrMessage",oErrMessage);
  458. return rmap;
  459. }
  460. private String CheckRoutePassed(String iSN,String iResCode){
  461. //实际业务数据
  462. Map<Object, Object> rmap = new HashMap<>();
  463. String oErrMessage;
  464. if (iSN ==null)
  465. {
  466. oErrMessage = "SN不能为空";
  467. }
  468. List<String> list = new ArrayList<String>();
  469. list = baseDao.callProcedureWithOut("CS_CHECKSTEPSNANDMACODE", new Object[]{
  470. String.valueOf(""),
  471. String.valueOf(iResCode),
  472. String.valueOf(iSN),
  473. String.valueOf("")
  474. }, new Integer[]{1, 2, 3, 4}, new Integer[]{5, 6, 7});
  475. oErrMessage=list.get(2);
  476. if(oErrMessage!=null){
  477. return oErrMessage;
  478. }
  479. 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<>' '))");
  480. String ms_status = "";
  481. String ms_stepcode = "";
  482. String ms_nextstepcode = "";
  483. if(rs.next()){
  484. ms_status= rs.getString("ms_status");
  485. ms_stepcode=rs.getString("ms_stepcode");
  486. ms_nextstepcode=rs.getString("ms_nextstepcode");
  487. }
  488. String stepcode = GetStepCodeBySource(iResCode);
  489. if (ms_nextstepcode != "" && !ms_nextstepcode.equals(stepcode))
  490. {
  491. oErrMessage = "当前序列号"+iSN+"下一工序" + ms_nextstepcode;
  492. }
  493. return oErrMessage;
  494. }
  495. private Map<Object,Object> CheckUserAndResourcePassed(JSONObject map){
  496. //实际业务数据
  497. Map<Object, Object> rmap = new HashMap<>();
  498. String oErrMessage = null;
  499. if (map.get("iUserCode") == null || map.get("iResCode") == null || map.get("iPassWord") == null)
  500. {
  501. oErrMessage = "用户名,密码,岗位资源必须填写";
  502. rmap.put("oErrMessage",oErrMessage);
  503. return rmap;
  504. }
  505. String iUserCode=map.get("iUserCode").toString();
  506. String iPassWord=map.get("iPassWord").toString();
  507. String iResCode=map.get("iResCode").toString();
  508. if (CheckUserLogin(iUserCode, iPassWord))
  509. {
  510. String SQL = "select em_code,em_type,em_name from employee where em_code=? ";
  511. SqlRowList rs = baseDao.queryForRowSet(SQL, iUserCode);
  512. if (rs.next())
  513. {
  514. String em_name = rs.getString("em_name");
  515. String em_type = rs.getString("em_type");
  516. if (iResCode ==null)
  517. {
  518. oErrMessage = "岗位资源不允许为空";
  519. rmap.put("oErrMessage",oErrMessage);
  520. return rmap;
  521. }
  522. if (em_type.equals("admin"))
  523. {
  524. if (!baseDao.checkIf("Source", "sc_code='" + iResCode + "' and sc_statuscode='AUDITED'"))
  525. {
  526. oErrMessage = "岗位资源编号错误或者未审核!";
  527. }
  528. }
  529. else
  530. {
  531. 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'");
  532. //如果存在该编号
  533. if (rs1.next())
  534. {
  535. //判断如果多个岗位资源存在,用户输入的只要在其中就行
  536. while (rs.next())
  537. {
  538. if (!rs.getString("ur_resourcecode").equals("iResCode")){
  539. oErrMessage = "用户不处于当前资源所属分组!";
  540. }else
  541. {
  542. oErrMessage=null;
  543. continue;
  544. }
  545. }
  546. }
  547. else
  548. oErrMessage = "岗位资源编号错误或者未审核!";
  549. }
  550. }
  551. else
  552. oErrMessage = "用户不存在!";
  553. }else{
  554. oErrMessage = "用户名密码不正确!";
  555. }
  556. rmap.put("oErrMessage",oErrMessage);
  557. return rmap;
  558. }
  559. private Map<Object,Object> GetAddressRangeByMO(JSONObject map){
  560. //实际业务数据
  561. Map<Object, Object> rmap = new HashMap<>();
  562. String iSN="";
  563. String oErrMessage = null;
  564. String oWIFI = "";
  565. String oBT = "";
  566. String oCode1 = "";
  567. String oCode2 = "";
  568. String oCode3 = "";
  569. if(map.get("iSN")==null){
  570. oErrMessage = "SN不能为空";
  571. rmap.put("oErrMessage",oErrMessage);
  572. return rmap;
  573. }
  574. iSN=map.get("iSN").toString();
  575. //判断工单是否归属
  576. JSONObject map3=new JSONObject();
  577. map3.put("iSN",iSN);
  578. Map<Object, Object> map2=GetRcardMOInfo(map3);
  579. if(map2.get("oErrMessage")!=null){
  580. oErrMessage=map2.get("oErrMessage").toString();
  581. rmap.put("oErrMessage",oErrMessage);
  582. return rmap;
  583. }
  584. List<String> list = new ArrayList<String>();
  585. list = baseDao.callProcedureWithOut("CS_GETADDRESSBYMAKECODE", new Object[]{
  586. String.valueOf(iSN),
  587. String.valueOf(map2.get("oMoCode").toString()),
  588. }, new Integer[]{1,2}, new Integer[]{3,4,5,6,7,8});
  589. oWIFI = list.get(0);
  590. oBT = list.get(1);
  591. oCode1 = list.get(2);
  592. oCode2 = list.get(3);
  593. oCode3 = list.get(4);
  594. oErrMessage= list.get(5);
  595. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  596. rmap.put("oWIFI",oWIFI);
  597. rmap.put("oBT",oBT);
  598. rmap.put("oCode1",oCode1);
  599. rmap.put("oCode2",oCode2);
  600. rmap.put("oCode3",oCode3);
  601. }
  602. else
  603. rmap.put("oErrMessage",oErrMessage);
  604. return rmap;
  605. }
  606. private Map<Object,Object> GetMEIOrNetCodeRange(JSONObject map){
  607. //实际业务数据
  608. Map<Object, Object> rmap = new HashMap<>();
  609. String iSN="";
  610. String oErrMessage = null;
  611. String oIMEI1 = "";
  612. String oIMEI2 = "";
  613. String oMEID = "";
  614. String oNetCode = "";
  615. String oPSN = "";
  616. String oID1 = "";
  617. String oID2 = "";
  618. String oID3 = "";
  619. String oID4 = "";
  620. String oID5 = "";
  621. if(map.get("iSN")==null){
  622. oErrMessage = "SN不能为空";
  623. rmap.put("oErrMessage",oErrMessage);
  624. return rmap;
  625. }
  626. if(map.get("iIMEI1")!=null){
  627. oIMEI1=map.get("iIMEI1").toString();
  628. }
  629. if(map.get("iNetCode")!=null){
  630. oNetCode=map.get("iNetCode").toString();
  631. }
  632. iSN=map.get("iSN").toString();
  633. List<String> list = new ArrayList<String>();
  634. list = baseDao.callProcedureWithOut("CS_GETIMEIORNETCODERANGE", new Object[]{
  635. String.valueOf(iSN),
  636. String.valueOf(""),
  637. String.valueOf(oIMEI1),
  638. String.valueOf(oNetCode),
  639. }, new Integer[]{1,2,3,4}, new Integer[]{5,6,7,8,9,10,11,12,13,14});
  640. oIMEI1 = list.get(0);
  641. oIMEI2 = list.get(1);
  642. oMEID = list.get(2);
  643. oNetCode = list.get(3);
  644. oID1 = list.get(4);
  645. oID2 = list.get(5);
  646. oID3 = list.get(6);
  647. oID4 = list.get(7);
  648. oID5 = list.get(8);
  649. oErrMessage= list.get(9);
  650. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  651. rmap.put("oIMEI1",oIMEI1);
  652. rmap.put("oIMEI2",oIMEI2);
  653. rmap.put("oMEID",oMEID);
  654. rmap.put("oNetCode",oNetCode);
  655. rmap.put("oPSN",oPSN);
  656. rmap.put("oID1",oID1);
  657. rmap.put("oID2",oID2);
  658. rmap.put("oID3",oID3);
  659. rmap.put("oID4",oID4);
  660. rmap.put("oID5",oID5);
  661. }
  662. else
  663. rmap.put("oErrMessage",oErrMessage);
  664. return rmap;
  665. }
  666. private Map<Object,Object> GetRcardMOInfo(JSONObject map){
  667. //实际业务数据
  668. Map<Object, Object> rmap = new HashMap<>();
  669. //取MakeProcess表中的执行记录ID最大的一个工单的号码
  670. String oErrMessage = null;
  671. if(map.get("iSN")==null){
  672. oErrMessage = "SN不能为空";
  673. rmap.put("oErrMessage",oErrMessage);
  674. return rmap;
  675. }
  676. String iSN=map.get("iSN").toString();
  677. StringBuffer sql=new StringBuffer();
  678. sql.append("select max(ms_id)ms_id from makeserial where ms_sncode in (select '" + iSN + "' from dual union select sn from ");
  679. sql.append("makesnrelation where beforesn='" + iSN + "' and sn<>' ' union select beforesn from makesnrelation where sn='" + iSN + "' and beforesn<>' ')");
  680. SqlRowList rs = baseDao.queryForRowSet(sql.toString());
  681. String ms_id="";
  682. if(rs.next()){
  683. if(rs.getString("ms_id")==null){
  684. oErrMessage = "序列号:" + iSN + " 未归属工单";
  685. rmap.put("oErrMessage",oErrMessage);
  686. return rmap;
  687. }
  688. else{
  689. ms_id= rs.getString("ms_id");
  690. }
  691. }
  692. Object oMoCode = baseDao.getFieldDataByCondition("MakeSerial", "ms_makecode", "ms_id='" + ms_id + "'");
  693. if (oMoCode != null){
  694. rmap.put("oMoCode",oMoCode);
  695. oErrMessage= null;
  696. }
  697. else
  698. {
  699. oErrMessage = "序列号:" + iSN + " 未归属工单";
  700. }
  701. rmap.put("oErrMessage",oErrMessage);
  702. return rmap;
  703. }
  704. private Map<Object,Object> GetMobileAllInfo(JSONObject map){
  705. //实际业务数据
  706. Map<Object, Object> rmap = new HashMap<>();
  707. String iSN="";
  708. String oErrMessage = null;
  709. String oIMEI1 = "";
  710. String oIMEI2 = "";
  711. String oMEID = "";
  712. String oNetCode = "";
  713. String oPSN = "";
  714. String oID1 = "";
  715. String oID2 = "";
  716. String oID3 = "";
  717. String oID4 = "";
  718. String oID5 = "";
  719. String oWIFI = "";
  720. String oBT = "";
  721. String oCode1 = "";
  722. String oCode2 = "";
  723. String oCode3 = "";
  724. if(map.get("iSN")==null){
  725. oErrMessage = "SN不能为空";
  726. rmap.put("oErrMessage",oErrMessage);
  727. return rmap;
  728. }
  729. iSN=map.get("iSN").toString();
  730. Object ms_id =baseDao.getFieldDataByCondition("makeserial", "max(ms_id)", "ms_sncode='" + iSN + "'");
  731. if(ms_id!=null)
  732. {
  733. 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());
  734. if(rs.next()){
  735. oWIFI = rs.getString("ms_mac");
  736. oBT = rs.getString("ms_bt");
  737. oPSN = rs.getString("ms_psn");
  738. oNetCode = rs.getString("ms_netcode");
  739. oMEID = rs.getString("ms_meid");
  740. oIMEI1 = rs.getString("ms_imei1");
  741. oIMEI2 = rs.getString("ms_imei2");
  742. oCode1 = rs.getString("ms_othcode1");
  743. oCode2 = rs.getString("ms_othcode2");
  744. oCode3 = rs.getString("ms_othcode3");
  745. oID1 = rs.getString("ms_othid3");
  746. oID2 = rs.getString("ms_othid3");
  747. oID3 = rs.getString("ms_othid3");
  748. }
  749. }else
  750. {
  751. oErrMessage = "序列号" + iSN + "不存在";
  752. rmap.put("oErrMessage",oErrMessage);
  753. return rmap;
  754. }
  755. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  756. rmap.put("oIMEI1",oIMEI1);
  757. rmap.put("oIMEI2",oIMEI2);
  758. rmap.put("oMEID",oMEID);
  759. rmap.put("oNetCode",oNetCode);
  760. rmap.put("oPSN",oPSN);
  761. rmap.put("oID1",oID1);
  762. rmap.put("oID2",oID2);
  763. rmap.put("oID3",oID3);
  764. rmap.put("oID4",oID4);
  765. rmap.put("oID5",oID5);
  766. rmap.put("oWIFI",oWIFI);
  767. rmap.put("oBT",oBT);
  768. rmap.put("oCode1",oCode1);
  769. rmap.put("oCode2",oCode2);
  770. rmap.put("oCode3",oCode3);
  771. }
  772. else
  773. rmap.put("oErrMessage",oErrMessage);
  774. return rmap;
  775. }
  776. private Map<Object,Object> SetAddressInfo(JSONObject map){
  777. //实际业务数据
  778. Map<Object, Object> rmap = new HashMap<>();
  779. String oErrMessage = null;
  780. if(map.get("iSN")==null){
  781. oErrMessage = "SN不能为空";
  782. rmap.put("oErrMessage",oErrMessage);
  783. return rmap;
  784. }
  785. String iSN=map.get("iSN").toString();
  786. String iWIFI = null;
  787. String iBT = null;
  788. String iCode1 = null;
  789. String iCode2 = null;
  790. String iCode3 = null;
  791. if(map.get("iWIFI")!=null){
  792. iWIFI=map.get("iWIFI").toString();
  793. }
  794. if(map.get("iBT")!=null){
  795. iBT=map.get("iBT").toString();
  796. }
  797. if(map.get("iCode1")!=null){
  798. iCode1=map.get("iCode1").toString();
  799. }
  800. if(map.get("iCode2")!=null){
  801. iCode2=map.get("iCode2").toString();
  802. }
  803. if(map.get("iCode3")!=null){
  804. iCode3=map.get("iCode3").toString();
  805. }
  806. List<String> list = new ArrayList<String>();
  807. list = baseDao.callProcedureWithOut("CS_SETADDRESSINFO", new Object[]{
  808. String.valueOf(iSN),
  809. String.valueOf(iWIFI),
  810. String.valueOf(iBT),
  811. String.valueOf(iCode1),
  812. String.valueOf(iCode2),
  813. String.valueOf(iCode3)
  814. }, new Integer[]{1, 2, 3, 4, 5, 6}, new Integer[]{7});
  815. oErrMessage = list.get(0);
  816. rmap.put("oErrMessage",oErrMessage);
  817. return rmap;
  818. }
  819. private Map<Object,Object> GetMaster(JSONObject map){
  820. //实际业务数据
  821. Map<Object, Object> rmap = new HashMap<>();
  822. SqlRowList rs=baseDao.queryForRowSet("select ma_user from mes.master");
  823. while(rs.next())
  824. {
  825. rmap.put(rs.getString("ma_user"),rs.getString("ma_user"));
  826. }
  827. return rmap;
  828. }
  829. private Map<Object,Object> SetMobileData(JSONObject map){
  830. //实际业务数据
  831. Map<Object, Object> rmap = new HashMap<>();
  832. String oErrMessage = null;
  833. if(map.get("iSN")==null||map.get("iTSN")==null){
  834. oErrMessage = "SN不能为空";
  835. rmap.put("oErrMessage",oErrMessage);
  836. return rmap;
  837. }
  838. String iSN=map.get("iSN").toString();
  839. String iTSN=map.get("iTSN").toString();
  840. String iSourceCode = null;
  841. String iOperater = null;
  842. String iResult = null;
  843. String flag = null;
  844. String iErrCode = null;
  845. if(map.get("iSourceCode")!=null){
  846. iSourceCode=map.get("iSourceCode").toString();
  847. }
  848. if(map.get("iOperater")!=null){
  849. iOperater=map.get("iOperater").toString();
  850. }
  851. if(map.get("iResult")!=null){
  852. iResult=map.get("iResult").toString();
  853. }
  854. if(map.get("flag")!=null){
  855. flag=map.get("flag").toString();
  856. }
  857. if(map.get("iErrCode")!=null){
  858. iErrCode=map.get("iErrCode").toString();
  859. }
  860. List<String> list = new ArrayList<String>();
  861. list = baseDao.callProcedureWithOut("CS_DLLSNCHANGE", new Object[]{
  862. String.valueOf(iTSN),
  863. String.valueOf(iSN),
  864. String.valueOf(iSourceCode),
  865. String.valueOf(iOperater),
  866. String.valueOf(iResult),
  867. String.valueOf(iErrCode),
  868. }, new Integer[]{1, 2, 3, 4, 5, 6}, new Integer[]{7});
  869. oErrMessage = list.get(0);
  870. rmap.put("oErrMessage",oErrMessage);
  871. return rmap;
  872. }
  873. private Map<Object,Object> SetIMEIInfo(JSONObject map){
  874. //实际业务数据
  875. Map<Object, Object> rmap = new HashMap<>();
  876. String oErrMessage = null;
  877. if(map.get("iSN")==null){
  878. oErrMessage = "SN不能为空";
  879. rmap.put("oErrMessage",oErrMessage);
  880. return rmap;
  881. }
  882. String iSN=map.get("iSN").toString();
  883. String iIMEI1=null;
  884. String iIMEI2 = null;
  885. String iIMEI3 = null;
  886. String iMEID = null;
  887. String iNET = null;
  888. String iID1 = null;
  889. String iID2 = null;
  890. String iID3 = null;
  891. if(map.get("iIMEI1")!=null){
  892. iIMEI1=map.get("iIMEI1").toString();
  893. }
  894. if(map.get("iIMEI2")!=null){
  895. iIMEI2=map.get("iIMEI2").toString();
  896. }
  897. if(map.get("iIMEI3")!=null){
  898. iIMEI3=map.get("iIMEI3").toString();
  899. }
  900. if(map.get("iMEID")!=null){
  901. iMEID=map.get("iMEID").toString();
  902. }
  903. if(map.get("iNET")!=null){
  904. iNET=map.get("iNET").toString();
  905. }
  906. if(map.get("iID1")!=null){
  907. iID1=map.get("iID1").toString();
  908. }
  909. if(map.get("iID2")!=null){
  910. iID2=map.get("iID2").toString();
  911. }
  912. if(map.get("iID3")!=null){
  913. iID3=map.get("iID3").toString();
  914. }
  915. List<String> list = new ArrayList<String>();
  916. list = baseDao.callProcedureWithOut("CS_SETIMEIINFO", new Object[]{
  917. String.valueOf(iSN),
  918. String.valueOf(iIMEI1),
  919. String.valueOf(iIMEI2),
  920. String.valueOf(iIMEI3),
  921. String.valueOf(iMEID),
  922. String.valueOf(iNET),
  923. String.valueOf(""),
  924. String.valueOf(iID1),
  925. String.valueOf(iID2),
  926. String.valueOf(iID3),
  927. }, new Integer[]{1, 2, 3, 4, 5, 6,7,8,9,10}, new Integer[]{11});
  928. oErrMessage = list.get(0);
  929. rmap.put("oErrMessage",oErrMessage);
  930. return rmap;
  931. }
  932. private Map<Object,Object> SetTestDetail(JSONObject map){
  933. //实际业务数据
  934. Map<Object, Object> rmap = new HashMap<>();
  935. String oErrMessage=null;
  936. if(map.get("iSN")==null){
  937. oErrMessage = "SN不能为空";
  938. rmap.put("oErrMessage",oErrMessage);
  939. return rmap;
  940. }
  941. String iSN=map.get("iSN").toString();
  942. String iTestResult= "";
  943. String iResCode= "";
  944. String iClassName="";
  945. String iTestDetail= "";
  946. if(map.get("iTestResult")!=null){
  947. iTestResult=map.get("iTestResult").toString();
  948. }
  949. if(map.get("iClassName")!=null){
  950. iClassName=map.get("iClassName").toString();
  951. }
  952. if(map.get("iResCode")!=null){
  953. iResCode=map.get("iResCode").toString();
  954. }
  955. if(map.get("iTestDetail")!=null){
  956. iTestDetail=map.get("iTestDetail").toString();
  957. }
  958. JSONObject map3=new JSONObject();
  959. map3.put("iSN",iSN);
  960. Map<Object, Object> map2=GetRcardMOInfo(map3);
  961. String omakeCode = "";
  962. StringBuffer sql=new StringBuffer();
  963. String[] name=iClassName.split("\\|");
  964. String[] result=iTestResult.split("\\|");
  965. String[] value=iTestDetail.split("\\|");
  966. if(name.length!=value.length||name.length!=result.length){
  967. rmap.put("oErrMessage","测试项目名称和值的项次不一致");
  968. return rmap;
  969. }
  970. for (int i=0;i<name.length;i++){
  971. sql.setLength(0);
  972. sql.append("Insert into STEPTESTDETAIL (STD_ID,STD_CLASS,STD_SN,STD_MAKECODE,STD_ACTUALVALUE,STD_TESTRESULT,STD_INDATE,STD_RESCODE)");
  973. sql.append("values(STEPTESTDETAIL_SEQ.nextval,'"+name[i]+"','" + iSN + "','" + map2.get("oMoCode") + "','" + value[i] + "','" + result[i] + "',sysdate,'" + iResCode + "')");
  974. baseDao.execute(sql.toString());
  975. }
  976. rmap.put("oErrMessage",oErrMessage);
  977. return rmap;
  978. }
  979. private Map<Object,Object> SetPcbaData(JSONObject map){
  980. //实际业务数据
  981. Map<Object, Object> rmap = new HashMap<>();
  982. String oErrMessage = null;
  983. if(map.get("iSN")==null){
  984. oErrMessage = "SN不能为空";
  985. rmap.put("oErrMessage",oErrMessage);
  986. return rmap;
  987. }
  988. String iSN=map.get("iSN").toString();
  989. String iResCode = null;
  990. String iOperator = null;
  991. String iResult = null;
  992. String iErrCode = null;
  993. if(map.get("iResCode")!=null){
  994. iResCode=map.get("iResCode").toString();
  995. }
  996. if(map.get("iOperater")!=null){
  997. iOperator=map.get("iOperater").toString();
  998. }
  999. if(map.get("iResult")!=null){
  1000. iResult=map.get("iResult").toString();
  1001. }
  1002. if(map.get("iErrCode")!=null){
  1003. iErrCode=map.get("iErrCode").toString();
  1004. }
  1005. JSONObject map3=new JSONObject();
  1006. map3.put("iSN",iSN);
  1007. Map<Object, Object> map2=GetRcardMOInfo(map3);
  1008. String oMoCode=null;
  1009. if(map2.get("oMoCode")!=null){
  1010. oMoCode=map2.get("oMoCode").toString();
  1011. }
  1012. if (map2.get("oErrMessage")==null)
  1013. return SetStepFinish(oMoCode, iResCode, iSN, "", iResult, iOperator, iErrCode);
  1014. return rmap;
  1015. }
  1016. private Object SetPcbaData(String iSN,String iResCode,String iOperator,String iResult){
  1017. //实际业务数据
  1018. Map<Object, Object> rmap = new HashMap<>();
  1019. String iErrCode = null;
  1020. if(iSN==null){
  1021. iErrCode = "SN不能为空";
  1022. return iErrCode;
  1023. }
  1024. JSONObject map3=new JSONObject();
  1025. map3.put("iSN",iSN);
  1026. Map<Object, Object> map2=GetRcardMOInfo(map3);
  1027. String oMoCode=null;
  1028. if(map2.get("oMoCode")!=null){
  1029. oMoCode=map2.get("oMoCode").toString();
  1030. }
  1031. if (map2.get("oErrMessage")==null)
  1032. map2= SetStepFinish(oMoCode, iResCode, iSN, "", iResult, iResCode, iErrCode);
  1033. return map2.get("oErrMessage");
  1034. }
  1035. /// <summary>
  1036. /// 获取步骤代码
  1037. /// </summary>
  1038. /// <param name="Source"></param>
  1039. /// <returns></returns>
  1040. private String GetStepCodeBySource(String Source)
  1041. {
  1042. Object o=baseDao.getFieldDataByCondition("source", "sc_stepcode", "sc_code='" + Source + "'");
  1043. if(o!=null)
  1044. return o.toString();
  1045. else
  1046. return "";
  1047. }
  1048. private Boolean CheckUserLogin(String iUserCode, String iPassWord)
  1049. {
  1050. SqlRowList rs =baseDao.queryForRowSet("select em_code from employee where em_code='"+iUserCode+"' and em_password =?",iPassWord);
  1051. if (rs.next())
  1052. return true;
  1053. else
  1054. {
  1055. return false;
  1056. }
  1057. }
  1058. private Map<Object,Object> GetMakeInfoBySN(JSONObject map)
  1059. {
  1060. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1061. String iSN=null;
  1062. String oErrMessage=null;
  1063. if(map.get("iSN")==null){
  1064. oErrMessage = "SN不能为空";
  1065. rmap.put("oErrMessage",oErrMessage);
  1066. return rmap;
  1067. }
  1068. iSN=map.get("iSN").toString();
  1069. 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 " +
  1070. "left join makeserial on ms_makecode=ma_code where ms_sncode='"+iSN+"'");
  1071. if(rs.next()){
  1072. rmap.put("oMaremark1",rs.getString("ma_remark1"));
  1073. rmap.put("oMaremark2",rs.getString("ma_remark2"));
  1074. rmap.put("oMaremark3",rs.getString("ma_remark3"));
  1075. rmap.put("oMaremark4",rs.getString("ma_remark4"));
  1076. rmap.put("oMaremark5",rs.getString("ma_remark5"));
  1077. rmap.put("oMaremark6",rs.getString("ma_remark6"));
  1078. rmap.put("oMaremark7",rs.getString("ma_remark7"));
  1079. rmap.put("oMaremark8",rs.getString("ma_remark8"));
  1080. rmap.put("oMaremark9",rs.getString("ma_remark9"));
  1081. rmap.put("oMaremark10",rs.getString("ma_remark10"));
  1082. rmap.put("oMaremark11",rs.getString("ma_remark11"));
  1083. rmap.put("oMaremark12",rs.getString("ma_remark12"));
  1084. rmap.put("oMaremark13",rs.getString("ma_remark13"));
  1085. rmap.put("oMaremark14",rs.getString("ma_remark14"));
  1086. rmap.put("oMaremark15",rs.getString("ma_remark15"));
  1087. rmap.put("oMaremark16",rs.getString("ma_remark16"));
  1088. return rmap;
  1089. }else{
  1090. oErrMessage = "SN未查询到关联信息";
  1091. rmap.put("oErrMessage",oErrMessage);
  1092. return rmap;
  1093. }
  1094. }
  1095. public Map<Object,Object> SetStepFinish(String iMakeCode, String iSourceCode, String iSN, String iMPKind, String iResult, String iUserCode, String iErrCode)
  1096. {
  1097. String oErrMessage = null;
  1098. Object StepCode = baseDao.getFieldDataByCondition("Makeserial", "ms_stepcode", "ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  1099. String CurrentStep = GetStepCodeBySource(iSourceCode);
  1100. Object BgCode = baseDao.getFieldDataByCondition("step", "nvl(st_badgroupcode,' ')", "st_code='" + CurrentStep + "'");
  1101. Map<Object, Object> rmap = new HashMap<>();
  1102. switch (iResult)
  1103. {
  1104. case "OK":
  1105. break;
  1106. case "NG":
  1107. if (iErrCode == "")
  1108. {
  1109. oErrMessage = "测试结果为NG时必须传递不良代码";
  1110. rmap.put("oErrMessage",oErrMessage);
  1111. return rmap;
  1112. }
  1113. else
  1114. {
  1115. baseDao.updateByCondition("makebad", "mb_status=-1", "mb_sncode='" + iSN + "' and mb_makecode='" + iMakeCode + "' and mb_stepcode='" + CurrentStep + "' and mb_status=0");
  1116. String[] BadCode = iErrCode.split(",");
  1117. StringBuffer sql=new StringBuffer();
  1118. for (int i = 0; i < BadCode.length; i++)
  1119. {
  1120. if(!baseDao.checkIf("badcode","bc_code='"+ BadCode[i]+"'")){
  1121. oErrMessage = "不良代码"+BadCode[i]+"不存在";
  1122. rmap.put("oErrMessage",oErrMessage);
  1123. return rmap;
  1124. }
  1125. int mb_id = baseDao.getSeqId("makebad_seq");
  1126. sql.setLength(0);
  1127. sql.append("insert into makebad(mb_id,mb_makecode,mb_mscode,mb_sncode,mb_inman,mb_indate,mb_stepcode");
  1128. sql.append(",mb_sourcecode,mb_badcode,mb_badtable,mb_bgcode,mb_soncode,mb_status) select '" + mb_id + "'");
  1129. sql.append(",ma_code,ms_code,ms_sncode,'" + iUserCode + "',sysdate,'" + CurrentStep + "','" + iSourceCode + "','" + BadCode[i] + "','',");
  1130. sql.append("'" + BgCode + "',sp_soncode,'0' from make left join makeSerial on ms_makecode=ma_code left join stepProduct on ");
  1131. sql.append("sp_mothercode=ma_prodcode and sp_stepcode=ms_nextstepcode where ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  1132. baseDao.execute(sql.toString());
  1133. }
  1134. //将不良的序列号的状态码设为3
  1135. baseDao.execute("update makeserial set ms_status='3' where ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  1136. }
  1137. break;
  1138. default:
  1139. oErrMessage = "测试结果必须为NG或者OK";
  1140. rmap.put("oErrMessage",oErrMessage);
  1141. return rmap;
  1142. }
  1143. //不良采集为良品是更新
  1144. if (StepCode!=null &&StepCode.toString().equals(CurrentStep) && iResult == "OK")
  1145. {
  1146. Object[] ob = baseDao.getFieldsDataByCondition("makeserial", "ms_status,ms_craftcode,ms_prodcode", "ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  1147. if (ob!=null)
  1148. {
  1149. String ms_status =ob[0].toString();
  1150. String ms_craftcode= ob[1].toString();
  1151. String ms_prodcode = ob[2].toString();
  1152. if (ms_status == "3")
  1153. {
  1154. 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();
  1155. baseDao.updateByCondition("makeserial", "ms_status=1,ms_nextstepcode='" + nextstepcode + "'", "ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  1156. baseDao.updateByCondition("makebad", "mb_status=-1", "mb_sncode='" + iSN + "' and mb_makecode='" + iMakeCode + "'");
  1157. }
  1158. }
  1159. }
  1160. return CS_SetFinish(iMakeCode, iSourceCode, iSN, iUserCode, iResult);
  1161. }
  1162. private Map<Object,Object> CS_SetFinish(String iMakeCode, String iSourceCode, String iSN, String iUserCode, String iResult)
  1163. {
  1164. Map<Object, Object> rmap = new HashMap<>();
  1165. String oErrMessage=null;
  1166. List<String> list = new ArrayList<String>();
  1167. list = baseDao.callProcedureWithOut("CS_SETSTEPRESULT", new Object[]{
  1168. String.valueOf(iMakeCode),
  1169. String.valueOf(iSourceCode),
  1170. String.valueOf(iSN),
  1171. String.valueOf(iUserCode),
  1172. String.valueOf(iResult),
  1173. }, new Integer[]{1, 2, 3, 4, 5}, new Integer[]{6});
  1174. oErrMessage = list.get(0);
  1175. rmap.put("oErrMessage",oErrMessage);
  1176. return rmap;
  1177. }
  1178. private String checkAccessKey(String accessKey,String requestId){
  1179. Object accessSecret_O = baseDao.getFieldDataByCondition("APIEMPLOYEE", "AE_SECRET", "AE_KEY='" + accessKey + "'");
  1180. Object AE_MASTER = baseDao.getFieldDataByCondition("APIEMPLOYEE", "AE_MASTER", "AE_KEY='" + accessKey + "'");
  1181. String accessSecret = accessSecret_O == null ? "" : accessSecret_O.toString();
  1182. // 检查KEY是否合理
  1183. if (StringUtils.isEmpty(accessKey) || StringUtils.isEmpty(accessSecret) || AE_MASTER== null || "".equals(AE_MASTER.toString())) {
  1184. ApiResult apiResult = new ApiResult(ErrorMessage.ACCESSKEY_ILLEGAL.getCode(),ErrorMessage.ACCESSKEY_ILLEGAL.getMessage(),requestId);
  1185. throw new ApiSystemException(apiResult);
  1186. }
  1187. return AE_MASTER.toString();
  1188. }
  1189. }