MESHelperServiceImpl.java 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876
  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.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.beans.factory.annotation.Value;
  17. import org.springframework.stereotype.Service;
  18. import sun.awt.TimedWindowEvent;
  19. import java.sql.Timestamp;
  20. import java.util.ArrayList;
  21. import java.util.HashMap;
  22. import java.util.List;
  23. import java.util.Map;
  24. @Service
  25. public class MESHelperServiceImpl implements MESHelperService {
  26. @Autowired
  27. private BaseDao baseDao;
  28. @Value("${spring.datasource.username}")
  29. private String username;
  30. @Override
  31. public Map<Object,Object> DLLMain(String accessKey, String requestId, String data) {
  32. String AE_MASTER = checkAccessKey(accessKey, requestId);
  33. SpObserver.putSp(AE_MASTER);
  34. Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data);
  35. //解析map
  36. if(!StringUtil.hasText(map.get("type"))){
  37. throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_TYPENULL,requestId));
  38. }
  39. if(!StringUtil.hasText(map.get("detail"))){
  40. throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_DATAILLEGAL,requestId));
  41. }
  42. String type = map.get("type").toString();
  43. JSONObject json = JSONObject.fromObject(map.get("detail"));
  44. HelperType helperType = HelperType.getTypeByCode(type);
  45. if(null == helperType){
  46. throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_TYPEILLEGAL,requestId));
  47. }
  48. int err = 0;
  49. //返回值
  50. Map<Object, Object> remap = new HashMap<Object, Object>();
  51. switch(helperType){
  52. case CheckRoutePassed:
  53. remap = CheckRoutePassed(json);
  54. break;
  55. case CheckUserAndResourcePassed:
  56. remap = CheckUserAndResourcePassed(json);
  57. break;
  58. case GetAddressRangeByMO:
  59. remap = GetAddressRangeByMO(json);
  60. break;
  61. case GetMEIOrNetCodeRange:
  62. remap = GetMEIOrNetCodeRange(json);
  63. break;
  64. case GetRcardMOInfo:
  65. remap = GetRcardMOInfo(json);
  66. break;
  67. case GetMobileAllInfo:
  68. remap = GetMobileAllInfo(json);
  69. break;
  70. case SetAddressInfo:
  71. remap = SetAddressInfo(json);
  72. break;
  73. case GetMaster:
  74. remap = GetMaster(json);
  75. break;
  76. case SetMobileData:
  77. remap = SetMobileData(json);
  78. break;
  79. case SetIMEIInfo:
  80. remap = SetIMEIInfo(json);
  81. break;
  82. case SetTestDetail:
  83. remap = SetTestDetail(json);
  84. break;
  85. case SetPcbaData:
  86. remap = SetPcbaData(json);
  87. break;
  88. case GetInfoByMaterial:
  89. remap = GetInfoByMaterial(json);
  90. break;
  91. case GoMo:
  92. remap = GoMo(json);
  93. break;
  94. default:
  95. err = -1;
  96. break;
  97. }
  98. if(err == -1){
  99. throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_TYPEILLEGAL,requestId));
  100. }
  101. SpObserver.putSp(username);
  102. return remap;
  103. }
  104. private Map<Object,Object> GoMo(JSONObject map){
  105. Map<Object, Object> rmap = new HashMap<Object, Object>();
  106. String iSN=null;
  107. String iResCode=null;
  108. String iMo=null;
  109. String oErrMessage=null;
  110. if(map.get("iMo")==null){
  111. oErrMessage = "工单号不能为空";
  112. rmap.put("oErrMessage",oErrMessage);
  113. return rmap;
  114. }
  115. if(map.get("iResCode")==null){
  116. oErrMessage = "岗位资源不能为空";
  117. rmap.put("oErrMessage",oErrMessage);
  118. return rmap;
  119. }
  120. if(map.get("iSN")==null){
  121. oErrMessage = "SN不能为空";
  122. rmap.put("oErrMessage",oErrMessage);
  123. return rmap;
  124. }
  125. iSN=map.get("iSN").toString();
  126. iResCode=map.get("iResCode").toString();
  127. iMo=map.get("iMo").toString();
  128. List<String> list = new ArrayList<String>();
  129. list = baseDao.callProcedureWithOut("CS_CHECKSTEPSNANDMACODE", new Object[]{
  130. String.valueOf(iMo),
  131. String.valueOf(iResCode),
  132. String.valueOf(iSN),
  133. String.valueOf("")
  134. }, new Integer[]{1, 2, 3, 4}, new Integer[]{5, 6, 7});
  135. oErrMessage=list.get(2);
  136. 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<>' '))");
  137. String ms_status = "";
  138. String ms_stepcode = "";
  139. String ms_nextstepcode = "";
  140. if(rs.next()){
  141. ms_status= rs.getString("ms_status");
  142. ms_stepcode=rs.getString("ms_stepcode");
  143. ms_nextstepcode=rs.getString("ms_nextstepcode");
  144. }
  145. String stepcode = GetStepCodeBySource(iResCode);
  146. if ( oErrMessage == null || (ms_status == "3" && ms_stepcode == stepcode))
  147. {
  148. if (ms_status == "3")
  149. {
  150. oErrMessage = null;
  151. }
  152. }
  153. rmap.put("oErrMessage",oErrMessage);
  154. return rmap;
  155. }
  156. private Map<Object,Object> GetInfoByMaterial(JSONObject map){
  157. Map<Object, Object> rmap = new HashMap<Object, Object>();
  158. String iPCBA=null;
  159. String oErrMessage=null;
  160. if(map.get("iPCBA")==null){
  161. oErrMessage = "主板SN不能为空";
  162. rmap.put("oErrMessage",oErrMessage);
  163. return rmap;
  164. }
  165. iPCBA=map.get("iPCBA").toString();
  166. SqlRowList rs=baseDao.queryForRowSet("select ms_firstsn,ms_sncode,ma_bios,ma_ec,ma_hardware from CRAFTMATERIAL left join make on cm_makecode=ma_code " +
  167. "left join makeserial on ms_firstsn=cm_firstsn and cm_makecode=ms_makecode where cm_barcode='"+iPCBA+"'");
  168. if(rs.next()){
  169. rmap.put("oSN",rs.getString("ms_sncode"));
  170. rmap.put("oBIOS",rs.getString("ma_bios"));
  171. rmap.put("oEC",rs.getString("ma_ec"));
  172. rmap.put("oHardWare",rs.getString("ma_hardware"));
  173. }else{
  174. oErrMessage = "主板SN未查询到关联信息";
  175. rmap.put("oErrMessage",oErrMessage);
  176. return rmap;
  177. }
  178. return rmap;
  179. }
  180. private Map<Object,Object> CheckRoutePassed(JSONObject map){
  181. //实际业务数据
  182. Map<Object, Object> rmap = new HashMap<>();
  183. String iSN=map.get("iSN").toString();
  184. String iResCode=map.get("iResCode").toString();
  185. String oErrMessage="";
  186. if (iSN ==null)
  187. {
  188. oErrMessage = "SN不能为空";
  189. }
  190. List<String> list = new ArrayList<String>();
  191. list = baseDao.callProcedureWithOut("CS_CHECKSTEPSNANDMACODE", new Object[]{
  192. String.valueOf(""),
  193. String.valueOf(iResCode),
  194. String.valueOf(iSN),
  195. String.valueOf("")
  196. }, new Integer[]{1, 2, 3, 4}, new Integer[]{5, 6, 7});
  197. oErrMessage=list.get(2);
  198. 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<>' '))");
  199. String ms_status = "";
  200. String ms_stepcode = "";
  201. String ms_nextstepcode = "";
  202. if(rs.next()){
  203. ms_status= rs.getString("ms_status");
  204. ms_stepcode=rs.getString("ms_stepcode");
  205. ms_nextstepcode=rs.getString("ms_nextstepcode");
  206. }
  207. String stepcode = GetStepCodeBySource(iResCode);
  208. if (ms_nextstepcode != "" && !ms_nextstepcode.equals(stepcode))
  209. {
  210. oErrMessage = "当前序列号下一工序" + ms_nextstepcode;
  211. }
  212. rmap.put("oErrMessage",oErrMessage);
  213. return rmap;
  214. }
  215. private Map<Object,Object> CheckUserAndResourcePassed(JSONObject map){
  216. //实际业务数据
  217. Map<Object, Object> rmap = new HashMap<>();
  218. String oErrMessage = null;
  219. if (map.get("iUserCode") == null || map.get("iResCode") == null || map.get("iPassWord") == null)
  220. {
  221. oErrMessage = "用户名,密码,岗位资源必须填写";
  222. rmap.put("oErrMessage",oErrMessage);
  223. return rmap;
  224. }
  225. String iUserCode=map.get("iUserCode").toString();
  226. String iPassWord=map.get("iPassWord").toString();
  227. String iResCode=map.get("iResCode").toString();
  228. if (CheckUserLogin(iUserCode, iPassWord))
  229. {
  230. String SQL = "select em_code,em_type,em_name from employee where em_code=? ";
  231. SqlRowList rs = baseDao.queryForRowSet(SQL, iUserCode);
  232. if (rs.next())
  233. {
  234. String em_name = rs.getString("em_name");
  235. String em_type = rs.getString("em_type");
  236. if (iResCode ==null)
  237. {
  238. oErrMessage = "岗位资源不允许为空";
  239. rmap.put("oErrMessage",oErrMessage);
  240. return rmap;
  241. }
  242. if (em_type.equals("admin"))
  243. {
  244. if (!baseDao.checkIf("Source", "sc_code='" + iResCode + "' and sc_statuscode='AUDITED'"))
  245. {
  246. oErrMessage = "岗位资源编号错误或者未审核!";
  247. }
  248. }
  249. else
  250. {
  251. 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'");
  252. //如果存在该编号
  253. if (rs1.next())
  254. {
  255. //判断如果多个岗位资源存在,用户输入的只要在其中就行
  256. while (rs.next())
  257. {
  258. if (!rs.getString("ur_resourcecode").equals("iResCode")){
  259. oErrMessage = "用户不处于当前资源所属分组!";
  260. }else
  261. {
  262. oErrMessage=null;
  263. continue;
  264. }
  265. }
  266. }
  267. else
  268. oErrMessage = "岗位资源编号错误或者未审核!";
  269. }
  270. }
  271. else
  272. oErrMessage = "用户不存在!";
  273. }else{
  274. oErrMessage = "用户名密码不正确!";
  275. }
  276. rmap.put("oErrMessage",oErrMessage);
  277. return rmap;
  278. }
  279. private Map<Object,Object> GetAddressRangeByMO(JSONObject map){
  280. //实际业务数据
  281. Map<Object, Object> rmap = new HashMap<>();
  282. String iSN="";
  283. String oErrMessage = null;
  284. String oWIFI = "";
  285. String oBT = "";
  286. String oCode1 = "";
  287. String oCode2 = "";
  288. String oCode3 = "";
  289. if(map.get("iSN")==null){
  290. oErrMessage = "SN不能为空";
  291. rmap.put("oErrMessage",oErrMessage);
  292. return rmap;
  293. }
  294. iSN=map.get("iSN").toString();
  295. //判断工单是否归属
  296. JSONObject map3=new JSONObject();
  297. map3.put("iSN",iSN);
  298. Map<Object, Object> map2=GetRcardMOInfo(map3);
  299. if(map2.get("oErrMessage")!=null){
  300. oErrMessage=map2.get("oErrMessage").toString();
  301. rmap.put("oErrMessage",oErrMessage);
  302. return rmap;
  303. }
  304. List<String> list = new ArrayList<String>();
  305. list = baseDao.callProcedureWithOut("CS_GETADDRESSBYMAKECODE", new Object[]{
  306. String.valueOf(iSN),
  307. String.valueOf(map2.get("oMoCode").toString()),
  308. }, new Integer[]{1,2}, new Integer[]{3,4,5,6,7,8});
  309. oWIFI = list.get(0);
  310. oBT = list.get(1);
  311. oCode1 = list.get(2);
  312. oCode2 = list.get(3);
  313. oCode3 = list.get(4);
  314. oErrMessage= list.get(5);
  315. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  316. rmap.put("oWIFI",oWIFI);
  317. rmap.put("oBT",oBT);
  318. rmap.put("oCode1",oCode1);
  319. rmap.put("oCode2",oCode2);
  320. rmap.put("oCode3",oCode3);
  321. }
  322. else
  323. rmap.put("oErrMessage",oErrMessage);
  324. return rmap;
  325. }
  326. private Map<Object,Object> GetMEIOrNetCodeRange(JSONObject map){
  327. //实际业务数据
  328. Map<Object, Object> rmap = new HashMap<>();
  329. String iSN="";
  330. String oErrMessage = null;
  331. String oIMEI1 = "";
  332. String oIMEI2 = "";
  333. String oMEID = "";
  334. String oNetCode = "";
  335. String oPSN = "";
  336. String oID1 = "";
  337. String oID2 = "";
  338. String oID3 = "";
  339. String oID4 = "";
  340. String oID5 = "";
  341. if(map.get("iSN")==null){
  342. oErrMessage = "SN不能为空";
  343. rmap.put("oErrMessage",oErrMessage);
  344. return rmap;
  345. }
  346. if(map.get("iIMEI1")!=null){
  347. oIMEI1=map.get("iIMEI1").toString();
  348. }
  349. if(map.get("iNetCode")!=null){
  350. oNetCode=map.get("iNetCode").toString();
  351. }
  352. iSN=map.get("iSN").toString();
  353. List<String> list = new ArrayList<String>();
  354. list = baseDao.callProcedureWithOut("CS_GETIMEIORNETCODERANGE", new Object[]{
  355. String.valueOf(iSN),
  356. String.valueOf(""),
  357. String.valueOf(oIMEI1),
  358. String.valueOf(oNetCode),
  359. }, new Integer[]{1,2,3,4}, new Integer[]{5,6,7,8,9,10,11,12,13,14});
  360. oIMEI1 = list.get(0);
  361. oIMEI2 = list.get(1);
  362. oMEID = list.get(2);
  363. oNetCode = list.get(3);
  364. oID1 = list.get(4);
  365. oID2 = list.get(5);
  366. oID3 = list.get(6);
  367. oID4 = list.get(7);
  368. oID5 = list.get(8);
  369. oErrMessage= list.get(9);
  370. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  371. rmap.put("oIMEI1",oIMEI1);
  372. rmap.put("oIMEI2",oIMEI2);
  373. rmap.put("oMEID",oMEID);
  374. rmap.put("oNetCode",oNetCode);
  375. rmap.put("oPSN",oPSN);
  376. rmap.put("oID1",oID1);
  377. rmap.put("oID2",oID2);
  378. rmap.put("oID3",oID3);
  379. rmap.put("oID4",oID4);
  380. rmap.put("oID5",oID5);
  381. }
  382. else
  383. rmap.put("oErrMessage",oErrMessage);
  384. return rmap;
  385. }
  386. private Map<Object,Object> GetRcardMOInfo(JSONObject map){
  387. //实际业务数据
  388. Map<Object, Object> rmap = new HashMap<>();
  389. //取MakeProcess表中的执行记录ID最大的一个工单的号码
  390. String oErrMessage = null;
  391. if(map.get("iSN")==null){
  392. oErrMessage = "SN不能为空";
  393. rmap.put("oErrMessage",oErrMessage);
  394. return rmap;
  395. }
  396. String iSN=map.get("iSN").toString();
  397. StringBuffer sql=new StringBuffer();
  398. sql.append("select max(ms_id)ms_id from makeserial where ms_sncode in (select '" + iSN + "' from dual union select sn from ");
  399. sql.append("makesnrelation where beforesn='" + iSN + "' and sn<>' ' union select beforesn from makesnrelation where sn='" + iSN + "' and beforesn<>' ')");
  400. SqlRowList rs = baseDao.queryForRowSet(sql.toString());
  401. String ms_id="";
  402. if(rs.next()){
  403. if(rs.getString("ms_id")==null){
  404. oErrMessage = "序列号:" + iSN + " 未归属工单";
  405. rmap.put("oErrMessage",oErrMessage);
  406. return rmap;
  407. }
  408. else{
  409. ms_id= rs.getString("ms_id");
  410. }
  411. }
  412. Object oMoCode = baseDao.getFieldDataByCondition("MakeSerial", "ms_makecode", "ms_id='" + ms_id + "'");
  413. if (oMoCode != null){
  414. rmap.put("oMoCode",oMoCode);
  415. oErrMessage= null;
  416. }
  417. else
  418. {
  419. oErrMessage = "序列号:" + iSN + " 未归属工单";
  420. }
  421. rmap.put("oErrMessage",oErrMessage);
  422. return rmap;
  423. }
  424. private Map<Object,Object> GetMobileAllInfo(JSONObject map){
  425. //实际业务数据
  426. Map<Object, Object> rmap = new HashMap<>();
  427. String iSN="";
  428. String oErrMessage = null;
  429. String oIMEI1 = "";
  430. String oIMEI2 = "";
  431. String oMEID = "";
  432. String oNetCode = "";
  433. String oPSN = "";
  434. String oID1 = "";
  435. String oID2 = "";
  436. String oID3 = "";
  437. String oID4 = "";
  438. String oID5 = "";
  439. String oWIFI = "";
  440. String oBT = "";
  441. String oCode1 = "";
  442. String oCode2 = "";
  443. String oCode3 = "";
  444. if(map.get("iSN")==null){
  445. oErrMessage = "SN不能为空";
  446. rmap.put("oErrMessage",oErrMessage);
  447. return rmap;
  448. }
  449. iSN=map.get("iSN").toString();
  450. Object ms_id =baseDao.getFieldDataByCondition("makeserial", "max(ms_id)", "ms_sncode='" + iSN + "'");
  451. if(ms_id!=null)
  452. {
  453. 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());
  454. if(rs.next()){
  455. oWIFI = rs.getString("ms_mac");
  456. oBT = rs.getString("ms_bt");
  457. oPSN = rs.getString("ms_psn");
  458. oNetCode = rs.getString("ms_netcode");
  459. oMEID = rs.getString("ms_meid");
  460. oIMEI1 = rs.getString("ms_imei1");
  461. oIMEI2 = rs.getString("ms_imei2");
  462. oCode1 = rs.getString("ms_othcode1");
  463. oCode2 = rs.getString("ms_othcode2");
  464. oCode3 = rs.getString("ms_othcode3");
  465. oID1 = rs.getString("ms_othid3");
  466. oID2 = rs.getString("ms_othid3");
  467. oID3 = rs.getString("ms_othid3");
  468. }
  469. }else
  470. {
  471. oErrMessage = "序列号" + iSN + "不存在";
  472. rmap.put("oErrMessage",oErrMessage);
  473. return rmap;
  474. }
  475. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  476. rmap.put("oIMEI1",oIMEI1);
  477. rmap.put("oIMEI2",oIMEI2);
  478. rmap.put("oMEID",oMEID);
  479. rmap.put("oNetCode",oNetCode);
  480. rmap.put("oPSN",oPSN);
  481. rmap.put("oID1",oID1);
  482. rmap.put("oID2",oID2);
  483. rmap.put("oID3",oID3);
  484. rmap.put("oID4",oID4);
  485. rmap.put("oID5",oID5);
  486. rmap.put("oWIFI",oWIFI);
  487. rmap.put("oBT",oBT);
  488. rmap.put("oCode1",oCode1);
  489. rmap.put("oCode2",oCode2);
  490. rmap.put("oCode3",oCode3);
  491. }
  492. else
  493. rmap.put("oErrMessage",oErrMessage);
  494. return rmap;
  495. }
  496. private Map<Object,Object> SetAddressInfo(JSONObject map){
  497. //实际业务数据
  498. Map<Object, Object> rmap = new HashMap<>();
  499. String oErrMessage = null;
  500. if(map.get("iSN")==null){
  501. oErrMessage = "SN不能为空";
  502. rmap.put("oErrMessage",oErrMessage);
  503. return rmap;
  504. }
  505. String iSN=map.get("iSN").toString();
  506. String iWIFI = null;
  507. String iBT = null;
  508. String iCode1 = null;
  509. String iCode2 = null;
  510. String iCode3 = null;
  511. if(map.get("iWIFI")!=null){
  512. iWIFI=map.get("iWIFI").toString();
  513. }
  514. if(map.get("iBT")!=null){
  515. iBT=map.get("iBT").toString();
  516. }
  517. if(map.get("iCode1")!=null){
  518. iCode1=map.get("iCode1").toString();
  519. }
  520. if(map.get("iCode2")!=null){
  521. iCode2=map.get("iCode2").toString();
  522. }
  523. if(map.get("iCode3")!=null){
  524. iCode3=map.get("iCode3").toString();
  525. }
  526. List<String> list = new ArrayList<String>();
  527. list = baseDao.callProcedureWithOut("CS_SETADDRESSINFO", new Object[]{
  528. String.valueOf(iSN),
  529. String.valueOf(iWIFI),
  530. String.valueOf(iBT),
  531. String.valueOf(iCode1),
  532. String.valueOf(iCode2),
  533. String.valueOf(iCode3)
  534. }, new Integer[]{1, 2, 3, 4, 5, 6}, new Integer[]{7});
  535. oErrMessage = list.get(0);
  536. rmap.put("oErrMessage",oErrMessage);
  537. return rmap;
  538. }
  539. private Map<Object,Object> GetMaster(JSONObject map){
  540. //实际业务数据
  541. Map<Object, Object> rmap = new HashMap<>();
  542. SqlRowList rs=baseDao.queryForRowSet("select ma_user from mes.master");
  543. while(rs.next())
  544. {
  545. rmap.put(rs.getString("ma_user"),rs.getString("ma_user"));
  546. }
  547. return rmap;
  548. }
  549. private Map<Object,Object> SetMobileData(JSONObject map){
  550. //实际业务数据
  551. Map<Object, Object> rmap = new HashMap<>();
  552. String oErrMessage = null;
  553. if(map.get("iSN")==null||map.get("iTSN")==null){
  554. oErrMessage = "SN不能为空";
  555. rmap.put("oErrMessage",oErrMessage);
  556. return rmap;
  557. }
  558. String iSN=map.get("iSN").toString();
  559. String iTSN=map.get("iTSN").toString();
  560. String iSourceCode = null;
  561. String iOperater = null;
  562. String iResult = null;
  563. String flag = null;
  564. String iErrCode = null;
  565. if(map.get("iSourceCode")!=null){
  566. iSourceCode=map.get("iSourceCode").toString();
  567. }
  568. if(map.get("iOperater")!=null){
  569. iOperater=map.get("iOperater").toString();
  570. }
  571. if(map.get("iResult")!=null){
  572. iResult=map.get("iResult").toString();
  573. }
  574. if(map.get("flag")!=null){
  575. flag=map.get("flag").toString();
  576. }
  577. if(map.get("iErrCode")!=null){
  578. iErrCode=map.get("iErrCode").toString();
  579. }
  580. List<String> list = new ArrayList<String>();
  581. list = baseDao.callProcedureWithOut("CS_DLLSNCHANGE", new Object[]{
  582. String.valueOf(iTSN),
  583. String.valueOf(iSN),
  584. String.valueOf(iSourceCode),
  585. String.valueOf(iOperater),
  586. String.valueOf(iResult),
  587. String.valueOf(iErrCode),
  588. }, new Integer[]{1, 2, 3, 4, 5, 6}, new Integer[]{7});
  589. oErrMessage = list.get(0);
  590. rmap.put("oErrMessage",oErrMessage);
  591. return rmap;
  592. }
  593. private Map<Object,Object> SetIMEIInfo(JSONObject map){
  594. //实际业务数据
  595. Map<Object, Object> rmap = new HashMap<>();
  596. String oErrMessage = null;
  597. if(map.get("iSN")==null){
  598. oErrMessage = "SN不能为空";
  599. rmap.put("oErrMessage",oErrMessage);
  600. return rmap;
  601. }
  602. String iSN=map.get("iSN").toString();
  603. String iIMEI1=null;
  604. String iIMEI2 = null;
  605. String iIMEI3 = null;
  606. String iMEID = null;
  607. String iNET = null;
  608. String iID1 = null;
  609. String iID2 = null;
  610. String iID3 = null;
  611. if(map.get("iIMEI1")!=null){
  612. iIMEI1=map.get("iIMEI1").toString();
  613. }
  614. if(map.get("iIMEI2")!=null){
  615. iIMEI2=map.get("iIMEI2").toString();
  616. }
  617. if(map.get("iIMEI3")!=null){
  618. iIMEI3=map.get("iIMEI3").toString();
  619. }
  620. if(map.get("iMEID")!=null){
  621. iMEID=map.get("iMEID").toString();
  622. }
  623. if(map.get("iNET")!=null){
  624. iNET=map.get("iNET").toString();
  625. }
  626. if(map.get("iID1")!=null){
  627. iID1=map.get("iID1").toString();
  628. }
  629. if(map.get("iID2")!=null){
  630. iID2=map.get("iID2").toString();
  631. }
  632. if(map.get("iID3")!=null){
  633. iID3=map.get("iID3").toString();
  634. }
  635. List<String> list = new ArrayList<String>();
  636. list = baseDao.callProcedureWithOut("CS_SETIMEIINFO", new Object[]{
  637. String.valueOf(iSN),
  638. String.valueOf(iIMEI1),
  639. String.valueOf(iIMEI2),
  640. String.valueOf(iIMEI3),
  641. String.valueOf(iMEID),
  642. String.valueOf(iNET),
  643. String.valueOf(""),
  644. String.valueOf(iID1),
  645. String.valueOf(iID2),
  646. String.valueOf(iID3),
  647. }, new Integer[]{1, 2, 3, 4, 5, 6,7,8,9,10}, new Integer[]{11});
  648. oErrMessage = list.get(0);
  649. rmap.put("oErrMessage",oErrMessage);
  650. return rmap;
  651. }
  652. private Map<Object,Object> SetTestDetail(JSONObject map){
  653. //实际业务数据
  654. Map<Object, Object> rmap = new HashMap<>();
  655. String oErrMessage=null;
  656. if(map.get("iSN")==null){
  657. oErrMessage = "SN不能为空";
  658. rmap.put("oErrMessage",oErrMessage);
  659. return rmap;
  660. }
  661. String iSN=map.get("iSN").toString();
  662. String iTestResult= "";
  663. String iResCode= "";
  664. String iClassName="";
  665. String iTestDetail= "";
  666. if(map.get("iTestResult")!=null){
  667. iTestResult=map.get("iTestResult").toString();
  668. }
  669. if(map.get("iClassName")!=null){
  670. iClassName=map.get("iClassName").toString();
  671. }
  672. if(map.get("iResCode")!=null){
  673. iResCode=map.get("iResCode").toString();
  674. }
  675. if(map.get("iTestDetail")!=null){
  676. iTestDetail=map.get("iTestDetail").toString();
  677. }
  678. JSONObject map3=new JSONObject();
  679. map3.put("iSN",iSN);
  680. Map<Object, Object> map2=GetRcardMOInfo(map3);
  681. String omakeCode = "";
  682. StringBuffer sql=new StringBuffer();
  683. String[] name=iClassName.split("\\|");
  684. String[] result=iTestResult.split("\\|");
  685. String[] value=iTestDetail.split("\\|");
  686. if(name.length!=value.length||name.length!=result.length){
  687. rmap.put("oErrMessage","测试项目名称和值的项次不一致");
  688. return rmap;
  689. }
  690. for (int i=0;i<name.length;i++){
  691. sql.setLength(0);
  692. sql.append("Insert into STEPTESTDETAIL (STD_ID,STD_CLASS,STD_SN,STD_MAKECODE,STD_ACTUALVALUE,STD_TESTRESULT,STD_INDATE,STD_RESCODE)");
  693. sql.append("values(STEPTESTDETAIL_SEQ.nextval,'"+name[i]+"','" + iSN + "','" + map2.get("oMoCode") + "','" + value[i] + "','" + result[i] + "',sysdate,'" + iResCode + "')");
  694. baseDao.execute(sql.toString());
  695. }
  696. rmap.put("oErrMessage",oErrMessage);
  697. return rmap;
  698. }
  699. private Map<Object,Object> SetPcbaData(JSONObject map){
  700. //实际业务数据
  701. Map<Object, Object> rmap = new HashMap<>();
  702. String oErrMessage = null;
  703. if(map.get("iSN")==null){
  704. oErrMessage = "SN不能为空";
  705. rmap.put("oErrMessage",oErrMessage);
  706. return rmap;
  707. }
  708. String iSN=map.get("iSN").toString();
  709. String iResCode = null;
  710. String iOperator = null;
  711. String iResult = null;
  712. String iErrCode = null;
  713. if(map.get("iResCode")!=null){
  714. iResCode=map.get("iResCode").toString();
  715. }
  716. if(map.get("iOperater")!=null){
  717. iOperator=map.get("iOperater").toString();
  718. }
  719. if(map.get("iResult")!=null){
  720. iResult=map.get("iResult").toString();
  721. }
  722. if(map.get("iErrCode")!=null){
  723. iErrCode=map.get("iErrCode").toString();
  724. }
  725. JSONObject map3=new JSONObject();
  726. map3.put("iSN",iSN);
  727. Map<Object, Object> map2=GetRcardMOInfo(map3);
  728. String oMoCode=null;
  729. if(map2.get("oMoCode")!=null){
  730. oMoCode=map2.get("oMoCode").toString();
  731. }
  732. if (map2.get("oErrMessage")==null)
  733. return SetStepFinish(oMoCode, iResCode, iSN, "", iResult, iOperator, iErrCode);
  734. return rmap;
  735. }
  736. /// <summary>
  737. /// 获取步骤代码
  738. /// </summary>
  739. /// <param name="Source"></param>
  740. /// <returns></returns>
  741. private String GetStepCodeBySource(String Source)
  742. {
  743. Object o=baseDao.getFieldDataByCondition("source", "sc_stepcode", "sc_code='" + Source + "'");
  744. if(o!=null)
  745. return o.toString();
  746. else
  747. return "";
  748. }
  749. private Boolean CheckUserLogin(String iUserCode, String iPassWord)
  750. {
  751. SqlRowList rs =baseDao.queryForRowSet("select em_code from employee where em_code='"+iUserCode+"' and em_password =?",iPassWord);
  752. if (rs.next())
  753. return true;
  754. else
  755. {
  756. return false;
  757. }
  758. }
  759. public Map<Object,Object> SetStepFinish(String iMakeCode, String iSourceCode, String iSN, String iMPKind, String iResult, String iUserCode, String iErrCode)
  760. {
  761. String oErrMessage = null;
  762. Object StepCode = baseDao.getFieldDataByCondition("Makeserial", "ms_stepcode", "ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  763. String CurrentStep = GetStepCodeBySource(iSourceCode);
  764. Object BgCode = baseDao.getFieldDataByCondition("step", "st_badgroupcode", "st_code='" + CurrentStep + "'");
  765. Map<Object, Object> rmap = new HashMap<>();
  766. switch (iResult)
  767. {
  768. case "OK":
  769. break;
  770. case "NG":
  771. if (iErrCode == "")
  772. {
  773. oErrMessage = "测试结果为NG时必须传递不良代码";
  774. rmap.put("oErrMessage",oErrMessage);
  775. return rmap;
  776. }
  777. else
  778. {
  779. baseDao.updateByCondition("makebad", "mb_status=-1", "mb_sncode='" + iSN + "' and mb_makecode='" + iMakeCode + "' and mb_stepcode='" + CurrentStep + "' and mb_status=0");
  780. String[] BadCode = iErrCode.split("\\|");
  781. StringBuffer sql=new StringBuffer();
  782. for (int i = 0; i < BadCode.length; i++)
  783. {
  784. int mb_id = baseDao.getSeqId("makebad_seq");
  785. sql.setLength(0);
  786. sql.append("insert into makebad(mb_id,mb_makecode,mb_mscode,mb_sncode,mb_inman,mb_indate,mb_stepcode");
  787. sql.append(",mb_sourcecode,mb_badcode,mb_badtable,mb_bgcode,mb_soncode,mb_status) select '" + mb_id + "'");
  788. sql.append(",ma_code,ms_code,ms_sncode,'" + iUserCode + "',sysdate,'" + CurrentStep + "','" + iSourceCode + "','" + BadCode[i] + "','',");
  789. sql.append("'" + BgCode + "',sp_soncode,'0' from make left join makeSerial on ms_makecode=ma_code left join stepProduct on ");
  790. sql.append("sp_mothercode=ma_prodcode and sp_stepcode=ms_nextstepcode where ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  791. baseDao.execute(sql.toString());
  792. }
  793. //将不良的序列号的状态码设为3
  794. baseDao.execute("update makeserial set ms_status='3' where ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  795. }
  796. break;
  797. default:
  798. oErrMessage = "测试结果必须为NG或者OK";
  799. rmap.put("oErrMessage",oErrMessage);
  800. return rmap;
  801. }
  802. //不良采集为良品是更新
  803. if (StepCode!=null &&StepCode.toString().equals(CurrentStep) && iResult == "OK")
  804. {
  805. Object[] ob = baseDao.getFieldsDataByCondition("makeserial", "ms_status,ms_craftcode,ms_prodcode", "ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  806. if (ob!=null)
  807. {
  808. String ms_status =ob[0].toString();
  809. String ms_craftcode= ob[1].toString();
  810. String ms_prodcode = ob[2].toString();
  811. if (ms_status == "3")
  812. {
  813. 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();
  814. baseDao.updateByCondition("makeserial", "ms_status=1,ms_nextstepcode='" + nextstepcode + "'", "ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  815. baseDao.updateByCondition("makebad", "mb_status=-1", "mb_sncode='" + iSN + "' and mb_makecode='" + iMakeCode + "'");
  816. }
  817. }
  818. }
  819. return CS_SetFinish(iMakeCode, iSourceCode, iSN, iUserCode, iResult);
  820. }
  821. private Map<Object,Object> CS_SetFinish(String iMakeCode, String iSourceCode, String iSN, String iUserCode, String iResult)
  822. {
  823. Map<Object, Object> rmap = new HashMap<>();
  824. String oErrMessage=null;
  825. List<String> list = new ArrayList<String>();
  826. list = baseDao.callProcedureWithOut("CS_SETSTEPRESULT", new Object[]{
  827. String.valueOf(iMakeCode),
  828. String.valueOf(iSourceCode),
  829. String.valueOf(iSN),
  830. String.valueOf(iUserCode),
  831. String.valueOf(iResult),
  832. }, new Integer[]{1, 2, 3, 4, 5}, new Integer[]{6});
  833. oErrMessage = list.get(0);
  834. rmap.put("oErrMessage",oErrMessage);
  835. return rmap;
  836. }
  837. private String checkAccessKey(String accessKey,String requestId){
  838. Object accessSecret_O = baseDao.getFieldDataByCondition("APIEMPLOYEE", "AE_SECRET", "AE_KEY='" + accessKey + "'");
  839. Object AE_MASTER = baseDao.getFieldDataByCondition("APIEMPLOYEE", "AE_MASTER", "AE_KEY='" + accessKey + "'");
  840. String accessSecret = accessSecret_O == null ? "" : accessSecret_O.toString();
  841. // 检查KEY是否合理
  842. if (StringUtils.isEmpty(accessKey) || StringUtils.isEmpty(accessSecret) || AE_MASTER== null || "".equals(AE_MASTER.toString())) {
  843. ApiResult apiResult = new ApiResult(ErrorMessage.ACCESSKEY_ILLEGAL.getCode(),ErrorMessage.ACCESSKEY_ILLEGAL.getMessage(),requestId);
  844. throw new ApiSystemException(apiResult);
  845. }
  846. return AE_MASTER.toString();
  847. }
  848. }