|
|
@@ -9,12 +9,14 @@ import com.uas.platform.b2c.prod.product.brand.modal.Brand;
|
|
|
import com.uas.platform.b2c.prod.product.component.dao.ComponentDao;
|
|
|
import com.uas.platform.b2c.prod.product.component.modal.Component;
|
|
|
import com.uas.platform.b2c.trade.seek.dao.SeekPurchaseBomDao;
|
|
|
+import com.uas.platform.b2c.trade.seek.dao.SeekPurchaseBomListDao;
|
|
|
import com.uas.platform.b2c.trade.seek.dao.SeekPurchaseByBatchDao;
|
|
|
import com.uas.platform.b2c.trade.seek.dao.SeekPurchaseDao;
|
|
|
import com.uas.platform.b2c.trade.seek.dao.SeekPurchaseGoodsDao;
|
|
|
import com.uas.platform.b2c.trade.seek.dao.SeekPurchaseOfferDao;
|
|
|
import com.uas.platform.b2c.trade.seek.model.SeekPurchase;
|
|
|
import com.uas.platform.b2c.trade.seek.model.SeekPurchaseBom;
|
|
|
+import com.uas.platform.b2c.trade.seek.model.SeekPurchaseBomList;
|
|
|
import com.uas.platform.b2c.trade.seek.model.SeekPurchaseByBatch;
|
|
|
import com.uas.platform.b2c.trade.seek.model.SeekPurchaseGoods;
|
|
|
import com.uas.platform.b2c.trade.seek.model.SeekPurchaseOffer;
|
|
|
@@ -28,11 +30,12 @@ import com.uas.platform.core.persistence.criteria.CriterionExpression.Operator;
|
|
|
import com.uas.platform.core.persistence.criteria.LogicalExpression;
|
|
|
import com.uas.platform.core.persistence.criteria.PredicateUtils;
|
|
|
import com.uas.platform.core.persistence.criteria.SimpleExpression;
|
|
|
-import java.text.DateFormat;
|
|
|
-import java.text.SimpleDateFormat;
|
|
|
import java.io.UnsupportedEncodingException;
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.text.DateFormat;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
@@ -93,6 +96,9 @@ public class SeekPurchaseServiceImpl implements SeekPurchaseService {
|
|
|
@Autowired
|
|
|
private SeekPurchaseByBatchDao seekPurchaseByBatchDao;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SeekPurchaseBomListDao seekPurchaseBomListDao;
|
|
|
+
|
|
|
@Override
|
|
|
public Page<SeekPurchase> getSeekPageInfo(final PageInfo pageInfo, String keyWord) {
|
|
|
// 关键字
|
|
|
@@ -159,9 +165,7 @@ public class SeekPurchaseServiceImpl implements SeekPurchaseService {
|
|
|
}
|
|
|
}
|
|
|
// 截止日期
|
|
|
- Long addTime = Long.valueOf(23 * 60 * 60 * 1000 + 59 * 60 * 1000 + 59 * 1000);
|
|
|
- Long deadline = seekPurchase.getDeadline().getTime();
|
|
|
- seekPurchase.setDeadline(new Date(addTime + deadline));
|
|
|
+ seekPurchase.setDeadline(addTime(seekPurchase.getDeadline()));
|
|
|
|
|
|
seekPurchase.setKind(kind);
|
|
|
seekPurchase.setReleaseDate(new Date(System.currentTimeMillis()));
|
|
|
@@ -182,6 +186,17 @@ public class SeekPurchaseServiceImpl implements SeekPurchaseService {
|
|
|
return ResultMap.success(null);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 截止日期处理
|
|
|
+ * @param date
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private Date addTime(Date date) {
|
|
|
+ Long addTime = Long.valueOf(23 * 60 * 60 * 1000 + 59 * 60 * 1000 + 59 * 1000);
|
|
|
+ Long deadline = date.getTime();
|
|
|
+ return new Date(addTime + deadline);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public ResultMap updateSeekPurchaseStatus(Long spId, Long ofId, Double purchaseQuantity) {
|
|
|
// 采纳数量 只能输入0-1亿之间的正整数
|
|
|
@@ -210,7 +225,7 @@ public class SeekPurchaseServiceImpl implements SeekPurchaseService {
|
|
|
@Override
|
|
|
public Page<SeekPurchaseGoods> getUserSeekPageInfo(final PageInfo pageInfo, String keyWord,
|
|
|
String deadline, Integer status, String minReleaseDate, String maxReleaseDate,
|
|
|
- boolean isMallGoods, User user) {
|
|
|
+ boolean isMallGoods, User user, Long bomId) {
|
|
|
if (isMallGoods) {
|
|
|
pageInfo.expression(PredicateUtils.gt("goodsAmount", 0, false));
|
|
|
}
|
|
|
@@ -253,6 +268,9 @@ public class SeekPurchaseServiceImpl implements SeekPurchaseService {
|
|
|
pageInfo.filter("uu", user.getUserUU());
|
|
|
pageInfo.expression(PredicateUtils.isNull("enUu"));
|
|
|
}
|
|
|
+ if (bomId != null) {
|
|
|
+ pageInfo.filter("bomId", bomId);
|
|
|
+ }
|
|
|
pageInfo.sorting("releaseDate", Direction.DESC);
|
|
|
Page<SeekPurchaseGoods> pageSeeks = seekPurchaseGoodsDao.findAll(new Specification<SeekPurchaseGoods>() {
|
|
|
public Predicate toPredicate(Root<SeekPurchaseGoods> root, CriteriaQuery<?> query,
|
|
|
@@ -352,7 +370,7 @@ public class SeekPurchaseServiceImpl implements SeekPurchaseService {
|
|
|
} catch (UnsupportedEncodingException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
- seekPurchaseByBatch.setDeadline(deadline);
|
|
|
+ seekPurchaseByBatch.setDeadline(addTime(new Date(deadline)));
|
|
|
}
|
|
|
|
|
|
// 求购数量
|
|
|
@@ -461,15 +479,82 @@ public class SeekPurchaseServiceImpl implements SeekPurchaseService {
|
|
|
|
|
|
@Override
|
|
|
public ResultMap confirmBom(Long bomId, String spIds) {
|
|
|
- List<SeekPurchaseByBatch> seekPurchaseByBatchList = seekPurchaseByBatchDao.findByBomId(bomId);
|
|
|
- if (!StringUtils.isEmpty(spIds)) {
|
|
|
- // 保存选中
|
|
|
+ SeekPurchaseBom seekPurchaseBom = seekPurchaseBomDao.findOne(bomId);
|
|
|
+ List<SeekPurchaseByBatch> seekPurchaseByBatchList = null;
|
|
|
+// if (!StringUtils.isEmpty(spIds)) {
|
|
|
+// // 保存选中
|
|
|
+// seekPurchaseByBatchList = seekPurchaseByBatchDao.getInfo(bomId, Arrays.asList(spIds.split(",")));
|
|
|
+// } else {
|
|
|
+// // 保存所有
|
|
|
+// seekPurchaseByBatchList = seekPurchaseByBatchDao.findByBomId(bomId);
|
|
|
+// }
|
|
|
+ seekPurchaseByBatchList = seekPurchaseByBatchDao.findByBomId(bomId);
|
|
|
+ // 将临时表转换成正式表数据
|
|
|
+ List<SeekPurchase> seekPurchaseList = new ArrayList<>();
|
|
|
+ // 发布到正式表的临时数据
|
|
|
+ List<SeekPurchaseByBatch> deleteBatchList = new ArrayList<>();
|
|
|
+ for (SeekPurchaseByBatch batch : seekPurchaseByBatchList) {
|
|
|
+ SeekPurchase seekPurchase = new SeekPurchase();
|
|
|
+ if (!StringUtils.isEmpty(batch.getCode()) && !StringUtils.isEmpty(batch.getBrand()) && !StringUtils.isEmpty(batch.getDeadline())) {
|
|
|
+ //seekPurchase = (SeekPurchase) batch;
|
|
|
+ seekPurchase.setDeadline(batch.getDeadline());
|
|
|
+ seekPurchase.setCurrency(batch.getCurrency());
|
|
|
+ seekPurchase.setReleaseDate(batch.getReleaseDate());
|
|
|
+ seekPurchase.setCode(batch.getCode());
|
|
|
+ seekPurchase.setBrand(batch.getBrand());
|
|
|
+ seekPurchase.setAmount(batch.getAmount());
|
|
|
+ seekPurchase.setEncapsulation(batch.getEncapsulation());
|
|
|
+ seekPurchase.setUnitPrice(batch.getUnitPrice());
|
|
|
+ seekPurchase.setProduceDate(batch.getProduceDate());
|
|
|
+ seekPurchase.setBomId(batch.getBomId());
|
|
|
+ seekPurchase.setEnUu(seekPurchaseBom.getEnuu());
|
|
|
+ seekPurchase.setUu(seekPurchaseBom.getUu());
|
|
|
+ seekPurchase.setStatus(Status.NO_OFFER.getValue());
|
|
|
+ deleteBatchList.add(batch);
|
|
|
+ seekPurchaseList.add(seekPurchase);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ seekPurchaseList = seekPurchasedao.save(seekPurchaseList);
|
|
|
+ seekPurchaseBom.setAmount(seekPurchaseBom.getAmount() == null ? 0 : seekPurchaseBom.getAmount() + seekPurchaseList.size());
|
|
|
+ seekPurchaseBom.setStatus(1);
|
|
|
+ seekPurchaseBomDao.save(seekPurchaseBom);
|
|
|
+ seekPurchaseByBatchDao.delete(deleteBatchList);
|
|
|
+ return ResultMap.success(seekPurchaseList.size());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Page<SeekPurchaseBomList> getSeekPurchaseBomListPage(final PageInfo pageInfo, User user) {
|
|
|
+ if (user.getEnterprise() != null) {
|
|
|
+ pageInfo.filter("enUu", user.getEnterprise().getUu());
|
|
|
} else {
|
|
|
- // 保存所有
|
|
|
+ pageInfo.filter("uu", user.getUserUU());
|
|
|
}
|
|
|
+ Page<SeekPurchaseBomList> pageSeeks = seekPurchaseBomListDao.findAll(new Specification<SeekPurchaseBomList>() {
|
|
|
+ public Predicate toPredicate(Root<SeekPurchaseBomList> root, CriteriaQuery<?> query,
|
|
|
+ CriteriaBuilder builder) {
|
|
|
+ query.where(pageInfo.getPredicates(root, query, builder));
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }, pageInfo);
|
|
|
+ return pageSeeks;
|
|
|
+ }
|
|
|
|
|
|
- SeekPurchaseBom seekPurchaseBom = seekPurchaseBomDao.findOne(bomId);
|
|
|
- seekPurchaseBom.setAmount(seekPurchaseByBatchList.size());
|
|
|
- return null;
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> getImportBomInfo(Long bomId) {
|
|
|
+ String sql = "select bom_id,count(bom_id) as successImport,(sum((IF(sp_brand is null,1,0)))+sum((IF(sp_code is null,1,0)))+sum((IF(sp_deadline is null,1,0)))) as nullField "
|
|
|
+ + "from trade$seek_purchase_by_batch where bom_id = ? group by bom_id";
|
|
|
+ return jdbcTemplate.queryForMap(sql, new Object[]{bomId});
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResultMap updateSeekPurchaseByBatch(SeekPurchaseByBatch seekPurchaseByBatch) {
|
|
|
+ seekPurchaseByBatchDao.save(seekPurchaseByBatch);
|
|
|
+ return ResultMap.success(null);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResultMap deleteSeekPurchaseByBatch(String spIds) {
|
|
|
+ seekPurchaseByBatchDao.batchDelete(Arrays.asList(spIds.split(",")));
|
|
|
+ return ResultMap.success(null);
|
|
|
}
|
|
|
}
|