MESHelperServiceImpl.java 106 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847
  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.JSONArray;
  13. import net.sf.json.JSONObject;
  14. import net.sf.json.JsonConfig;
  15. import org.apache.commons.lang.StringUtils;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.beans.factory.annotation.Value;
  18. import org.springframework.stereotype.Service;
  19. import sun.awt.TimedWindowEvent;
  20. import java.sql.Timestamp;
  21. import java.util.ArrayList;
  22. import java.util.HashMap;
  23. import java.util.List;
  24. import java.util.Map;
  25. @Service
  26. public class MESHelperServiceImpl implements MESHelperService {
  27. @Autowired
  28. private BaseDao baseDao;
  29. @Value("${spring.datasource.username}")
  30. private String username;
  31. String accessKey1="";
  32. @Override
  33. public Map<Object,Object> DLLMain(String accessKey, String requestId, String data) {
  34. String AE_MASTER = checkAccessKey(accessKey, requestId);
  35. accessKey1=accessKey;
  36. SpObserver.putSp(AE_MASTER);
  37. String Master=AE_MASTER;
  38. Map<Object, Object> map = BaseUtil.parseFormStoreToMap(data);
  39. //解析map
  40. if(!StringUtil.hasText(map.get("type"))){
  41. throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_TYPENULL,requestId));
  42. }
  43. if(!StringUtil.hasText(map.get("detail"))){
  44. throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_DATAILLEGAL,requestId));
  45. }
  46. String type = map.get("type").toString();
  47. JSONObject json = JSONObject.fromObject(map.get("detail"));
  48. HelperType helperType = HelperType.getTypeByCode(type);
  49. if(null == helperType){
  50. throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_TYPEILLEGAL,requestId));
  51. }
  52. baseDao.execute("insert into "+Master+".EISDATA(ed_id,ed_data,ed_indate)values("+Master+".EISDATA_seq.nextval,?,sysdate)",data);
  53. int err = 0;
  54. //返回值
  55. Map<Object, Object> remap = new HashMap<Object, Object>();
  56. switch(helperType){
  57. case CheckRoutePassed:
  58. remap = CheckRoutePassed(json,AE_MASTER);
  59. break;
  60. case GetMakeMaterial:
  61. remap = GetMakeMaterial(json,AE_MASTER);
  62. break;
  63. case CheckUserAndResourcePassed:
  64. remap = CheckUserAndResourcePassed(json,AE_MASTER);
  65. break;
  66. case GetAddressRangeByMO:
  67. remap = GetAddressRangeByMO(json,AE_MASTER);
  68. break;
  69. case GetMEIOrNetCodeRange:
  70. remap = GetMEIOrNetCodeRange(json,AE_MASTER);
  71. break;
  72. case GetMEIOrNetCodeRangeByPo:
  73. remap = GetMEIOrNetCodeRangeByPo(json,AE_MASTER);
  74. break;
  75. case GetMechRevoKey:
  76. remap = GetMechRevoKey(json,AE_MASTER);
  77. break;
  78. case GetReleaseKey:
  79. remap = GetReleaseKey(json,AE_MASTER);
  80. break;
  81. case GetRcardMOInfo:
  82. remap = GetRcardMOInfo(json,AE_MASTER);
  83. break;
  84. case GetMobileAllInfo:
  85. remap = GetMobileAllInfo(json,AE_MASTER);
  86. break;
  87. case SetAddressInfo:
  88. remap = SetAddressInfo(json,AE_MASTER);
  89. break;
  90. case GetMaster:
  91. remap = GetMaster(json,AE_MASTER);
  92. break;
  93. case SetMobileData:
  94. remap = SetMobileData(json,AE_MASTER);
  95. break;
  96. case SetIMEIInfo:
  97. remap = SetIMEIInfo(json,AE_MASTER);
  98. break;
  99. case SetTestDetail:
  100. remap = SetTestDetail(json,AE_MASTER);
  101. break;
  102. case Set_Soft_Hard_WareInfo:
  103. remap = Set_Soft_Hard_WareInfo(json,AE_MASTER);
  104. break;
  105. case SetPcbaData:
  106. remap = SetPcbaData(json,AE_MASTER);
  107. break;
  108. case GetEDISN:
  109. remap = GetEDISN(json,AE_MASTER);
  110. break;
  111. case GetInfoByMaterial:
  112. remap = GetInfoByMaterial(json,AE_MASTER);
  113. break;
  114. case GetPCBABySN:
  115. remap = GetPCBABySN(json,AE_MASTER);
  116. break;
  117. case GetLCDBySN:
  118. remap = GetLCDBySN(json,AE_MASTER);
  119. break;
  120. case GetBatteryBySN:
  121. remap = GetBatteryBySN(json,AE_MASTER);
  122. break;
  123. case GoMo:
  124. remap = GoMo(json,AE_MASTER);
  125. break;
  126. case GetMakeInfoBySN:
  127. remap = GetMakeInfoBySN(json,AE_MASTER);
  128. break;
  129. case GetMakeInfoByProd:
  130. remap = GetMakeInfoByProd(json,AE_MASTER);
  131. break;
  132. case GetProdInfo:
  133. remap = GetProdInfo(json,AE_MASTER);
  134. break;
  135. case GetPSN:
  136. remap = GetPSN(json,AE_MASTER);
  137. break;
  138. case GetMakeRelation:
  139. remap = GetMakeRelation(json,AE_MASTER);
  140. break;
  141. case GetFeeReason:
  142. remap = GetFeeReason(json,AE_MASTER);
  143. break;
  144. case GetMakeSN:
  145. remap = GetMakeSN(json,AE_MASTER);
  146. break;
  147. case SetFeeReason:
  148. remap = SetFeeReason(json,AE_MASTER);
  149. break;
  150. case WriteMakeInfo:
  151. remap = WriteMakeInfo(json,AE_MASTER);
  152. break;
  153. case GetMakeInfo:
  154. remap = GetMakeInfo(json,AE_MASTER);
  155. break;
  156. case ReSetSN:
  157. remap = ReSetSN(json,AE_MASTER);
  158. break;
  159. case SetHashValue:
  160. remap = SetHashValue(json,AE_MASTER);
  161. break;
  162. case SetCRBValue:
  163. remap = SetCRBValue(json,AE_MASTER);
  164. break;
  165. case CRBValueGet:
  166. remap = CRBValueGet(json,AE_MASTER);
  167. break;
  168. case CRBValueSet:
  169. remap = CRBValueSet(json,AE_MASTER);
  170. break;
  171. case GetHashValue:
  172. remap = GetHashValue(json,AE_MASTER);
  173. break;
  174. case GetCRBValue:
  175. remap = GetCRBValue(json,AE_MASTER);
  176. break;
  177. case GetTestValue:
  178. remap = GetTestValue(json,AE_MASTER);
  179. break;
  180. case SetTestValue:
  181. remap = SetTestValue(json,AE_MASTER);
  182. break;
  183. case GetTestRevoKey:
  184. remap = GetTestRevoKey(json,AE_MASTER);
  185. break;
  186. case GetAcerValue:
  187. remap = GetAcerValue(json,AE_MASTER);
  188. break;
  189. case SetAcerValue:
  190. remap = SetAcerValue(json,AE_MASTER);
  191. break;
  192. case GetMedionRevoKey:
  193. remap = GetMedionRevoKey(json,AE_MASTER);
  194. break;
  195. case GetMedionValue:
  196. remap = GetMedionValue(json,AE_MASTER);
  197. break;
  198. case WriteProdInfo:
  199. remap = WriteProdInfo(json,AE_MASTER);
  200. break;
  201. case SetMedionValue:
  202. remap = SetMedionValue(json,AE_MASTER);
  203. break;
  204. case GetAcerRevoKey:
  205. remap = GetAcerRevoKey(json,AE_MASTER);
  206. break;
  207. case Weigh:
  208. remap = Weigh(json,AE_MASTER);
  209. break;
  210. case WeighMidBox:
  211. remap = WeighMidBox(json,AE_MASTER);
  212. break;
  213. case WeighCarton:
  214. remap = WeighCarton(json,AE_MASTER);
  215. break;
  216. case CancelCollection:
  217. remap = CancelCollection(json,AE_MASTER);
  218. break;
  219. default:
  220. err = -1;
  221. break;
  222. }
  223. if(err == -1){
  224. throw new ApiSystemException(new ApiResult(ErrorMessage.BUSINESS_TYPEILLEGAL,requestId));
  225. }
  226. SpObserver.putSp(username);
  227. return remap;
  228. }
  229. @Override
  230. public JSONArray getFiles(String accessKey, String requestId, String id) {
  231. String AE_MASTER = checkAccessKey(accessKey, requestId);
  232. accessKey1=accessKey;
  233. SpObserver.putSp(AE_MASTER);
  234. String Master=AE_MASTER;
  235. JSONArray arr = new JSONArray();
  236. JSONObject obj = null;
  237. for (String i : id.split(";")) {
  238. if (i != null && !i.trim().equals("")) {
  239. SqlRowList rs = baseDao.queryForRowSet("SELECT * FROM "+Master+".FilePath WHERE fp_id=" + i);
  240. if(rs.next()){
  241. JSONObject o = new JSONObject();
  242. o.put("fp_id", i);
  243. o.put("fp_path", rs.getString("fp_path"));
  244. o.put("fp_size", rs.getInt("fp_size"));
  245. o.put("fp_name", rs.getString("fp_name"));
  246. o.put("fp_date", rs.getGeneralTimestamp("fp_date"));
  247. o.put("fp_man", rs.getString("fp_man"));
  248. arr.add(o);
  249. }
  250. }
  251. }
  252. return arr;
  253. }
  254. public Map<Object,Object> Weigh(JSONObject map,String Master) {
  255. Map<Object, Object> rmap = new HashMap<Object, Object>();
  256. String oErrMessage="";
  257. String iSN="";
  258. String iSource="";
  259. String weight="";
  260. String iUserCode="";
  261. if(map.get("iSN")==null){
  262. oErrMessage = "SN不能为空";
  263. rmap.put("oErrMessage",oErrMessage);
  264. return rmap;
  265. }
  266. if(map.get("iSource")==null){
  267. oErrMessage = "工序不能为空";
  268. rmap.put("oErrMessage",oErrMessage);
  269. return rmap;
  270. }
  271. if(map.get("iUserCode")==null){
  272. oErrMessage = "人员编号不能为空";
  273. rmap.put("oErrMessage",oErrMessage);
  274. return rmap;
  275. }
  276. if(map.get("weight")==null){
  277. oErrMessage = "重量不能为空";
  278. rmap.put("oErrMessage",oErrMessage);
  279. return rmap;
  280. }
  281. iSN=map.get("iSN").toString();
  282. iSource=map.get("iSource").toString();
  283. iUserCode=map.get("iUserCode").toString();
  284. weight=map.get("weight").toString().replaceAll("KG","");
  285. Object[] obj = baseDao.getFieldsDataByCondition(Master+".makeserial left join "+Master+".product on pr_code=ms_prodcode","pr_colorboxminw,pr_colorboxmaxw,ms_makecode","ms_id =(select max(ms_id) from "+Master+".makeserial where ms_sncode='"+iSN+"')");
  286. if(obj[0]!=null&&obj[1]!=null){
  287. //不在设置的重量范围内
  288. if(Double.parseDouble(weight)<Double.parseDouble(obj[0].toString())||Double.parseDouble(weight)>Double.parseDouble(obj[1].toString())){
  289. rmap.put("code",-1);
  290. rmap.put("message","SN["+iSN+"]重量为"+weight+",不符合重量范围"+obj[0]+"-"+obj[1]);
  291. Map<String, String> rmap1 = new HashMap<String, String>();
  292. rmap1.put("minWeight",obj[0].toString());
  293. rmap1.put("maxWeight",obj[1].toString());
  294. rmap1.put("machineModel","");
  295. rmap.put("dataInfo",rmap1);
  296. return rmap;
  297. }
  298. rmap.put("message","SN["+iSN+"]重量为"+weight+",符合重量范围"+obj[0]+"-"+obj[1]+",称重通过");
  299. Object ms_id=baseDao.getFieldDataByCondition(Master+".makeserial","max(ms_id)","ms_sncode='"+iSN+"'");
  300. baseDao.execute("update "+Master+".makeserial set ms_grossw ='"+weight+"' where ms_id="+ms_id);
  301. Map<String, String> rmap1 = new HashMap<String, String>();
  302. rmap1.put("minWeight",obj[0].toString());
  303. rmap1.put("maxWeight",obj[1].toString());
  304. rmap1.put("machineModel","");
  305. rmap.put("dataInfo",rmap1);
  306. //return SetStepFinish(obj[2].toString(), iSource, iSN, "", "OK", iUserCode, "",Master);
  307. return rmap;
  308. }else{
  309. oErrMessage = "未设置标准重量";
  310. rmap.put("oErrMessage",oErrMessage);
  311. return rmap;
  312. }
  313. }
  314. public Map<Object,Object> WeighMidBox(JSONObject map,String Master) {
  315. Map<Object, Object> rmap = new HashMap<Object, Object>();
  316. String oErrMessage="";
  317. String iSN="";
  318. String iSource="";
  319. String weight="";
  320. String iUserCode="";
  321. if(map.get("iSN")==null){
  322. oErrMessage = "SN不能为空";
  323. rmap.put("oErrMessage",oErrMessage);
  324. return rmap;
  325. }
  326. if(map.get("iSource")==null){
  327. oErrMessage = "工序不能为空";
  328. rmap.put("oErrMessage",oErrMessage);
  329. return rmap;
  330. }
  331. if(map.get("iUserCode")==null){
  332. oErrMessage = "人员编号不能为空";
  333. rmap.put("oErrMessage",oErrMessage);
  334. return rmap;
  335. }
  336. if(map.get("weight")==null){
  337. oErrMessage = "重量不能为空";
  338. rmap.put("oErrMessage",oErrMessage);
  339. return rmap;
  340. }
  341. iSN=map.get("iSN").toString();
  342. iSource=map.get("iSource").toString();
  343. iUserCode=map.get("iUserCode").toString();
  344. weight=map.get("weight").toString().replaceAll("KG","");
  345. Object[] obj = baseDao.getFieldsDataByCondition(Master+".makeserial left join "+Master+".product on pr_code=ms_prodcode","pr_midboxminweight,pr_midboxmaxweight,ms_makecode","ms_id =(select max(ms_id) from "+Master+".makeserial where ms_sncode='"+iSN+"')");
  346. if(obj[0]!=null&&obj[1]!=null){
  347. //不在设置的重量范围内
  348. if(Double.parseDouble(weight)<Double.parseDouble(obj[0].toString())||Double.parseDouble(weight)>Double.parseDouble(obj[1].toString())){
  349. rmap.put("code",-1);
  350. rmap.put("message","SN["+iSN+"]重量为"+weight+",不符合重量范围"+obj[0]+"-"+obj[1]);
  351. Map<String, String> rmap1 = new HashMap<String, String>();
  352. rmap1.put("minWeight",obj[0].toString());
  353. rmap1.put("maxWeight",obj[1].toString());
  354. rmap1.put("machineModel","");
  355. rmap.put("dataInfo",rmap1);
  356. return rmap;
  357. }
  358. rmap.put("message","SN["+iSN+"]重量为"+weight+",符合重量范围"+obj[0]+"-"+obj[1]+",称重通过");
  359. Object ms_id=baseDao.getFieldDataByCondition(Master+".makeserial","max(ms_id)","ms_sncode='"+iSN+"'");
  360. baseDao.execute("update "+Master+".makeserial set MS_MIDBOXWEIGHT ='"+weight+"' where ms_id="+ms_id);
  361. Map<String, String> rmap1 = new HashMap<String, String>();
  362. rmap1.put("minWeight",obj[0].toString());
  363. rmap1.put("maxWeight",obj[1].toString());
  364. rmap1.put("machineModel","");
  365. rmap.put("dataInfo",rmap1);
  366. return rmap;
  367. }else{
  368. oErrMessage = "未设置标准重量";
  369. rmap.put("oErrMessage",oErrMessage);
  370. return rmap;
  371. }
  372. }
  373. public Map<Object,Object> WeighCarton(JSONObject map,String Master) {
  374. Map<Object, Object> rmap = new HashMap<Object, Object>();
  375. String oErrMessage="";
  376. String iSN="";
  377. String iSource="";
  378. String weight="";
  379. String iUserCode="";
  380. if(map.get("iSN")==null){
  381. oErrMessage = "SN不能为空";
  382. rmap.put("oErrMessage",oErrMessage);
  383. return rmap;
  384. }
  385. if(map.get("iSource")==null){
  386. oErrMessage = "工序不能为空";
  387. rmap.put("oErrMessage",oErrMessage);
  388. return rmap;
  389. }
  390. if(map.get("iUserCode")==null){
  391. oErrMessage = "人员编号不能为空";
  392. rmap.put("oErrMessage",oErrMessage);
  393. return rmap;
  394. }
  395. if(map.get("weight")==null){
  396. oErrMessage = "重量不能为空";
  397. rmap.put("oErrMessage",oErrMessage);
  398. return rmap;
  399. }
  400. iSN=map.get("iSN").toString();
  401. iSource=map.get("iSource").toString();
  402. iUserCode=map.get("iUserCode").toString();
  403. weight=map.get("weight").toString().replaceAll("KG","");
  404. Object[] obj = baseDao.getFieldsDataByCondition(Master+".makeserial left join "+Master+".product on pr_code=ms_prodcode","pr_cartonminw,pr_cartonmaxw,ms_makecode","ms_id =(select max(ms_id) from "+Master+".makeserial where ms_sncode='"+iSN+"')");
  405. if(obj[0]!=null&&obj[1]!=null){
  406. //不在设置的重量范围内
  407. if(Double.parseDouble(weight)<Double.parseDouble(obj[0].toString())||Double.parseDouble(weight)>Double.parseDouble(obj[1].toString())){
  408. rmap.put("code",-1);
  409. rmap.put("message","卡通箱["+iSN+"]重量为"+weight+",不符合重量范围"+obj[0]+"-"+obj[1]);
  410. Map<String, String> rmap1 = new HashMap<String, String>();
  411. rmap1.put("minWeight",obj[0].toString());
  412. rmap1.put("maxWeight",obj[1].toString());
  413. rmap1.put("machineModel","");
  414. rmap.put("dataInfo",rmap1);
  415. return rmap;
  416. }
  417. rmap.put("message","卡通箱["+iSN+"]重量为"+weight+",符合重量范围"+obj[0]+"-"+obj[1]+",称重通过");
  418. // Object pa_id=baseDao.getFieldDataByCondition(Master+".package","max(pa_id)","pa_outboxcode='"+iSN+"'");
  419. // if(pa_id==null){
  420. // rmap.put("code",-1);
  421. // rmap.put("message","卡通箱["+iSN+"]不存在");
  422. // return rmap;
  423. // }
  424. // baseDao.execute("update "+Master+".package set PA_WEIGHT ='"+weight+"' where pa_outboxcode='"+iSN+"'");
  425. Map<String, String> rmap1 = new HashMap<String, String>();
  426. rmap1.put("minWeight",obj[0].toString());
  427. rmap1.put("maxWeight",obj[1].toString());
  428. rmap1.put("machineModel","");
  429. rmap.put("dataInfo",rmap1);
  430. return rmap;
  431. }else{
  432. oErrMessage = "未设置标准重量";
  433. rmap.put("oErrMessage",oErrMessage);
  434. return rmap;
  435. }
  436. }
  437. private Object SetPcbaData(String iSN,String iResCode,String iOperator,String iResult,String Master){
  438. //实际业务数据
  439. Map<Object, Object> rmap = new HashMap<>();
  440. String iErrCode = null;
  441. if(iSN==null){
  442. iErrCode = "SN不能为空";
  443. return iErrCode;
  444. }
  445. JSONObject map3=new JSONObject();
  446. map3.put("iSN",iSN);
  447. Map<Object, Object> map2=GetRcardMOInfo(map3,Master);
  448. String oMoCode=null;
  449. if(map2.get("oMoCode")!=null){
  450. oMoCode=map2.get("oMoCode").toString();
  451. }
  452. if (map2.get("oErrMessage")==null)
  453. map2= SetStepFinish(oMoCode, iResCode, iSN, "", iResult, iResCode, iErrCode,Master);
  454. return map2.get("oErrMessage");
  455. }
  456. private Map<Object,Object> GetHashValue(JSONObject map,String Master){
  457. Map<Object, Object> rmap = new HashMap<Object, Object>();
  458. String oErrMessage="";
  459. if(map.get("iSN")==null){
  460. oErrMessage = "SN不能为空";
  461. rmap.put("oErrMessage",oErrMessage);
  462. return rmap;
  463. }
  464. String iSN=map.get("iSN").toString();
  465. SqlRowList rs=baseDao.queryForRowSet("select MC_HASHVALUE from makecbr where MC_SNCODE='"+iSN+"'");
  466. if(rs.next()){
  467. rmap.put("oHashValue",rs.getString("MC_HASHVALUE"));
  468. }else{
  469. rmap.put("oHashValue","");
  470. }
  471. return rmap;
  472. }
  473. private Map<Object,Object> GetCRBValue(JSONObject map,String Master){
  474. Map<Object, Object> rmap = new HashMap<Object, Object>();
  475. String oErrMessage="";
  476. if(map.get("iSN")==null){
  477. oErrMessage = "SN不能为空";
  478. rmap.put("oErrMessage",oErrMessage);
  479. return rmap;
  480. }
  481. String iSN=map.get("iSN").toString();
  482. SqlRowList rs=baseDao.queryForRowSet("select MC_HASHVALUE from MECHREVO_CBR where MC_SNCODE='"+iSN+"'");
  483. if(rs.next()){
  484. rmap.put("oCRBValue",rs.getString("MC_HASHVALUE"));
  485. }else{
  486. rmap.put("oCRBValue","");
  487. }
  488. return rmap;
  489. }
  490. private Map<Object,Object> GetTestValue(JSONObject map,String Master){
  491. Map<Object, Object> rmap = new HashMap<Object, Object>();
  492. String oErrMessage="";
  493. if(map.get("iSN")==null){
  494. oErrMessage = "SN不能为空";
  495. rmap.put("oErrMessage",oErrMessage);
  496. return rmap;
  497. }
  498. String iSN=map.get("iSN").toString();
  499. SqlRowList rs=baseDao.queryForRowSet("select MC_HASHVALUE from test_CBR where MC_SNCODE='"+iSN+"'");
  500. if(rs.next()){
  501. rmap.put("oCRBValue",rs.getString("MC_HASHVALUE"));
  502. }else{
  503. rmap.put("oCRBValue","");
  504. }
  505. return rmap;
  506. }
  507. private Map<Object,Object> GetAcerValue(JSONObject map,String Master){
  508. Map<Object, Object> rmap = new HashMap<Object, Object>();
  509. String oErrMessage="";
  510. if(map.get("iSN")==null){
  511. oErrMessage = "SN不能为空";
  512. rmap.put("oErrMessage",oErrMessage);
  513. return rmap;
  514. }
  515. String iSN=map.get("iSN").toString();
  516. SqlRowList rs=baseDao.queryForRowSet("select MC_HASHVALUE from acer_cbr where MC_SNCODE='"+iSN+"'");
  517. if(rs.next()){
  518. rmap.put("oCRBValue",rs.getString("MC_HASHVALUE"));
  519. }else{
  520. rmap.put("oCRBValue","");
  521. }
  522. return rmap;
  523. }
  524. private Map<Object,Object> SetHashValue(JSONObject map,String Master){
  525. Map<Object, Object> rmap = new HashMap<Object, Object>();
  526. String oErrMessage="";
  527. if(map.get("iSN")==null){
  528. oErrMessage = "SN不能为空";
  529. rmap.put("oErrMessage",oErrMessage);
  530. return rmap;
  531. }
  532. if(map.get("iHashValue")==null){
  533. oErrMessage = "HashValue不能为空";
  534. rmap.put("oErrMessage",oErrMessage);
  535. return rmap;
  536. }
  537. String iSN=map.get("iSN").toString();
  538. String iHashValue=map.get("iHashValue").toString();
  539. //SN在makeserial表最新一条记录ms_status为2的不允许更新
  540. SqlRowList rsMs=baseDao.queryForRowSet("select ms_status from "+Master+".makeserial where ms_id=(select max(ms_id) from "+Master+".makeserial where ms_sncode=?)",iSN);
  541. if(rsMs.next() && "2".equals(rsMs.getString("ms_status"))){
  542. oErrMessage = "SN:"+iSN+"在已完工,不允许更新";
  543. rmap.put("oErrMessage",oErrMessage);
  544. return rmap;
  545. }
  546. //prodiomac表中已有该SN出货记录的不允许更新
  547. SqlRowList rsPim=baseDao.queryForRowSet("select count(1)cn from "+Master+".prodiomac where PIM_INOROUT='OUT' and pim_mac=?",iSN);
  548. if(rsPim.next() && rsPim.getInt(1)>0){
  549. oErrMessage = "SN:"+iSN+"已存在出货记录,不允许更新";
  550. rmap.put("oErrMessage",oErrMessage);
  551. return rmap;
  552. }
  553. Object makecode=baseDao.getFieldDataByCondition(Master+".makeserial","ms_makecode","ms_id=(select max(ms_id) from "+Master+".makeserial where ms_sncode='"+iSN+"')");
  554. if(makecode==null){
  555. oErrMessage = "SN:"+iSN+"不存在";
  556. rmap.put("oErrMessage",oErrMessage);
  557. return rmap;
  558. }
  559. if(baseDao.checkIf("makecbr","mc_makecode='"+makecode+"' and mc_sncode='"+iSN+"'")){
  560. baseDao.execute("delete from makecbr where mc_makecode='"+makecode+"' and mc_sncode='"+iSN+"'");
  561. }
  562. baseDao.execute("insert into makecbr(MC_ID, MC_MAKECODE, MC_SNCODE, MC_HASHVALUE, MC_INDATE)" +
  563. "values(makecbr_seq.nextval,'"+makecode+"','"+iSN+"','"+iHashValue+"',sysdate)");
  564. rmap.put("oErrMessage",null);
  565. return rmap;
  566. }
  567. private Map<Object,Object> CRBValueGet(JSONObject map,String Master){
  568. Map<Object, Object> rmap = new HashMap<Object, Object>();
  569. String iSN="";
  570. String oErrMessage="";
  571. if(map.get("iSN")==null){
  572. oErrMessage = "SN不能为空";
  573. rmap.put("oErrMessage",oErrMessage);
  574. return rmap;
  575. }
  576. iSN=map.get("iSN").toString();
  577. List<String> list = new ArrayList<String>();
  578. list = baseDao.callProcedureWithOut(Master+".CS_GETCRBVALUE", new Object[]{
  579. String.valueOf(iSN)
  580. }, new Integer[]{1}, new Integer[]{2,3});
  581. oErrMessage=list.get(1);
  582. if(oErrMessage==null){
  583. rmap.put("oCRBValue",list.get(0));
  584. }else {
  585. rmap.put("oErrMessage",oErrMessage);
  586. }
  587. return rmap;
  588. }
  589. private Map<Object,Object> CRBValueSet(JSONObject map,String Master){
  590. Map<Object, Object> rmap = new HashMap<Object, Object>();
  591. String oErrMessage="";
  592. String iSN="";
  593. String iCRBValue="";
  594. if(map.get("iSN")==null){
  595. oErrMessage = "SN不能为空";
  596. rmap.put("oErrMessage",oErrMessage);
  597. return rmap;
  598. }
  599. if(map.get("iCRBValue")==null){
  600. oErrMessage = "HashValue不能为空";
  601. rmap.put("oErrMessage",oErrMessage);
  602. return rmap;
  603. }
  604. iSN=map.get("iSN").toString();
  605. iCRBValue=map.get("iCRBValue").toString();
  606. List<String> list = new ArrayList<String>();
  607. list = baseDao.callProcedureWithOut(Master+".CS_SETCRBVALUE", new Object[]{
  608. String.valueOf(iSN),
  609. String.valueOf(iCRBValue)
  610. }, new Integer[]{1, 2}, new Integer[]{3});
  611. rmap.put("oErrMessage",list.get(0));
  612. return rmap;
  613. }
  614. private Map<Object,Object> SetCRBValue(JSONObject map,String Master){
  615. Map<Object, Object> rmap = new HashMap<Object, Object>();
  616. String oErrMessage="";
  617. if(map.get("iSN")==null){
  618. oErrMessage = "SN不能为空";
  619. rmap.put("oErrMessage",oErrMessage);
  620. return rmap;
  621. }
  622. if(map.get("iCRBValue")==null){
  623. oErrMessage = "HashValue不能为空";
  624. rmap.put("oErrMessage",oErrMessage);
  625. return rmap;
  626. }
  627. String iSN=map.get("iSN").toString();
  628. String iHashValue=map.get("iCRBValue").toString();
  629. //SN在makeserial表最新一条记录ms_status为2的不允许更新
  630. SqlRowList rsMs=baseDao.queryForRowSet("select ms_status from "+Master+".makeserial where ms_id=(select max(ms_id) from "+Master+".makeserial where ms_sncode=?)",iSN);
  631. if(rsMs.next() && "2".equals(rsMs.getString("ms_status"))){
  632. oErrMessage = "SN:"+iSN+"已完工,不允许更新";
  633. rmap.put("oErrMessage",oErrMessage);
  634. return rmap;
  635. }
  636. //prodiomac表中已有该SN出货记录的不允许更新
  637. SqlRowList rsPim=baseDao.queryForRowSet("select count(1)cn from "+Master+".prodiomac where PIM_INOROUT='OUT' and pim_mac=?",iSN);
  638. if(rsPim.next() && rsPim.getInt(1)>0){
  639. oErrMessage = "SN:"+iSN+"已存在出货记录,不允许更新";
  640. rmap.put("oErrMessage",oErrMessage);
  641. return rmap;
  642. }
  643. Object makecode=baseDao.getFieldDataByCondition(Master+".makeserial","ms_makecode","ms_id=(select max(ms_id) from "+Master+".makeserial where ms_sncode='"+iSN+"')");
  644. if(makecode==null){
  645. oErrMessage = "SN:"+iSN+"不存在";
  646. rmap.put("oErrMessage",oErrMessage);
  647. return rmap;
  648. }
  649. if(baseDao.checkIf("MECHREVO_CBR","mc_makecode='"+makecode+"' and mc_sncode='"+iSN+"'")){
  650. baseDao.execute("delete from MECHREVO_CBR where mc_makecode='"+makecode+"' and mc_sncode='"+iSN+"'");
  651. }
  652. baseDao.execute("insert into MECHREVO_CBR(MC_ID, MC_MAKECODE, MC_SNCODE, MC_HASHVALUE, MC_INDATE)" +
  653. "values(MECHREVO_CBR_seq.nextval,'"+makecode+"','"+iSN+"','"+iHashValue+"',sysdate)");
  654. rmap.put("oErrMessage",null);
  655. return rmap;
  656. }
  657. private Map<Object,Object> SetTestValue(JSONObject map,String Master){
  658. Map<Object, Object> rmap = new HashMap<Object, Object>();
  659. String oErrMessage="";
  660. if(map.get("iSN")==null){
  661. oErrMessage = "SN不能为空";
  662. rmap.put("oErrMessage",oErrMessage);
  663. return rmap;
  664. }
  665. if(map.get("iCRBValue")==null){
  666. oErrMessage = "HashValue不能为空";
  667. rmap.put("oErrMessage",oErrMessage);
  668. return rmap;
  669. }
  670. String iSN=map.get("iSN").toString();
  671. String iHashValue=map.get("iCRBValue").toString();
  672. Object makecode=baseDao.getFieldDataByCondition(Master+".makeserial","ms_makecode","ms_id=(select max(ms_id) from "+Master+".makeserial where ms_sncode='"+iSN+"')");
  673. if(makecode==null){
  674. oErrMessage = "SN:"+iSN+"不存在";
  675. rmap.put("oErrMessage",oErrMessage);
  676. return rmap;
  677. }
  678. if(baseDao.checkIf("test_CBR","mc_makecode='"+makecode+"' and mc_sncode='"+iSN+"'")){
  679. baseDao.execute("delete from test_CBR where mc_makecode='"+makecode+"' and mc_sncode='"+iSN+"'");
  680. }
  681. baseDao.execute("insert into test_CBR(MC_ID, MC_MAKECODE, MC_SNCODE, MC_HASHVALUE, MC_INDATE)" +
  682. "values(test_CBR_seq.nextval,'"+makecode+"','"+iSN+"','"+iHashValue+"',sysdate)");
  683. rmap.put("oErrMessage",null);
  684. return rmap;
  685. }
  686. private Map<Object,Object> SetAcerValue(JSONObject map,String Master){
  687. Map<Object, Object> rmap = new HashMap<Object, Object>();
  688. String oErrMessage="";
  689. if(map.get("iSN")==null){
  690. oErrMessage = "SN不能为空";
  691. rmap.put("oErrMessage",oErrMessage);
  692. return rmap;
  693. }
  694. if(map.get("iCRBValue")==null){
  695. oErrMessage = "HashValue不能为空";
  696. rmap.put("oErrMessage",oErrMessage);
  697. return rmap;
  698. }
  699. String iSN=map.get("iSN").toString();
  700. String iHashValue=map.get("iCRBValue").toString();
  701. //SN在makeserial表最新一条记录ms_status为2的不允许更新
  702. SqlRowList rsMs=baseDao.queryForRowSet("select ms_status from "+Master+".makeserial where ms_id=(select max(ms_id) from "+Master+".makeserial where ms_sncode=?)",iSN);
  703. if(rsMs.next() && "2".equals(rsMs.getString("ms_status"))){
  704. oErrMessage = "SN:"+iSN+"在已完工,不允许更新";
  705. rmap.put("oErrMessage",oErrMessage);
  706. return rmap;
  707. }
  708. //prodiomac表中已有该SN出货记录的不允许更新
  709. SqlRowList rsPim=baseDao.queryForRowSet("select count(1)cn from "+Master+".prodiomac where PIM_INOROUT='OUT' and pim_mac=?",iSN);
  710. if(rsPim.next() && rsPim.getInt(1)>0){
  711. oErrMessage = "SN:"+iSN+"已存在出货记录,不允许更新";
  712. rmap.put("oErrMessage",oErrMessage);
  713. return rmap;
  714. }
  715. Object makecode=baseDao.getFieldDataByCondition(Master+".makeserial","ms_makecode","ms_id=(select max(ms_id) from "+Master+".makeserial where ms_sncode='"+iSN+"')");
  716. if(makecode==null){
  717. oErrMessage = "SN:"+iSN+"不存在";
  718. rmap.put("oErrMessage",oErrMessage);
  719. return rmap;
  720. }
  721. if(baseDao.checkIf("acer_cbr","mc_makecode='"+makecode+"' and mc_sncode='"+iSN+"'")){
  722. baseDao.execute("delete from acer_cbr where mc_makecode='"+makecode+"' and mc_sncode='"+iSN+"'");
  723. }
  724. baseDao.execute("insert into acer_cbr(MC_ID, MC_MAKECODE, MC_SNCODE, MC_HASHVALUE, MC_INDATE)" +
  725. "values(acer_cbr_seq.nextval,'"+makecode+"','"+iSN+"','"+iHashValue+"',sysdate)");
  726. rmap.put("oErrMessage",null);
  727. return rmap;
  728. }
  729. private Map<Object,Object> ReSetSN(JSONObject map,String Master){
  730. Map<Object, Object> rmap = new HashMap<Object, Object>();
  731. String iSN=null;
  732. String oErrMessage=null;
  733. if(map.get("iSN")==null){
  734. oErrMessage = "SN不能为空";
  735. rmap.put("oErrMessage",oErrMessage);
  736. return rmap;
  737. }
  738. iSN=map.get("iSN").toString();
  739. //回流工序,替代客户端cd_stepcode.Text
  740. if(map.get("iStepCode")==null){
  741. oErrMessage = "回流工序不能为空";
  742. rmap.put("oErrMessage",oErrMessage);
  743. return rmap;
  744. }
  745. String iStepCode=map.get("iStepCode").toString();
  746. //操作人,对应客户端User.UserCode
  747. String iUserCode="";
  748. if(map.get("iUserCode")!=null){
  749. iUserCode=map.get("iUserCode").toString();
  750. }
  751. //岗位资源,对应客户端User.UserSourceCode
  752. String iSourceCode="";
  753. if(map.get("iSourceCode")!=null){
  754. iSourceCode=map.get("iSourceCode").toString();
  755. }
  756. //取该SN最新一条记录,校验是否允许回流
  757. SqlRowList rs=baseDao.queryForRowSet("select ms_id,ms_makecode,ms_craftcode,ms_prodcode,ms_status,ms_paststep,ms_outboxcode," +
  758. "nvl(ms_isactive,0)ms_isactive,nvl(ms_qccheck,0)ms_qccheck,nvl(ms_ifqccheck,0)ms_ifqccheck," +
  759. "nvl(ms_outstatus,0)ms_outstatus,nvl(pr_ifrepaircheck,0)pr_ifrepaircheck " +
  760. "from "+Master+".makeserial left join "+Master+".product on pr_code=ms_prodcode " +
  761. "where ms_sncode='"+iSN+"' order by ms_id desc");
  762. String ms_id="";
  763. String ms_makecode="";
  764. String ms_paststep="";
  765. if(rs.next()){
  766. ms_id=rs.getString("ms_id");
  767. ms_makecode=rs.getString("ms_makecode");
  768. ms_paststep=rs.getString("ms_paststep")==null?"":rs.getString("ms_paststep");
  769. //不良品不允许回流
  770. if("3".equals(rs.getString("ms_status"))){
  771. oErrMessage = "SN:" + iSN + "为不良品,不允许采集";
  772. rmap.put("oErrMessage",oErrMessage);
  773. return rmap;
  774. }
  775. //已装箱不允许回流
  776. String ms_outboxcode=rs.getString("ms_outboxcode")==null?"":rs.getString("ms_outboxcode");
  777. if(!"".equals(ms_outboxcode)){
  778. oErrMessage = "SN:" + iSN + "已装箱" + ms_outboxcode + ",不允许采集";
  779. rmap.put("oErrMessage",oErrMessage);
  780. return rmap;
  781. }
  782. //已执行的工序才允许回流
  783. if(!ms_paststep.contains(iStepCode)){
  784. oErrMessage = "序列号" + iSN + "不允许回流到未执行工序";
  785. rmap.put("oErrMessage",oErrMessage);
  786. return rmap;
  787. }
  788. //已出货不允许回流
  789. if("-1".equals(rs.getString("ms_outstatus"))){
  790. oErrMessage = "序列号" + iSN + "已出货不允许回流";
  791. rmap.put("oErrMessage",oErrMessage);
  792. return rmap;
  793. }
  794. //Key已激活不允许回流
  795. if("-1".equals(rs.getString("ms_isactive"))){
  796. oErrMessage = "序列号" + iSN + "Key已激活不允许回流";
  797. rmap.put("oErrMessage",oErrMessage);
  798. return rmap;
  799. }
  800. //抽检状态不允许重置站点
  801. if(("-1".equals(rs.getString("ms_qccheck")) && "-1".equals(rs.getString("pr_ifrepaircheck")))
  802. || "-1".equals(rs.getString("ms_ifqccheck"))){
  803. oErrMessage = "序列号" + iSN + "处于抽检状态,不允许重置站点";
  804. rmap.put("oErrMessage",oErrMessage);
  805. return rmap;
  806. }
  807. }else {
  808. oErrMessage = "序列号" + iSN + "不存在";
  809. rmap.put("oErrMessage",oErrMessage);
  810. return rmap;
  811. }
  812. //取回流工序在工艺路线中的执行顺序,用于判断用料表需要拆解的项次
  813. Object stepno=baseDao.getFieldDataByCondition(Master+".craft left join "+Master+".craftdetail on cr_id=cd_crid",
  814. "cd_stepno","cr_code=(select ms_craftcode from "+Master+".makeserial where ms_id='"+ms_id+"') " +
  815. "and cr_prodcode=(select ms_prodcode from "+Master+".makeserial where ms_id='"+ms_id+"') " +
  816. "and cd_stepcode='"+iStepCode+"'");
  817. String cd_stepno=stepno==null?"":stepno.toString();
  818. if("".equals(cd_stepno)){
  819. oErrMessage = "工序" + iStepCode + "不在该SN的工艺路线中";
  820. rmap.put("oErrMessage",oErrMessage);
  821. return rmap;
  822. }
  823. //工序名称,用于记录操作日志
  824. Object stname=baseDao.getFieldDataByCondition(Master+".step","st_name","st_code='"+iStepCode+"'");
  825. String st_name=stname==null?"":stname.toString();
  826. StringBuffer sql=new StringBuffer();
  827. List<String> sqls=new ArrayList<String>();
  828. //重置makeserial,ms_paststep截断到回流工序之前
  829. sql.append("update "+Master+".makeserial set ms_status=1,ms_outboxcode='',ms_printcount=0,ms_stepcode='',ms_nextstepcode='"+iStepCode+"',");
  830. sql.append("ms_paststep=case when instr(ms_paststep,'"+iStepCode+"')>0 then substr(ms_paststep,0,instr(ms_paststep,'"+iStepCode+"')-2) else ms_paststep end ");
  831. sql.append("where ms_sncode='"+iSN+"' and ms_makecode='"+ms_makecode+"'");
  832. sqls.add(sql.toString());
  833. //删除未处理的不良记录
  834. sql.setLength(0);
  835. sql.append("delete "+Master+".makebad where mb_sncode='"+iSN+"' and mb_makecode='"+ms_makecode+"' and mb_status=0");
  836. sqls.add(sql.toString());
  837. //删除标签打印记录
  838. sql.setLength(0);
  839. sql.append("delete "+Master+".labelprintlog where lpl_value='"+iSN+"'");
  840. sqls.add(sql.toString());
  841. //拆解用料表,回流工序及之后已上料的明细置为拆解状态
  842. sql.setLength(0);
  843. sql.append("update "+Master+".craftmaterial set cm_status=-1,cm_lastdeco=-1,cm_dropman='"+iUserCode+"',");
  844. sql.append("cm_dropdate=sysdate,CM_REMARK='重置站点拆解',cm_dropstep='"+iStepCode+"',");
  845. sql.append("cm_dropsccode='"+iSourceCode+"' where cm_sncode='"+iSN+"' and cm_makecode='"+ms_makecode+"' ");
  846. sql.append("and cm_stepcode in (select cd_stepcode from "+Master+".craftdetail left join "+Master+".step on st_code=cd_stepcode " +
  847. "left join "+Master+".craft on cd_crid=cr_id where ST_STATUSCODE='AUDITED' " +
  848. "and cr_code=(select ms_craftcode from "+Master+".makeserial where ms_id='"+ms_id+"') " +
  849. "and cr_prodcode=(select ms_prodcode from "+Master+".makeserial where ms_id='"+ms_id+"') " +
  850. "and cd_stepno>="+cd_stepno+")");
  851. sqls.add(sql.toString());
  852. //同一次提交内完成重置,避免中途失败导致数据不一致
  853. baseDao.execute(sqls);
  854. rmap.put("oErrMessage",null);
  855. rmap.put("oStepName",st_name);
  856. rmap.put("oMakeCode",ms_makecode);
  857. return rmap;
  858. }
  859. /**
  860. * 取消采集:解除SN与当前工单的绑定,回退过站数量、上料、号段及各种绑定记录
  861. * 对应客户端 Special_CancelCollection.Confirm_Click
  862. */
  863. private Map<Object,Object> CancelCollection(JSONObject map,String Master){
  864. Map<Object, Object> rmap = new HashMap<Object, Object>();
  865. String oErrMessage=null;
  866. if(map.get("iSN")==null){
  867. oErrMessage = "SN不能为空";
  868. rmap.put("oErrMessage",oErrMessage);
  869. return rmap;
  870. }
  871. String iSN=map.get("iSN").toString();
  872. //工单号,替代客户端ms_makecode.Text
  873. if(map.get("iMakeCode")==null){
  874. oErrMessage = "工单号不能为空";
  875. rmap.put("oErrMessage",oErrMessage);
  876. return rmap;
  877. }
  878. String iMakeCode=map.get("iMakeCode").toString();
  879. //取该SN在当前工单下的最新一条记录
  880. SqlRowList rs=baseDao.queryForRowSet("select ms_id,ms_firstsn,ms_status,ms_checkno,ms_outboxcode " +
  881. "from "+Master+".makeserial where (ms_sncode='"+iSN+"' or ms_imei1='"+iSN+"' or ms_imei2='"+iSN+"') " +
  882. "and ms_makecode='"+iMakeCode+"' order by ms_id desc");
  883. if(!rs.next()){
  884. oErrMessage = "序列号" + iSN + "不存在于工单" + iMakeCode;
  885. rmap.put("oErrMessage",oErrMessage);
  886. return rmap;
  887. }
  888. String ms_id=rs.getString("ms_id");
  889. String ms_firstsn=rs.getString("ms_firstsn")==null?"":rs.getString("ms_firstsn");
  890. String ms_checkno=rs.getString("ms_checkno")==null?"":rs.getString("ms_checkno");
  891. String ms_status=rs.getString("ms_status")==null?"":rs.getString("ms_status");
  892. String ms_outboxcode=rs.getString("ms_outboxcode")==null?"":rs.getString("ms_outboxcode");
  893. //该SN全部工单范围内的最新记录不属于当前工单,说明存在前置工单,不允许取消
  894. Object maxid=baseDao.getFieldDataByCondition(Master+".makeserial","max(ms_id)",
  895. "(ms_sncode='"+iSN+"' or ms_imei1='"+iSN+"' or ms_imei2='"+iSN+"')");
  896. if(maxid!=null && !maxid.toString().equals(ms_id)){
  897. oErrMessage = "序列号" + iSN + "存在前置工单,当前工单不允许取消";
  898. rmap.put("oErrMessage",oErrMessage);
  899. return rmap;
  900. }
  901. //已装箱不允许取消采集
  902. if(!"".equals(ms_outboxcode)){
  903. oErrMessage = "序列号" + iSN + "已经装箱" + ms_outboxcode;
  904. rmap.put("oErrMessage",oErrMessage);
  905. return rmap;
  906. }
  907. StringBuffer sql=new StringBuffer();
  908. List<String> sqls=new ArrayList<String>();
  909. //回退工单工艺路线的过站数量
  910. if("3".equals(ms_status)){
  911. //不良品:删除该SN未处理的不良记录
  912. sql.setLength(0);
  913. sql.append("delete "+Master+".makebad where mb_sncode='"+iSN+"' and mb_makecode='"+iMakeCode+"'");
  914. sqls.add(sql.toString());
  915. //不良品只回退投入数
  916. sql.setLength(0);
  917. sql.append("update "+Master+".makecraftdetail set mcd_inqty=mcd_inqty-1 where mcd_macode='"+iMakeCode+"' ");
  918. sql.append("and instr((select ms_paststep from "+Master+".makeserial where ms_id='"+ms_id+"'),mcd_stepcode)>0");
  919. sqls.add(sql.toString());
  920. }else{
  921. sql.setLength(0);
  922. sql.append("update "+Master+".makecraftdetail set mcd_inqty=mcd_inqty-1,mcd_outqty=mcd_outqty-1,mcd_okqty=mcd_okqty-1 ");
  923. sql.append("where mcd_macode='"+iMakeCode+"' ");
  924. sql.append("and instr((select ms_paststep from "+Master+".makeserial where ms_id='"+ms_id+"'),mcd_stepcode)>0");
  925. sqls.add(sql.toString());
  926. }
  927. //送检中:删除送检明细并回退送检数量
  928. if(!"".equals(ms_checkno)){
  929. sql.setLength(0);
  930. sql.append("delete "+Master+".oqcbatchdetail where obd_sncode='"+iSN+"' and obd_makecode='"+iMakeCode+"'");
  931. sqls.add(sql.toString());
  932. sql.setLength(0);
  933. sql.append("update "+Master+".oqcbatch set ob_nowcheckqty=ob_nowcheckqty-1 where ob_checkno='"+ms_checkno+"'");
  934. sqls.add(sql.toString());
  935. }
  936. //清除该SN在当前工单的上料数据
  937. SqlRowList rsCm=baseDao.queryForRowSet("select cm_barcode,cm_materialtype,cm_stepcode " +
  938. "from "+Master+".craftmaterial where cm_sncode='"+iSN+"' and cm_makecode='"+iMakeCode+"'");
  939. List<String> barcodes=new ArrayList<String>();
  940. while(rsCm.next()){
  941. String cm_barcode=rsCm.getString("cm_barcode")==null?"":rsCm.getString("cm_barcode");
  942. String cm_stepcode=rsCm.getString("cm_stepcode")==null?"":rsCm.getString("cm_stepcode");
  943. barcodes.add(cm_barcode);
  944. //批管控物料(materialtype=2)回退批次库存
  945. if("2".equals(rsCm.getString("cm_materialtype"))){
  946. Object mss_id=baseDao.getFieldDataByCondition(Master+".makesourcestock","mss_id",
  947. "mss_makecode='"+iMakeCode+"' and mss_barcode='"+cm_barcode+"' and mss_stepcode='"+cm_stepcode+"' " +
  948. "and mss_validtime is not null and mss_invalidtime is null");
  949. if(mss_id!=null){
  950. sqls.add("update "+Master+".makesourcestock set mss_remain=mss_remain+mss_baseqty," +
  951. "mss_useqty=mss_useqty-mss_baseqty where mss_id='"+mss_id+"'");
  952. }
  953. }
  954. }
  955. if(!barcodes.isEmpty()){
  956. //上料条码原先指向当前工单的下工单标记一并解除
  957. for(String barcode:barcodes){
  958. sqls.add("update "+Master+".makeserial set ms_nextmacode='' where ms_sncode='"+barcode+"' and ms_nextmacode='"+iMakeCode+"'");
  959. }
  960. sql.setLength(0);
  961. sql.append("delete "+Master+".craftmaterial where cm_sncode='"+iSN+"' and cm_makecode='"+iMakeCode+"'");
  962. sqls.add(sql.toString());
  963. }
  964. //回退MAC/BT及IMEI的绑定
  965. sqls.add("update "+Master+".makeaddresslist set mal_sncode='',mal_status=0 where (mal_sncode='"+iSN+"' or mal_sncode='"+ms_firstsn+"') and mal_makecode='"+iMakeCode+"'");
  966. sqls.add("update "+Master+".makeimeilist set mil_sncode='',mil_status=0 where (mil_sncode='"+iSN+"' or mil_sncode='"+ms_firstsn+"') and mil_makecode='"+iMakeCode+"'");
  967. sqls.add("delete "+Master+".sninfo where si_sn='"+iSN+"' or si_sn='"+ms_firstsn+"'");
  968. //删除标签打印记录
  969. sqls.add("delete "+Master+".labelprintlog where lpl_value='"+iSN+"' and lpl_makecode='"+iMakeCode+"'");
  970. //删除老化记录
  971. sqls.add("delete "+Master+".AGINGRECORD where ar_sncode='"+iSN+"' and ar_macode='"+iMakeCode+"'");
  972. //解除该SN占用的下工单标记
  973. sqls.add("update "+Master+".makeserial set ms_nextmacode='' where ms_firstsn='"+ms_firstsn+"' and ms_nextmacode='"+iMakeCode+"'");
  974. //初始化导入数据状态
  975. sqls.add("update "+Master+".makesnlist set msl_status=0 where msl_sncode='"+iSN+"' and msl_makecode='"+iMakeCode+"' and msl_type='before'");
  976. //初始化号段状态
  977. sqls.add("update "+Master+".MAKESNRULEDETAIL set msd_status=0 where msd_sncode='"+iSN+"' and msd_makecode='"+iMakeCode+"' and msd_type='before'");
  978. sqls.add("delete "+Master+".makesnrelation where SN='"+iSN+"' and makecode='"+iMakeCode+"'");
  979. //删除过站记录
  980. sqls.add("delete "+Master+".steppassed where sp_sncode='"+ms_firstsn+"' and sp_makecode='"+iMakeCode+"'");
  981. sqls.add("delete "+Master+".steppassed where sp_sncode='"+iSN+"' and sp_makecode='"+iMakeCode+"'");
  982. //删除SN在makeserial的记录
  983. sqls.add("delete "+Master+".makeserial where ms_id='"+ms_id+"'");
  984. //同一次提交内完成取消采集,避免中途失败导致数据不一致
  985. baseDao.execute(sqls);
  986. //回写工单投入数
  987. baseDao.execute("update "+Master+".make set ma_inqty=(select count(1) from "+Master+".makeserial where ms_makecode='"+iMakeCode+"') where ma_code='"+iMakeCode+"'");
  988. rmap.put("oErrMessage",null);
  989. rmap.put("oMakeCode",iMakeCode);
  990. return rmap;
  991. }
  992. private Map<Object,Object> GetMakeInfo(JSONObject map,String Master){
  993. Map<Object, Object> rmap = new HashMap<Object, Object>();
  994. String iSN=null;
  995. String oErrMessage=null;
  996. // if(map.get("iSN")==null){
  997. // oErrMessage = "SN不能为空";
  998. // rmap.put("oErrMessage",oErrMessage);
  999. // return rmap;
  1000. // }
  1001. String iMakeCode;
  1002. if(map.get("iMakeCode")!= null){
  1003. iMakeCode=map.get("iMakeCode").toString();
  1004. SqlRowList rs=baseDao.queryForRowSet("select distinct mid_item,mid_value,sid_item,sid_value from "+Master+".makeitem left join "+Master+".makeitemdetail on mi_id=mid_miid " +
  1005. "left join make on mi_makecode=ma_code left join asus_product on" +
  1006. " (ma_prodcode=ap_unboxedcode or ma_prodcode=ap_finishedcode) left join SOFTWAREITEMDETAIL on ap_custprodcode=sid_pn " +
  1007. "where mi_makecode='"+iMakeCode+"' and mid_item is not null");
  1008. while(rs.next()){
  1009. rmap.put(rs.getString("mid_item"),rs.getString("mid_value"));
  1010. if(rs.getString("sid_item")!=null){
  1011. rmap.put(rs.getString("sid_item"),rs.getString("sid_value"));
  1012. }
  1013. }
  1014. }else {
  1015. iSN=map.get("iSN").toString();
  1016. Object makecode=baseDao.getFieldDataByCondition(Master+".makeserial","ms_makecode","ms_id=(select max(ms_id) from "+Master+".makeserial where ms_sncode='"+iSN+"')");
  1017. if(makecode==null){
  1018. oErrMessage = "SN不存在";
  1019. rmap.put("oErrMessage",oErrMessage);
  1020. return rmap;
  1021. }
  1022. SqlRowList rs=baseDao.queryForRowSet("select distinct mid_item,mid_value,sid_item,sid_value from "+Master+".makeitem left join "+Master+".makeitemdetail on mi_id=mid_miid " +
  1023. "left join make on mi_makecode=ma_code left join asus_product on" +
  1024. " (ma_prodcode=ap_unboxedcode or ma_prodcode=ap_finishedcode) left join SOFTWAREITEMDETAIL on ap_custprodcode=sid_pn " +
  1025. "where mi_makecode='"+makecode+"' and mid_item is not null");
  1026. while(rs.next()){
  1027. rmap.put(rs.getString("mid_item"),rs.getString("mid_value"));
  1028. if(rs.getString("sid_item")!=null){
  1029. rmap.put(rs.getString("sid_item"),rs.getString("sid_value"));
  1030. }
  1031. }
  1032. }
  1033. return rmap;
  1034. /*if(rs.next()){
  1035. }else{
  1036. oErrMessage = "SN未查询到关联信息";
  1037. rmap.put("oErrMessage",oErrMessage);
  1038. return rmap;
  1039. }*/
  1040. }
  1041. private Map<Object,Object> WriteMakeInfo(JSONObject map,String Master){
  1042. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1043. String oErrMessage=null;
  1044. if(map.get("iMakeCode")==null){
  1045. oErrMessage = "工单号不能为空";
  1046. rmap.put("oErrMessage",oErrMessage);
  1047. return rmap;
  1048. }
  1049. String MO=map.get("iMakeCode").toString();
  1050. String Item=map.get("Item").toString();
  1051. SqlRowList rs=baseDao.queryForRowSet("select * from "+Master+".makeitem where mi_makecode='"+MO+"'");
  1052. //如果已经存在工单了
  1053. if(rs.next()){
  1054. String[] str=Item.split("\\|");
  1055. String mi_id=rs.getString("mi_id");
  1056. baseDao.execute("delete from "+Master+".makeitemdetail where mid_miid='"+mi_id+"'");
  1057. for (int i=0;i<str.length;i++) {
  1058. Object key = str[i].split("#")[0];
  1059. Object value = str[i].split("#")[1];
  1060. baseDao.execute("insert into "+Master+".makeitemdetail(mid_id,mid_miid,mid_item,mid_value)" +
  1061. "values("+Master+".makeitemdetail_seq.nextval,'"+mi_id+"','"+key.toString()+"','"+value.toString()+"')");
  1062. }
  1063. }else {
  1064. int mi_id = baseDao.getSeqId(Master+".makeitem_seq");
  1065. String[] str=Item.split("\\|");
  1066. baseDao.execute("insert into "+Master+".makeitem(mi_id,mi_makecode,mi_indate)values("+mi_id+",'"+MO+"',sysdate)");
  1067. for (int i=0;i<str.length;i++) {
  1068. Object key = str[i].split("#")[0];
  1069. Object value = str[i].split("#")[1];
  1070. baseDao.execute("insert into "+Master+".makeitemdetail(mid_id,mid_miid,mid_item,mid_value)" +
  1071. "values("+Master+".makeitemdetail_seq.nextval,'"+mi_id+"','"+key.toString()+"','"+value.toString()+"')");
  1072. }
  1073. }
  1074. return rmap;
  1075. }
  1076. private Map<Object,Object> GetMakeSN(JSONObject map,String Master){
  1077. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1078. List<Map<String, Object>> maps = new ArrayList<>();
  1079. String ma_custname="";
  1080. String TIME_BEGIN="";
  1081. String TIME_END="";
  1082. String oErrMessage="";
  1083. // if(map.get("MA_CUSTNAME")==null){
  1084. // oErrMessage = "客户名称不能为空";
  1085. // rmap.put("oErrMessage",oErrMessage);
  1086. // return rmap;
  1087. // }
  1088. if(map.get("TIME_BEGIN")==null){
  1089. oErrMessage = "开始时间不能为空";
  1090. rmap.put("oErrMessage",oErrMessage);
  1091. return rmap;
  1092. }
  1093. if(map.get("TIME_END")==null){
  1094. oErrMessage = "结束时间不能为空";
  1095. rmap.put("oErrMessage",oErrMessage);
  1096. return rmap;
  1097. }
  1098. ma_custname=map.get("MA_CUSTNAME").toString();
  1099. TIME_BEGIN=map.get("TIME_BEGIN").toString();
  1100. TIME_END=map.get("TIME_END").toString();
  1101. SqlRowList rs=baseDao.queryForRowSet("select ms_sncode from makeserial " +
  1102. " where ms_indate between to_date('"+TIME_BEGIN+"','yyyy-mm-dd') " +
  1103. "and to_date('"+TIME_END+"','yyyy-mm-dd') and substr(ms_makecode,0,2)='XX' ");
  1104. rmap.put("data",rs.getResultList());
  1105. return rmap;
  1106. }
  1107. private Map<Object,Object> GetFeeReason(JSONObject map,String Master){
  1108. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1109. String oErrMessage="";
  1110. if(map.get("CT_ID")==null){
  1111. oErrMessage = "单据ID不能为空";
  1112. rmap.put("oErrMessage",oErrMessage);
  1113. return rmap;
  1114. }
  1115. SqlRowList rs=baseDao.queryForRowSet("select ct_code,ct_number_3,ct_varchar50_18,ct_varchar500_1,ct_varchar500_2,ct_varchar500_3,ct_varchar500_4,ct_varchar500_5,ct_number_2,ct_varchar50_27,ct_number_19,ct_varchar50_30,ct_varchar50_25,ct_number_12,ct_number_23,ct_varchar50_34,ct_varchar50_39,ct_varchar50_22,ct_statuscode,ct_date_1,ct_status,ct_recorder,ct_varchar50_10,ct_date_2,ct_id,ct_varchar50_1,ct_varchar50_2,ct_varchar50_3,ct_varchar50_4,ct_varchar50_5,ct_varchar50_6,ct_varchar50_7,ct_varchar50_8,ct_varchar50_11,ct_number_1,ct_varchar50_9,ct_varchar50_12,ct_varchar50_13,ct_varchar50_14,ct_varchar50_15,ct_varchar50_16,ct_caller,ct_date_3,ct_varchar50_17,ct_varchar2000_2" +
  1116. " from "+Master+".CUSTOMTABLE where ct_id="+map.get("CT_ID") +" and ct_caller='MakeFee'");
  1117. if(rs.next()){
  1118. for(String key:rs.getCurrentMap().keySet()){
  1119. rmap.put(key,rs.getCurrentMap().get(key));
  1120. }
  1121. return rmap;
  1122. }else {
  1123. oErrMessage = "单据ID不存在";
  1124. rmap.put("oErrMessage",oErrMessage);
  1125. return rmap;
  1126. }
  1127. }
  1128. private Map<Object,Object> SetFeeReason(JSONObject map,String Master){
  1129. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1130. String formstore=map.get("data").toString();
  1131. Map<Object, Object> gstore = BaseUtil.parseFormStoreToMap(formstore);
  1132. String gridSql = SqlUtil.getUpdateSqlByFormStore(gstore,Master+".CUSTOMTABLE", "CT_ID");
  1133. baseDao.execute(gridSql);
  1134. return null;
  1135. }
  1136. private Map<Object,Object> GoMo(JSONObject map,String Master){
  1137. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1138. String iSN=null;
  1139. String iResCode=null;
  1140. String iMo=null;
  1141. String oErrMessage=null;
  1142. if(map.get("iMo")==null){
  1143. oErrMessage = "工单号不能为空";
  1144. rmap.put("oErrMessage",oErrMessage);
  1145. return rmap;
  1146. }
  1147. if(map.get("iResCode")==null){
  1148. oErrMessage = "岗位资源不能为空";
  1149. rmap.put("oErrMessage",oErrMessage);
  1150. return rmap;
  1151. }
  1152. if(map.get("iSN")==null){
  1153. oErrMessage = "SN不能为空";
  1154. rmap.put("oErrMessage",oErrMessage);
  1155. return rmap;
  1156. }
  1157. iSN=map.get("iSN").toString();
  1158. iResCode=map.get("iResCode").toString();
  1159. iMo=map.get("iMo").toString();
  1160. List<String> list = new ArrayList<String>();
  1161. list = baseDao.callProcedureWithOut(Master+".CS_CHECKSTEPSNANDMACODE", new Object[]{
  1162. String.valueOf(iMo),
  1163. String.valueOf(iResCode),
  1164. String.valueOf(iSN),
  1165. String.valueOf("")
  1166. }, new Integer[]{1, 2, 3, 4}, new Integer[]{5, 6, 7});
  1167. oErrMessage=list.get(2);
  1168. SqlRowList rs = baseDao.queryForRowSet("select ms_status,ms_stepcode,ms_nextstepcode from "+Master+".makeserial where ms_id=( select max(ms_id) from "+Master+".makeserial where ms_sncode in ( select '" + iSN + "' from dual union select sn from "+Master+".makesnrelation where beforesn='" + iSN + "' and sn<>' ' union select beforesn from "+Master+".makesnrelation where sn='" + iSN + "' and beforesn<>' '))");
  1169. String ms_status = "";
  1170. String ms_stepcode = "";
  1171. String ms_nextstepcode = "";
  1172. if(rs.next()){
  1173. ms_status= rs.getString("ms_status");
  1174. ms_stepcode=rs.getString("ms_stepcode");
  1175. ms_nextstepcode=rs.getString("ms_nextstepcode");
  1176. }
  1177. String stepcode = GetStepCodeBySource(iResCode,Master);
  1178. if ( oErrMessage == null || (ms_status == "3" && ms_stepcode == stepcode))
  1179. {
  1180. if (ms_status == "3")
  1181. {
  1182. oErrMessage = null;
  1183. }
  1184. }
  1185. rmap.put("oErrMessage",oErrMessage);
  1186. return rmap;
  1187. }
  1188. private Map<Object,Object> GetPCBABySN(JSONObject map,String Master){
  1189. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1190. String iSN="";
  1191. String oErrMessage="";
  1192. if(map.get("iSN")==null){
  1193. oErrMessage = "SN不能为空";
  1194. rmap.put("oErrMessage",oErrMessage);
  1195. return rmap;
  1196. }
  1197. iSN=map.get("iSN").toString();
  1198. SqlRowList rs=baseDao.queryForRowSet("select ms_firstsn from "+Master+".makeserial where ms_sncode='"+iSN+"' order by ms_id desc");
  1199. if(rs.next()){
  1200. rs=baseDao.queryForRowSet("select LISTAGG((cm_barcode),'||') WITHIN GROUP (ORDER BY cm_sncode)cm_barcode from "+Master+".craftmaterial left join "+Master+".product on cm_fsoncode=pr_code " +
  1201. "where cm_firstsn='"+rs.getString("ms_firstsn")+"' and cm_status=0 and (pr_detail like '%主板 PCBA%' or pr_detail like '%主板%')");
  1202. if(rs.next()){
  1203. rmap.put("oPCBA",rs.getString("cm_barcode"));
  1204. }
  1205. }
  1206. return rmap;
  1207. }
  1208. private Map<Object,Object> GetLCDBySN(JSONObject map,String Master){
  1209. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1210. String iSN="";
  1211. String oErrMessage="";
  1212. if(map.get("iSN")==null){
  1213. oErrMessage = "SN不能为空";
  1214. rmap.put("oErrMessage",oErrMessage);
  1215. return rmap;
  1216. }
  1217. iSN=map.get("iSN").toString();
  1218. SqlRowList rs=baseDao.queryForRowSet("select ms_firstsn from "+Master+".makeserial where ms_sncode='"+iSN+"' order by ms_id desc");
  1219. if(rs.next()){
  1220. rs=baseDao.queryForRowSet("select LISTAGG((cm_barcode),'||') WITHIN GROUP (ORDER BY cm_sncode)cm_barcode from "+Master+".craftmaterial left join "+Master+".product on cm_fsoncode=pr_code " +
  1221. "where cm_firstsn='"+rs.getString("ms_firstsn")+"' and cm_status=0 and (pr_kind2='屏')");
  1222. if(rs.next()){
  1223. rmap.put("oPCBA",rs.getString("cm_barcode"));
  1224. }
  1225. }
  1226. return rmap;
  1227. }
  1228. private Map<Object,Object> GetBatteryBySN(JSONObject map,String Master){
  1229. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1230. String iSN="";
  1231. String oErrMessage="";
  1232. if(map.get("iSN")==null){
  1233. oErrMessage = "SN不能为空";
  1234. rmap.put("oErrMessage",oErrMessage);
  1235. return rmap;
  1236. }
  1237. iSN=map.get("iSN").toString();
  1238. SqlRowList rs=baseDao.queryForRowSet("select ms_firstsn from "+Master+".makeserial where ms_sncode='"+iSN+"' order by ms_id desc");
  1239. if(rs.next()){
  1240. rs=baseDao.queryForRowSet("select LISTAGG((cm_barcode),'||') WITHIN GROUP (ORDER BY cm_sncode)cm_barcode from "+Master+".craftmaterial left join "+Master+".product on cm_fsoncode=pr_code " +
  1241. "where cm_firstsn='"+rs.getString("ms_firstsn")+"' and cm_status=0 and (pr_kind2='电池')");
  1242. if(rs.next()){
  1243. rmap.put("oPCBA",rs.getString("cm_barcode"));
  1244. }
  1245. }
  1246. return rmap;
  1247. }
  1248. private Map<Object,Object> GetInfoByMaterial(JSONObject map,String Master){
  1249. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1250. String iPCBA=null;
  1251. String oErrMessage=null;
  1252. if(map.get("iPCBA")==null){
  1253. oErrMessage = "主板SN不能为空";
  1254. rmap.put("oErrMessage",oErrMessage);
  1255. return rmap;
  1256. }
  1257. iPCBA=map.get("iPCBA").toString();
  1258. SqlRowList rs=baseDao.queryForRowSet("select nvl(max(ms_id),0)ms_id from "+Master+".CRAFTMATERIAL left join "+Master+".makeserial on ms_firstsn=cm_firstsn where (cm_barcode='"+iPCBA+"' or cm_substr='"+iPCBA+"') and nvl(cm_status,0)<>-1 order by cm_id desc");
  1259. if(rs.next()){
  1260. if(!rs.getString("ms_id").equals("0")){
  1261. rs=baseDao.queryForRowSet("select ma_bios,ma_ec,ms_sncode,ma_hardware from "+Master+".makeserial left join "+Master+".make on ms_makecode=ma_code where ms_id='"+rs.getString("ms_id")+"'");
  1262. if (rs.next()){
  1263. rmap.put("oSN",rs.getString("ms_sncode"));
  1264. rmap.put("oBIOS",rs.getString("ma_bios"));
  1265. rmap.put("oEC",rs.getString("ma_ec"));
  1266. rmap.put("oHardWare",rs.getString("ma_hardware"));
  1267. rmap.put("oMaster",Master);
  1268. }
  1269. }else{
  1270. oErrMessage = "主板SN未查询到关联信息";
  1271. rmap.put("oErrMessage",oErrMessage);
  1272. return rmap;
  1273. }
  1274. }
  1275. return rmap;
  1276. }
  1277. private Map<Object,Object> CheckRoutePassed(JSONObject map,String Master){
  1278. //实际业务数据
  1279. Map<Object, Object> rmap = new HashMap<>();
  1280. String iSN=map.get("iSN").toString();
  1281. String iResCode=map.get("iResCode").toString();
  1282. String oErrMessage="";
  1283. if (iSN ==null)
  1284. {
  1285. oErrMessage = "SN不能为空";
  1286. }
  1287. List<String> list = new ArrayList<String>();
  1288. list = baseDao.callProcedureWithOut(Master+".CS_CHECKSTEPSNANDMACODE", new Object[]{
  1289. String.valueOf(""),
  1290. String.valueOf(iResCode),
  1291. String.valueOf(iSN),
  1292. String.valueOf("")
  1293. }, new Integer[]{1, 2, 3, 4}, new Integer[]{5, 6, 7});
  1294. oErrMessage=list.get(2);
  1295. if(oErrMessage!=null){
  1296. rmap.put("oErrMessage",oErrMessage);
  1297. return rmap;
  1298. }
  1299. SqlRowList rs = baseDao.queryForRowSet("select ms_status,ms_stepcode,ms_nextstepcode from "+Master+".makeserial where ms_id=( select max(ms_id) from "+Master+".makeserial where ms_sncode in ( select '" + iSN + "' from dual union select sn from "+Master+".makesnrelation where beforesn='" + iSN + "' and sn<>' ' union select beforesn from "+Master+".makesnrelation where sn='" + iSN + "' and beforesn<>' '))");
  1300. String ms_status = "";
  1301. String ms_stepcode = "";
  1302. String ms_nextstepcode = "";
  1303. if(rs.next()){
  1304. ms_status= rs.getString("ms_status");
  1305. ms_stepcode=rs.getString("ms_stepcode");
  1306. ms_nextstepcode=rs.getString("ms_nextstepcode");
  1307. }
  1308. String stepcode = GetStepCodeBySource(iResCode,Master);
  1309. if (ms_nextstepcode != "" && !ms_nextstepcode.equals(stepcode))
  1310. {
  1311. oErrMessage = "当前序列号下一工序" + ms_nextstepcode;
  1312. }
  1313. rmap.put("oErrMessage",oErrMessage);
  1314. return rmap;
  1315. }
  1316. private Map<Object,Object> GetMakeMaterial(JSONObject map,String Master){
  1317. Map<Object, Object> rmap = new HashMap<>();
  1318. String iSN=map.get("iSN").toString();
  1319. String oErrMessage="";
  1320. SqlRowList rs=baseDao.queryForRowSet("select ms_prodcode from makeserial where ms_sncode='"+iSN+"'");
  1321. if(rs.next()){
  1322. rs=baseDao.queryForRowSet("select MM_PRODCODE from pm_prodmakematerial_view where MA_PRODCODE='"+rs.getString("ms_prodcode")+"' ");
  1323. rmap.put("oProdCode",rs.getResultList());
  1324. }else {
  1325. oErrMessage = "SN"+iSN+"不存在";
  1326. rmap.put("oErrMessage",oErrMessage);
  1327. return rmap;
  1328. }
  1329. return rmap;
  1330. }
  1331. private Map<Object,Object> CheckUserAndResourcePassed(JSONObject map,String Master){
  1332. //实际业务数据
  1333. Map<Object, Object> rmap = new HashMap<>();
  1334. String oErrMessage = null;
  1335. if (map.get("iUserCode") == null || map.get("iResCode") == null || map.get("iPassWord") == null)
  1336. {
  1337. oErrMessage = "用户名,密码,岗位资源必须填写";
  1338. rmap.put("oErrMessage",oErrMessage);
  1339. return rmap;
  1340. }
  1341. String iUserCode=map.get("iUserCode").toString();
  1342. String iPassWord=map.get("iPassWord").toString();
  1343. String iResCode=map.get("iResCode").toString();
  1344. if (CheckUserLogin(iUserCode, iPassWord,Master))
  1345. {
  1346. String SQL = "select em_code,em_type,em_name from "+Master+".employee where em_code=? ";
  1347. SqlRowList rs = baseDao.queryForRowSet(SQL, iUserCode);
  1348. if (rs.next())
  1349. {
  1350. String em_name = rs.getString("em_name");
  1351. String em_type = rs.getString("em_type");
  1352. if (iResCode ==null)
  1353. {
  1354. oErrMessage = "岗位资源不允许为空";
  1355. rmap.put("oErrMessage",oErrMessage);
  1356. return rmap;
  1357. }
  1358. if (em_type.equals("admin"))
  1359. {
  1360. if (!baseDao.checkIf(""+Master+".Source", "sc_code='" + iResCode + "' and sc_statuscode='AUDITED'"))
  1361. {
  1362. oErrMessage = "岗位资源编号错误或者未审核!";
  1363. }
  1364. }
  1365. else
  1366. {
  1367. SqlRowList rs1=baseDao.queryForRowSet("select ur_resourcecode from "+Master+".cs$empgroup left join "+Master+".cs$userresource on ur_groupcode=eg_groupcode left join "+Master+".source on ur_resourcecode=sc_code where eg_emcode = '"+ iUserCode + "' and sc_statuscode='AUDITED'");
  1368. //如果存在该编号
  1369. if (rs1.next())
  1370. {
  1371. //判断如果多个岗位资源存在,用户输入的只要在其中就行
  1372. while (rs.next())
  1373. {
  1374. if (!rs.getString("ur_resourcecode").equals("iResCode")){
  1375. oErrMessage = "用户不处于当前资源所属分组!";
  1376. }else
  1377. {
  1378. oErrMessage=null;
  1379. continue;
  1380. }
  1381. }
  1382. }
  1383. else
  1384. oErrMessage = "岗位资源编号错误或者未审核!";
  1385. }
  1386. }
  1387. else
  1388. oErrMessage = "用户不存在!";
  1389. }else{
  1390. oErrMessage = "用户名密码不正确!";
  1391. }
  1392. rmap.put("oErrMessage",oErrMessage);
  1393. return rmap;
  1394. }
  1395. private Map<Object,Object> GetAddressRangeByMO(JSONObject map,String Master){
  1396. //实际业务数据
  1397. Map<Object, Object> rmap = new HashMap<>();
  1398. String iSN="";
  1399. String oErrMessage = null;
  1400. String oWIFI = "";
  1401. String oBT = "";
  1402. String oNetCard = "";
  1403. String oNetCard2 = "";
  1404. String oCode1 = "";
  1405. String oCode2 = "";
  1406. String oCode3 = "";
  1407. if(map.get("iSN")==null){
  1408. oErrMessage = "SN不能为空";
  1409. rmap.put("oErrMessage",oErrMessage);
  1410. return rmap;
  1411. }
  1412. iSN=map.get("iSN").toString();
  1413. //判断工单是否归属
  1414. JSONObject map3=new JSONObject();
  1415. map3.put("iSN",iSN);
  1416. Map<Object, Object> map2=GetRcardMOInfo(map3,Master);
  1417. if(map2.get("oErrMessage")!=null){
  1418. oErrMessage=map2.get("oErrMessage").toString();
  1419. rmap.put("oErrMessage",oErrMessage);
  1420. return rmap;
  1421. }
  1422. List<String> list = new ArrayList<String>();
  1423. list = baseDao.callProcedureWithOut(Master+".CS_GETADDRESSBYMAKECODE_TOOL", new Object[]{
  1424. String.valueOf(iSN),
  1425. String.valueOf(map2.get("oMoCode").toString()),
  1426. }, new Integer[]{1,2}, new Integer[]{3,4,5,6,7,8,9,10});
  1427. oWIFI = list.get(0);
  1428. oBT = list.get(1);
  1429. oNetCard = list.get(2);
  1430. oNetCard2 = list.get(3);
  1431. oCode1 = list.get(4);
  1432. oCode2 = list.get(5);
  1433. oCode3 = list.get(6);
  1434. oErrMessage= list.get(7);
  1435. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  1436. rmap.put("oWIFI",oWIFI);
  1437. rmap.put("oBT",oBT);
  1438. rmap.put("oNetCard",oNetCard);
  1439. rmap.put("oNetCard2",oNetCard2);
  1440. rmap.put("oCode1",oCode1);
  1441. rmap.put("oCode2",oCode2);
  1442. rmap.put("oCode3",oCode3);
  1443. }
  1444. else
  1445. rmap.put("oErrMessage",oErrMessage);
  1446. return rmap;
  1447. }
  1448. private Map<Object,Object> GetMEIOrNetCodeRange(JSONObject map,String Master){
  1449. //实际业务数据
  1450. Map<Object, Object> rmap = new HashMap<>();
  1451. String iSN="";
  1452. String oErrMessage = null;
  1453. String oIMEI1 = "";
  1454. String oIMEI2 = "";
  1455. String oIMEI3 = "";
  1456. String oMEID = "";
  1457. String oNetCode = "";
  1458. String oPSN = "";
  1459. String oID1 = "";
  1460. String oID2 = "";
  1461. String oID3 = "";
  1462. String oKeyID = "";
  1463. String oHashValue = "";
  1464. if(map.get("iSN")==null){
  1465. oErrMessage = "SN不能为空";
  1466. rmap.put("oErrMessage",oErrMessage);
  1467. return rmap;
  1468. }
  1469. if(map.get("iIMEI1")!=null){
  1470. oIMEI1=map.get("iIMEI1").toString();
  1471. }
  1472. if(map.get("iNetCode")!=null){
  1473. oNetCode=map.get("iNetCode").toString();
  1474. }
  1475. iSN=map.get("iSN").toString();
  1476. List<String> list = new ArrayList<String>();
  1477. list = baseDao.callProcedureWithOut(Master+".CS_GETIMEIORNETCODERANGE_T", new Object[]{
  1478. String.valueOf(iSN),
  1479. String.valueOf(""),
  1480. String.valueOf(oIMEI1),
  1481. String.valueOf(oNetCode),
  1482. }, new Integer[]{1,2,3,4}, new Integer[]{5,6,7,8,9,10,11,12,13,14,15,16});
  1483. oIMEI1 = list.get(0);
  1484. oIMEI2 = list.get(1);
  1485. oIMEI3 = list.get(2);
  1486. oMEID = list.get(3);
  1487. oNetCode = list.get(4);
  1488. oPSN = list.get(5);
  1489. oID1 = list.get(6);
  1490. oID2 = list.get(7);
  1491. oID3 = list.get(8);
  1492. oKeyID = list.get(9);
  1493. oHashValue = list.get(10);
  1494. oErrMessage= list.get(11);
  1495. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  1496. rmap.put("oIMEI1",oIMEI1);
  1497. rmap.put("oIMEI2",oIMEI2);
  1498. rmap.put("oIMEI3",oIMEI3);
  1499. rmap.put("oMEID",oMEID);
  1500. rmap.put("oNetCode",oNetCode);
  1501. rmap.put("oPSN",oPSN);
  1502. rmap.put("oID1",oID1);
  1503. rmap.put("oID2",oID2);
  1504. rmap.put("oID3",oID3);
  1505. rmap.put("oKeyID",oKeyID);
  1506. rmap.put("oHashValue",oHashValue);
  1507. }
  1508. else
  1509. rmap.put("oErrMessage",oErrMessage);
  1510. return rmap;
  1511. }
  1512. private Map<Object,Object> GetReleaseKey(JSONObject map,String Master){
  1513. Map<Object, Object> rmap = new HashMap<>();
  1514. String iSN="";
  1515. String iCustCode="";
  1516. String MK_DPK="";
  1517. String MK_DPKID="";
  1518. String oErrMessage="";
  1519. if(map.get("iSN")==null){
  1520. oErrMessage = "SN不能为空";
  1521. rmap.put("oErrMessage",oErrMessage);
  1522. return rmap;
  1523. }
  1524. // if(map.get("iCustCode")==null){
  1525. // oErrMessage = "SN不能为空";
  1526. // rmap.put("oErrMessage",oErrMessage);
  1527. // return rmap;
  1528. // }
  1529. List<String> list = new ArrayList<String>();
  1530. iSN=map.get("iSN").toString();
  1531. list = baseDao.callProcedureWithOut(Master+".CS_GETRELEASE_KEY", new Object[]{
  1532. String.valueOf(iSN),
  1533. String.valueOf(""),
  1534. String.valueOf(iCustCode),
  1535. }, new Integer[]{1,2,3}, new Integer[]{4,5,6});
  1536. MK_DPK = list.get(0);
  1537. MK_DPKID = list.get(1);
  1538. oErrMessage= list.get(2);
  1539. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  1540. rmap.put("oDPK",MK_DPK);
  1541. rmap.put("oDPKID",MK_DPKID);
  1542. }
  1543. else
  1544. rmap.put("oErrMessage",oErrMessage);
  1545. return rmap;
  1546. }
  1547. private Map<Object,Object> GetMechRevoKey(JSONObject map,String Master){
  1548. Map<Object, Object> rmap = new HashMap<>();
  1549. String iSN="";
  1550. String MK_DPK="";
  1551. String MK_DPKID="";
  1552. String oErrMessage="";
  1553. if(map.get("iSN")==null){
  1554. oErrMessage = "SN不能为空";
  1555. rmap.put("oErrMessage",oErrMessage);
  1556. return rmap;
  1557. }
  1558. List<String> list = new ArrayList<String>();
  1559. iSN=map.get("iSN").toString();
  1560. list = baseDao.callProcedureWithOut(Master+".CS_GETMECHREVOKYE", new Object[]{
  1561. String.valueOf(iSN),
  1562. String.valueOf(""),
  1563. }, new Integer[]{1,2}, new Integer[]{3,4,5});
  1564. MK_DPK = list.get(0);
  1565. MK_DPKID = list.get(1);
  1566. oErrMessage= list.get(2);
  1567. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  1568. rmap.put("oDPK",MK_DPK);
  1569. rmap.put("oDPKID",MK_DPKID);
  1570. }
  1571. else
  1572. rmap.put("oErrMessage",oErrMessage);
  1573. return rmap;
  1574. }
  1575. private Map<Object,Object> GetTestRevoKey(JSONObject map,String Master){
  1576. Map<Object, Object> rmap = new HashMap<>();
  1577. String iSN="";
  1578. String MK_DPK="";
  1579. String MK_DPKID="";
  1580. String oErrMessage="";
  1581. if(map.get("iSN")==null){
  1582. oErrMessage = "SN不能为空";
  1583. rmap.put("oErrMessage",oErrMessage);
  1584. return rmap;
  1585. }
  1586. List<String> list = new ArrayList<String>();
  1587. iSN=map.get("iSN").toString();
  1588. list = baseDao.callProcedureWithOut(Master+".CS_GETTESTREVOKYE", new Object[]{
  1589. String.valueOf(iSN),
  1590. String.valueOf(""),
  1591. }, new Integer[]{1,2}, new Integer[]{3,4,5});
  1592. MK_DPK = list.get(0);
  1593. MK_DPKID = list.get(1);
  1594. oErrMessage= list.get(2);
  1595. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  1596. rmap.put("oDPK",MK_DPK);
  1597. rmap.put("oDPKID",MK_DPKID);
  1598. }
  1599. else
  1600. rmap.put("oErrMessage",oErrMessage);
  1601. return rmap;
  1602. }
  1603. private Map<Object,Object> GetAcerRevoKey(JSONObject map,String Master){
  1604. Map<Object, Object> rmap = new HashMap<>();
  1605. String iSN="";
  1606. String MK_DPK="";
  1607. String MK_DPKID="";
  1608. String oErrMessage="";
  1609. if(map.get("iSN")==null){
  1610. oErrMessage = "SN不能为空";
  1611. rmap.put("oErrMessage",oErrMessage);
  1612. return rmap;
  1613. }
  1614. List<String> list = new ArrayList<String>();
  1615. iSN=map.get("iSN").toString();
  1616. list = baseDao.callProcedureWithOut(Master+".CS_GETACERREVOKYE", new Object[]{
  1617. String.valueOf(iSN),
  1618. String.valueOf(""),
  1619. }, new Integer[]{1,2}, new Integer[]{3,4,5});
  1620. MK_DPK = list.get(0);
  1621. MK_DPKID = list.get(1);
  1622. oErrMessage= list.get(2);
  1623. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  1624. rmap.put("oDPK",MK_DPK);
  1625. rmap.put("oDPKID",MK_DPKID);
  1626. }
  1627. else
  1628. rmap.put("oErrMessage",oErrMessage);
  1629. return rmap;
  1630. }
  1631. private Map<Object,Object> GetMedionRevoKey(JSONObject map,String Master){
  1632. Map<Object, Object> rmap = new HashMap<>();
  1633. String iSN="";
  1634. String MK_DPK="";
  1635. String MK_DPKID="";
  1636. String oErrMessage="";
  1637. if(map.get("iSN")==null){
  1638. oErrMessage = "SN不能为空";
  1639. rmap.put("oErrMessage",oErrMessage);
  1640. return rmap;
  1641. }
  1642. List<String> list = new ArrayList<String>();
  1643. iSN=map.get("iSN").toString();
  1644. list = baseDao.callProcedureWithOut(Master+".CS_GETMEDIONKYE", new Object[]{
  1645. String.valueOf(iSN),
  1646. String.valueOf(""),
  1647. }, new Integer[]{1,2}, new Integer[]{3,4,5});
  1648. MK_DPK = list.get(0);
  1649. MK_DPKID = list.get(1);
  1650. oErrMessage= list.get(2);
  1651. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  1652. rmap.put("oDPK",MK_DPK);
  1653. rmap.put("oDPKID",MK_DPKID);
  1654. }
  1655. else
  1656. rmap.put("oErrMessage",oErrMessage);
  1657. return rmap;
  1658. }
  1659. private Map<Object,Object> SetMedionValue(JSONObject map,String Master){
  1660. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1661. String oErrMessage="";
  1662. if(map.get("iSN")==null){
  1663. oErrMessage = "SN不能为空";
  1664. rmap.put("oErrMessage",oErrMessage);
  1665. return rmap;
  1666. }
  1667. if(map.get("iCRBValue")==null){
  1668. oErrMessage = "HashValue不能为空";
  1669. rmap.put("oErrMessage",oErrMessage);
  1670. return rmap;
  1671. }
  1672. String iSN=map.get("iSN").toString();
  1673. String iHashValue=map.get("iCRBValue").toString();
  1674. Object makecode=baseDao.getFieldDataByCondition(Master+".makeserial","ms_makecode","ms_id=(select max(ms_id) from "+Master+".makeserial where ms_sncode='"+iSN+"')");
  1675. if(makecode==null){
  1676. oErrMessage = "SN:"+iSN+"不存在";
  1677. rmap.put("oErrMessage",oErrMessage);
  1678. return rmap;
  1679. }
  1680. if(baseDao.checkIf("medion_cbr","mc_makecode='"+makecode+"' and mc_sncode='"+iSN+"'")){
  1681. baseDao.execute("delete from medion_cbr where mc_makecode='"+makecode+"' and mc_sncode='"+iSN+"'");
  1682. }
  1683. baseDao.execute("insert into medion_cbr(MC_ID, MC_MAKECODE, MC_SNCODE, MC_HASHVALUE, MC_INDATE)" +
  1684. "values(medion_cbr_seq.nextval,'"+makecode+"','"+iSN+"','"+iHashValue+"',sysdate)");
  1685. rmap.put("oErrMessage",null);
  1686. return rmap;
  1687. }
  1688. private Map<Object,Object> GetMedionValue(JSONObject map,String Master){
  1689. Map<Object, Object> rmap = new HashMap<Object, Object>();
  1690. String oErrMessage="";
  1691. if(map.get("iSN")==null){
  1692. oErrMessage = "SN不能为空";
  1693. rmap.put("oErrMessage",oErrMessage);
  1694. return rmap;
  1695. }
  1696. String iSN=map.get("iSN").toString();
  1697. SqlRowList rs=baseDao.queryForRowSet("select MC_HASHVALUE from medion_cbr where MC_SNCODE='"+iSN+"'");
  1698. if(rs.next()){
  1699. rmap.put("oCRBValue",rs.getString("MC_HASHVALUE"));
  1700. }else{
  1701. rmap.put("oCRBValue","");
  1702. }
  1703. return rmap;
  1704. }
  1705. private Map<Object,Object> GetMEIOrNetCodeRangeByPo(JSONObject map,String Master){
  1706. //实际业务数据
  1707. Map<Object, Object> rmap = new HashMap<>();
  1708. String iSN="";
  1709. String oErrMessage = null;
  1710. String oIMEI1 = "";
  1711. String oIMEI2 = "";
  1712. String oMEID = "";
  1713. String oNetCode = "";
  1714. String oPSN = "";
  1715. String oID1 = "";
  1716. String oID2 = "";
  1717. String oID3 = "";
  1718. String oKeyID = "";
  1719. String oHashValue = "";
  1720. if(map.get("iSN")==null){
  1721. oErrMessage = "SN不能为空";
  1722. rmap.put("oErrMessage",oErrMessage);
  1723. return rmap;
  1724. }
  1725. if(map.get("iIMEI1")!=null){
  1726. oIMEI1=map.get("iIMEI1").toString();
  1727. }
  1728. if(map.get("iNetCode")!=null){
  1729. oNetCode=map.get("iNetCode").toString();
  1730. }
  1731. iSN=map.get("iSN").toString();
  1732. List<String> list = new ArrayList<String>();
  1733. list = baseDao.callProcedureWithOut(Master+".CS_GETIMEIORNETCODERANGEBYPO_T", new Object[]{
  1734. String.valueOf(iSN),
  1735. String.valueOf(""),
  1736. String.valueOf(oIMEI1),
  1737. String.valueOf(oNetCode),
  1738. }, new Integer[]{1,2,3,4}, new Integer[]{5,6,7,8,9,10,11,12,13,14,15,16});
  1739. oIMEI1 = list.get(0);
  1740. oIMEI2 = list.get(1);
  1741. oMEID = list.get(3);
  1742. oNetCode = list.get(4);
  1743. oPSN = list.get(5);
  1744. oID1 = list.get(6);
  1745. oID2 = list.get(7);
  1746. oID3 = list.get(8);
  1747. oKeyID = list.get(9);
  1748. oHashValue = list.get(10);
  1749. oErrMessage= list.get(11);
  1750. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  1751. rmap.put("oIMEI1",oIMEI1);
  1752. rmap.put("oIMEI2",oIMEI2);
  1753. rmap.put("oMEID",oMEID);
  1754. rmap.put("oNetCode",oNetCode);
  1755. rmap.put("oPSN",oPSN);
  1756. rmap.put("oID1",oID1);
  1757. rmap.put("oID2",oID2);
  1758. rmap.put("oID3",oID3);
  1759. rmap.put("oKeyID",oKeyID);
  1760. rmap.put("oHashValue",oHashValue);
  1761. }
  1762. else
  1763. rmap.put("oErrMessage",oErrMessage);
  1764. return rmap;
  1765. }
  1766. private Map<Object,Object> GetRcardMOInfo(JSONObject map,String Master){
  1767. //实际业务数据
  1768. Map<Object, Object> rmap = new HashMap<>();
  1769. //取MakeProcess表中的执行记录ID最大的一个工单的号码
  1770. String oErrMessage = null;
  1771. if(map.get("iSN")==null){
  1772. oErrMessage = "SN不能为空";
  1773. rmap.put("oErrMessage",oErrMessage);
  1774. return rmap;
  1775. }
  1776. String iSN=map.get("iSN").toString();
  1777. StringBuffer sql=new StringBuffer();
  1778. sql.append("select max(ms_id)ms_id from "+Master+".makeserial where ms_sncode in (select '" + iSN + "' from dual union select sn from ");
  1779. sql.append(""+Master+".makesnrelation where beforesn='" + iSN + "' and sn<>' ' union select beforesn from "+Master+".makesnrelation where sn='" + iSN + "' and beforesn<>' ')");
  1780. SqlRowList rs = baseDao.queryForRowSet(sql.toString());
  1781. String ms_id="";
  1782. if(rs.next()){
  1783. if(rs.getString("ms_id")==null){
  1784. oErrMessage = "序列号:" + iSN + " 未归属工单";
  1785. rmap.put("oErrMessage",oErrMessage);
  1786. return rmap;
  1787. }
  1788. else{
  1789. ms_id= rs.getString("ms_id");
  1790. }
  1791. }
  1792. Object[] oMoCode = baseDao.getFieldsDataByCondition(Master+".MakeSerial", "ms_makecode,ms_prodcode", "ms_id='" + ms_id + "'");
  1793. if (oMoCode != null){
  1794. rmap.put("oMoCode",oMoCode[0]);
  1795. rmap.put("oPrCode",oMoCode[1]);
  1796. oErrMessage= null;
  1797. }
  1798. else
  1799. {
  1800. oErrMessage = "序列号:" + iSN + " 未归属工单";
  1801. }
  1802. rmap.put("oErrMessage",oErrMessage);
  1803. return rmap;
  1804. }
  1805. private Map<Object,Object> GetMobileAllInfo(JSONObject map,String Master){
  1806. //实际业务数据
  1807. Map<Object, Object> rmap = new HashMap<>();
  1808. String iSN="";
  1809. String oErrMessage = null;
  1810. String oIMEI1 = "";
  1811. String oIMEI2 = "";
  1812. String oMEID = "";
  1813. String oNetCode = "";
  1814. String oPSN = "";
  1815. String oID1 = "";
  1816. String oID2 = "";
  1817. String oID3 = "";
  1818. String oID4 = "";
  1819. String oID5 = "";
  1820. String oWIFI = "";
  1821. String oBT = "";
  1822. String oCode1 = "";
  1823. String oCode2 = "";
  1824. String oCode3 = "";
  1825. String oNetCard = "";
  1826. String oNetCard2 = "";
  1827. if(map.get("iSN")==null){
  1828. oErrMessage = "SN不能为空";
  1829. rmap.put("oErrMessage",oErrMessage);
  1830. return rmap;
  1831. }
  1832. iSN=map.get("iSN").toString();
  1833. Object ms_id =baseDao.getFieldDataByCondition(Master+".makeserial", "max(ms_id)", "ms_sncode='" + iSN + "'");
  1834. if(ms_id!=null)
  1835. {
  1836. SqlRowList rs=baseDao.queryForRowSet("select MS_NETCARD,MS_NETCARD2,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 "+Master+".MakeSerial where ms_id="+ms_id.toString());
  1837. if(rs.next()){
  1838. oWIFI = rs.getString("ms_mac");
  1839. oBT = rs.getString("ms_bt");
  1840. oPSN = rs.getString("ms_psn");
  1841. oNetCode = rs.getString("ms_netcode");
  1842. oMEID = rs.getString("ms_meid");
  1843. oIMEI1 = rs.getString("ms_imei1");
  1844. oIMEI2 = rs.getString("ms_imei2");
  1845. oCode1 = rs.getString("ms_othcode1");
  1846. oCode2 = rs.getString("ms_othcode2");
  1847. oCode3 = rs.getString("ms_othcode3");
  1848. oID1 = rs.getString("ms_othid3");
  1849. oID2 = rs.getString("ms_othid3");
  1850. oID3 = rs.getString("ms_othid3");
  1851. oNetCard = rs.getString("MS_NETCARD");
  1852. oNetCard2 = rs.getString("MS_NETCARD2");
  1853. }
  1854. }else
  1855. {
  1856. oErrMessage = "序列号" + iSN + "不存在";
  1857. rmap.put("oErrMessage",oErrMessage);
  1858. return rmap;
  1859. }
  1860. if (oErrMessage == "" || oErrMessage == null || oErrMessage == "null"){
  1861. rmap.put("oIMEI1",oIMEI1);
  1862. rmap.put("oIMEI2",oIMEI2);
  1863. rmap.put("oMEID",oMEID);
  1864. rmap.put("oNetCode",oNetCode);
  1865. rmap.put("oPSN",oPSN);
  1866. rmap.put("oID1",oID1);
  1867. rmap.put("oID2",oID2);
  1868. rmap.put("oID3",oID3);
  1869. rmap.put("oID4",oID4);
  1870. rmap.put("oID5",oID5);
  1871. rmap.put("oWIFI",oWIFI);
  1872. rmap.put("oBT",oBT);
  1873. rmap.put("oCode1",oCode1);
  1874. rmap.put("oCode2",oCode2);
  1875. rmap.put("oCode3",oCode3);
  1876. rmap.put("oNetCard",oNetCard);
  1877. rmap.put("oNetCard2",oNetCard2);
  1878. }
  1879. else
  1880. rmap.put("oErrMessage",oErrMessage);
  1881. return rmap;
  1882. }
  1883. private Map<Object,Object> SetAddressInfo(JSONObject map,String Master){
  1884. //实际业务数据
  1885. Map<Object, Object> rmap = new HashMap<>();
  1886. String oErrMessage = null;
  1887. if(map.get("iSN")==null){
  1888. oErrMessage = "SN不能为空";
  1889. rmap.put("oErrMessage",oErrMessage);
  1890. return rmap;
  1891. }
  1892. String iSN=map.get("iSN").toString();
  1893. String iWIFI = null;
  1894. String iBT = null;
  1895. String iNetCard=null;
  1896. String iNetCard2=null;
  1897. String iCode1 = null;
  1898. String iCode2 = null;
  1899. String iCode3 = null;
  1900. if(map.get("iMAC")!=null){
  1901. iWIFI=map.get("iMAC").toString();
  1902. }
  1903. if(map.get("iWIFI")!=null){
  1904. iWIFI=map.get("iWIFI").toString();
  1905. }
  1906. if(map.get("iBT")!=null){
  1907. iBT=map.get("iBT").toString();
  1908. }
  1909. if(map.get("iNetCard")!=null){
  1910. iNetCard=map.get("iNetCard").toString();
  1911. }
  1912. if(map.get("iNetCard2")!=null){
  1913. iNetCard2=map.get("iNetCard2").toString();
  1914. }
  1915. if(map.get("iCode1")!=null){
  1916. iCode1=map.get("iCode1").toString();
  1917. }
  1918. if(map.get("iCode2")!=null){
  1919. iCode2=map.get("iCode2").toString();
  1920. }
  1921. if(map.get("iCode3")!=null){
  1922. iCode3=map.get("iCode3").toString();
  1923. }
  1924. List<String> list = new ArrayList<String>();
  1925. list = baseDao.callProcedureWithOut(Master+".CS_SETADDRESSINFO_TOOL", new Object[]{
  1926. String.valueOf(iSN),
  1927. String.valueOf(iWIFI),
  1928. String.valueOf(iBT),
  1929. String.valueOf(iNetCard),
  1930. String.valueOf(iNetCard2),
  1931. String.valueOf(iCode1),
  1932. String.valueOf(iCode2),
  1933. String.valueOf(iCode3)
  1934. }, new Integer[]{1, 2, 3, 4, 5, 6,7,8}, new Integer[]{9});
  1935. oErrMessage = list.get(0);
  1936. rmap.put("oErrMessage",oErrMessage);
  1937. return rmap;
  1938. }
  1939. private Map<Object,Object> GetMaster(JSONObject map,String Master){
  1940. //实际业务数据
  1941. Map<Object, Object> rmap = new HashMap<>();
  1942. SqlRowList rs=baseDao.queryForRowSet("select ma_user,AE_KEY,AE_SECRET from mes.master left join MES.APIEMPLOYEE B on ma_user=ae_master");
  1943. while(rs.next())
  1944. {
  1945. rmap.put(rs.getString("ma_user"),rs.getString("AE_KEY")+"|"+rs.getString("AE_SECRET"));
  1946. }
  1947. return rmap;
  1948. }
  1949. private Map<Object,Object> SetMobileData(JSONObject map,String Master){
  1950. //实际业务数据
  1951. Map<Object, Object> rmap = new HashMap<>();
  1952. String oErrMessage = null;
  1953. if(map.get("iSN")==null||map.get("iTSN")==null){
  1954. oErrMessage = "SN不能为空";
  1955. rmap.put("oErrMessage",oErrMessage);
  1956. return rmap;
  1957. }
  1958. String iSN=map.get("iSN").toString();
  1959. String iTSN=map.get("iTSN").toString();
  1960. String iSourceCode = null;
  1961. String iOperater = null;
  1962. String iResult = null;
  1963. String flag = null;
  1964. String iErrCode = null;
  1965. if(map.get("iSourceCode")!=null){
  1966. iSourceCode=map.get("iSourceCode").toString();
  1967. }
  1968. if(map.get("iResCode")!=null){
  1969. iSourceCode=map.get("iResCode").toString();
  1970. }
  1971. if(map.get("iOperater")!=null){
  1972. iOperater=map.get("iOperater").toString();
  1973. }
  1974. if(map.get("iResult")!=null){
  1975. iResult=map.get("iResult").toString();
  1976. }
  1977. if(map.get("flag")!=null){
  1978. flag=map.get("flag").toString();
  1979. }
  1980. if(map.get("iErrCode")!=null){
  1981. iErrCode=map.get("iErrCode").toString();
  1982. }
  1983. List<String> list = new ArrayList<String>();
  1984. list = baseDao.callProcedureWithOut(Master+".CS_DLLSNCHANGE_TOOL", new Object[]{
  1985. String.valueOf(iTSN),
  1986. String.valueOf(iSN),
  1987. String.valueOf(iSourceCode),
  1988. String.valueOf(iOperater),
  1989. String.valueOf(iResult),
  1990. String.valueOf(iErrCode),
  1991. }, new Integer[]{1, 2, 3, 4, 5, 6}, new Integer[]{7});
  1992. oErrMessage = list.get(0);
  1993. rmap.put("oErrMessage",oErrMessage);
  1994. return rmap;
  1995. }
  1996. private Map<Object,Object> SetIMEIInfo(JSONObject map,String Master){
  1997. //实际业务数据
  1998. Map<Object, Object> rmap = new HashMap<>();
  1999. String oErrMessage = null;
  2000. if(map.get("iSN")==null){
  2001. oErrMessage = "SN不能为空";
  2002. rmap.put("oErrMessage",oErrMessage);
  2003. return rmap;
  2004. }
  2005. String iSN=map.get("iSN").toString();
  2006. String iIMEI1=null;
  2007. String iIMEI2 = null;
  2008. String iIMEI3 = null;
  2009. String iMEID = null;
  2010. String iNET = null;
  2011. String iID1 = null;
  2012. String iID2 = null;
  2013. String iID3 = null;
  2014. String iKeyID = null;
  2015. String iHashValue = null;
  2016. if(map.get("iIMEI1")!=null){
  2017. iIMEI1=map.get("iIMEI1").toString();
  2018. }
  2019. if(map.get("iIMEI2")!=null){
  2020. iIMEI2=map.get("iIMEI2").toString();
  2021. }
  2022. if(map.get("iIMEI3")!=null){
  2023. iIMEI3=map.get("iIMEI3").toString();
  2024. }
  2025. if(map.get("iMEID")!=null){
  2026. iMEID=map.get("iMEID").toString();
  2027. }
  2028. if(map.get("iNET")!=null){
  2029. iNET=map.get("iNET").toString();
  2030. }
  2031. if(map.get("iID1")!=null){
  2032. iID1=map.get("iID1").toString();
  2033. }
  2034. if(map.get("iID2")!=null){
  2035. iID2=map.get("iID2").toString();
  2036. }
  2037. if(map.get("iID3")!=null){
  2038. iID3=map.get("iID3").toString();
  2039. }
  2040. if(map.get("iKeyID")!=null){
  2041. iKeyID=map.get("iKeyID").toString();
  2042. }
  2043. if(map.get("iHashValue")!=null){
  2044. iHashValue=map.get("iHashValue").toString();
  2045. }
  2046. List<String> list = new ArrayList<String>();
  2047. list = baseDao.callProcedureWithOut(Master+".CS_SETIMEIINFO_NEW", new Object[]{
  2048. String.valueOf(iSN),
  2049. String.valueOf(iIMEI1),
  2050. String.valueOf(iIMEI2),
  2051. String.valueOf(iIMEI3),
  2052. String.valueOf(iMEID),
  2053. String.valueOf(iNET),
  2054. String.valueOf(""),
  2055. String.valueOf(iID1),
  2056. String.valueOf(iID2),
  2057. String.valueOf(iID3),
  2058. String.valueOf(iKeyID),
  2059. String.valueOf(iHashValue),
  2060. }, new Integer[]{1, 2, 3, 4, 5, 6,7,8,9,10,11,12}, new Integer[]{13});
  2061. oErrMessage = list.get(0);
  2062. rmap.put("oErrMessage",oErrMessage);
  2063. return rmap;
  2064. }
  2065. private Map<Object,Object> Set_Soft_Hard_WareInfo(JSONObject map,String Master){
  2066. //实际业务数据
  2067. Map<Object, Object> rmap = new HashMap<>();
  2068. String oErrMessage=null;
  2069. if(map.get("iSN")==null){
  2070. oErrMessage = "SN不能为空";
  2071. rmap.put("oErrMessage",oErrMessage);
  2072. return rmap;
  2073. }
  2074. String iSN=map.get("iSN").toString();
  2075. //SN在makeserial表最新一条记录ms_status为2的不允许更新
  2076. SqlRowList rsMs = baseDao.queryForRowSet("select ms_status from "+Master+".makeserial where ms_id=(select max(ms_id) from "+Master+".makeserial where ms_sncode=?)", iSN);
  2077. if(rsMs.next() && "2".equals(rsMs.getString("ms_status"))){
  2078. oErrMessage = "SN:" + iSN + " 已完工,不允许更新";
  2079. rmap.put("oErrMessage",oErrMessage);
  2080. return rmap;
  2081. }
  2082. //prodiomac表中已有该SN出货记录的不允许更新
  2083. SqlRowList rsPim = baseDao.queryForRowSet("select count(1)cn from "+Master+".prodiomac where PIM_INOROUT='OUT' and pim_mac=?", iSN);
  2084. if(rsPim.next() && rsPim.getInt(1) > 0){
  2085. oErrMessage = "SN:" + iSN + " 已存在出货记录,不允许更新";
  2086. rmap.put("oErrMessage",oErrMessage);
  2087. return rmap;
  2088. }
  2089. String iTestResult= "";
  2090. String iResCode= "";
  2091. String iClassName="";
  2092. String iTestDetail= "";
  2093. String iMaxValue= "";
  2094. String iMinValue= "";
  2095. if(map.get("iTestResult")!=null){
  2096. iTestResult=map.get("iTestResult").toString();
  2097. }
  2098. if(map.get("iClassName")!=null){
  2099. iClassName=map.get("iClassName").toString();
  2100. }
  2101. if(map.get("iResCode")!=null){
  2102. iResCode=map.get("iResCode").toString();
  2103. }
  2104. if(map.get("iTestDetail")!=null){
  2105. iTestDetail=map.get("iTestDetail").toString();
  2106. }
  2107. JSONObject map3=new JSONObject();
  2108. map3.put("iSN",iSN);
  2109. Map<Object, Object> map2=GetRcardMOInfo(map3,Master);
  2110. String omakeCode = "";
  2111. StringBuffer sql=new StringBuffer();
  2112. String[] name=iClassName.split("\\|");
  2113. String[] value=iTestDetail.split("\\|");
  2114. if(name.length!=value.length){
  2115. rmap.put("oErrMessage","测试项目名称和值的项次不一致");
  2116. return rmap;
  2117. }
  2118. for (int i=0;i<name.length;i++){
  2119. baseDao.execute("delete from "+Master+".HARDWARESOFTWARE where hs_sncode=? and HS_IITEM=? and HS_SOURCECODE=?",iSN,name[i],iResCode);
  2120. sql.setLength(0);
  2121. sql.append("Insert into "+Master+".HARDWARESOFTWARE (HS_SNCODE,HS_MAKECODE, HS_IITEM, HS_IITEMVALUES, HS_INDATE,HS_SOURCECODE)");
  2122. sql.append("values('" + iSN + "','" + map2.get("oMoCode") + "',?,?,sysdate,?)");
  2123. baseDao.execute(sql.toString(),name[i],value[i],iResCode);
  2124. }
  2125. rmap.put("oErrMessage",oErrMessage);
  2126. return rmap;
  2127. }
  2128. private Map<Object,Object> SetTestDetail(JSONObject map,String Master){
  2129. //实际业务数据
  2130. Map<Object, Object> rmap = new HashMap<>();
  2131. String oErrMessage=null;
  2132. if(map.get("iSN")==null){
  2133. oErrMessage = "SN不能为空";
  2134. rmap.put("oErrMessage",oErrMessage);
  2135. return rmap;
  2136. }
  2137. String iSN=map.get("iSN").toString();
  2138. String iTestResult= "";
  2139. String iResCode= "";
  2140. String iClassName="";
  2141. String iTestDetail= "";
  2142. String iMaxValue= "";
  2143. String iMinValue= "";
  2144. String iTestTimes= "";
  2145. if(map.get("iTestResult")!=null){
  2146. iTestResult=map.get("iTestResult").toString();
  2147. }
  2148. if(map.get("iClassName")!=null){
  2149. iClassName=map.get("iClassName").toString();
  2150. }
  2151. if(map.get("iResCode")!=null){
  2152. iResCode=map.get("iResCode").toString();
  2153. }
  2154. if(map.get("iTestDetail")!=null){
  2155. iTestDetail=map.get("iTestDetail").toString();
  2156. }
  2157. if(map.get("iTestTimes")!=null){
  2158. iTestTimes=map.get("iTestTimes").toString();
  2159. }
  2160. if(map.get("iMaxValue")!=null){
  2161. iMaxValue=map.get("iMaxValue").toString();
  2162. }
  2163. if(map.get("iMinValue")!=null){
  2164. iMinValue=map.get("iMinValue").toString();
  2165. }
  2166. JSONObject map3=new JSONObject();
  2167. map3.put("iSN",iSN);
  2168. Map<Object, Object> map2=GetRcardMOInfo(map3,Master);
  2169. String omakeCode = "";
  2170. StringBuffer sql=new StringBuffer();
  2171. String[] name=iClassName.split("\\|");
  2172. String[] result=iTestResult.split("\\|");
  2173. String[] value=iTestDetail.split("\\|");
  2174. String[] times=iTestTimes.split("\\|");
  2175. if(name.length!=value.length||name.length!=result.length){
  2176. rmap.put("oErrMessage","测试项目名称和值的项次不一致");
  2177. return rmap;
  2178. }
  2179. if(iTestTimes!=null&&!iTestTimes.equals("null")&&!iTestTimes.equals("")){
  2180. if(times.length!=name.length){
  2181. rmap.put("oErrMessage","测试项目名称和值的项次不一致");
  2182. return rmap;
  2183. }
  2184. for (int i=0;i<name.length;i++){
  2185. sql.setLength(0);
  2186. sql.append("Insert into "+Master+".STEPTESTDETAIL (STD_ID,std_testtime,STD_CLASS,STD_SN,STD_MAKECODE,STD_ACTUALVALUE,STD_TESTRESULT,STD_INDATE,STD_RESCODE,STD_MAXVALUE, STD_MINVALUE)");
  2187. sql.append("values("+Master+".STEPTESTDETAIL_SEQ.nextval,?,?,'" + iSN + "','" + map2.get("oMoCode") + "',?,?,sysdate,'" + iResCode + "','"+iMaxValue+"','"+iMinValue+"')");
  2188. baseDao.execute(sql.toString(),times[i],name[i],value[i],result[i] );
  2189. }
  2190. }else {
  2191. for (int i=0;i<name.length;i++){
  2192. sql.setLength(0);
  2193. sql.append("Insert into "+Master+".STEPTESTDETAIL (STD_ID,STD_CLASS,STD_SN,STD_MAKECODE,STD_ACTUALVALUE,STD_TESTRESULT,STD_INDATE,STD_RESCODE,STD_MAXVALUE, STD_MINVALUE)");
  2194. sql.append("values("+Master+".STEPTESTDETAIL_SEQ.nextval,?,'" + iSN + "','" + map2.get("oMoCode") + "',?,?,sysdate,'" + iResCode + "','"+iMaxValue+"','"+iMinValue+"')");
  2195. baseDao.execute(sql.toString(),name[i],value[i],result[i] );
  2196. }
  2197. }
  2198. rmap.put("oErrMessage",oErrMessage);
  2199. return rmap;
  2200. }
  2201. private Map<Object,Object> GetEDISN(JSONObject map,String Master){
  2202. Map<Object, Object> rmap = new HashMap<>();
  2203. JSONArray dataArray = map.getJSONArray("data");
  2204. List<Map<String, Object>> maps = new ArrayList<>();
  2205. for (int i = 0; i < dataArray.size(); i++) {
  2206. JSONObject item = dataArray.getJSONObject(i);
  2207. Object sn = item.get("SN");
  2208. SqlRowList rs=baseDao.queryForRowSet("select ms_id from makeserial where ms_sncode='"+sn+"'");
  2209. if(rs.next()){
  2210. baseDao.execute("update makeserial set ms_edistatus=-1 where ms_id=(select max(ms_id) from makeserial where ms_sncode='"+sn+"')");
  2211. Map<String, Object> map1 = new HashMap<>();
  2212. map1.put("Pass",sn+"标记成功");
  2213. maps.add(map1);
  2214. }
  2215. else {
  2216. Map<String, Object> map1 = new HashMap<>();
  2217. map1.put("Fail",sn+"不存在");
  2218. maps.add(map1);
  2219. }
  2220. }
  2221. rmap.put("Result",maps);
  2222. return rmap;
  2223. }
  2224. private Map<Object,Object> SetPcbaData(JSONObject map,String Master){
  2225. //实际业务数据
  2226. Map<Object, Object> rmap = new HashMap<>();
  2227. String oErrMessage = null;
  2228. if(map.get("iSN")==null){
  2229. oErrMessage = "SN不能为空";
  2230. rmap.put("oErrMessage",oErrMessage);
  2231. return rmap;
  2232. }
  2233. String iSN=map.get("iSN").toString();
  2234. String iResCode = null;
  2235. String iOperator = null;
  2236. String iResult = null;
  2237. String iErrCode = null;
  2238. if(map.get("iResCode")!=null){
  2239. iResCode=map.get("iResCode").toString();
  2240. }
  2241. if(map.get("iOperater")!=null){
  2242. iOperator=map.get("iOperater").toString();
  2243. }
  2244. if(map.get("iResult")!=null){
  2245. iResult=map.get("iResult").toString();
  2246. }
  2247. if(map.get("iErrCode")!=null){
  2248. iErrCode=map.get("iErrCode").toString();
  2249. }
  2250. SqlRowList rs=baseDao.queryForRowSet("select nvl(st_ifinput,0)st_ifinput,nvl(st_ifoqc,0)st_ifoqc,nvl(st_ifweigh,0)st_ifweigh from "+Master+".source left join "+Master+".step on sc_stepcode=st_code where sc_code='"+iResCode+"'");
  2251. if(rs.next()){
  2252. String st_ifinput=rs.getString("st_ifinput");
  2253. String st_ifoqc=rs.getString("st_ifinput");
  2254. String st_ifweigh=rs.getString("st_ifweigh");
  2255. if(st_ifinput.equals("-1")){
  2256. oErrMessage = "上料工序必须在客户端进行过站";
  2257. rmap.put("oErrMessage",oErrMessage);
  2258. return rmap;
  2259. }
  2260. if(st_ifoqc.equals("-1")){
  2261. oErrMessage = "OQC必须在客户端进行过站";
  2262. rmap.put("oErrMessage",oErrMessage);
  2263. return rmap;
  2264. }
  2265. if(st_ifweigh.equals("-1")){
  2266. oErrMessage = "称重工序必须在客户端进行过站";
  2267. rmap.put("oErrMessage",oErrMessage);
  2268. return rmap;
  2269. }
  2270. }
  2271. rs=baseDao.queryForRowSet("select ms_sncode from makeserial where ms_imei1='"+iSN+"' order by ms_id desc");
  2272. if(rs.next()){
  2273. iSN=rs.getString("ms_sncode");
  2274. }
  2275. rs=baseDao.queryForRowSet("select ms_sncode from makeserial where ms_mac='"+iSN+"' order by ms_id desc");
  2276. if(rs.next()){
  2277. iSN=rs.getString("ms_sncode");
  2278. }
  2279. JSONObject map3=new JSONObject();
  2280. map3.put("iSN",iSN);
  2281. Map<Object, Object> map2=GetRcardMOInfo(map3,Master);
  2282. String oMoCode=null;
  2283. if(map2.get("oMoCode")!=null){
  2284. oMoCode=map2.get("oMoCode").toString();
  2285. }
  2286. if (map2.get("oErrMessage")==null)
  2287. return SetStepFinish(oMoCode, iResCode, iSN, "", iResult, iOperator, iErrCode,Master);
  2288. return rmap;
  2289. }
  2290. /// <summary>
  2291. /// 获取步骤代码
  2292. /// </summary>
  2293. /// <param name="Source"></param>
  2294. /// <returns></returns>
  2295. private String GetStepCodeBySource(String Source,String Master)
  2296. {
  2297. Object o=baseDao.getFieldDataByCondition(Master+".source", "sc_stepcode", "sc_code='" + Source + "'");
  2298. if(o!=null)
  2299. return o.toString();
  2300. else
  2301. return "";
  2302. }
  2303. private Boolean CheckUserLogin(String iUserCode, String iPassWord,String Master)
  2304. {
  2305. SqlRowList rs =baseDao.queryForRowSet("select em_code from "+Master+".employee where em_code='"+iUserCode+"' and em_password =?",iPassWord);
  2306. if (rs.next())
  2307. return true;
  2308. else
  2309. {
  2310. return false;
  2311. }
  2312. }
  2313. private Map<Object,Object> GetMakeInfoBySN(JSONObject map,String Master)
  2314. {
  2315. Map<Object, Object> rmap = new HashMap<Object, Object>();
  2316. String iSN=null;
  2317. String iMakeCode=null;
  2318. String oErrMessage=null;
  2319. if(map.get("iSN")!= null){
  2320. iSN=map.get("iSN").toString();
  2321. }
  2322. if(map.get("iMakeCode")!= null){
  2323. iMakeCode=map.get("iMakeCode").toString();
  2324. }
  2325. 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,ma_remark17,ma_remark18 from "+Master+".make " +
  2326. "left join "+Master+".makeserial on ms_makecode=ma_code where ms_sncode='"+iSN+"' order by ms_id desc");
  2327. if(rs.next()){
  2328. rmap.put("oMaremark1",rs.getString("ma_remark1"));
  2329. rmap.put("oMaremark2",rs.getString("ma_remark2"));
  2330. rmap.put("oMaremark3",rs.getString("ma_remark3"));
  2331. rmap.put("oMaremark4",rs.getString("ma_remark4"));
  2332. rmap.put("oMaremark5",rs.getString("ma_remark5"));
  2333. rmap.put("oMaremark6",rs.getString("ma_remark6"));
  2334. rmap.put("oMaremark7",rs.getString("ma_remark7"));
  2335. rmap.put("oMaremark8",rs.getString("ma_remark8"));
  2336. rmap.put("oMaremark9",rs.getString("ma_remark9"));
  2337. rmap.put("oMaremark10",rs.getString("ma_remark10"));
  2338. rmap.put("oMaremark11",rs.getString("ma_remark11"));
  2339. rmap.put("oMaremark12",rs.getString("ma_remark12"));
  2340. rmap.put("oMaremark13",rs.getString("ma_remark13"));
  2341. rmap.put("oMaremark14",rs.getString("ma_remark14"));
  2342. rmap.put("oMaremark15",rs.getString("ma_remark15"));
  2343. rmap.put("oMaremark16",rs.getString("ma_remark16"));
  2344. rmap.put("oMaremark17",rs.getString("ma_remark17"));
  2345. rmap.put("oMaremark18",rs.getString("ma_remark18"));
  2346. return rmap;
  2347. }else{
  2348. 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,ma_remark17,ma_remark18 from "+Master+".make " +
  2349. " where ma_code='"+iMakeCode+"'");
  2350. if(rs.next()){
  2351. rmap.put("oMaremark1",rs.getString("ma_remark1"));
  2352. rmap.put("oMaremark2",rs.getString("ma_remark2"));
  2353. rmap.put("oMaremark3",rs.getString("ma_remark3"));
  2354. rmap.put("oMaremark4",rs.getString("ma_remark4"));
  2355. rmap.put("oMaremark5",rs.getString("ma_remark5"));
  2356. rmap.put("oMaremark6",rs.getString("ma_remark6"));
  2357. rmap.put("oMaremark7",rs.getString("ma_remark7"));
  2358. rmap.put("oMaremark8",rs.getString("ma_remark8"));
  2359. rmap.put("oMaremark9",rs.getString("ma_remark9"));
  2360. rmap.put("oMaremark10",rs.getString("ma_remark10"));
  2361. rmap.put("oMaremark11",rs.getString("ma_remark11"));
  2362. rmap.put("oMaremark12",rs.getString("ma_remark12"));
  2363. rmap.put("oMaremark13",rs.getString("ma_remark13"));
  2364. rmap.put("oMaremark14",rs.getString("ma_remark14"));
  2365. rmap.put("oMaremark15",rs.getString("ma_remark15"));
  2366. rmap.put("oMaremark16",rs.getString("ma_remark16"));
  2367. rmap.put("oMaremark17",rs.getString("ma_remark17"));
  2368. rmap.put("oMaremark18",rs.getString("ma_remark18"));
  2369. return rmap;
  2370. }else {
  2371. oErrMessage = "未查询到关联信息";
  2372. rmap.put("oErrMessage",oErrMessage);
  2373. return rmap;
  2374. }
  2375. }
  2376. }
  2377. private Map<Object,Object> GetPSN(JSONObject map,String Master){
  2378. String oErrMessage="";
  2379. Map<Object, Object> rmap = new HashMap<Object, Object>();
  2380. if(map.get("iSN")==null){
  2381. oErrMessage = "SN不能为空";
  2382. rmap.put("oErrMessage",oErrMessage);
  2383. return rmap;
  2384. }
  2385. String iSN=map.get("iSN").toString();
  2386. SqlRowList rs;
  2387. Object iMakecode=baseDao.getFieldDataByCondition(""+Master+".makeserial","ms_makecode","ms_id=(select max(ms_id) from "+Master+".makeserial where ms_sncode='"+iSN+"' or ms_firstsn='"+iSN+"')");
  2388. if(iMakecode==null){
  2389. oErrMessage = iSN+"无关联工单";
  2390. rmap.put("oErrMessage",oErrMessage);
  2391. return rmap;
  2392. }
  2393. //之前有获取过的
  2394. rs=baseDao.queryForRowSet("select msl_sncode from "+Master+".makesnlist where msl_beforesn='"+iSN+"'");
  2395. if(rs.next()){
  2396. rmap.put("msl_sncode",rs.getString("msl_sncode"));
  2397. return rmap;
  2398. }
  2399. List<String> list = new ArrayList<String>();
  2400. list = baseDao.callProcedureWithOut(Master+".SP_GETPSN", new Object[]{
  2401. String.valueOf(iSN),
  2402. String.valueOf(iMakecode),
  2403. }, new Integer[]{1,2}, new Integer[]{3});
  2404. String msl_sncode=list.get(0);
  2405. if(msl_sncode!=null){
  2406. rmap.put("msl_sncode",msl_sncode);
  2407. return rmap;
  2408. }else{
  2409. rmap.put("msl_sncode",iSN);
  2410. return rmap;
  2411. }
  2412. }
  2413. private Map<Object,Object> GetMakeRelation(JSONObject map,String Master){
  2414. String oErrMessage="";
  2415. Map<Object, Object> rmap = new HashMap<Object, Object>();
  2416. if(map.get("iSN")==null){
  2417. oErrMessage = "SN不能为空";
  2418. rmap.put("oErrMessage",oErrMessage);
  2419. return rmap;
  2420. }
  2421. String iSN=map.get("iSN").toString();
  2422. // Object iMakecode=baseDao.getFieldDataByCondition(Master+".makeserial","ms_makecode","ms_id=(select max(ms_id) from "+Master+".makeserial where ms_sncode='"+iSN+"')");
  2423. // if(iMakecode==null){
  2424. // oErrMessage = iSN+"无关联工单";
  2425. // rmap.put("oErrMessage",oErrMessage);
  2426. // return rmap;
  2427. // }
  2428. //之前有获取过的
  2429. SqlRowList rs=baseDao.queryForRowSet("select MID_ID, MID_MIID, MID_ORDERCODE, MID_SN, MID_WIFIMAC, MID_IMEI, MID_BTMAC, MID_OSVERSION, MID_OSPRODUCTKEY, MID_OSPRODUCTID, MID_DRIVERVERSION, MID_BIOSVERSION, MID_PROCESSID, MID_HARDDISKSN, MID_HARDDISKMODEL, MID_CREATETIME, MID_DETNO, MID_EC, ORDERNUMBER, MODEL, ORDERQUANTITY, BARCODE, CPU, RAM, ROM, GENERATION, WIFI, LCD, DPI, TP, NFC, CAMERA, BAT, GPS, FINGERPRINT, MAINBOARDVER, SUBBOARDVER, OSTYPE, MACHINECODE, MCU, GYROSCOPE, ACCELEROMETER, MAGNETOMETER, LIGHTSENSOR, BRIDGEIC, REMARK, IDENTITYMODULE, ASD_ID, ASD_ASID, ASD_MACHINETYPE, ASD_RECIVETIME, ASD_SALEER, ASD_CUSTNAME, ASD_QTY, ASD_SENDMAN, ASD_CONFIG, ASD_CONTENT, ASD_KIND, ASD_DEALMAN, ASD_FINISHTIME, ASD_STATUS, ASD_REMARK, ASD_ACTREMAKETIME, ASD_BIOS, ASD_OS, ASD_DETNO, ASD_SN, ASD_IMEI, ASD_INDATE, DeliveryIn.SN IN_SN, DeliveryIn.IMEI IN_IMEI, DeliveryIn.SALES IN_SALES, DeliveryIn.CUSTOMER IN_CUSTOMER, DeliveryIn.DELIVERY IN_DELIVERY, Deliveryout.SN OUT_SN, Deliveryout.IMEI OUT_IMEI, Deliveryout.SALES OUT_SALES, Deliveryout.CUSTOMER OUT_CUSTOMER, Deliveryout.DELIVERY OUT_DELIVERY, RMD_ID, RMD_RMID, RMD_MACHINETYPE, RMD_SN, RMD_REMARK, RMD_RECIVETIME, RMD_SALEER, RMD_CUSTNAME, RMD_QTY, RMD_ASSISTANT, RMD_BADNAME, RMD_BADCONFRM, RMD_BADTYPE, RMD_BADREASON, RMD_DEALMAN, RMD_FINISHTIME, RMD_STATUS, RMD_ANAREASON, RMD_REPAIR, RMD_REPAIRKIND, RMD_DAYS, RMD_MDM, RMD_TYPE, RMD_DETNO from "+Master+".makeinfodet left join "+Master+".MakeRemark on MID_ORDERCODE=ordernumber " +
  2430. "left join "+Master+".aftersaledet on asd_sn=mid_sn left join "+Master+".DeliveryIn on "+Master+".DeliveryIn.sn=mid_sn " +
  2431. "left join "+Master+".Deliveryout on "+Master+".Deliveryout.sn=mid_sn left join "+Master+".remakedet on mid_sn=RMD_SN where mid_sn='"+iSN+"' and rownum=1");
  2432. if(rs.next()){
  2433. rmap.put("MID_ID","");
  2434. rmap.put("MID_MIID",rs.getString("MID_MIID"));
  2435. rmap.put("MID_ORDERCODE",rs.getString("MID_ORDERCODE"));
  2436. rmap.put("MID_SN",rs.getString("MID_SN"));
  2437. rmap.put("MID_WIFIMAC",rs.getString("MID_WIFIMAC"));
  2438. rmap.put("MID_IMEI",rs.getString("MID_IMEI"));
  2439. rmap.put("MID_BTMAC",rs.getString("MID_BTMAC"));
  2440. rmap.put("MID_OSVERSION",rs.getString("MID_OSVERSION"));
  2441. rmap.put("MID_OSPRODUCTKEY",rs.getString("MID_OSPRODUCTKEY"));
  2442. rmap.put("MID_OSPRODUCTID",rs.getString("MID_OSPRODUCTID"));
  2443. rmap.put("MID_DRIVERVERSION",rs.getString("MID_DRIVERVERSION"));
  2444. rmap.put("MID_BIOSVERSION",rs.getString("MID_BIOSVERSION"));
  2445. rmap.put("MID_PROCESSID",rs.getString("MID_PROCESSID"));
  2446. rmap.put("MID_HARDDISKSN",rs.getString("MID_HARDDISKSN"));
  2447. rmap.put("MID_HARDDISKMODEL",rs.getString("MID_HARDDISKMODEL"));
  2448. rmap.put("MID_CREATETIME",rs.getString("MID_CREATETIME"));
  2449. rmap.put("MID_DETNO",rs.getString("MID_DETNO"));
  2450. rmap.put("MID_EC",rs.getString("MID_EC"));
  2451. rmap.put("ORDERNUMBER",rs.getString("ORDERNUMBER"));
  2452. rmap.put("CUSTOMER",rs.getString("CUSTOMER"));
  2453. rmap.put("MODEL",rs.getString("MODEL"));
  2454. rmap.put("ORDERQUANTITY",rs.getString("ORDERQUANTITY"));
  2455. rmap.put("BARCODE",rs.getString("BARCODE"));
  2456. rmap.put("CPU",rs.getString("CPU"));
  2457. rmap.put("RAM",rs.getString("RAM"));
  2458. rmap.put("ROM",rs.getString("ROM"));
  2459. rmap.put("GENERATION",rs.getString("GENERATION"));
  2460. rmap.put("WIFI",rs.getString("WIFI"));
  2461. rmap.put("LCD",rs.getString("LCD"));
  2462. rmap.put("DPI",rs.getString("DPI"));
  2463. rmap.put("TP",rs.getString("TP"));
  2464. rmap.put("NFC",rs.getString("NFC"));
  2465. rmap.put("CAMERA",rs.getString("CAMERA"));
  2466. rmap.put("BAT",rs.getString("BAT"));
  2467. rmap.put("GPS",rs.getString("GPS"));
  2468. rmap.put("FINGERPRINT",rs.getString("FINGERPRINT"));
  2469. rmap.put("MAINBOARDVER",rs.getString("MAINBOARDVER"));
  2470. rmap.put("SUBBOARDVER",rs.getString("SUBBOARDVER"));
  2471. rmap.put("OSTYPE",rs.getString("OSTYPE"));
  2472. rmap.put("MACHINECODE",rs.getString("MACHINECODE"));
  2473. rmap.put("MCU",rs.getString("MCU"));
  2474. rmap.put("GYROSCOPE",rs.getString("GYROSCOPE"));
  2475. rmap.put("ACCELEROMETER",rs.getString("ACCELEROMETER"));
  2476. rmap.put("MAGNETOMETER",rs.getString("MAGNETOMETER"));
  2477. rmap.put("LIGHTSENSOR",rs.getString("LIGHTSENSOR"));
  2478. rmap.put("BRIDGEIC",rs.getString("BRIDGEIC"));
  2479. rmap.put("REMARK",rs.getString("REMARK"));
  2480. rmap.put("IDENTITYMODULE",rs.getString("IDENTITYMODULE"));
  2481. rmap.put("ASD_MACHINETYPE",rs.getString("ASD_MACHINETYPE"));
  2482. rmap.put("ASD_RECIVETIME",rs.getString("ASD_RECIVETIME"));
  2483. rmap.put("ASD_SALEER",rs.getString("ASD_SALEER"));
  2484. rmap.put("ASD_CUSTNAME",rs.getString("ASD_CUSTNAME"));
  2485. rmap.put("ASD_QTY",rs.getString("ASD_QTY"));
  2486. rmap.put("ASD_SENDMAN",rs.getString("ASD_SENDMAN"));
  2487. rmap.put("ASD_CONFIG",rs.getString("ASD_CONFIG"));
  2488. rmap.put("ASD_CONTENT",rs.getString("ASD_CONTENT"));
  2489. rmap.put("ASD_KIND",rs.getString("ASD_KIND"));
  2490. rmap.put("ASD_DEALMAN",rs.getString("ASD_DEALMAN"));
  2491. rmap.put("ASD_FINISHTIME",rs.getString("ASD_FINISHTIME"));
  2492. rmap.put("ASD_STATUS",rs.getString("ASD_STATUS"));
  2493. rmap.put("ASD_REMARK",rs.getString("ASD_REMARK"));
  2494. rmap.put("ASD_ACTREMAKETIME",rs.getString("ASD_ACTREMAKETIME"));
  2495. rmap.put("ASD_BIOS",rs.getString("ASD_BIOS"));
  2496. rmap.put("ASD_OS",rs.getString("ASD_OS"));
  2497. rmap.put("ASD_DETNO",rs.getString("ASD_DETNO"));
  2498. rmap.put("ASD_SN",rs.getString("ASD_SN"));
  2499. rmap.put("ASD_IMEI",rs.getString("ASD_IMEI"));
  2500. rmap.put("ASD_INDATE",rs.getString("ASD_INDATE"));
  2501. rmap.put("IN_SN",rs.getString("IN_SN"));
  2502. rmap.put("IN_IMEI",rs.getString("IN_IMEI"));
  2503. rmap.put("IN_CUSTOMER",rs.getString("IN_CUSTOMER"));
  2504. rmap.put("IN_SALES",rs.getString("IN_SALES"));
  2505. rmap.put("IN_DELIVERY",rs.getString("IN_DELIVERY"));
  2506. rmap.put("OUT_SN",rs.getString("OUT_SN"));
  2507. rmap.put("OUT_IMEI",rs.getString("OUT_IMEI"));
  2508. rmap.put("OUT_CUSTOMER",rs.getString("OUT_CUSTOMER"));
  2509. rmap.put("OUT_SALES",rs.getString("OUT_SALES"));
  2510. rmap.put("OUT_DELIVERY",rs.getString("OUT_DELIVERY"));
  2511. rmap.put("RMD_MACHINETYPE",rs.getString("RMD_MACHINETYPE"));
  2512. rmap.put("RMD_SN",rs.getString("RMD_SN"));
  2513. rmap.put("RMD_REMARK",rs.getString("RMD_REMARK"));
  2514. rmap.put("RMD_RECIVETIME",rs.getString("RMD_RECIVETIME"));
  2515. rmap.put("RMD_SALEER",rs.getString("RMD_SALEER"));
  2516. rmap.put("RMD_CUSTNAME",rs.getString("RMD_CUSTNAME"));
  2517. rmap.put("RMD_QTY",rs.getString("RMD_QTY"));
  2518. rmap.put("RMD_ASSISTANT",rs.getString("RMD_ASSISTANT"));
  2519. rmap.put("RMD_BADNAME",rs.getString("RMD_BADNAME"));
  2520. rmap.put("RMD_BADCONFRM",rs.getString("RMD_BADCONFRM"));
  2521. rmap.put("RMD_BADTYPE",rs.getString("RMD_BADTYPE"));
  2522. rmap.put("RMD_BADREASON",rs.getString("RMD_BADREASON"));
  2523. rmap.put("RMD_DEALMAN",rs.getString("RMD_DEALMAN"));
  2524. rmap.put("RMD_FINISHTIME",rs.getString("RMD_FINISHTIME"));
  2525. rmap.put("RMD_STATUS",rs.getString("RMD_STATUS"));
  2526. rmap.put("RMD_ANAREASON",rs.getString("RMD_ANAREASON"));
  2527. rmap.put("RMD_REPAIR",rs.getString("RMD_REPAIR"));
  2528. rmap.put("RMD_REPAIRKIND",rs.getString("RMD_REPAIRKIND"));
  2529. rmap.put("RMD_DAYS",rs.getString("RMD_DAYS"));
  2530. rmap.put("RMD_MDM",rs.getString("RMD_MDM"));
  2531. rmap.put("RMD_TYPE",rs.getString("RMD_TYPE"));
  2532. rmap.put("RMD_DETNO",rs.getString("RMD_DETNO"));
  2533. return rmap;
  2534. }else{
  2535. oErrMessage = "无对应配置信息";
  2536. rmap.put("oErrMessage",oErrMessage);
  2537. return rmap;
  2538. }
  2539. }
  2540. private Map<Object,Object> WriteProdInfo(JSONObject map,String Master){
  2541. Map<Object, Object> rmap = new HashMap<Object, Object>();
  2542. String oErrMessage=null;
  2543. if(map.get("iProdCode")==null){
  2544. oErrMessage = "工单号不能为空";
  2545. rmap.put("oErrMessage",oErrMessage);
  2546. return rmap;
  2547. }
  2548. String ProdCode=map.get("iProdCode").toString();
  2549. String iManCode=map.get("iManCode").toString();
  2550. String Item=map.get("Item").toString();
  2551. SqlRowList rs=baseDao.queryForRowSet("select * from "+Master+".productitem where pi_prodcode='"+ProdCode+"'");
  2552. //如果已经存在工单了
  2553. if(rs.next()){
  2554. String[] str=Item.split("\\|");
  2555. String pi_id=rs.getString("pi_id");
  2556. baseDao.execute("delete from "+Master+".productitemdetail where pid_piid='"+pi_id+"'");
  2557. for (int i=0;i<str.length;i++) {
  2558. Object key = str[i].split("#")[0];
  2559. Object value = str[i].split("#")[1];
  2560. baseDao.execute("insert into "+Master+".productitemdetail(pid_id,pid_piid,pid_item,pid_value)" +
  2561. "values("+Master+".productitemdetail_seq.nextval,'"+pi_id+"','"+key.toString()+"','"+value.toString()+"')");
  2562. }
  2563. }else {
  2564. int pi_id = baseDao.getSeqId(Master+".productitem_seq");
  2565. String[] str=Item.split("\\|");
  2566. baseDao.execute("insert into "+Master+".productitem(pi_id,pi_prodcode,pi_indate,PI_INMAN)values("+pi_id+",'"+ProdCode+"',sysdate,'"+iManCode+"')");
  2567. for (int i=0;i<str.length;i++) {
  2568. Object key = str[i].split("#")[0];
  2569. Object value = str[i].split("#")[1];
  2570. baseDao.execute("insert into "+Master+".productitemdetail(pid_id,pid_piid,pid_item,pid_value)" +
  2571. "values("+Master+".productitemdetail_seq.nextval,'"+pi_id+"','"+key.toString()+"','"+value.toString()+"')");
  2572. }
  2573. }
  2574. return rmap;
  2575. }
  2576. private Map<Object,Object> GetProdInfo(JSONObject map,String Master){
  2577. Map<Object, Object> rmap = new HashMap<Object, Object>();
  2578. String iSN=null;
  2579. String oErrMessage=null;
  2580. if(map.get("iSN")==null){
  2581. oErrMessage = "SN不能为空";
  2582. rmap.put("oErrMessage",oErrMessage);
  2583. return rmap;
  2584. }
  2585. iSN=map.get("iSN").toString();
  2586. Object prcode=baseDao.getFieldDataByCondition(Master+".makeserial","ms_prodcode","ms_id=(select max(ms_id) from "+Master+".makeserial where ms_sncode='"+iSN+"')");
  2587. if(prcode==null){
  2588. oErrMessage = "SN未关联产品编号";
  2589. rmap.put("oErrMessage",oErrMessage);
  2590. return rmap;
  2591. }
  2592. SqlRowList rs=baseDao.queryForRowSet("select pid_item,pid_value from "+Master+".productitem left join "+Master+".productitemdetail on pi_id=pid_piid " +
  2593. "where pi_prodcode='"+prcode+"' and pid_item is not null");
  2594. while(rs.next()){
  2595. rmap.put(rs.getString("pid_item"),rs.getString("pid_value"));
  2596. }
  2597. return rmap;
  2598. /*if(rs.next()){
  2599. }else{
  2600. oErrMessage = "SN未查询到关联信息";
  2601. rmap.put("oErrMessage",oErrMessage);
  2602. return rmap;
  2603. }*/
  2604. }
  2605. private Map<Object,Object> GetMakeInfoByProd(JSONObject map,String Master)
  2606. {
  2607. Map<Object, Object> rmap = new HashMap<Object, Object>();
  2608. String iSN=null;
  2609. String oErrMessage=null;
  2610. if(map.get("iSN")==null){
  2611. oErrMessage = "产品编号不能为空";
  2612. rmap.put("oErrMessage",oErrMessage);
  2613. return rmap;
  2614. }
  2615. iSN=map.get("iSN").toString();
  2616. SqlRowList rs=baseDao.queryForRowSet("select pr_remark1,pr_remark2,pr_remark3,pr_remark4,pr_remark5" +
  2617. ",pr_remark6,pr_remark7,pr_remark8 from "+Master+".Makeserial left join "+Master+".product on pr_code=ms_prodcode where ms_sncode='"+iSN+"' order by ms_id desc");
  2618. if(rs.next()){
  2619. rmap.put("oProdmark1",rs.getString("pr_remark1"));
  2620. rmap.put("oProdmark2",rs.getString("pr_remark2"));
  2621. rmap.put("oProdmark3",rs.getString("pr_remark3"));
  2622. rmap.put("oProdmark4",rs.getString("pr_remark4"));
  2623. rmap.put("oProdmark5",rs.getString("pr_remark5"));
  2624. rmap.put("oProdmark6",rs.getString("pr_remark6"));
  2625. rmap.put("oProdmark7",rs.getString("pr_remark7"));
  2626. rmap.put("oProdmark8",rs.getString("pr_remark8"));
  2627. return rmap;
  2628. }else{
  2629. oErrMessage = "产品未查询到关联信息";
  2630. rmap.put("oErrMessage",oErrMessage);
  2631. return rmap;
  2632. }
  2633. }
  2634. public Map<Object,Object> SetStepFinish(String iMakeCode, String iSourceCode, String iSN, String iMPKind, String iResult, String iUserCode, String iErrCode,String Master)
  2635. {
  2636. String oErrMessage = null;
  2637. Object StepCode = baseDao.getFieldDataByCondition(Master+".Makeserial", "ms_stepcode", "ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  2638. String CurrentStep = GetStepCodeBySource(iSourceCode,Master);
  2639. Object BgCode = baseDao.getFieldDataByCondition(Master+".step", "nvl(st_badgroupcode,' ')", "st_code='" + CurrentStep + "'");
  2640. Map<Object, Object> rmap = new HashMap<>();
  2641. switch (iResult)
  2642. {
  2643. case "OK":
  2644. break;
  2645. case "NG":
  2646. if (iErrCode.equals("")||iErrCode==null)
  2647. {
  2648. oErrMessage = "测试结果为NG时必须传递不良代码";
  2649. rmap.put("oErrMessage",oErrMessage);
  2650. return rmap;
  2651. }
  2652. else
  2653. {
  2654. baseDao.updateByCondition(""+Master+".makebad", "mb_status=-1", "mb_sncode='" + iSN + "' and mb_makecode='" + iMakeCode + "' and mb_stepcode='" + CurrentStep + "' and mb_status=0");
  2655. String[] BadCode = iErrCode.split(",");
  2656. StringBuffer sql=new StringBuffer();
  2657. for (int i = 0; i < BadCode.length; i++)
  2658. {
  2659. if(!baseDao.checkIf(Master+".badcode","bc_code='"+ BadCode[i]+"'")){
  2660. oErrMessage = "不良代码"+BadCode[i]+"不存在";
  2661. rmap.put("oErrMessage",oErrMessage);
  2662. return rmap;
  2663. }
  2664. int mb_id = baseDao.getSeqId("makebad_seq");
  2665. sql.setLength(0);
  2666. sql.append("insert into "+Master+".makebad(mb_id,mb_makecode,mb_mscode,mb_sncode,mb_inman,mb_indate,mb_stepcode");
  2667. sql.append(",mb_sourcecode,mb_badcode,mb_badtable,mb_bgcode,mb_soncode,mb_status) select '" + mb_id + "'");
  2668. sql.append(",ma_code,ms_code,ms_sncode,'" + iUserCode + "',sysdate,'" + CurrentStep + "','" + iSourceCode + "','" + BadCode[i] + "','',");
  2669. sql.append("'" + BgCode + "',sp_soncode,'0' from "+Master+".make left join "+Master+".makeSerial on ms_makecode=ma_code left join "+Master+".stepProduct on ");
  2670. sql.append("sp_mothercode=ma_prodcode and sp_stepcode=ms_nextstepcode where ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  2671. baseDao.execute(sql.toString());
  2672. }
  2673. //将不良的序列号的状态码设为3
  2674. //baseDao.execute("update "+Master+".makeserial set ms_status='3' where ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  2675. }
  2676. break;
  2677. default:
  2678. oErrMessage = "测试结果必须为NG或者OK";
  2679. rmap.put("oErrMessage",oErrMessage);
  2680. return rmap;
  2681. }
  2682. //不良采集为良品是更新
  2683. if (StepCode!=null &&StepCode.toString().equals(CurrentStep) && iResult == "OK")
  2684. {
  2685. Object[] ob = baseDao.getFieldsDataByCondition(Master+".makeserial", "ms_status,ms_craftcode,ms_prodcode", "ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  2686. if (ob!=null)
  2687. {
  2688. String ms_status =ob[0].toString();
  2689. String ms_craftcode= ob[1].toString();
  2690. String ms_prodcode = ob[2].toString();
  2691. if (ms_status == "3")
  2692. {
  2693. String nextstepcode =baseDao.getFieldDataByCondition(Master+".craft left join "+Master+".craftdetail on cr_id=cd_crid ", "cd_nextstepcode", "cr_code='" + ms_craftcode + "' and cr_prodcode='" + ms_prodcode + "' and cd_stepcode='" + CurrentStep + "'").toString();
  2694. baseDao.updateByCondition(Master+".makeserial", "ms_status=1,ms_nextstepcode='" + nextstepcode + "'", "ms_sncode='" + iSN + "' and ms_makecode='" + iMakeCode + "'");
  2695. baseDao.updateByCondition(Master+".makebad", "mb_status=-1", "mb_sncode='" + iSN + "' and mb_makecode='" + iMakeCode + "'");
  2696. }
  2697. }
  2698. }
  2699. return CS_SetFinish(iMakeCode, iSourceCode, iSN, iUserCode, iResult,Master);
  2700. }
  2701. private Map<Object,Object> CS_SetFinish(String iMakeCode, String iSourceCode, String iSN, String iUserCode, String iResult,String Master)
  2702. {
  2703. Map<Object, Object> rmap = new HashMap<>();
  2704. String oErrMessage=null;
  2705. List<String> list = new ArrayList<String>();
  2706. list = baseDao.callProcedureWithOut(Master+".CS_SETSTEPRESULT_TOOL", new Object[]{
  2707. String.valueOf(iMakeCode),
  2708. String.valueOf(iSourceCode),
  2709. String.valueOf(iSN),
  2710. String.valueOf(iUserCode),
  2711. String.valueOf(iResult),
  2712. }, new Integer[]{1, 2, 3, 4, 5}, new Integer[]{6});
  2713. oErrMessage = list.get(0);
  2714. rmap.put("oErrMessage",oErrMessage);
  2715. return rmap;
  2716. }
  2717. private String checkAccessKey(String accessKey,String requestId){
  2718. Object accessSecret_O = baseDao.getFieldDataByCondition("APIEMPLOYEE", "AE_SECRET", "AE_KEY='" + accessKey + "'");
  2719. Object AE_MASTER = baseDao.getFieldDataByCondition("APIEMPLOYEE", "AE_MASTER", "AE_KEY='" + accessKey + "'");
  2720. String accessSecret = accessSecret_O == null ? "" : accessSecret_O.toString();
  2721. // 检查KEY是否合理
  2722. if (StringUtils.isEmpty(accessKey) || StringUtils.isEmpty(accessSecret) || AE_MASTER== null || "".equals(AE_MASTER.toString())) {
  2723. ApiResult apiResult = new ApiResult(ErrorMessage.ACCESSKEY_ILLEGAL.getCode(),ErrorMessage.ACCESSKEY_ILLEGAL.getMessage(),requestId);
  2724. throw new ApiSystemException(apiResult);
  2725. }
  2726. return AE_MASTER.toString();
  2727. }
  2728. }