MESDataServiceImpl.java 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670
  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.dto.DataCenter;
  5. import com.uas.eis.entity.ErrorMessage;
  6. import com.uas.eis.exception.ApiSystemException;
  7. import com.uas.eis.sdk.entity.ApiResult;
  8. import com.uas.eis.sdk.resp.ApiResponse;
  9. import com.uas.eis.service.MESDataService;
  10. import com.uas.eis.utils.*;
  11. import org.apache.commons.lang.StringUtils;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.beans.factory.annotation.Value;
  14. import org.springframework.stereotype.Service;
  15. import java.sql.Timestamp;
  16. import java.util.*;
  17. import java.util.logging.Logger;
  18. @Service
  19. public class MESDataServiceImpl implements MESDataService {
  20. @Autowired
  21. private BaseDao baseDao;
  22. @Value("${spring.datasource.username}")
  23. private String username;
  24. @Override
  25. public List<Map<Object,Object>> snStepPass(String accessKey, String requestId, String data) {
  26. String AE_MASTER = checkAccessKey(accessKey, requestId);
  27. List<Map<Object, Object>> maps = BaseUtil.parseGridStoreToMaps(data);
  28. SpObserver.putSp(AE_MASTER);
  29. List<Map<Object, Object>> relist = new ArrayList<>();
  30. for (Map<Object, Object> map : maps) {
  31. Map<Object, Object> remap = new HashMap<>();
  32. String remark = "";
  33. int cn = baseDao.getJdbcTemplate().queryForObject("select count(1) from TEMP_STEPPASSED where sp_id=? and nvl(t_status,'W')='W' ",Integer.class,map.get("SP_ID"));
  34. remap.put("id",map.get("SP_ID"));
  35. if(cn>0){
  36. map.put("T_STATUS","D");
  37. map.put("T_REMAKR","重复");
  38. remark = "重复";
  39. }else{
  40. map.put("T_STATUS","W");
  41. }
  42. map.put("T_KEY",accessKey);
  43. map.put("T_INDATE", Timestamp.valueOf(DateUtil.currentDateString(Constant.YMD_HMS)));
  44. try {
  45. baseDao.execute(SqlUtil.getInsertSqlByMap(map,"TEMP_STEPPASSED"));
  46. remap.put("result","OK");
  47. remap.put("remark",remark);
  48. }catch (Exception e){
  49. remap.put("result","NG");
  50. remap.put("remark",e.getMessage());
  51. e.printStackTrace();
  52. }
  53. relist.add(remap);
  54. }
  55. //baseDao.execute(SqlUtil.getInsertSqlbyGridStore(maps, "TEMP_STEPPASSED"));
  56. //baseDao.execute("update temp_steppassed set t_status='D',T_REMAKR='重复' where t_id in (select t_id from (select temp_steppassed.*,row_number()over(partition by sp_id order by t_id desc) cn from temp_steppassed where nvl(t_status,'W')='W' ) where cn>1)");
  57. SpObserver.putSp(username);
  58. return relist;
  59. }
  60. @Override
  61. public List<Map<Object,Object>> snInfo(String accessKey, String requestId, String data) {
  62. String AE_MASTER = checkAccessKey(accessKey, requestId);
  63. List<Map<Object, Object>> maps = BaseUtil.parseGridStoreToMaps(data);
  64. SpObserver.putSp(AE_MASTER);
  65. List<Map<Object, Object>> relist = new ArrayList<>();
  66. for (Map<Object, Object> map : maps) {
  67. Map<Object, Object> remap = new HashMap<>();
  68. String remark = "";
  69. int cn = baseDao.getJdbcTemplate().queryForObject("select count(1) from TEMP_SNINFO where SI_ID=? and nvl(t_status,'W')='W' ",Integer.class,map.get("SI_ID"));
  70. remap.put("id",map.get("SI_ID"));
  71. if(cn>0){
  72. map.put("T_STATUS","D");
  73. map.put("T_REMAKR","重复");
  74. remark = "重复";
  75. }else{
  76. map.put("T_STATUS","W");
  77. }
  78. map.put("T_KEY",accessKey);
  79. map.put("T_INDATE", Timestamp.valueOf(DateUtil.currentDateString(Constant.YMD_HMS)));
  80. try {
  81. baseDao.execute(SqlUtil.getInsertSqlByMap(map,"TEMP_SNINFO"));
  82. remap.put("result","OK");
  83. remap.put("remark",remark);
  84. }catch (Exception e){
  85. remap.put("result","NG");
  86. remap.put("remark",e.getMessage());
  87. e.printStackTrace();
  88. }
  89. relist.add(remap);
  90. }
  91. SpObserver.putSp(username);
  92. return relist;
  93. }
  94. @Override
  95. public List<Map<Object,Object>> makeSnRelation(String accessKey, String requestId, String data) {
  96. String AE_MASTER = checkAccessKey(accessKey, requestId);
  97. List<Map<Object, Object>> maps = BaseUtil.parseGridStoreToMaps(data);
  98. SpObserver.putSp(AE_MASTER);
  99. List<Map<Object, Object>> relist = new ArrayList<>();
  100. for (Map<Object, Object> map : maps) {
  101. Map<Object, Object> remap = new HashMap<>();
  102. String remark = "";
  103. int cn = baseDao.getJdbcTemplate().queryForObject("select count(1) from TEMP_MAKESNRELATION where ID=? and nvl(t_status,'W')='W' ",Integer.class,map.get("ID"));
  104. remap.put("id",map.get("ID"));
  105. if(cn>0){
  106. map.put("T_STATUS","D");
  107. map.put("T_REMAKR","重复");
  108. remark = "重复";
  109. }else{
  110. map.put("T_STATUS","W");
  111. }
  112. map.put("T_KEY",accessKey);
  113. map.put("T_INDATE", Timestamp.valueOf(DateUtil.currentDateString(Constant.YMD_HMS)));
  114. try {
  115. baseDao.execute(SqlUtil.getInsertSqlByMap(map,"TEMP_MAKESNRELATION"));
  116. remap.put("result","OK");
  117. remap.put("remark",remark);
  118. }catch (Exception e){
  119. remap.put("result","NG");
  120. remap.put("remark",e.getMessage());
  121. e.printStackTrace();
  122. }
  123. relist.add(remap);
  124. }
  125. SpObserver.putSp(username);
  126. return relist;
  127. }
  128. @Override
  129. public List<Map<Object,Object>> MAKEBAD(String accessKey, String requestId, String data) {
  130. String AE_MASTER = checkAccessKey(accessKey, requestId);
  131. List<Map<Object, Object>> maps = BaseUtil.parseGridStoreToMaps(data);
  132. SpObserver.putSp(AE_MASTER);
  133. List<Map<Object, Object>> relist = new ArrayList<>();
  134. for (Map<Object, Object> map : maps) {
  135. Map<Object, Object> remap = new HashMap<>();
  136. String remark = "";
  137. int cn = baseDao.getJdbcTemplate().queryForObject("select count(1) from TEMP_MAKEBAD where MB_CODE=? and nvl(t_status,'W')='W' ",Integer.class,map.get("MB_CODE"));
  138. remap.put("id",map.get("MB_CODE"));
  139. if(cn>0){
  140. map.put("T_STATUS","D");
  141. map.put("T_REMAKR","重复");
  142. remark = "重复";
  143. }else{
  144. map.put("T_STATUS","W");
  145. }
  146. map.put("T_KEY",accessKey);
  147. map.put("T_INDATE", Timestamp.valueOf(DateUtil.currentDateString(Constant.YMD_HMS)));
  148. try {
  149. baseDao.execute(SqlUtil.getInsertSqlByMap(map,"TEMP_MAKEBAD"));
  150. remap.put("result","OK");
  151. remap.put("remark",remark);
  152. }catch (Exception e){
  153. remap.put("result","NG");
  154. remap.put("remark",e.getMessage());
  155. e.printStackTrace();
  156. }
  157. relist.add(remap);
  158. }
  159. SpObserver.putSp(username);
  160. return relist;
  161. }
  162. @Override
  163. public List<Map<Object,Object>> makeBadReason(String accessKey, String requestId, String data) {
  164. String AE_MASTER = checkAccessKey(accessKey, requestId);
  165. List<Map<Object, Object>> maps = BaseUtil.parseGridStoreToMaps(data);
  166. SpObserver.putSp(AE_MASTER);
  167. List<Map<Object, Object>> relist = new ArrayList<>();
  168. for (Map<Object, Object> map : maps) {
  169. Map<Object, Object> remap = new HashMap<>();
  170. String remark = "";
  171. int cn = baseDao.getJdbcTemplate().queryForObject("select count(1) from TEMP_MAKEBADREASON where MBR_ID=? and nvl(t_status,'W')='W' ",Integer.class,map.get("MBR_ID"));
  172. remap.put("id",map.get("MBR_ID"));
  173. if(cn>0){
  174. map.put("T_STATUS","D");
  175. map.put("T_REMAKR","重复");
  176. remark = "重复";
  177. }else{
  178. map.put("T_STATUS","W");
  179. }
  180. map.put("T_KEY",accessKey);
  181. map.put("T_INDATE", Timestamp.valueOf(DateUtil.currentDateString(Constant.YMD_HMS)));
  182. try {
  183. baseDao.execute(SqlUtil.getInsertSqlByMap(map,"TEMP_MAKEBADREASON"));
  184. remap.put("result","OK");
  185. remap.put("remark",remark);
  186. }catch (Exception e){
  187. remap.put("result","NG");
  188. remap.put("remark",e.getMessage());
  189. e.printStackTrace();
  190. }
  191. relist.add(remap);
  192. }
  193. SpObserver.putSp(username);
  194. return relist;
  195. }
  196. @Override
  197. public List<Map<Object,Object>> packageDetail(String accessKey, String requestId, String data) {
  198. String AE_MASTER = checkAccessKey(accessKey, requestId);
  199. List<Map<Object, Object>> maps = BaseUtil.parseGridStoreToMaps(data);
  200. SpObserver.putSp(AE_MASTER);
  201. List<Map<Object, Object>> relist = new ArrayList<>();
  202. for (Map<Object, Object> map : maps) {
  203. Map<Object, Object> remap = new HashMap<>();
  204. String remark = "";
  205. int cn = baseDao.getJdbcTemplate().queryForObject("select count(1) from TEMP_PACKAGEDETAIL where PD_ID=? and nvl(t_status,'W')='W' ",Integer.class,map.get("MBR_ID"));
  206. remap.put("id",map.get("PD_ID"));
  207. if(cn>0){
  208. map.put("T_STATUS","D");
  209. map.put("T_REMAKR","重复");
  210. remark = "重复";
  211. }else{
  212. map.put("T_STATUS","W");
  213. }
  214. map.put("T_KEY",accessKey);
  215. map.put("T_INDATE", Timestamp.valueOf(DateUtil.currentDateString(Constant.YMD_HMS)));
  216. try {
  217. baseDao.execute(SqlUtil.getInsertSqlByMap(map,"TEMP_PACKAGEDETAIL"));
  218. remap.put("result","OK");
  219. remap.put("remark",remark);
  220. }catch (Exception e){
  221. remap.put("result","NG");
  222. remap.put("remark",e.getMessage());
  223. e.printStackTrace();
  224. }
  225. relist.add(remap);
  226. }
  227. SpObserver.putSp(username);
  228. return relist;
  229. }
  230. @Override
  231. public List<Map<Object, Object>> craftmaterial(String accessKey, String requestId, String data) {
  232. String AE_MASTER = checkAccessKey(accessKey, requestId);
  233. List<Map<Object, Object>> maps = BaseUtil.parseGridStoreToMaps(data);
  234. SpObserver.putSp(AE_MASTER);
  235. List<Map<Object, Object>> relist = new ArrayList<>();
  236. for (Map<Object, Object> map : maps) {
  237. Map<Object, Object> remap = new HashMap<>();
  238. String remark = "";
  239. int cn = baseDao.getJdbcTemplate().queryForObject("select count(1) from TEMP_CRAFTMATERIAL where cm_id=? and nvl(t_status,'W')='W' ",Integer.class,map.get("cm_id"));
  240. remap.put("id",map.get("cm_id"));
  241. if(cn>0){
  242. map.put("T_STATUS","D");
  243. map.put("T_REMAKR","重复");
  244. remark = "重复";
  245. }else{
  246. map.put("T_STATUS","W");
  247. }
  248. map.put("T_KEY",accessKey);
  249. map.put("T_INDATE", Timestamp.valueOf(DateUtil.currentDateString(Constant.YMD_HMS)));
  250. try {
  251. baseDao.execute(SqlUtil.getInsertSqlByMap(map,"TEMP_CRAFTMATERIAL"));
  252. remap.put("result","OK");
  253. remap.put("remark",remark);
  254. }catch (Exception e){
  255. remap.put("result","NG");
  256. remap.put("remark",e.getMessage());
  257. e.printStackTrace();
  258. }
  259. relist.add(remap);
  260. }
  261. SpObserver.putSp(username);
  262. return relist;
  263. }
  264. @Override
  265. public List<Map<Object, Object>> oqcbatch(String accessKey, String requestId, String data) {
  266. String AE_MASTER = checkAccessKey(accessKey, requestId);
  267. List<Map<Object, Object>> maps = BaseUtil.parseGridStoreToMaps(data);
  268. SpObserver.putSp(AE_MASTER);
  269. List<Map<Object, Object>> relist = new ArrayList<>();
  270. for (Map<Object, Object> map : maps) {
  271. Map<Object, Object> remap = new HashMap<>();
  272. String remark = "";
  273. int cn = baseDao.getJdbcTemplate().queryForObject("select count(1) from TEMP_OQCBATCHDETAIL where obd_id=? and nvl(t_status,'W')='W' ",Integer.class,map.get("obd_id"));
  274. remap.put("id",map.get("obd_id"));
  275. if(cn>0){
  276. map.put("T_STATUS","D");
  277. map.put("T_REMAKR","重复");
  278. remark = "重复";
  279. }else{
  280. map.put("T_STATUS","W");
  281. }
  282. map.put("T_KEY",accessKey);
  283. map.put("T_INDATE", Timestamp.valueOf(DateUtil.currentDateString(Constant.YMD_HMS)));
  284. try {
  285. baseDao.execute(SqlUtil.getInsertSqlByMap(map,"TEMP_OQCBATCHDETAIL"));
  286. remap.put("result","OK");
  287. remap.put("remark",remark);
  288. }catch (Exception e){
  289. remap.put("result","NG");
  290. remap.put("remark",e.getMessage());
  291. e.printStackTrace();
  292. }
  293. relist.add(remap);
  294. }
  295. SpObserver.putSp(username);
  296. return relist;
  297. }
  298. @Override
  299. public List<Map<Object, Object>> inspectdata(String accessKey, String requestId, String data) {
  300. String AE_MASTER = checkAccessKey(accessKey, requestId);
  301. List<Map<Object, Object>> maps = BaseUtil.parseGridStoreToMaps(data);
  302. SpObserver.putSp(AE_MASTER);
  303. List<Map<Object, Object>> relist = new ArrayList<>();
  304. for (Map<Object, Object> map : maps) {
  305. Map<Object, Object> remap = new HashMap<>();
  306. String remark = "";
  307. int cn = baseDao.getJdbcTemplate().queryForObject("select count(1) from temp_inspectdata where id_id=? and nvl(t_status,'W')='W' ",Integer.class,map.get("id_id"));
  308. remap.put("id",map.get("id_id"));
  309. if(cn>0){
  310. map.put("T_STATUS","D");
  311. map.put("T_REMAKR","重复");
  312. remark = "重复";
  313. }else{
  314. map.put("T_STATUS","W");
  315. }
  316. map.put("T_KEY",accessKey);
  317. map.put("T_INDATE", Timestamp.valueOf(DateUtil.currentDateString(Constant.YMD_HMS)));
  318. try {
  319. baseDao.execute(SqlUtil.getInsertSqlByMap(map,"temp_inspectdata"));
  320. remap.put("result","OK");
  321. remap.put("remark",remark);
  322. }catch (Exception e){
  323. remap.put("result","NG");
  324. remap.put("remark",e.getMessage());
  325. e.printStackTrace();
  326. }
  327. relist.add(remap);
  328. }
  329. SpObserver.putSp(username);
  330. return relist;
  331. }
  332. @Override
  333. public List<Map<Object, Object>> prodiomac(String accessKey, String requestId, String data) {
  334. String AE_MASTER = checkAccessKey(accessKey, requestId);
  335. List<Map<Object, Object>> maps = BaseUtil.parseGridStoreToMaps(data);
  336. SpObserver.putSp(AE_MASTER);
  337. List<Map<Object, Object>> relist = new ArrayList<>();
  338. for (Map<Object, Object> map : maps) {
  339. Map<Object, Object> remap = new HashMap<>();
  340. String remark = "";
  341. int cn = baseDao.getJdbcTemplate().queryForObject("select count(1) from temp_prodiomac where pim_id=? and nvl(t_status,'W')='W' ",Integer.class,map.get("pim_id"));
  342. remap.put("id",map.get("pim_id"));
  343. if(cn>0){
  344. map.put("T_STATUS","D");
  345. map.put("T_REMAKR","重复");
  346. remark = "重复";
  347. }else{
  348. map.put("T_STATUS","W");
  349. }
  350. map.put("T_KEY",accessKey);
  351. map.put("T_INDATE", Timestamp.valueOf(DateUtil.currentDateString(Constant.YMD_HMS)));
  352. try {
  353. baseDao.execute(SqlUtil.getInsertSqlByMap(map,"temp_prodiomac"));
  354. remap.put("result","OK");
  355. remap.put("remark",remark);
  356. }catch (Exception e){
  357. remap.put("result","NG");
  358. remap.put("remark",e.getMessage());
  359. e.printStackTrace();
  360. }
  361. relist.add(remap);
  362. }
  363. SpObserver.putSp(username);
  364. return relist;
  365. }
  366. @Override
  367. public List<Map<Object, Object>> oqcitemsamples(String accessKey, String requestId, String data) {
  368. String AE_MASTER = checkAccessKey(accessKey, requestId);
  369. List<Map<Object, Object>> maps = BaseUtil.parseGridStoreToMaps(data);
  370. SpObserver.putSp(AE_MASTER);
  371. List<Map<Object, Object>> relist = new ArrayList<>();
  372. for (Map<Object, Object> map : maps) {
  373. Map<Object, Object> remap = new HashMap<>();
  374. String remark = "";
  375. int cn = baseDao.getJdbcTemplate().queryForObject("select count(1) from temp_oqcitemsamples where OIS_ID=? and nvl(t_status,'W')='W' ",Integer.class,map.get("OIS_ID"));
  376. remap.put("id",map.get("OIS_ID"));
  377. if(cn>0){
  378. map.put("T_STATUS","D");
  379. map.put("T_REMAKR","重复");
  380. remark = "重复";
  381. }else{
  382. map.put("T_STATUS","W");
  383. }
  384. map.put("T_KEY",accessKey);
  385. map.put("T_INDATE", Timestamp.valueOf(DateUtil.currentDateString(Constant.YMD_HMS)));
  386. try {
  387. baseDao.execute(SqlUtil.getInsertSqlByMap(map,"TEMP_OQCITEMSAMPLES"));
  388. remap.put("result","OK");
  389. remap.put("remark",remark);
  390. }catch (Exception e){
  391. remap.put("result","NG");
  392. remap.put("remark",e.getMessage());
  393. e.printStackTrace();
  394. }
  395. relist.add(remap);
  396. }
  397. SpObserver.putSp(username);
  398. return relist;
  399. }
  400. @Override
  401. public List<Map<Object, Object>> makeserial(String accessKey, String requestId, String data) {
  402. String AE_MASTER = checkAccessKey(accessKey, requestId);
  403. List<Map<Object, Object>> maps = BaseUtil.parseGridStoreToMaps(data);
  404. SpObserver.putSp(AE_MASTER);
  405. List<Map<Object, Object>> relist = new ArrayList<>();
  406. for (Map<Object, Object> map : maps) {
  407. Map<Object, Object> remap = new HashMap<>();
  408. String remark = "";
  409. int cn = baseDao.getJdbcTemplate().queryForObject("select count(1) from temp_makeserial where ms_id=? and nvl(t_status,'W')='W' ",Integer.class,map.get("ms_id"));
  410. remap.put("id",map.get("ms_id"));
  411. if(cn>0){
  412. map.put("T_STATUS","D");
  413. map.put("T_REMAKR","重复");
  414. remark = "重复";
  415. }else{
  416. map.put("T_STATUS","W");
  417. }
  418. map.put("T_KEY",accessKey);
  419. map.put("T_INDATE", Timestamp.valueOf(DateUtil.currentDateString(Constant.YMD_HMS)));
  420. try {
  421. baseDao.execute(SqlUtil.getInsertSqlByMap(map,"temp_makeserial"));
  422. remap.put("result","OK");
  423. remap.put("remark",remark);
  424. }catch (Exception e){
  425. remap.put("result","NG");
  426. remap.put("remark",e.getMessage());
  427. e.printStackTrace();
  428. }
  429. relist.add(remap);
  430. }
  431. SpObserver.putSp(username);
  432. return relist;
  433. }
  434. @Override
  435. public ApiResult<Map<Object,Object>> barcode(String accessKey, String requestId, String data) {
  436. String AE_MASTER = checkAccessKey(accessKey, requestId);
  437. SpObserver.putSp(AE_MASTER);
  438. Map<Object, Object> map = FlexJsonUtil.fromJson(data);
  439. try {
  440. if(!StringUtil.hasText(map.get("outno"))){
  441. return ApiResponse.failRsp(ErrorMessage.BUSINESS_ILLEGAL.getCode(),requestId,"传参异常,出库单号不能为空!");
  442. }
  443. if("ADD".equals(map.get("action"))){
  444. if(!StringUtil.hasText(map.get("barlist"))){
  445. return ApiResponse.failRsp(ErrorMessage.BUSINESS_ILLEGAL.getCode(),requestId,"传参操作类型:"+map.get("type")+"是写入,barlist 不允许为空");
  446. }
  447. List<Map<Object,Object>> barlist = (ArrayList)map.get("barlist");
  448. List<Map<Object,Object>> datab = new ArrayList<>();
  449. for(Map<Object,Object> mp : barlist){
  450. Map<Object,Object> mapb = new HashMap<>();
  451. mapb.put("ACTION","W");
  452. mapb.put("ERPID",mp.get("bar_id"));
  453. mapb.put("BAR_CODE",mp.get("bar_code"));
  454. mapb.put("BAR_PRODCODE",mp.get("bar_prodcode"));
  455. mapb.put("BAR_QTY",mp.get("bar_qty"));
  456. mapb.put("BAR_LOTNO",mp.get("bar_lotno"));
  457. mapb.put("BAR_DC",mp.get("bar_dc"));
  458. mapb.put("BAR_OUTNO",mp.get("bar_outno"));
  459. mapb.put("BAR_MACODE",mp.get("bar_macode"));
  460. mapb.put("BAR_BATCHQTY",mp.get("bar_batchqty"));
  461. datab.add(mapb);
  462. }
  463. baseDao.execute(SqlUtil.getInsertSqlbyGridStore(datab,"TEMP_BARCODE"));
  464. }else if("DEL".equals(map.get("action"))){
  465. Map<Object,Object> mapb = new HashMap<>();
  466. mapb.put("ACTION","D");
  467. mapb.put("ERPID",0);
  468. mapb.put("BAR_OUTNO",map.get("outno"));
  469. baseDao.execute(SqlUtil.getInsertSqlByMap(mapb,"TEMP_BARCODE"));
  470. }else{
  471. return ApiResponse.failRsp(ErrorMessage.BUSINESS_ILLEGAL.getCode(),requestId,"传参操作类型:"+map.get("action")+"错误,只能是ADD或者DEL");
  472. }
  473. }catch (Exception e){
  474. e.printStackTrace();
  475. if(e.getMessage().length() > 500) {
  476. return ApiResponse.failRsp(ErrorMessage.BUSINESS_ILLEGAL.getCode(), requestId, "异常错误," + e.getMessage().substring(0, 500));
  477. }else{
  478. return ApiResponse.failRsp(ErrorMessage.BUSINESS_ILLEGAL.getCode(), requestId, "异常错误," + e.getMessage());
  479. }
  480. }
  481. return ApiResponse.successRsp("0",requestId,"操作成功");
  482. }
  483. /**
  484. * 栈板新增,先进行原栈板的解除绑定,解除绑定
  485. * @param requestId
  486. * @param data
  487. * {
  488. * "weight": 2455, //总重量
  489. * "kbcode": "T355", //卡板编号
  490. * "type": "彩盒" //类型是彩盒或者外箱
  491. * "detail": [{
  492. * "bcode": "53635453354" //如果类型是彩盒则传的值是ms_grossw,如果类型是外箱则 取package pa_weight
  493. * }
  494. * ]
  495. * }
  496. * @return
  497. */
  498. @Override
  499. public ApiResult<String> newPallet(String accessKey, String requestId, String data) {
  500. String AE_MASTER = checkAccessKey(accessKey, requestId);
  501. SpObserver.putSp(AE_MASTER);
  502. Map<Object, Object> map = FlexJsonUtil.fromJson(data);
  503. try {
  504. String err = checkAddParam(map);
  505. if(null != err) {
  506. return ApiResponse.failRsp(ErrorMessage.BUSINESS_ILLEGAL.getCode(), requestId, err);
  507. }
  508. List<Map<Object,Object>> barlist;
  509. if (map.get("detail") instanceof ArrayList) {
  510. barlist = (ArrayList)map.get("detail");
  511. }else{
  512. barlist = BaseUtil.parseGridStoreToMaps(map.get("detail").toString());
  513. }
  514. //将数据存入一个表里面去操作
  515. int id_ = baseDao.getSeqId("TEMP_PALLETS");
  516. List<String> sqls = new ArrayList<>();
  517. sqls.add("insert into temp_pallets(id_,type_,weight_,palletno_) values("+id_+",'"+map.get("type")+"',"+map.get("weight")+",'"+map.get("kbcode")+"')");
  518. for(Map<Object,Object> bar : barlist) {
  519. sqls.add("insert into temp_Loadingpallets(id_,code_) values("+id_+",'"+bar.get("bcode")+"')");
  520. }
  521. baseDao.execute(sqls);
  522. List<String> result = baseDao.callProcedureWithOut("SP_NEWPALLET", new Object[] {id_},new Integer[] {1}, new Integer[] {2,3});
  523. if (result.size() != 0 && result.get(1) != null) {
  524. return ApiResponse.successRsp("0",requestId,"新增栈板成功",result.get(1));
  525. }else{
  526. return ApiResponse.successRsp("0",requestId,"新增失败"+result.get(2));
  527. }
  528. }catch (Exception e){
  529. e.printStackTrace();
  530. if(e.getMessage().length() > 500) {
  531. return ApiResponse.failRsp(ErrorMessage.BUSINESS_ILLEGAL.getCode(), requestId, "异常错误," + e.getMessage().substring(0, 500));
  532. }else{
  533. return ApiResponse.failRsp(ErrorMessage.BUSINESS_ILLEGAL.getCode(), requestId, "异常错误," + e.getMessage());
  534. }
  535. }
  536. }
  537. /**
  538. * 校验传参
  539. * @param map
  540. * @return
  541. */
  542. private String checkAddParam(Map<Object, Object> map){
  543. if(!StringUtil.hasText(map.get("weight")) ){
  544. return "传参异常,总重量【weight】不能为空!";
  545. }
  546. if(!StringUtils.isNumeric(map.get("weight").toString())){
  547. return "传参异常,总重量:"+map.get("weight")+",必须是数值类型!";
  548. }
  549. if(!StringUtil.hasText(map.get("kbcode"))){
  550. return "传参异常,卡板编号【kbcode】不能为空!";
  551. }
  552. if(!StringUtil.hasText(map.get("type"))){
  553. return "传参异常,类型【type】不能为空!";
  554. }
  555. if(!"彩盒".equals(map.get("type").toString()) && !"外箱".equals(map.get("type").toString()) ){
  556. return "传参异常,类型:"+map.get("type")+",只能是彩盒或者外箱!";
  557. }
  558. if(!StringUtil.hasText(map.get("detail"))){
  559. return "传参异常,需装栈板明细【detail】不能为空!";
  560. }
  561. return null;
  562. }
  563. /**
  564. * 栈板取消绑定,增加日志记录表
  565. * @param accessKey
  566. * @param requestId
  567. * @param data
  568. * {
  569. * "type": "彩盒", //值可以是彩盒或外箱或栈板
  570. * "detail":[{
  571. * "bcode": "53635453354"
  572. * }
  573. * ]
  574. * }
  575. * @return
  576. */
  577. @Override
  578. public ApiResult<String> unbindPallet(String accessKey, String requestId, String data) {
  579. // 取消绑定,栈板未在线才可以取消,获取栈板号
  580. String AE_MASTER = checkAccessKey(accessKey, requestId);
  581. SpObserver.putSp(AE_MASTER);
  582. Map<Object, Object> map = FlexJsonUtil.fromJson(data);
  583. try {
  584. String err = checkUnBindParam(map);
  585. if(null != err) {
  586. return ApiResponse.failRsp(ErrorMessage.BUSINESS_ILLEGAL.getCode(), requestId, err);
  587. }
  588. List<Map<Object,Object>> barlist;
  589. if (map.get("detail") instanceof ArrayList) {
  590. barlist = (ArrayList)map.get("detail");
  591. }else{
  592. barlist = BaseUtil.parseGridStoreToMaps(map.get("detail").toString());
  593. }
  594. //将数据存入一个表里面去操作
  595. int id_ = baseDao.getSeqId("TEMP_PALLETS");
  596. List<String> sqls = new ArrayList<>();
  597. sqls.add("insert into temp_pallets(id_,type_) values("+id_+",'"+map.get("type")+"')");
  598. for(Map<Object,Object> bar : barlist) {
  599. sqls.add("insert into temp_Loadingpallets(id_,code_) values("+id_+",'"+bar.get("bcode")+"')");
  600. }
  601. baseDao.execute(sqls);
  602. List<String> result = baseDao.callProcedureWithOut("SP_UNBINDPALLET", new Object[] {id_},new Integer[] {1}, new Integer[] {2,3});
  603. if (result.size() != 0 && result.get(1) != null) {
  604. return ApiResponse.successRsp("0",requestId,"解绑栈板成功",result.get(1));
  605. }else{
  606. return ApiResponse.successRsp("0",requestId,"解绑失败"+result.get(2));
  607. }
  608. }catch (Exception e){
  609. e.printStackTrace();
  610. if(e.getMessage().length() > 500) {
  611. return ApiResponse.failRsp(ErrorMessage.BUSINESS_ILLEGAL.getCode(), requestId, "异常错误," + e.getMessage().substring(0, 500));
  612. }else{
  613. return ApiResponse.failRsp(ErrorMessage.BUSINESS_ILLEGAL.getCode(), requestId, "异常错误," + e.getMessage());
  614. }
  615. }
  616. }
  617. private String checkUnBindParam(Map<Object, Object> map){
  618. if(!StringUtil.hasText(map.get("type"))){
  619. return "传参异常,类型【type】不能为空!";
  620. }
  621. if(!"彩盒".equals(map.get("type").toString()) && !"外箱".equals(map.get("type").toString()) && !"栈板".equals(map.get("type").toString())){
  622. return "传参异常,类型:"+map.get("type")+",只能是彩盒或者外箱或者栈板!";
  623. }
  624. if(!StringUtil.hasText(map.get("detail"))){
  625. return "传参异常,需装栈板明细【detail】不能为空!";
  626. }
  627. return null;
  628. }
  629. private String checkAccessKey(String accessKey,String requestId){
  630. Object accessSecret_O = baseDao.getFieldDataByCondition("APIEMPLOYEE", "AE_SECRET", "AE_KEY='"+accessKey+"'");
  631. Object AE_MASTER = baseDao.getFieldDataByCondition("APIEMPLOYEE", "AE_MASTER", "AE_KEY='"+accessKey+"'");
  632. String accessSecret = accessSecret_O == null ? "" : accessSecret_O.toString();
  633. // 检查KEY是否合理
  634. if (StringUtils.isEmpty(accessKey) || StringUtils.isEmpty(accessSecret) || AE_MASTER== null || "".equals(AE_MASTER.toString())) {
  635. ApiResult apiResult = new ApiResult();
  636. apiResult.setCode(ErrorMessage.ACCESSKEY_ILLEGAL.getCode());
  637. apiResult.setMessage(ErrorMessage.ACCESSKEY_ILLEGAL.getMessage());
  638. apiResult.setRequestId(requestId);
  639. throw new ApiSystemException(apiResult);
  640. }
  641. return AE_MASTER.toString();
  642. }
  643. }