|
@@ -499,92 +499,8 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService {
|
|
|
@Override
|
|
@Override
|
|
|
public ResultMap confirmBom(Long bomId, User user, String url) {
|
|
public ResultMap confirmBom(Long bomId, User user, String url) {
|
|
|
SeekPurchaseBom seekPurchaseBom = seekPurchaseBomDao.findOne(bomId);
|
|
SeekPurchaseBom seekPurchaseBom = seekPurchaseBomDao.findOne(bomId);
|
|
|
- if (seekPurchaseBom == null) {
|
|
|
|
|
- return new ResultMap(CodeType.NOT_PERMIT, "请勿重复发布");
|
|
|
|
|
- }
|
|
|
|
|
- PurcInquiry inquiry = new PurcInquiry();
|
|
|
|
|
List<SeekPurchaseByBatch> seekPurchaseByBatchList = seekPurchaseByBatchDao.findByBomId(bomId);
|
|
List<SeekPurchaseByBatch> seekPurchaseByBatchList = seekPurchaseByBatchDao.findByBomId(bomId);
|
|
|
- // 商城现货的数量
|
|
|
|
|
- int haveGoodsCount = 0;
|
|
|
|
|
- Set<PurcInquiryItem> inquiryItems = new HashSet<>();
|
|
|
|
|
-// List<SeekPurchaseByBatch> deleteBatchList = new ArrayList<>();
|
|
|
|
|
- Date endDate = null;
|
|
|
|
|
- for (SeekPurchaseByBatch batch : seekPurchaseByBatchList) {
|
|
|
|
|
- SeekPurchase seekPurchase = new SeekPurchase();
|
|
|
|
|
- Calendar now = Calendar.getInstance();
|
|
|
|
|
- now.add(Calendar.DAY_OF_MONTH, 91);
|
|
|
|
|
- if (!StringUtils.isEmpty(batch.getCode()) && !StringUtils.isEmpty(batch.getBrand()) && !StringUtils.isEmpty(batch.getDeadline()) && batch.getDeadline().compareTo(now.getTime()) != 1) {
|
|
|
|
|
- PurcInquiryItem inquiryItem = new PurcInquiryItem();
|
|
|
|
|
- inquiryItem.setProdTitle(batch.getCode());
|
|
|
|
|
- inquiryItem.setUserUU(user.getUserUU());
|
|
|
|
|
- inquiryItem.setSource("MALL");
|
|
|
|
|
- inquiryItem.setUserName(user.getUserName());
|
|
|
|
|
- inquiryItem.setUserTel(user.getUserTel());
|
|
|
|
|
- inquiryItem.setNeedquantity(batch.getAmount());
|
|
|
|
|
- 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());
|
|
|
|
|
- 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());
|
|
|
|
|
- if (goods != null && goods.size() > 0) {
|
|
|
|
|
- haveGoodsCount++;
|
|
|
|
|
- }
|
|
|
|
|
-// deleteBatchList.add(batch);
|
|
|
|
|
- inquiryItems.add(inquiryItem);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-// seekPurchaseByBatchDao.delete(deleteBatchList);
|
|
|
|
|
- // 询价单数据插入
|
|
|
|
|
- inquiry.setAmount(inquiryItems.size());
|
|
|
|
|
- SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddsss");
|
|
|
|
|
- try {
|
|
|
|
|
- inquiry.setCode("MALL" + sdf.parse(sdf.format(new Date())).getTime());
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
- }
|
|
|
|
|
- inquiry.setDate(new Date(System.currentTimeMillis()));
|
|
|
|
|
- inquiry.setEndDate(endDate);
|
|
|
|
|
- inquiry.setInquiryItems(inquiryItems);
|
|
|
|
|
- if (!StringUtils.isEmpty(user.getEnterprise())) {
|
|
|
|
|
- inquiry.setEnUU(user.getEnterprise().getUu());
|
|
|
|
|
- }
|
|
|
|
|
- inquiry.setRecorderUU(user.getUserUU());
|
|
|
|
|
- inquiry.setSourceapp("MALL");
|
|
|
|
|
- inquiry.setRemark(seekPurchaseBom.getName());
|
|
|
|
|
- inquiry.setInquiryItems(inquiryItems);
|
|
|
|
|
- String res = "";
|
|
|
|
|
- try {
|
|
|
|
|
- res = HttpUtil.doPost(url + "/inquiry/buyer/save", FlexJsonUtils.toJsonDeep(inquiry));
|
|
|
|
|
- logger.log("bom求购确认发布成功",user.getUserUU() + ",参数:" + FlexJsonUtils.toJsonDeep(inquiry));
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- logger.log("bom求购确认发布报错",user.getUserUU() + ",错误:" + e.getMessage() + "参数:" + FlexJsonUtils.toJsonDeep(inquiry));
|
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
- throw new IllegalOperatorException("发布失败");
|
|
|
|
|
- }
|
|
|
|
|
- // 删除bom的临时数据
|
|
|
|
|
-// seekPurchaseBomDao.delete(seekPurchaseBom.getId());
|
|
|
|
|
-// seekPurchaseBomListDao.deleteByBomId(seekPurchaseBom.getId());
|
|
|
|
|
- Map<String, Object> result = new HashMap<>();
|
|
|
|
|
- result.put("successAmount", inquiryItems.size());
|
|
|
|
|
- result.put("goodsAmount", haveGoodsCount);
|
|
|
|
|
- return ResultMap.success(result);
|
|
|
|
|
|
|
+ return publishBomInquiry(user, url, seekPurchaseByBatchList, seekPurchaseBom);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -813,4 +729,114 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService {
|
|
|
return map;
|
|
return map;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 部分发布,bom明细非全选时
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param detailIds detail id串 1,2,3,4...
|
|
|
|
|
+ * @param user 用户信息
|
|
|
|
|
+ * @param url 询价服务地址
|
|
|
|
|
+ * @return 处理结果
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public ResultMap confirmBomSelectedItems(String detailIds, User user, String url) {
|
|
|
|
|
+ List<Long> detailIdList = new ArrayList<>();
|
|
|
|
|
+ String[] detailIdsArray = detailIds.split(",");
|
|
|
|
|
+ for (String detailId : detailIdsArray) {
|
|
|
|
|
+ detailIdList.add(Long.valueOf(detailId));
|
|
|
|
|
+ }
|
|
|
|
|
+ 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 new ResultMap(CodeType.NOT_EXiST, "未找到对应bom明细记录");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 发布bom询价
|
|
|
|
|
+ * @param user 用户信息
|
|
|
|
|
+ * @param url 询价服务url
|
|
|
|
|
+ * @param seekPurchaseByBatchList bom明细List
|
|
|
|
|
+ * @return 处理结果
|
|
|
|
|
+ */
|
|
|
|
|
+ private ResultMap publishBomInquiry(User user, String url, List<SeekPurchaseByBatch> seekPurchaseByBatchList, SeekPurchaseBom seekPurchaseBom) {
|
|
|
|
|
+ PurcInquiry inquiry = new PurcInquiry();
|
|
|
|
|
+ // 商城现货的数量
|
|
|
|
|
+ int haveGoodsCount = 0;
|
|
|
|
|
+ Set<PurcInquiryItem> inquiryItems = new HashSet<>();
|
|
|
|
|
+ Date endDate = null;
|
|
|
|
|
+ for (SeekPurchaseByBatch batch : seekPurchaseByBatchList) {
|
|
|
|
|
+ SeekPurchase seekPurchase = new SeekPurchase();
|
|
|
|
|
+ Calendar now = Calendar.getInstance();
|
|
|
|
|
+ now.add(Calendar.DAY_OF_MONTH, 91);
|
|
|
|
|
+ if (!StringUtils.isEmpty(batch.getCode()) && !StringUtils.isEmpty(batch.getBrand()) && !StringUtils.isEmpty(batch.getDeadline()) && batch.getDeadline().compareTo(now.getTime()) != 1) {
|
|
|
|
|
+ PurcInquiryItem inquiryItem = new PurcInquiryItem();
|
|
|
|
|
+ inquiryItem.setProdTitle(batch.getCode());
|
|
|
|
|
+ inquiryItem.setUserUU(user.getUserUU());
|
|
|
|
|
+ inquiryItem.setSource("MALL");
|
|
|
|
|
+ inquiryItem.setUserName(user.getUserName());
|
|
|
|
|
+ inquiryItem.setUserTel(user.getUserTel());
|
|
|
|
|
+ inquiryItem.setNeedquantity(batch.getAmount());
|
|
|
|
|
+ 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());
|
|
|
|
|
+ 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());
|
|
|
|
|
+ if (goods != null && goods.size() > 0) {
|
|
|
|
|
+ haveGoodsCount++;
|
|
|
|
|
+ }
|
|
|
|
|
+// deleteBatchList.add(batch);
|
|
|
|
|
+ inquiryItems.add(inquiryItem);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // 询价单数据插入
|
|
|
|
|
+ inquiry.setAmount(inquiryItems.size());
|
|
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddsss");
|
|
|
|
|
+ try {
|
|
|
|
|
+ inquiry.setCode("MALL" + sdf.parse(sdf.format(new Date())).getTime());
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+ inquiry.setDate(new Date(System.currentTimeMillis()));
|
|
|
|
|
+ inquiry.setEndDate(endDate);
|
|
|
|
|
+ inquiry.setInquiryItems(inquiryItems);
|
|
|
|
|
+ if (!StringUtils.isEmpty(user.getEnterprise())) {
|
|
|
|
|
+ inquiry.setEnUU(user.getEnterprise().getUu());
|
|
|
|
|
+ }
|
|
|
|
|
+ inquiry.setRecorderUU(user.getUserUU());
|
|
|
|
|
+ inquiry.setSourceapp("MALL");
|
|
|
|
|
+ inquiry.setRemark(seekPurchaseBom.getName());
|
|
|
|
|
+ inquiry.setInquiryItems(inquiryItems);
|
|
|
|
|
+ String res = "";
|
|
|
|
|
+ try {
|
|
|
|
|
+ res = HttpUtil.doPost(url + "/inquiry/buyer/save", FlexJsonUtils.toJsonDeep(inquiry));
|
|
|
|
|
+ logger.log("bom求购确认发布成功",user.getUserUU() + ",参数:" + FlexJsonUtils.toJsonDeep(inquiry));
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ logger.log("bom求购确认发布报错",user.getUserUU() + ",错误:" + e.getMessage() + "参数:" + FlexJsonUtils.toJsonDeep(inquiry));
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ throw new IllegalOperatorException("发布失败");
|
|
|
|
|
+ }
|
|
|
|
|
+ Map<String, Object> result = new HashMap<>();
|
|
|
|
|
+ result.put("successAmount", inquiryItems.size());
|
|
|
|
|
+ result.put("goodsAmount", haveGoodsCount);
|
|
|
|
|
+ return ResultMap.success(result);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|