| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408 |
- package com.uas.ps.inquiry.controller;
- import com.alibaba.fastjson.JSONObject;
- import com.uas.ps.core.logging.BufferedLoggerManager;
- import com.uas.ps.httplog.annotation.HttpLog;
- import com.uas.ps.inquiry.domain.IPage;
- import com.uas.ps.inquiry.entity.BatchInquiry;
- import com.uas.ps.inquiry.entity.Constant;
- import com.uas.ps.inquiry.entity.Inquiry;
- import com.uas.ps.inquiry.entity.InquiryDecide;
- import com.uas.ps.inquiry.entity.InquiryDetail;
- import com.uas.ps.inquiry.entity.InquiryMessage;
- import com.uas.ps.inquiry.entity.InquirySource;
- import com.uas.ps.inquiry.entity.OrderStatus;
- import com.uas.ps.inquiry.model.PublicInquiryItemInfo;
- import com.uas.ps.inquiry.model.PurcInquiry;
- import com.uas.ps.inquiry.model.PurcInquiryItem;
- import com.uas.ps.inquiry.model.PurcInquiryItemInfo;
- import com.uas.ps.inquiry.page.PageInfo;
- import com.uas.ps.inquiry.page.SearchFilter;
- import com.uas.ps.inquiry.service.AttachService;
- import com.uas.ps.inquiry.service.PublicInquiryService;
- import com.uas.ps.inquiry.support.InquiryBufferedLogger;
- import java.io.UnsupportedEncodingException;
- import java.net.URLDecoder;
- import java.util.List;
- import java.util.Map;
- import javassist.NotFoundException;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.data.domain.Page;
- import org.springframework.data.domain.Sort;
- import org.springframework.ui.ModelMap;
- import org.springframework.util.StringUtils;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
- /**
- * 公共询价接口路径
- *
- * Created by hejq on 2018-01-13.
- */
- @RestController
- @RequestMapping("/inquiry/public")
- public class PublicInquiryController {
- @Autowired
- private PublicInquiryService publicInquiryService;
- @Autowired
- private AttachService attachService;
- private final static InquiryBufferedLogger logger = BufferedLoggerManager.getLogger(InquiryBufferedLogger.class);
- /**
- * 将买家ERP的公共询价写到公共询价服务中心
- *
- * @param data 封装的data
- * @param enuu 询价企业UU
- * @param address 询价企业地址信息
- * @return
- * @throws UnsupportedEncodingException
- */
- @HttpLog
- @RequestMapping(method = RequestMethod.POST)
- public void saveInquiries(@RequestParam("data") String data, Long enuu, String address) throws NotFoundException, UnsupportedEncodingException {
- String jsonStr = URLDecoder.decode(data, "UTF-8");
- address = URLDecoder.decode(address, "UTF-8");
- List<BatchInquiry> inquiries = JSONObject.parseArray(jsonStr, BatchInquiry.class);
- publicInquiryService.save(inquiries, enuu, address);
- logger.log("公共询价", "ERP上传公共询价", "size: " + inquiries.size(), Constant.UU, enuu, InquirySource.ERP.name());
- }
- /**
- * erp的公共询价单提交待审核时,更新公共询价服务中心的单据设置为不能报价
- *
- * @param data 封装的数据信息
- * @param enuu 询价企业UU
- * @throws UnsupportedEncodingException
- */
- @HttpLog
- @RequestMapping(value = "/check", method = RequestMethod.POST)
- public void updateInquiryStatus(@RequestParam("data") String data, @RequestParam("enuu") Long enuu) throws UnsupportedEncodingException {
- String jsonStr = URLDecoder.decode(data, "UTF-8");
- List<BatchInquiry> inquiries = JSONObject.parseArray(jsonStr, BatchInquiry.class);
- publicInquiryService.updateStatus(inquiries, enuu);
- logger.log("公共询价", "ERP设置公共询价不能报价", "size: " + inquiries.size(), Constant.UU, enuu, InquirySource.ERP.name());
- }
- /**
- * (针对客户)获取公共询价服务中心供应商的报价信息
- *
- * @author hejq
- * @date 2018-01-14 15:20
- * @param enuu 询价企业UU
- */
- @HttpLog
- @RequestMapping(value = "/quotation", method = RequestMethod.GET)
- public List<InquiryDetail> getReply(Long enuu) {
- List<InquiryDetail> details = publicInquiryService.findNotUploadReply(enuu);
- logger.log("公共询价", "ERP获取供应商报价信息", "size: " + details.size(), Constant.UU, enuu, "ERP");
- return details;
- }
- /**
- * 公共询价服务中心的报价信息传到买家ERP之后,修改公共询价服务中心里面的询价单明细的上传状态
- *
- * @param data 传回的id串
- * @return
- * @throws UnsupportedEncodingException
- */
- @HttpLog
- @RequestMapping(value = "/reply/back", method = RequestMethod.POST)
- public void onReplySuccess(@RequestParam("data") String data, Long enuu) throws UnsupportedEncodingException {
- String[] idArray = URLDecoder.decode(data, "UTF-8").split(",");
- logger.log("公共询价", "ERP获取报价信息返回id", "id: " + idArray, Constant.UU, enuu, "ERP");
- publicInquiryService.onReplyUploadSuccess(idArray);
- }
- /**
- * 买家在收到报价信息后,点击提交按钮后,状态传至公共询价服务中心,至此公共询价服务中心的供应商不能再对这张询价单进行报价
- *
- * @param data 封装的data信息
- * @throws UnsupportedEncodingException
- */
- @HttpLog
- @RequestMapping(value = "/checking", method = RequestMethod.POST)
- public void checkInquiry(@RequestParam("data") String data, Long enuu) throws UnsupportedEncodingException {
- String jsonStr = URLDecoder.decode(data, "UTF-8");
- List<Inquiry> inquiries = JSONObject.parseArray(jsonStr, Inquiry.class);
- logger.log("公共询价", "ERP提交报价信息应用禁止报价", "size: " + inquiries.size(), Constant.UU, enuu, "ERP");
- publicInquiryService.updateInquiryStatus(inquiries);
- }
- /**
- * 买家ERP(不)采纳了价格之后,修改公共询价服务中心里面的报价信息的状态
- *
- * @return 封装的data信息
- * @throws UnsupportedEncodingException
- */
- @HttpLog
- @RequestMapping(value = "/reply/decide", method = RequestMethod.POST)
- public void onReplyDecide(@RequestParam("data") String data, Long enuu) throws UnsupportedEncodingException {
- String jsonStr = URLDecoder.decode(data, "UTF-8");
- List<InquiryDecide> decides = JSONObject.parseArray(jsonStr, InquiryDecide.class);
- logger.log("公共询价", "ERP针对供应报价信息进行(不)采纳操作", "size: " + decides.size(), Constant.UU, enuu, "ERP");
- publicInquiryService.onReplyDecide(decides, enuu);
- }
- /**
- * 买家ERP作废询价单后,修改公共询价服务中心里面的状态
- *
- * @param data 封装的询价信息
- * @return
- * @throws UnsupportedEncodingException
- */
- @HttpLog
- @RequestMapping(value = "/invalid", method = RequestMethod.POST)
- public void onReplyInvalid(@RequestParam("data") String data, Long enuu) throws UnsupportedEncodingException {
- String jsonStr = URLDecoder.decode(data, "UTF-8");
- List<Inquiry> inquiries = JSONObject.parseArray(jsonStr, Inquiry.class);
- logger.log("公共询价", "ERP作废公共询价单返回数据到公共服务", "size: " + inquiries.size(), Constant.UU, enuu, "ERP");
- publicInquiryService.onReplyInvalid(inquiries, enuu);
- }
- /**
- * 将客户的公共询价列表中一条数据转成询价报价单数据
- *
- * @author hejq
- * @date 2018-01-14 15:20
- * @param id 公共询价明细id
- * @param enuu 报价企业UU
- * @param useruu 报价个人UU
- * @return
- */
- @HttpLog
- @RequestMapping(value = "/turntoInquiry", method = RequestMethod.POST)
- private ModelMap transtoInquiry(Long id, Long enuu, Long useruu) {
- return publicInquiryService.transtoInquiry(id, enuu, useruu);
- }
- /**
- * 通过分页参数和过滤条件查询公共询价列表信息
- *
- * @author hejq
- * @date 2018-01-17 10:27
- * @param pageInfo 分页参数
- * @param searchFilter 过滤条件
- * @return
- */
- @HttpLog
- @RequestMapping(method = RequestMethod.GET)
- public IPage<PurcInquiryItemInfo> getInquiry(PageInfo pageInfo, SearchFilter searchFilter) {
- Sort sort = new Sort(Sort.Direction.DESC, "id", "date");
- if (pageInfo.getOffset() == 0) {
- pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
- }
- pageInfo.setSort(sort);
- logger.log("公共询价", "查询公共询价信息", null, searchFilter.getUserUU(), searchFilter.getEnUU(), InquirySource.PLAIN.name());
- return publicInquiryService.findTodoByPageInfo(pageInfo, searchFilter);
- }
- /**
- * 针对商城,查询已发布的公共询价信息
- *
- * @param pageInfo 分页信息
- * @param searchFilter 过滤条件
- * @return
- */
- @HttpLog
- @RequestMapping(value = "/inquiryList", method = RequestMethod.GET)
- public IPage<PurcInquiryItemInfo> getInquiryList(PageInfo pageInfo, SearchFilter searchFilter) {
- Sort sort = new Sort(Sort.Direction.DESC, "date");
- if (pageInfo.getOffset() == 0) {
- pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
- }
- pageInfo.setSort(sort);
- if (null != searchFilter.getUserUU()) {
- pageInfo.filter("userUU", searchFilter.getUserUU());
- }
- if (null != searchFilter.getEnUU()) {
- pageInfo.filter("inquiry.enUU", searchFilter.getEnUU());
- }
- logger.log("公共询价", "查询已发布公共询价信息", null, searchFilter.getUserUU(), searchFilter.getEnUU(), InquirySource.MALL.name());
- return publicInquiryService.findTodoByPageInfo(pageInfo, searchFilter);
- }
- /**
- * 移动端查询公共询价列表信息
- *
- * @param page 页码
- * @param size 每页大小
- * @param en_uu 企业UU
- * @param _state 过滤状态
- * @param keyword 搜索词
- * @param user_tel 电话
- * @param fromDate 开始日期
- * @param endDate 截止日期
- * @return
- */
- @HttpLog
- @RequestMapping(value = "/mobile", method = RequestMethod.GET)
- public ModelMap publincInquiry(Integer page, Integer size, Long en_uu, String _state,
- String keyword, String user_tel, Long fromDate, Long endDate) {
- ModelMap map = new ModelMap();
- PageInfo pageInfo = new PageInfo();
- if (page == 0 || page == null) {
- pageInfo.setPageNumber(1);
- } else {
- pageInfo.setPageNumber(page);
- }
- if (size == 0 || size == null) {
- pageInfo.setPageSize(5);
- } else {
- pageInfo.setPageSize(size);
- }
- pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
- Sort sort = new Sort(Sort.Direction.DESC, "date");
- pageInfo.setSort(sort);
- SearchFilter filter = new SearchFilter();
- filter.setFromDate(fromDate);
- filter.setEndDate(endDate);
- filter.setKeyword(keyword);
- if (StringUtils.hasText(_state)) {
- if (_state.equals(OrderStatus.end.name())) {
- logger.log("公共询价", "查询公共询价信息", "tel: " + user_tel, Constant.UU, en_uu, InquirySource.UU.name());
- pageInfo.filter("overdue", Constant.YES);
- map.put("content", publicInquiryService.findTodoByPageInfo(pageInfo, filter).getContent());
- return map;
- } else if (_state.equals(OrderStatus.invalid)) {
- logger.log("公共询价", "查询公共询价信息", "tel: " + user_tel, Constant.UU, en_uu, InquirySource.UU.name());
- pageInfo.filter("invalid", Constant.YES);
- map.put("content", publicInquiryService.findTodoByPageInfo(pageInfo, filter).getContent());
- return map;
- } else if (_state.equals(OrderStatus.done.name())) {
- logger.log("公共询价", "查询已转报价询价列表信息", "tel: " + user_tel, Constant.UU, en_uu, InquirySource.UU.name());
- filter.setVendUU(en_uu);
- filter.setKeyword(keyword);
- map.put("content", publicInquiryService.findByPageInfo(pageInfo, filter).getContent());
- return map;
- }
- } else {
- filter.setEnUU(en_uu);
- logger.log("公共询价", "查询公共询价信息", "tel: " + user_tel, Constant.UU, en_uu, InquirySource.UU.name());
- map.put("content", publicInquiryService.findTodoByPageInfo(pageInfo, filter).getContent());
- return map;
- }
- return map;
- }
- /**
- * 通过分页信息和过滤条件查询已转报价的信息
- *
- * @author hejq
- * @date 2018-01-18 15:36
- * @param pageInfo 分页参数
- * @param filter 过滤条件
- * @return
- */
- @HttpLog
- @RequestMapping(value = "/quotation/list", method = RequestMethod.GET)
- public Page<PublicInquiryItemInfo> getQuotation(PageInfo pageInfo, String filter, String _state) {
- Sort sort = new Sort(Sort.Direction.DESC, "date");
- if (pageInfo.getOffset() == 0) {
- pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
- }
- pageInfo.setSort(sort);
- SearchFilter searchFilter = JSONObject.parseObject(filter, SearchFilter.class);
- if (null != searchFilter.getVendUU()) {
- pageInfo.filter("vendUU", searchFilter.getVendUU());
- } else if (null != searchFilter.getEnUU()) {
- pageInfo.filter("inquiry.enUU", searchFilter.getEnUU());
- } else {
- throw new IllegalAccessError("请先传入企业信息");
- }
- if (null != _state) {
- pageInfo = publicInquiryService.covert(pageInfo, _state);
- }
- logger.log("公共询价", "查询已转报价询价列表信息", "状态: " + _state == null ? "all" : _state, searchFilter.getUserUU(), searchFilter.getEnUU(), InquirySource.PLAIN.name());
- return publicInquiryService.findByPageInfo(pageInfo, searchFilter);
- }
- /**
- * 商城获取采纳列表
- * @param pageInfo
- * @param filter
- * @param _state
- * @return
- */
- @HttpLog
- @RequestMapping(value = "/quotationList", method = RequestMethod.GET)
- public Page<PublicInquiryItemInfo> getQuotationList(PageInfo pageInfo, String filter, String _state) {
- Sort sort = new Sort(Sort.Direction.DESC, "date");
- if (pageInfo.getOffset() == 0) {
- pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
- }
- pageInfo.setSort(sort);
- SearchFilter searchFilter = JSONObject.parseObject(filter, SearchFilter.class);
- if (null != _state) {
- pageInfo = publicInquiryService.covert(pageInfo, _state);
- }
- return publicInquiryService.findListByPageInfo(pageInfo, searchFilter);
- }
- /**
- * 获取最新的公共询价列表
- *
- * @param enuu 当前企业UU号
- * @param size 大小
- * @return
- */
- @HttpLog
- @RequestMapping(value = "/messageList", method = RequestMethod.GET)
- public List<InquiryMessage> getList(Long enuu, Integer size) {
- logger.log("公共询价", "获取最新的公共询价", "大小: " + size, Constant.UU, enuu, InquirySource.PLAIN.name());
- return publicInquiryService.getMessageList(enuu, size);
- }
- /**
- * 获取附件信息
- *
- * @param id 附件id
- * @return
- */
- @HttpLog
- @RequestMapping(value = "/attachUrl", method = RequestMethod.GET)
- public com.uas.ps.inquiry.model.Attach getAttach(Long id) {
- return attachService.findById(id);
- }
- /**
- * 通过询价主表id查询主表信息
- *
- * @param id 主表id
- * @return
- */
- @HttpLog
- @RequestMapping(value = "/findInquiryById", method = RequestMethod.GET)
- public PurcInquiry findById(Long id, Long enuu) {
- logger.log("公共询价", "获取询价信息", "id: " + id, Constant.UU, enuu, InquirySource.PLAIN.name());
- return publicInquiryService.findInquiryById(id);
- }
- /**
- * 商城-采购排行榜
- * @return
- */
- @HttpLog
- @RequestMapping(value = "/findCodeRankingList", method = RequestMethod.GET)
- public List<Map<String, Object>> findCodeRankingList() {
- return publicInquiryService.findCodeRankingList();
- }
- /**
- * 通过明细id查询该条询价的详情
- *
- * @param itemId 明细id
- * @param enuu enuu
- * @return
- */
- @HttpLog
- @RequestMapping(value = "/findItemByItemId", method = RequestMethod.GET)
- public PurcInquiryItemInfo findItemByItemId(Long itemId, Long enuu) {
- logger.log("公共询价", "获取询价信息", "id: " + itemId, Constant.UU, enuu, InquirySource.B2B.name());
- return publicInquiryService.findItemByItemId(itemId);
- }
- }
|