package com.uas.ps.inquiry.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.uas.ps.core.logging.BufferedLoggerManager; import com.uas.ps.inquiry.entity.Constant; import com.uas.ps.inquiry.entity.InquirySource; import com.uas.ps.inquiry.model.Attach; import com.uas.ps.inquiry.model.PublicInquiryItem; import com.uas.ps.inquiry.model.PublicInquiryReply; import com.uas.ps.inquiry.service.InquiryForSaleService; import com.uas.ps.inquiry.support.InquiryBufferedLogger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * 针对供应商,对询价的相关操作 * * Created by hejq on 2018-01-18. */ @RequestMapping("/inquiry/sale") @RestController public class InquiryForSaleController { @Autowired private InquiryForSaleService saleService; private final static InquiryBufferedLogger logger = BufferedLoggerManager.getLogger(InquiryBufferedLogger.class); /** * 通过ID查询报价详情 * * @param itemId 已转报价的明细id * @return */ @RequestMapping(value = "/inquiry/detail", method = RequestMethod.GET) public PublicInquiryItem findById(Long itemId, Long en_uu) { logger.log("公共询价", "查询已转报价的明细", "id: " + itemId, Constant.UU, en_uu, InquirySource.PLAIN.name()); return saleService.findById(itemId); } /** * 通过id查询公共询价详情 * * @param id 询价明细id * @param enuu 企业UU号 * @return */ @RequestMapping(value = "/publicInquiry/detail", method = RequestMethod.GET) public ModelMap findInquiryById(Long id, Long enuu) { logger.log("公共询价", "通过id查询公共询价详情", "id: " + id, Constant.UU, enuu, InquirySource.PLAIN.name()); return saleService.findByIdAndEnuu(id, enuu); } /** * 卖家报价时上传附件信息 * * @param attach 附件信息 * @return * @throws Exception */ @RequestMapping(value = "/attach", method = RequestMethod.POST) public String addAttachs(@RequestBody Attach attach) throws Exception { attach = saleService.addAttachs(attach); if (null != attach.getId()) { return JSONObject.toJSONString(attach); } else { throw new Exception("保存失败"); } } /** * 作为卖家,新增报价 * * @param item 前台数据 * @return */ @RequestMapping(value = "/item/add", method = RequestMethod.POST) public String saveInquiryItem(@RequestBody PublicInquiryItem item) throws Exception { item = saleService.add(item); if (null != item.getId()) { return JSONObject.toJSONString(item); } else { throw new Exception("保存失败"); } } /** * 作为卖家,保存更新公共询价单 * * @param item 前台数据 * @return */ @RequestMapping(value = "/item/save", method = RequestMethod.POST) public String saveInquiryItems(@RequestBody PublicInquiryItem item) throws Exception { item = saleService.saveItem(item); logger.log("公共询价", "作为卖家,对公共询价进行报价操作", "sourceid: " + item.getSourceId() + ", id" + item.getId(), item.getVendUserUU(), item.getVendUU(), item.getQutoApp()); if (null != item) { return JSON.toJSONString(item.getInquiry()); } else { throw new Exception("保存失败"); } } /** * 保存询价信息 * * @author hejq * @date 2018-01-16 15:49 * @param inquiryItem 供应商报价信息 * @return * @throws Exception */ @RequestMapping(value = "/renew", method = RequestMethod.POST) public String saveItem(@RequestBody PublicInquiryItem inquiryItem) throws Exception { inquiryItem = saleService.save(inquiryItem); return JSONObject.toJSONString(inquiryItem); } /** * 根据公共询价明细id查询报价信息,判断是否已报价 * * @param id 公共询价明细id * @param en_uu 当前企业UU * @return */ @RequestMapping(value = "/quote", method = RequestMethod.GET) public PublicInquiryItem findBySourceId(Long id, Long en_uu) { logger.log("公共询价", "查询公共询价单是否已报价", "id: " + id, Constant.UU, en_uu, InquirySource.PLAIN.name()); return saleService.findBySourceIdAndEnuu(id, en_uu); } /** * 移动端转报价的功能 * * @param inquiryItemId 公共询价明细id * @param en_uu 报价企业UU号 * @param replies 报价信息 * @param leadtime 交货周期 * @param minOrderQty 最小订购 * @param minPackQty 最小包装 * @return */ @RequestMapping(value = "/mobile/quote", method = RequestMethod.POST) public ModelMap quote(Long inquiryItemId, Long en_uu, Long useruu, Long leadtime, Double minPackQty, Double minOrderQty, String replies) throws Exception { List replyList = JSONObject.parseArray(replies, PublicInquiryReply.class); logger.log("公共询价", "作为卖家,对公共询价进行报价操作", "sourceid: " + inquiryItemId, useruu, en_uu, InquirySource.UU.name()); return saleService.quoteInquiry(inquiryItemId, en_uu, useruu, replyList, leadtime, minPackQty, minOrderQty); } }