ErpDownloadController.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. package com.uas.ps.inquiry.controller;
  2. import com.uas.ps.core.logging.BufferedLoggerManager;
  3. import com.uas.ps.httplog.annotation.HttpLog;
  4. import com.uas.ps.inquiry.entity.*;
  5. import com.uas.ps.inquiry.model.PublicInquiryItem;
  6. import com.uas.ps.inquiry.service.AttachService;
  7. import com.uas.ps.inquiry.service.InquiryForSaleService;
  8. import com.uas.ps.inquiry.service.PublicInquiryService;
  9. import com.uas.ps.inquiry.support.InquiryBufferedLogger;
  10. import javassist.NotFoundException;
  11. import org.apache.log4j.Logger;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.ui.ModelMap;
  14. import org.springframework.web.bind.annotation.RequestBody;
  15. import org.springframework.web.bind.annotation.RequestMapping;
  16. import org.springframework.web.bind.annotation.RequestMethod;
  17. import org.springframework.web.bind.annotation.RestController;
  18. import java.io.UnsupportedEncodingException;
  19. import java.net.URLDecoder;
  20. import java.util.ArrayList;
  21. import java.util.List;
  22. /**
  23. * Erp从公共服务下载数据接口
  24. *
  25. * 便于将之前PublicInquiryController中的Erp相关方法整理到这个Controller,当前Controller路径与之相同。
  26. * @author dongbw
  27. * @version 2018年7月3日 14:27:25
  28. */
  29. @RestController
  30. @RequestMapping("/inquiry/public")
  31. public class ErpDownloadController {
  32. @Autowired
  33. private PublicInquiryService publicInquiryService;
  34. @Autowired
  35. private AttachService attachService;
  36. @Autowired
  37. private InquiryForSaleService saleService;
  38. private final static InquiryBufferedLogger logger = BufferedLoggerManager.getLogger(InquiryBufferedLogger.class);
  39. private final static Logger log = Logger.getLogger(Logger.class);
  40. /**
  41. * 将买家ERP的公共询价写到公共询价服务中心
  42. *
  43. * @param inquiries 公共询价信息
  44. * @param enuu 询价企业UU
  45. * @param address 询价企业地址信息
  46. * @return
  47. * @throws UnsupportedEncodingException
  48. */
  49. @HttpLog
  50. @RequestMapping(method = RequestMethod.POST)
  51. public void saveInquiries(@RequestBody List<BatchInquiry> inquiries, Long enuu, String address) throws NotFoundException, UnsupportedEncodingException {
  52. long start = System.currentTimeMillis();
  53. publicInquiryService.save(inquiries, enuu, URLDecoder.decode(address, "UTF-8"));
  54. log.info("/inquiry/public post 耗时:" + (System.currentTimeMillis() - start));
  55. logger.log("公共询价", "ERP上传公共询价", "size: " + inquiries.size(), Constant.UU, enuu, InquirySource.ERP.name());
  56. }
  57. /**
  58. * erp的公共询价单提交待审核时,更新公共询价服务中心的单据设置为不能报价
  59. *
  60. * @param inquiries 封装的数据信息
  61. * @param enuu 询价企业UU
  62. * @throws UnsupportedEncodingException
  63. */
  64. @HttpLog
  65. @RequestMapping(value = "/check", method = RequestMethod.POST)
  66. public void updateInquiryStatus(@RequestBody List<BatchInquiry> inquiries, Long enuu) throws UnsupportedEncodingException {
  67. long start = System.currentTimeMillis();
  68. publicInquiryService.updateStatus(inquiries, enuu);
  69. log.info("/inquiry/public/check post 耗时:" + (System.currentTimeMillis() - start));
  70. logger.log("公共询价", "ERP设置公共询价不能报价", "size: " + inquiries.size(), Constant.UU, enuu, InquirySource.ERP.name());
  71. }
  72. /**
  73. * (针对客户)获取公共询价服务中心供应商的报价信息
  74. *
  75. * @param enuu 询价企业UU
  76. * @author hejq
  77. * @date 2018-01-14 15:20
  78. */
  79. @HttpLog
  80. @RequestMapping(value = "/quotation", method = RequestMethod.GET)
  81. public List<InquiryDetail> getReply(Long enuu) {
  82. long start = System.currentTimeMillis();
  83. List<InquiryDetail> details = publicInquiryService.findNotUploadReply(enuu);
  84. log.info("/inquiry/public/quotation 耗时:" + (System.currentTimeMillis() - start));
  85. logger.log("公共询价", "ERP获取供应商报价信息", "size: " + details.size(), Constant.UU, enuu, InquirySource.ERP.name());
  86. return details;
  87. }
  88. /**
  89. * 公共询价服务中心的报价信息传到买家ERP之后,修改公共询价服务中心里面的询价单明细的上传状态
  90. *
  91. * @param data 传回的id串
  92. * @return
  93. * @throws UnsupportedEncodingException
  94. */
  95. @HttpLog
  96. @RequestMapping(value = "/reply/back", method = RequestMethod.POST)
  97. public void onReplySuccess(@RequestBody String data, Long enuu) throws UnsupportedEncodingException {
  98. long start = System.currentTimeMillis();
  99. String[] idArray = URLDecoder.decode(data, "UTF-8").split(",");
  100. logger.log("公共询价", "ERP获取报价信息返回id", "id: " + idArray, Constant.UU, enuu, InquirySource.ERP.name());
  101. publicInquiryService.onReplyUploadSuccess(idArray);
  102. log.info("/inquiry/public/reply/back post 耗时:" + (System.currentTimeMillis() - start));
  103. }
  104. /**
  105. * 买家在收到报价信息后,点击提交按钮后,状态传至公共询价服务中心,至此公共询价服务中心的供应商不能再对这张询价单进行报价
  106. *
  107. * @param details 封装的data信息
  108. * @throws UnsupportedEncodingException
  109. */
  110. @HttpLog
  111. @RequestMapping(value = "/checking", method = RequestMethod.POST)
  112. public void checkInquiry(@RequestBody List<InquiryDetail> details , Long enuu) throws UnsupportedEncodingException {
  113. long start = System.currentTimeMillis();
  114. logger.log("公共询价", "ERP提交报价信息应用禁止报价", "size: " + details.size(), Constant.UU, enuu, InquirySource.ERP.name());
  115. publicInquiryService.updateInquiryStatus(details, enuu);
  116. log.info("/inquiry/public/checking post 耗时:" + (System.currentTimeMillis() - start));
  117. }
  118. /**
  119. * 买家ERP(不)采纳了价格之后,修改公共询价服务中心里面的报价信息的状态
  120. *
  121. * @return 封装的data信息
  122. * @throws UnsupportedEncodingException
  123. */
  124. @HttpLog
  125. @RequestMapping(value = "/reply/decide", method = RequestMethod.POST)
  126. public void onReplyDecide(@RequestBody List<InquiryDecide> decides, Long enuu) throws UnsupportedEncodingException {
  127. long start = System.currentTimeMillis();
  128. logger.log("公共询价", "ERP针对供应报价信息进行(不)采纳操作", "size: " + decides.size(), Constant.UU, enuu, InquirySource.ERP.name());
  129. publicInquiryService.onReplyDecide(decides, enuu);
  130. log.info("/inquiry/public/reply/decide post 耗时:" + (System.currentTimeMillis() - start));
  131. }
  132. /**
  133. * 买家ERP作废询价单后,修改公共询价服务中心里面的状态
  134. *
  135. * @param inquiries 封装的询价信息
  136. * @return
  137. * @throws UnsupportedEncodingException
  138. */
  139. @HttpLog
  140. @RequestMapping(value = "/invalid", method = RequestMethod.POST)
  141. public void onReplyInvalid(@RequestBody List<Inquiry> inquiries, Long enuu) throws UnsupportedEncodingException {
  142. long start = System.currentTimeMillis();
  143. logger.log("公共询价", "ERP作废公共询价单返回数据到公共服务", "size: " + inquiries.size(), Constant.UU, enuu, InquirySource.ERP.name());
  144. publicInquiryService.onReplyInvalid(inquiries, enuu);
  145. log.info("/inquiry/public/invalid post 耗时:" + (System.currentTimeMillis() - start));
  146. }
  147. /**
  148. * 买家采纳或拒绝之后,上传到报价方UAS
  149. *
  150. * @param enUU 报价企业UU
  151. * @author dongbw
  152. * @date 2018年7月3日 15:49:11
  153. */
  154. @HttpLog
  155. @RequestMapping(value = "/down/decide", method = RequestMethod.GET)
  156. public List<PublicInquiryItem> downloadDecide(Long enUU) {
  157. long start = System.currentTimeMillis();
  158. List<PublicInquiryItem> items = publicInquiryService.findDecideNotUploadReply(enUU);
  159. log.info("/inquiry/public/down/decide 耗时:" + (System.currentTimeMillis() - start));
  160. logger.log("公共询价", "买家采纳或拒绝之后,上传到报价方UAS", "size: " + items.size(), Constant.UU, enUU, InquirySource.ERP.name());
  161. return items;
  162. }
  163. /**
  164. * 买家采纳或拒绝之后,上传到报价方UAS 之后,UAS回调 修改状态
  165. *
  166. * @param ids 采纳或拒绝的报价单明细id list
  167. * @param enUU 报价方企业UU
  168. * @author dongbw
  169. * @date 2018年7月3日 15:49:11
  170. */
  171. @HttpLog
  172. @RequestMapping(value = "/down/decide/back", method = RequestMethod.POST)
  173. public ModelMap downloadDecideBack(String ids, Long enUU) throws UnsupportedEncodingException {
  174. long start = System.currentTimeMillis();
  175. String[] idArray = URLDecoder.decode(ids, "UTF-8").split(",");
  176. List<Long> idList = new ArrayList<>();
  177. for (String id : idArray) {
  178. idList.add(Long.valueOf(id));
  179. }
  180. ModelMap map = publicInquiryService.downloadDecideBack(idList, enUU);
  181. log.info("/inquiry/public/down/decide/back 耗时:" + (System.currentTimeMillis() - start));
  182. logger.log("公共询价", "买家采纳或拒绝之后,上传到报价方UAS的回调", "size: " + idList.size(), Constant.UU, enUU, InquirySource.ERP.name());
  183. return map;
  184. }
  185. /**
  186. * 将报价方在商城报价的单据同步到报价方UAS
  187. *
  188. * @param enUU 报价企业UU
  189. * @author dongbw
  190. * @date 2018年7月3日 16:21
  191. */
  192. @HttpLog
  193. @RequestMapping(value = "/down/reply", method = RequestMethod.GET)
  194. public List<PublicInquiryItem> downReply(Long enUU) {
  195. long start = System.currentTimeMillis();
  196. List<PublicInquiryItem> details = publicInquiryService.findNotUploadToUas(enUU);
  197. log.info("/inquiry/public/quotation 耗时:" + (System.currentTimeMillis() - start));
  198. logger.log("公共询价", "ERP获取供应商报价信息", "size: " + details.size(), Constant.UU, enUU, InquirySource.ERP.name());
  199. return details;
  200. }
  201. /**
  202. * 将报价方在商城报价的单据同步到报价方UAS 之后 回调 修改状态
  203. *
  204. * @param enUU 报价企业UU
  205. * @param ids 报价单明细id list
  206. * @author dongbw
  207. * @date 2018年7月3日 16:21
  208. */
  209. @HttpLog
  210. @RequestMapping(value = "/down/reply/back", method = RequestMethod.POST)
  211. public void onReplyDownSuccess(String ids, Long enUU) throws UnsupportedEncodingException {
  212. long start = System.currentTimeMillis();
  213. String[] idArray = URLDecoder.decode(ids, "UTF-8").split(",");
  214. logger.log("公共询价", "将报价方在商城报价的单据同步到报价方UAS 之后 回调 修改状态", "id: " + idArray, Constant.UU, enUU, InquirySource.ERP.name());
  215. publicInquiryService.onReplyDownLoadSuccess(idArray);
  216. log.info("/inquiry/public/down/reply/back post 耗时:" + (System.currentTimeMillis() - start));
  217. }
  218. }