|
|
@@ -13,18 +13,22 @@ 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.PurcInquiry;
|
|
|
+import com.uas.platform.b2c.trade.seek.model.PurcInquiryItem;
|
|
|
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.service.SeekPurchaseBomService;
|
|
|
-import com.uas.platform.b2c.trade.seek.status.Status;
|
|
|
import com.uas.platform.b2c.trade.seek.utils.DateUtils;
|
|
|
import com.uas.platform.b2c.trade.support.CodeType;
|
|
|
import com.uas.platform.b2c.trade.support.ResultMap;
|
|
|
import com.uas.platform.core.exception.IllegalOperatorException;
|
|
|
import com.uas.platform.core.model.PageInfo;
|
|
|
import com.uas.platform.core.persistence.criteria.PredicateUtils;
|
|
|
+import com.uas.platform.core.util.HttpUtil;
|
|
|
+import com.uas.platform.core.util.OkHttpUtils;
|
|
|
+import com.uas.platform.core.util.serializer.FlexJsonUtils;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.text.DateFormat;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
@@ -33,14 +37,18 @@ import java.util.Arrays;
|
|
|
import java.util.Calendar;
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
+import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
import java.util.regex.Matcher;
|
|
|
import java.util.regex.Pattern;
|
|
|
import javax.persistence.criteria.CriteriaBuilder;
|
|
|
import javax.persistence.criteria.CriteriaQuery;
|
|
|
import javax.persistence.criteria.Predicate;
|
|
|
import javax.persistence.criteria.Root;
|
|
|
+import net.sf.json.JSONArray;
|
|
|
+import okhttp3.Response;
|
|
|
import org.apache.poi.hssf.usermodel.HSSFCell;
|
|
|
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
|
|
|
import org.apache.poi.ss.usermodel.Cell;
|
|
|
@@ -239,7 +247,7 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService{
|
|
|
rowNum, 3);
|
|
|
if (!StringUtils.isEmpty(amountValue)) {
|
|
|
try {
|
|
|
- Integer amount = Integer.valueOf(StringUtilB2C.replaceLineBreak(StringUtilB2C.getStr(amountValue)));
|
|
|
+ Double amount = Double.valueOf(StringUtilB2C.replaceLineBreak(StringUtilB2C.getStr(amountValue)));
|
|
|
seekPurchaseByBatch.setAmount(amount);
|
|
|
} catch (NumberFormatException e) {
|
|
|
seekPurchaseByBatch.setAmount(null);
|
|
|
@@ -385,22 +393,15 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService{
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public ResultMap confirmBom(Long bomId, String spIds) {
|
|
|
+ public ResultMap confirmBom(Long bomId, User user) {
|
|
|
SeekPurchaseBom seekPurchaseBom = seekPurchaseBomDao.findOne(bomId);
|
|
|
- List<SeekPurchaseByBatch> seekPurchaseByBatchList = null;
|
|
|
- if (!StringUtils.isEmpty(spIds)) {
|
|
|
- // 保存选中
|
|
|
- seekPurchaseByBatchList = seekPurchaseByBatchDao.findBySpids(Arrays.asList(spIds.split(",")));
|
|
|
- } else {
|
|
|
- // 保存所有
|
|
|
- seekPurchaseByBatchList = seekPurchaseByBatchDao.findByBomId(bomId);
|
|
|
- }
|
|
|
+ PurcInquiry inquiry = new PurcInquiry();
|
|
|
+ List<SeekPurchaseByBatch> seekPurchaseByBatchList = seekPurchaseByBatchDao.findByBomId(bomId);
|
|
|
// 商城现货的数量
|
|
|
int haveGoodsCount = 0;
|
|
|
- // 将临时表转换成正式表数据
|
|
|
- List<SeekPurchase> seekPurchaseList = new ArrayList<>();
|
|
|
- // 发布到正式表的临时数据
|
|
|
+ Set<PurcInquiryItem> inquiryItems = new HashSet<>();
|
|
|
List<SeekPurchaseByBatch> deleteBatchList = new ArrayList<>();
|
|
|
+ Date endDate = new Date();
|
|
|
for (SeekPurchaseByBatch batch : seekPurchaseByBatchList) {
|
|
|
SeekPurchase seekPurchase = new SeekPurchase();
|
|
|
Calendar now = Calendar.getInstance();
|
|
|
@@ -408,35 +409,66 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService{
|
|
|
//Date deadlineMax = DateUtils.addTime(new Date(System.currentTimeMillis()), 90, 23, 59 ,59);
|
|
|
if (!StringUtils.isEmpty(batch.getCode()) && !StringUtils.isEmpty(batch.getBrand()) && !StringUtils.isEmpty(batch.getDeadline()) && batch.getDeadline().compareTo(now.getTime()) != 1) {
|
|
|
//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());
|
|
|
+ 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());
|
|
|
+ inquiryItem.setUnitPrice(batch.getUnitPrice());
|
|
|
+ inquiryItem.setProduceDate(batch.getProduceDate());
|
|
|
+ inquiryItem.setDate(new Date());
|
|
|
+ inquiryItem.setEndDate(batch.getDeadline());
|
|
|
+ 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);
|
|
|
- seekPurchaseList.add(seekPurchase);
|
|
|
+ inquiryItems.add(inquiryItem);
|
|
|
}
|
|
|
}
|
|
|
- seekPurchaseList = seekPurchasedao.save(seekPurchaseList);
|
|
|
- seekPurchaseBom.setAmount((seekPurchaseBom.getAmount() == null ? 0 : seekPurchaseBom.getAmount()) + seekPurchaseList.size());
|
|
|
- seekPurchaseBom.setStatus(1);
|
|
|
- seekPurchaseBomDao.save(seekPurchaseBom);
|
|
|
+// seekPurchaseList = seekPurchasedao.save(seekPurchaseList);
|
|
|
+// seekPurchaseBom.setAmount((seekPurchaseBom.getAmount() == null ? 0 : seekPurchaseBom.getAmount()) + seekPurchaseList.size());
|
|
|
+// seekPurchaseBom.setStatus(1);
|
|
|
+// seekPurchaseBomDao.save(seekPurchaseBom);
|
|
|
seekPurchaseByBatchDao.delete(deleteBatchList);
|
|
|
+ // 询价单数据插入
|
|
|
+ inquiry.setAmount(deleteBatchList.size());
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddsss");
|
|
|
+ try {
|
|
|
+ inquiry.setCode("MALL" + sdf.parse(sdf.format(new Date())));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ inquiry.setDate(new Date(System.currentTimeMillis()));
|
|
|
+ inquiry.setEndDate(endDate);
|
|
|
+ inquiry.setInquiryItems(inquiryItems);
|
|
|
+ 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("http://10.1.51.88:8080/inquiry/buyer/save", FlexJsonUtils.toJsonDeep(inquiry));
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new IllegalOperatorException("发布失败");
|
|
|
+ }
|
|
|
Map<String, Object> result = new HashMap<>();
|
|
|
- result.put("successAmount", seekPurchaseList.size());
|
|
|
+ result.put("successAmount", inquiryItems.size());
|
|
|
result.put("goodsAmount", haveGoodsCount);
|
|
|
return ResultMap.success(result);
|
|
|
}
|