package com.uas.ps.inquiry.controller; import com.uas.ps.core.logging.BufferedLoggerManager; import com.uas.ps.httplog.annotation.HttpLog; import com.uas.ps.inquiry.entity.*; import com.uas.ps.inquiry.model.PublicInquiryItem; import com.uas.ps.inquiry.service.AttachService; import com.uas.ps.inquiry.service.InquiryForSaleService; import com.uas.ps.inquiry.service.PublicInquiryService; import com.uas.ps.inquiry.support.InquiryBufferedLogger; import javassist.NotFoundException; import org.apache.log4j.Logger; 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.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.util.ArrayList; import java.util.List; /** * Erp从公共服务下载数据接口 * * 便于将之前PublicInquiryController中的Erp相关方法整理到这个Controller,当前Controller路径与之相同。 * @author dongbw * @version 2018年7月3日 14:27:25 */ @RestController @RequestMapping("/inquiry/public") public class ErpDownloadController { @Autowired private PublicInquiryService publicInquiryService; @Autowired private AttachService attachService; @Autowired private InquiryForSaleService saleService; private final static InquiryBufferedLogger logger = BufferedLoggerManager.getLogger(InquiryBufferedLogger.class); private final static Logger log = Logger.getLogger(Logger.class); /** * 将买家ERP的公共询价写到公共询价服务中心 * * @param inquiries 公共询价信息 * @param enuu 询价企业UU * @param address 询价企业地址信息 * @return * @throws UnsupportedEncodingException */ @HttpLog @RequestMapping(method = RequestMethod.POST) public void saveInquiries(@RequestBody List inquiries, Long enuu, String address) throws NotFoundException, UnsupportedEncodingException { long start = System.currentTimeMillis(); publicInquiryService.save(inquiries, enuu, URLDecoder.decode(address, "UTF-8")); log.info("/inquiry/public post 耗时:" + (System.currentTimeMillis() - start)); logger.log("公共询价", "ERP上传公共询价", "size: " + inquiries.size(), Constant.UU, enuu, InquirySource.ERP.name()); } /** * erp的公共询价单提交待审核时,更新公共询价服务中心的单据设置为不能报价 * * @param inquiries 封装的数据信息 * @param enuu 询价企业UU * @throws UnsupportedEncodingException */ @HttpLog @RequestMapping(value = "/check", method = RequestMethod.POST) public void updateInquiryStatus(@RequestBody List inquiries, Long enuu) throws UnsupportedEncodingException { long start = System.currentTimeMillis(); publicInquiryService.updateStatus(inquiries, enuu); log.info("/inquiry/public/check post 耗时:" + (System.currentTimeMillis() - start)); logger.log("公共询价", "ERP设置公共询价不能报价", "size: " + inquiries.size(), Constant.UU, enuu, InquirySource.ERP.name()); } /** * (针对客户)获取公共询价服务中心供应商的报价信息 * * @param enuu 询价企业UU * @author hejq * @date 2018-01-14 15:20 */ @HttpLog @RequestMapping(value = "/quotation", method = RequestMethod.GET) public List getReply(Long enuu) { long start = System.currentTimeMillis(); List details = publicInquiryService.findNotUploadReply(enuu); log.info("/inquiry/public/quotation 耗时:" + (System.currentTimeMillis() - start)); logger.log("公共询价", "ERP获取供应商报价信息", "size: " + details.size(), Constant.UU, enuu, InquirySource.ERP.name()); return details; } /** * 公共询价服务中心的报价信息传到买家ERP之后,修改公共询价服务中心里面的询价单明细的上传状态 * * @param data 传回的id串 * @return * @throws UnsupportedEncodingException */ @HttpLog @RequestMapping(value = "/reply/back", method = RequestMethod.POST) public void onReplySuccess(@RequestBody String data, Long enuu) throws UnsupportedEncodingException { long start = System.currentTimeMillis(); String[] idArray = URLDecoder.decode(data, "UTF-8").split(","); logger.log("公共询价", "ERP获取报价信息返回id", "id: " + idArray, Constant.UU, enuu, InquirySource.ERP.name()); publicInquiryService.onReplyUploadSuccess(idArray); log.info("/inquiry/public/reply/back post 耗时:" + (System.currentTimeMillis() - start)); } /** * 买家在收到报价信息后,点击提交按钮后,状态传至公共询价服务中心,至此公共询价服务中心的供应商不能再对这张询价单进行报价 * * @param details 封装的data信息 * @throws UnsupportedEncodingException */ @HttpLog @RequestMapping(value = "/checking", method = RequestMethod.POST) public void checkInquiry(@RequestBody List details , Long enuu) throws UnsupportedEncodingException { long start = System.currentTimeMillis(); logger.log("公共询价", "ERP提交报价信息应用禁止报价", "size: " + details.size(), Constant.UU, enuu, InquirySource.ERP.name()); publicInquiryService.updateInquiryStatus(details, enuu); log.info("/inquiry/public/checking post 耗时:" + (System.currentTimeMillis() - start)); } /** * 买家ERP(不)采纳了价格之后,修改公共询价服务中心里面的报价信息的状态 * * @return 封装的data信息 * @throws UnsupportedEncodingException */ @HttpLog @RequestMapping(value = "/reply/decide", method = RequestMethod.POST) public void onReplyDecide(@RequestBody List decides, Long enuu) throws UnsupportedEncodingException { long start = System.currentTimeMillis(); logger.log("公共询价", "ERP针对供应报价信息进行(不)采纳操作", "size: " + decides.size(), Constant.UU, enuu, InquirySource.ERP.name()); publicInquiryService.onReplyDecide(decides, enuu); log.info("/inquiry/public/reply/decide post 耗时:" + (System.currentTimeMillis() - start)); } /** * 买家ERP作废询价单后,修改公共询价服务中心里面的状态 * * @param inquiries 封装的询价信息 * @return * @throws UnsupportedEncodingException */ @HttpLog @RequestMapping(value = "/invalid", method = RequestMethod.POST) public void onReplyInvalid(@RequestBody List inquiries, Long enuu) throws UnsupportedEncodingException { long start = System.currentTimeMillis(); logger.log("公共询价", "ERP作废公共询价单返回数据到公共服务", "size: " + inquiries.size(), Constant.UU, enuu, InquirySource.ERP.name()); publicInquiryService.onReplyInvalid(inquiries, enuu); log.info("/inquiry/public/invalid post 耗时:" + (System.currentTimeMillis() - start)); } /** * 买家采纳或拒绝之后,上传到报价方UAS * * @param enUU 报价企业UU * @author dongbw * @date 2018年7月3日 15:49:11 */ @HttpLog @RequestMapping(value = "/down/decide", method = RequestMethod.GET) public List downloadDecide(Long enUU) { long start = System.currentTimeMillis(); List items = publicInquiryService.findDecideNotUploadReply(enUU); log.info("/inquiry/public/down/decide 耗时:" + (System.currentTimeMillis() - start)); logger.log("公共询价", "买家采纳或拒绝之后,上传到报价方UAS", "size: " + items.size(), Constant.UU, enUU, InquirySource.ERP.name()); return items; } /** * 买家采纳或拒绝之后,上传到报价方UAS 之后,UAS回调 修改状态 * * @param ids 采纳或拒绝的报价单明细id list * @param enUU 报价方企业UU * @author dongbw * @date 2018年7月3日 15:49:11 */ @HttpLog @RequestMapping(value = "/down/decide/back", method = RequestMethod.POST) public ModelMap downloadDecideBack(String ids, Long enUU) throws UnsupportedEncodingException { long start = System.currentTimeMillis(); String[] idArray = URLDecoder.decode(ids, "UTF-8").split(","); List idList = new ArrayList<>(); for (String id : idArray) { idList.add(Long.valueOf(id)); } ModelMap map = publicInquiryService.downloadDecideBack(idList, enUU); log.info("/inquiry/public/down/decide/back 耗时:" + (System.currentTimeMillis() - start)); logger.log("公共询价", "买家采纳或拒绝之后,上传到报价方UAS的回调", "size: " + idList.size(), Constant.UU, enUU, InquirySource.ERP.name()); return map; } /** * 将报价方在商城报价的单据同步到报价方UAS * * @param enUU 报价企业UU * @author dongbw * @date 2018年7月3日 16:21 */ @HttpLog @RequestMapping(value = "/down/reply", method = RequestMethod.GET) public List downReply(Long enUU) { long start = System.currentTimeMillis(); List details = publicInquiryService.findNotUploadToUas(enUU); log.info("/inquiry/public/quotation 耗时:" + (System.currentTimeMillis() - start)); logger.log("公共询价", "ERP获取供应商报价信息", "size: " + details.size(), Constant.UU, enUU, InquirySource.ERP.name()); return details; } /** * 将报价方在商城报价的单据同步到报价方UAS 之后 回调 修改状态 * * @param enUU 报价企业UU * @param ids 报价单明细id list * @author dongbw * @date 2018年7月3日 16:21 */ @HttpLog @RequestMapping(value = "/down/reply/back", method = RequestMethod.POST) public void onReplyDownSuccess(String ids, Long enUU) throws UnsupportedEncodingException { long start = System.currentTimeMillis(); String[] idArray = URLDecoder.decode(ids, "UTF-8").split(","); logger.log("公共询价", "将报价方在商城报价的单据同步到报价方UAS 之后 回调 修改状态", "id: " + idArray, Constant.UU, enUU, InquirySource.ERP.name()); publicInquiryService.onReplyDownLoadSuccess(idArray); log.info("/inquiry/public/down/reply/back post 耗时:" + (System.currentTimeMillis() - start)); } }