MESHelperServiceImpl.java 31 KB

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