InquiryForBuyerController.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. package com.uas.ps.inquiry.controller;
  2. import com.uas.ps.httplog.annotation.HttpLog;
  3. import com.uas.ps.inquiry.entity.Constant;
  4. import com.uas.ps.inquiry.entity.InquiryDetailInfo;
  5. import com.uas.ps.inquiry.entity.InquiryProductInfo;
  6. import com.uas.ps.inquiry.entity.InquirySource;
  7. import com.uas.ps.inquiry.model.PurcInquiry;
  8. import com.uas.ps.inquiry.model.PurcInquiryItemInfo;
  9. import com.uas.ps.inquiry.page.PageInfo;
  10. import com.uas.ps.inquiry.page.SearchFilter;
  11. import com.uas.ps.inquiry.service.InquiryService;
  12. import org.slf4j.Logger;
  13. import org.slf4j.LoggerFactory;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.data.domain.Page;
  16. import org.springframework.web.bind.annotation.RequestBody;
  17. import org.springframework.web.bind.annotation.RequestMapping;
  18. import org.springframework.web.bind.annotation.RequestMethod;
  19. import org.springframework.web.bind.annotation.RestController;
  20. /**
  21. * 针对买家,对询价的操作
  22. *
  23. * Created by hejq on 2018-01-17.
  24. */
  25. @RequestMapping("/inquiry/buyer")
  26. @RestController
  27. public class InquiryForBuyerController {
  28. @Autowired
  29. private InquiryService inquiryService;
  30. private final static Logger log = LoggerFactory.getLogger(InquiryForBuyerController.class);
  31. /**
  32. * 客户查询供应商报价详情
  33. * B2B调用
  34. * @param id 报价主表id
  35. * @param enuu 企业UU
  36. * @return
  37. */
  38. @HttpLog
  39. @RequestMapping(value = "/detail", method = RequestMethod.GET)
  40. public InquiryDetailInfo findById(Long id, Long enuu) {
  41. log.info("公共询价, 客户查询供应商报价详情, id: {}, Constant: {}, enuu: {}, 报价的应用来源: {}", id, Constant.UU, enuu, InquirySource.PLAIN.name());
  42. long start = System.currentTimeMillis();
  43. InquiryDetailInfo detailInfo = inquiryService.findById(id, enuu);
  44. log.info("/inquiry/buyer/save 耗时:{}", (System.currentTimeMillis() - start));
  45. return detailInfo;
  46. }
  47. /**
  48. * 通过企业UU和分页参数获取已发布的询价信息
  49. * 调用: B2C
  50. * @param pageInfo 分页参数
  51. * @param searchFilter 过滤条件
  52. * @return
  53. */
  54. @HttpLog
  55. @RequestMapping(value = "/inquiryList", method = RequestMethod.GET)
  56. public Page<PurcInquiry> getInquiry(PageInfo pageInfo, SearchFilter searchFilter) {
  57. log.info("公共询价, 通过企业UU和分页参数获取已发布的询价信息, UserUU: {}, enuu: {}, 报价的应用来源: {}", searchFilter.getUserUU(), searchFilter.getEnUU(), InquirySource.PLAIN.name());
  58. long start = System.currentTimeMillis();
  59. Page<PurcInquiry> page = inquiryService.findByPageInfo(pageInfo, searchFilter);
  60. page = inquiryService.setQuotedAmount(page);
  61. log.info("/inquiry/buyer/inquiryList 耗时:{}", (System.currentTimeMillis() - start));
  62. return page;
  63. }
  64. /**
  65. * 通过企业UU和分页参数获取已发布的询价明细
  66. * 调用: B2C
  67. * @param pageInfo 分页参数
  68. * @param searchFilter 过滤条件
  69. * @param state 过滤状态
  70. * @param overdue 是否过期 1、过期;0、 未过期
  71. * @return
  72. */
  73. @HttpLog
  74. @RequestMapping(value = "/list", method = RequestMethod.GET)
  75. public Page<PurcInquiryItemInfo> getInquiryList(PageInfo pageInfo, SearchFilter searchFilter, String state, Integer overdue) {
  76. log.info("公共询价, 通过企业UU和分页参数获取已发布的询价明细, UserUU: {}, enuu: {}, 报价的应用来源: {}", searchFilter.getUserUU(), searchFilter.getEnUU(), InquirySource.PLAIN.name());
  77. long start = System.currentTimeMillis();
  78. Page<PurcInquiryItemInfo> page = inquiryService.findTodoByPageInfo(pageInfo, searchFilter, state, overdue);
  79. log.info("/inquiry/buyer/list 耗时:{}", (System.currentTimeMillis() - start));
  80. return page;
  81. }
  82. /**
  83. * 针对客户查询单个物料明细的报价情况
  84. * 调用:B2C
  85. * @param id 来源id
  86. * @param enuu 当前企业UU
  87. * @return
  88. */
  89. @HttpLog
  90. @RequestMapping(value = "/product/detail", method = RequestMethod.GET)
  91. public InquiryProductInfo findInquiryDetailById(Long id, Long enuu) {
  92. log.info("公共询价, 针对客户查询单个物料明细的报价情况, Constant: {}, enuu: {}, 报价的应用来源: {}", Constant.UU, enuu, InquirySource.PLAIN.name());
  93. /*logger.log("公共询价", "针对客户查询单个物料明细的报价情况", null, Constant.UU, enuu, InquirySource.PLAIN.name());*/
  94. long start = System.currentTimeMillis();
  95. InquiryProductInfo info = inquiryService.findInquiryDetailById(id, enuu);
  96. log.info("/inquiry/buyer/product/detail 耗时:{}", (System.currentTimeMillis() - start));
  97. return info;
  98. }
  99. /**
  100. * 针对客户查询供应商报价信息
  101. * B2C
  102. * @param pageInfo 分页信息
  103. * @param searchFilter 过滤条件
  104. * @param enUU 客户UU
  105. * @param userUU 用户UU
  106. * @return
  107. */
  108. @HttpLog
  109. @RequestMapping(value = "/quotations", method = RequestMethod.GET)
  110. public Page<PurcInquiryItemInfo> findQuotationsByPage(PageInfo pageInfo, SearchFilter searchFilter, Long enUU, Long userUU, Short overdue) {
  111. log.info("公共询价, 客户查询供应商报价信息, userUU: {}, enUU: {}, 报价的应用来源: {}", userUU, enUU, InquirySource.MALL.name());
  112. /* logger.log("公共询价", "客户查询供应商报价信息", null, userUU, enUU, InquirySource.MALL.name());*/
  113. long start = System.currentTimeMillis();
  114. Page<PurcInquiryItemInfo> page = inquiryService.findQuotationsByPage(pageInfo, searchFilter, enUU, userUU, overdue);
  115. log.info("/inquiry/buyer/quotations 耗时:{}", (System.currentTimeMillis() - start));
  116. return page;
  117. }
  118. /**
  119. * 针对客户单个公共询价,查询供应商报价信息
  120. * B2C
  121. * @param id 询价明细id
  122. * @return
  123. */
  124. @HttpLog
  125. @RequestMapping(value = "/quotation", method = RequestMethod.GET)
  126. public PurcInquiryItemInfo findQuotationById(Long id) {
  127. long start = System.currentTimeMillis();
  128. PurcInquiryItemInfo itemInfo = inquiryService.findQuotationById(id);
  129. log.info("/inquiry/buyer/quotation 耗时:{}", (System.currentTimeMillis() - start));
  130. return itemInfo;
  131. }
  132. /**
  133. * 作为买家,保存更新公共询价单
  134. * B2B、B2C
  135. * @param inquiry 询价信息
  136. * @return
  137. */
  138. @HttpLog
  139. @RequestMapping(value = "/save", method = RequestMethod.POST)
  140. public PurcInquiry saveInquiry(@RequestBody PurcInquiry inquiry) throws Exception {
  141. long start = System.currentTimeMillis();
  142. inquiry = inquiryService.saveInquiry(inquiry);
  143. log.info("/inquiry/buyer/save post 耗时:{}", (System.currentTimeMillis() - start));
  144. if (null != inquiry.getId()) {
  145. log.info("公共询价, 新增公共询价信息, 单号: {}, 生成id: {}, RecorderUU: {}, EnUU: {}, 报价的应用来源: {}", inquiry.getCode(), inquiry.getId(), inquiry.getRecorderUU(), inquiry.getEnUU(), InquirySource.PLAIN.name());
  146. /*logger.log("公共询价", "新增公共询价信息", "单号: " + inquiry.getCode() + "生成id: " + inquiry.getId(), inquiry.getRecorderUU(), inquiry.getEnUU(), InquirySource.PLAIN.name());*/
  147. return inquiry;
  148. } else {
  149. log.info("公共询价, 新增公共询价信息失败, 单号: {}, RecorderUU: {}, EnUU: {}, 报价的应用来源: {}", inquiry.getCode(), inquiry.getRecorderUU(), inquiry.getEnUU(), InquirySource.PLAIN.name());
  150. /*logger.log("公共询价", "新增公共询价信息失败", "单号: " + inquiry.getCode(), inquiry.getRecorderUU(), inquiry.getEnUU(), InquirySource.PLAIN.name());*/
  151. throw new Exception("保存失败");
  152. }
  153. }
  154. /**
  155. * 通过明细id对供应商报价进行审核操作
  156. * B2B、B2C
  157. * @param id 报价明细id
  158. * @param status 状态
  159. * @return
  160. * @throws Exception
  161. */
  162. @HttpLog
  163. @RequestMapping(value = "/decide", method = RequestMethod.POST)
  164. public void decideQuote(Long id, Short status, Long enuu, Long useruu) throws Exception {
  165. log.info("公共询价, 通过明细id对供应商报价进行审核操作, id: {}, 采纳状态: {}, UserUU: {}, Enuu: {}, 报价的应用来源: {}", id, status, useruu, enuu, InquirySource.PLAIN.name());
  166. /* logger.log("公共询价", "通过明细id对供应商报价进行审核操作", "id: " + id + ",采纳状态: " + status, useruu, enuu, InquirySource.PLAIN.name());*/
  167. long start = System.currentTimeMillis();
  168. inquiryService.decideQuote(id, status);
  169. log.info("/inquiry/buyer/decide post 耗时:{}", (System.currentTimeMillis() - start));
  170. }
  171. /**
  172. * 通过明细id采纳供应商报价
  173. * B2C
  174. * @param id 报价明细id
  175. * @param status 状态
  176. * @return
  177. * @throws Exception
  178. */
  179. @HttpLog
  180. @RequestMapping(value = "/adopt", method = RequestMethod.POST)
  181. public void adoptQuote(Long id, Short status, Long enuu, Long useruu) throws Exception {
  182. log.info("公共询价, 通过明细id采纳供应商报价, id: {}, 采纳状态: {}, UserUU: {}, Enuu: {}, 报价的应用来源: {}", id, status, useruu, enuu, InquirySource.PLAIN.name());
  183. /* logger.log("公共询价", "通过明细id采纳供应商报价", "id: " + id + ",采纳状态: " + status, useruu, enuu, InquirySource.PLAIN.name());*/
  184. long start = System.currentTimeMillis();
  185. inquiryService.adpotQuote(id, status);
  186. log.info("/inquiry/buyer/adopt post 耗时:{}", (System.currentTimeMillis() - start));
  187. }
  188. /**
  189. * 通过明细id拒绝供应商报价
  190. * B2C
  191. * @param id 报价明细id
  192. * @param status 状态
  193. * @return
  194. * @throws Exception
  195. */
  196. @HttpLog
  197. @RequestMapping(value = "/refuse", method = RequestMethod.POST)
  198. public void refuseQuote(Long id, Short status, Long enuu, Long useruu,String refusereason) throws Exception {
  199. log.info("公共询价, 通过明细id拒绝供应商报价, id: {}, 采纳状态: {}, UserUU: {}, Enuu: {}, 报价的应用来源: {}", id, status, useruu, enuu, InquirySource.PLAIN.name());
  200. /* logger.log("公共询价", "通过明细id拒绝供应商报价", "id: " + id + ",采纳状态: " + status, useruu, enuu, InquirySource.PLAIN.name());*/
  201. long start = System.currentTimeMillis();
  202. inquiryService.refuseQuote(id, status, refusereason);
  203. log.info("/inquiry/buyer/refuse post 耗时:{}", (System.currentTimeMillis() - start));
  204. }
  205. }