ソースを参照

修改发布bom求购的接口

dongbw 7 年 前
コミット
92efee511a

+ 16 - 6
src/main/java/com/uas/platform/b2c/trade/seek/controller/SeekPurchaseBomController.java

@@ -111,10 +111,9 @@ public class SeekPurchaseBomController {
      * @return
      */
     @RequestMapping(value = "/confirmBom", method = RequestMethod.POST)
-    public ResultMap confirmBom(Long bomId) {
+    public ResultMap confirmBom(Long bomId,  Long endTime, Integer count) {
         logger.log("求购", "确认发布bom求购,bomId:" + bomId);
-        User user = SystemSession.getUser();
-        return seekPurchaseBomService.confirmBom(bomId, user, inquiryServiceInnerUrl);
+        return seekPurchaseBomService.confirmBom(bomId, inquiryServiceInnerUrl, endTime, count);
     }
 
     /**
@@ -226,6 +225,16 @@ public class SeekPurchaseBomController {
         return seekPurchaseBomService.findOne(bomId);
     }
 
+    /**
+     * 获取单个bom的信息(仅bom主单信息)
+     * @param bomId bom id
+     * @return bom的详情信息
+     */
+    @RequestMapping(value = "/bom/noDetail", method = RequestMethod.GET)
+    public SeekPurchaseBom getBomById(Long bomId) {
+        return seekPurchaseBomService.findOneWithoutDetail(bomId);
+    }
+
     /**
      * 编辑bom信息
      * @param bom 编辑完的bom信息
@@ -260,12 +269,13 @@ public class SeekPurchaseBomController {
     /**
      * 部分发布,bom明细非全选时
      * @param detailIds detail id串   1,2,3,4...
+     * @param endTime 截止时间  时间戳
+     * @param count 采购套数
      * @return 处理结果
      */
     @RequestMapping(value = "/confirmBom/selected", method = RequestMethod.POST)
-    public ResultMap confirmBomSelectedItems(String detailIds) {
+    public ResultMap confirmBomSelectedItems(String detailIds, Long endTime, Integer count) {
         logger.log("求购", "部分发布bom求购,detailIds: " + detailIds);
-        User user = SystemSession.getUser();
-        return seekPurchaseBomService.confirmBomSelectedItems(detailIds, user, inquiryServiceInnerUrl);
+        return seekPurchaseBomService.confirmBomSelectedItems(detailIds, inquiryServiceInnerUrl, endTime, count);
     }
 }

+ 13 - 0
src/main/java/com/uas/platform/b2c/trade/seek/model/PurcInquiry.java

@@ -56,6 +56,11 @@ public class PurcInquiry implements Serializable {
      */
     private Integer amount;
 
+    /**
+     * 求购套数
+     */
+    private Integer count;
+
     public Long getEnUU() {
         return enUU;
     }
@@ -128,4 +133,12 @@ public class PurcInquiry implements Serializable {
     public void setAmount(Integer amount) {
         this.amount = amount;
     }
+
+    public Integer getCount() {
+        return count;
+    }
+
+    public void setCount(Integer count) {
+        this.count = count;
+    }
 }

+ 16 - 7
src/main/java/com/uas/platform/b2c/trade/seek/service/SeekPurchaseBomService.java

@@ -34,13 +34,13 @@ public interface SeekPurchaseBomService {
     Page<SeekPurchaseByBatch> getSeekPurchaseByBatchPageInfo(PageInfo pageInfo, Long bomId);
 
     /**
-     * 确认发布
-     *
-     * @param bomId
-     * @param spIds
-     * @return
+     * bom全部发布求购
+     * @param bomId bom的id
+     * @param endTime 截止时间  时间戳
+     * @param count 采购套数
+     * @return 处理结果
      */
-    ResultMap confirmBom(Long bomId, User user, String url);
+    ResultMap confirmBom(Long bomId, String url, Long endTime, Integer count);
 
     /**
      * 分页获取bom求购列表
@@ -125,7 +125,16 @@ public interface SeekPurchaseBomService {
     /**
      * 部分发布,bom明细非全选时
      * @param detailIds detail id串   1,2,3,4...
+     * @param endTime 截止时间  时间戳
+     * @param count 采购套数
      * @return 处理结果
      */
-    ResultMap confirmBomSelectedItems(String detailIds, User user, String inquiryServiceInnerUrl);
+    ResultMap confirmBomSelectedItems(String detailIds, String inquiryServiceInnerUrl, Long endTime, Integer count);
+
+    /**
+     * 查询bom信息,(无明细)
+     * @param bomId  bomId
+     * @return
+     */
+    SeekPurchaseBom findOneWithoutDetail(Long bomId);
 }

+ 28 - 17
src/main/java/com/uas/platform/b2c/trade/seek/service/impl/SeekPurchaseBomServiceImpl.java

@@ -497,10 +497,10 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService {
 
 
     @Override
-    public ResultMap confirmBom(Long bomId, User user, String url) {
+    public ResultMap confirmBom(Long bomId, String url, Long endTime, Integer count) {
         SeekPurchaseBom seekPurchaseBom = seekPurchaseBomDao.findOne(bomId);
         List<SeekPurchaseByBatch> seekPurchaseByBatchList = seekPurchaseByBatchDao.findByBomId(bomId);
-        return publishBomInquiry(user, url, seekPurchaseByBatchList, seekPurchaseBom);
+        return publishBomInquiry(url, seekPurchaseByBatchList, seekPurchaseBom, endTime, count);
     }
 
     /**
@@ -733,12 +733,16 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService {
      * 部分发布,bom明细非全选时
      *
      * @param detailIds              detail id串   1,2,3,4...
-     * @param user  用户信息
+     * @param endTime 截止时间  时间戳
+     * @param count 采购套数
      * @param url 询价服务地址
      * @return 处理结果
      */
     @Override
-    public ResultMap confirmBomSelectedItems(String detailIds, User user, String url) {
+    public ResultMap confirmBomSelectedItems(String detailIds, String url, Long endTime, Integer count) {
+        if (null == endTime || null == count) {
+            return new ResultMap(CodeType.NO_INFO, "存在未传入必需参数");
+        }
         List<Long> detailIdList = new ArrayList<>();
         String[] detailIdsArray = detailIds.split(",");
         for (String detailId : detailIdsArray) {
@@ -747,24 +751,37 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService {
         List<SeekPurchaseByBatch> seekPurchaseByBatchList = seekPurchaseByBatchDao.findAll(detailIdList);
         if (!CollectionUtils.isEmpty(seekPurchaseByBatchList)) {
             SeekPurchaseBom seekPurchaseBom = seekPurchaseBomDao.findOne(seekPurchaseByBatchList.get(0).getBomId());
-            return publishBomInquiry(user, url, seekPurchaseByBatchList, seekPurchaseBom);
+            return publishBomInquiry(url, seekPurchaseByBatchList, seekPurchaseBom, endTime, count);
         }
         return new ResultMap(CodeType.NOT_EXiST, "未找到对应bom明细记录");
     }
 
+    /**
+     * 查询bom信息,(无明细)
+     *
+     * @param bomId bomId
+     * @return
+     */
+    @Override
+    public SeekPurchaseBom findOneWithoutDetail(Long bomId) {
+        return seekPurchaseBomDao.findOne(bomId);
+    }
+
     /**
      * 发布bom询价
-     * @param user  用户信息
      * @param url  询价服务url
      * @param seekPurchaseByBatchList  bom明细List
+     * @param endTime 截止时间  时间戳
+     * @param count 采购套数
      * @return 处理结果
      */
-    private ResultMap publishBomInquiry(User user, String url, List<SeekPurchaseByBatch> seekPurchaseByBatchList, SeekPurchaseBom seekPurchaseBom) {
+    private ResultMap publishBomInquiry(String url, List<SeekPurchaseByBatch> seekPurchaseByBatchList, SeekPurchaseBom seekPurchaseBom, Long endTime, Integer count) {
         PurcInquiry inquiry = new PurcInquiry();
+        User user = SystemSession.getUser();
         // 商城现货的数量
         int haveGoodsCount = 0;
         Set<PurcInquiryItem> inquiryItems = new HashSet<>();
-        Date endDate = null;
+        Date endDate = new Date(endTime);
         for (SeekPurchaseByBatch batch : seekPurchaseByBatchList) {
             SeekPurchase seekPurchase = new SeekPurchase();
             Calendar now = Calendar.getInstance();
@@ -776,26 +793,19 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService {
                 inquiryItem.setSource("MALL");
                 inquiryItem.setUserName(user.getUserName());
                 inquiryItem.setUserTel(user.getUserTel());
-                inquiryItem.setNeedquantity(batch.getAmount());
+                inquiryItem.setNeedquantity(batch.getAmount() * count);
                 inquiryItem.setInbrand(batch.getBrand());
                 inquiryItem.setCurrency(batch.getCurrency());
                 inquiryItem.setCmpCode(batch.getCode().toUpperCase());
                 inquiryItem.setUnitPrice(batch.getUnitPrice());
                 inquiryItem.setProduceDate(batch.getProduceDate());
                 inquiryItem.setDate(new Date());
-                inquiryItem.setEndDate(batch.getDeadline());
+                inquiryItem.setEndDate(endDate);
                 if (StringUtils.isEmpty(batch.getKind())) {
                     batch.setKind(matchKind(batch.getBrand(), batch.getCode()));
                 }
                 inquiryItem.setProdTitle(batch.getKind());
                 inquiryItem.setSpec(batch.getSpec());
-                if (StringUtils.isEmpty(endDate)) {
-                    endDate = batch.getDeadline();
-                } else {
-                    if (endDate.compareTo(batch.getDeadline()) != 1) {
-                        endDate = batch.getDeadline();
-                    }
-                }
                 inquiryItem.setEncapsulation(batch.getEncapsulation());
                 // 商城现货搜索
                 List<Goods> goods = goodsDao.getGoodsByCodeAndName(seekPurchase.getCode(), seekPurchase.getBrand());
@@ -816,6 +826,7 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService {
         }
         inquiry.setDate(new Date(System.currentTimeMillis()));
         inquiry.setEndDate(endDate);
+        inquiry.setCount(count);
         inquiry.setInquiryItems(inquiryItems);
         if (!StringUtils.isEmpty(user.getEnterprise())) {
             inquiry.setEnUU(user.getEnterprise().getUu());