package com.uas.ps.inquiry.controller; import com.alibaba.fastjson.JSONObject; import com.uas.ps.inquiry.entity.BatchInquiry; 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.model.PublicInquiryItem; import com.uas.ps.inquiry.model.PublicInquiryItemInfo; 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.page.exception.IllegalOperatorException; import com.uas.ps.inquiry.service.PublicInquiryService; import javassist.NotFoundException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.util.List; /** * 公共询价接口路径 * * Created by hejq on 2018-01-13. */ @RestController @RequestMapping("/inquiry/public") public class PublicInquiryController { @Autowired private PublicInquiryService publicInquiryService; /** * 将买家ERP的公共询价写到公共询价服务中心 * * @param data 封装的data * @param enuu 询价企业UU * @param address 询价企业地址信息 * @return * @throws UnsupportedEncodingException */ @RequestMapping(method = RequestMethod.POST) public void saveInquiries(@RequestParam("data") String data, @RequestParam("enuu") Long enuu, @RequestParam("address") String address) throws NotFoundException, UnsupportedEncodingException { String jsonStr = URLDecoder.decode(data, "UTF-8"); address = URLDecoder.decode(address, "UTF-8"); List inquiries = JSONObject.parseArray(jsonStr, BatchInquiry.class); publicInquiryService.save(inquiries, enuu, address); } /** * erp的公共询价单提交待审核时,更新公共询价服务中心的单据设置为不能报价 * * @param data 封装的数据信息 * @param enuu 询价企业UU * @throws UnsupportedEncodingException */ @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 inquiries = JSONObject.parseArray(jsonStr, BatchInquiry.class); publicInquiryService.updateStatus(inquiries, enuu); } /** * (针对客户)获取公共询价服务中心供应商的报价信息 * * @author hejq * @date 2018-01-14 15:20 * @param enuu 询价企业UU */ @RequestMapping(value = "/infos", method = RequestMethod.GET) public List getReply(Long enuu) { List details = publicInquiryService.findNotUploadReply(enuu); return details; } /** * 公共询价服务中心的报价信息传到买家ERP之后,修改公共询价服务中心里面的询价单明细的上传状态 * * @param data 传回的id串 * @return * @throws UnsupportedEncodingException */ @RequestMapping(value = "/reply/back", method = RequestMethod.POST) public void onReplySuccess(@RequestParam("data") String data) throws UnsupportedEncodingException { String[] idArray = URLDecoder.decode(data, "UTF-8").split(","); publicInquiryService.onReplyUploadSuccess(idArray); } /** * 买家在收到报价信息后,点击提交按钮后,状态传至公共询价服务中心,至此公共询价服务中心的供应商不能再对这张询价单进行报价 * * @param data 封装的data信息 * @throws UnsupportedEncodingException */ @RequestMapping(value = "/checking", method = RequestMethod.POST) public void checkInquiry(@RequestParam("data") String data) throws UnsupportedEncodingException { String jsonStr = URLDecoder.decode(data, "UTF-8"); List inquiries = JSONObject.parseArray(jsonStr, Inquiry.class); publicInquiryService.updateInquiryStatus(inquiries); } /** * 买家ERP(不)采纳了价格之后,修改公共询价服务中心里面的报价信息的状态 * * @return 封装的data信息 * @throws UnsupportedEncodingException */ @RequestMapping(value = "/reply/decide", method = RequestMethod.POST) public void onReplyDecide(@RequestParam("data") String data, @RequestParam("enuu") Long enuu) throws UnsupportedEncodingException { String jsonStr = URLDecoder.decode(data, "UTF-8"); List decides = JSONObject.parseArray(jsonStr, InquiryDecide.class); publicInquiryService.onReplyDecide(decides, enuu); } /** * 买家ERP作废询价单后,修改公共询价服务中心里面的状态 * * @param data 封装的询价信息 * @return * @throws UnsupportedEncodingException */ @RequestMapping(value = "/invalid", method = RequestMethod.POST) public void onReplyInvalid(@RequestParam("data") String data, @RequestParam("enuu") Long enuu) throws UnsupportedEncodingException { String jsonStr = URLDecoder.decode(data, "UTF-8"); List inquiries = JSONObject.parseArray(jsonStr, Inquiry.class); publicInquiryService.onReplyInvalid(inquiries, enuu); } /** * 将客户的公共询价列表中一条数据转成询价报价单数据 * * @author hejq * @date 2018-01-14 15:20 * @param id 公共询价明细id * @param enuu 报价企业UU * @param useruu 报价个人UU * @return */ @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 info 分页参数 * @param filter 过滤条件 * @return */ @RequestMapping(method = RequestMethod.GET) public Page getInquiry(PageInfo info, SearchFilter filter) { return publicInquiryService.findTodoByPageInfo(info, filter); } /** * 移动端查询公共询价列表 * * @param pageSize 分页大小 * @param pageNumber 页码 * @param enuu enuu * @return */ @RequestMapping(value = "/mobile", method = RequestMethod.GET) public Page publincInquiry(Integer pageSize, Integer pageNumber, Long enuu) { PageInfo pageInfo = new PageInfo(); pageInfo.setPageNumber(pageNumber); pageInfo.setPageSize(pageSize); return publicInquiryService.findTodoByPageInfo(pageInfo, null); } /** * 通过分页信息和过滤条件查询已转报价的信息 * * @author hejq * @date 2018-01-18 15:36 * @param pageInfo 分页参数 * @param searchFilter 过滤条件 * @return */ @RequestMapping(value = "/quotation/list", method = RequestMethod.GET) public Page getQuotation(PageInfo pageInfo, SearchFilter searchFilter) { if (null != searchFilter.getVendUU()) { pageInfo.filter("vendUU", searchFilter.getVendUU()); } else if (null != searchFilter.getEnUU()) { pageInfo.filter("inquiry.enUU", searchFilter.getVendUU()); } else { throw new IllegalOperatorException("参数格式不对"); } return publicInquiryService.findByPageInfo(pageInfo, searchFilter); } }