Browse Source

UAS招标接口修改

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@8452 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
dongbw 9 years ago
parent
commit
09b3a3f2e4

+ 63 - 42
src/main/java/com/uas/platform/b2b/erp/controller/TenderController.java

@@ -1,28 +1,9 @@
 package com.uas.platform.b2b.erp.controller;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-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.ResponseBody;
-import org.springframework.web.bind.annotation.RestController;
-
 import com.alibaba.dubbo.common.utils.CollectionUtils;
 import com.alibaba.fastjson.JSONObject;
 import com.uas.platform.b2b.erp.service.TenderService;
-import com.uas.platform.b2b.model.Attach;
-import com.uas.platform.b2b.model.EnterpriseBaseInfo;
-import com.uas.platform.b2b.model.FileUpload;
-import com.uas.platform.b2b.model.PurchaseTender;
-import com.uas.platform.b2b.model.SaleTenderErp;
-import com.uas.platform.b2b.model.SaleTenderItem;
-import com.uas.platform.b2b.model.SearchFilter;
+import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.AttachService;
 import com.uas.platform.b2b.service.UserService;
@@ -35,6 +16,15 @@ import com.uas.search.b2b.model.MultiValue;
 import com.uas.search.b2b.model.SPage;
 import com.uas.search.b2b.model.Sort;
 import com.uas.search.b2b.util.SearchConstants;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Created by dongbw
@@ -64,12 +54,14 @@ public class TenderController {
     @RequestMapping(value = "/publish", method = RequestMethod.POST)
     @ResponseBody
     @Transactional
-    public ModelMap publishTender(String tender, String vendorUUs) {
+    public ModelMap publishTender(String tender, String vendorUUs) throws UnsupportedEncodingException {
+        tender = URLDecoder.decode(tender, "UTF-8");
         PurchaseTender purchaseTender = FlexJsonUtils.fromJson(tender, PurchaseTender.class);
         if (purchaseTender.getIfOpen() == Constant.YES) {
             return tenderService.publishOpen(purchaseTender);
         } else {
             if (null != vendorUUs) {
+                vendorUUs = URLDecoder.decode(vendorUUs, "UTF-8");
                 vendorUUs = "[".concat(vendorUUs);
                 vendorUUs = vendorUUs.concat("]");
                 List<Long> vendUUs = FlexJsonUtils.fromJsonArray(vendorUUs, Long.class);
@@ -90,14 +82,16 @@ public class TenderController {
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ResponseBody
     @Transactional
-    public ModelMap saveTender(String tender, String vendorUUs) {
+    public ModelMap saveTender(String tender, String vendorUUs) throws UnsupportedEncodingException {
+        tender = URLDecoder.decode(tender, "UTF-8");
         PurchaseTender purchaseTender = FlexJsonUtils.fromJson(tender, PurchaseTender.class);
         if (purchaseTender.getIfOpen() == Constant.YES) {
             return tenderService.saveOpen(purchaseTender);
         } else {
             if (null != vendorUUs) {
-                vendorUUs = "[".concat(vendorUUs);
-                vendorUUs = vendorUUs.concat("]");
+                vendorUUs = URLDecoder.decode(vendorUUs, "UTF-8");
+//                vendorUUs = "[".concat(vendorUUs);
+//                vendorUUs = vendorUUs.concat("]");
                 List<Long> vendUUs = FlexJsonUtils.fromJsonArray(vendorUUs, Long.class);
                 return tenderService.save(purchaseTender, vendUUs);
             }
@@ -115,20 +109,42 @@ public class TenderController {
      */
     @RequestMapping(value = "/reply", method = RequestMethod.POST)
     @ResponseBody
-    public ModelMap replyTender(String tenderItems, String enBaseInfo, String attaches) {
-        tenderItems = "[".concat(tenderItems);
-        tenderItems = tenderItems.concat("]");
-        List<SaleTenderItem> saleTenderItems = FlexJsonUtils.fromJsonArray(tenderItems, SaleTenderItem.class);
-        EnterpriseBaseInfo vendor = FlexJsonUtils.fromJson(enBaseInfo, EnterpriseBaseInfo.class);
-        List<Attach> saleTenderAttaches = new ArrayList<>();
-        if (attaches != null && !Objects.equals(attaches, "")) {
-            attaches = "[".concat(attaches);
-            attaches = attaches.concat("]");
-            saleTenderAttaches = FlexJsonUtils.fromJsonArray(attaches, Attach.class);
+    public ModelMap replyTender(String tenderItems, String enBaseInfo, String attaches, String saleTenderId) throws UnsupportedEncodingException {
+        EnterpriseBaseInfo vendor = new EnterpriseBaseInfo();
+        List<SaleTenderItem> saleTenderItems = new ArrayList<>();
+        if (null != tenderItems && !"".equals(tenderItems)) {
+            tenderItems = URLDecoder.decode(tenderItems, "UTF-8");
+            tenderItems = "[".concat(tenderItems);
+            tenderItems = tenderItems.concat("]");
+            saleTenderItems = FlexJsonUtils.fromJsonArray(tenderItems, SaleTenderItem.class);
+        }
+        if (null != enBaseInfo && !"".equals(enBaseInfo)) {
+            enBaseInfo = URLDecoder.decode(enBaseInfo, "UTF-8");
+            vendor = FlexJsonUtils.fromJson(enBaseInfo, EnterpriseBaseInfo.class);
+        }
+        if (null != attaches && !"".equals(attaches)) {
+            attaches = URLDecoder.decode(attaches, "UTF-8");
+            List<Attach> saleTenderAttaches = FlexJsonUtils.fromJsonArray(attaches, Attach.class);
+            return tenderService.reply(saleTenderItems, vendor, saleTenderAttaches, Long.valueOf(saleTenderId));
         }
-        return tenderService.reply(saleTenderItems, vendor, saleTenderAttaches);
+        return tenderService.reply(saleTenderItems, vendor, Long.valueOf(saleTenderId));
     }
 
+    /**
+     *  获取平台供应商
+     * @param params
+     * @param keyword
+     * @return
+     */
+    @RequestMapping(value = "/vendors", method = RequestMethod.GET)
+    public SPage<Enterprise> getVendors(PageParams params, String keyword) {
+        com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, null);
+        pageParams.getFilters().put("ve_myenuu", SystemSession.getUser().getEnterprise().getUu());
+        List<Sort> sortList = new ArrayList<>();
+        sortList.add(new Sort("ve_id", false, Sort.Type.LONG, 1L));
+        pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
+        return searchService.searchVendorIds(keyword, pageParams);
+    }
 
     /**
      * 查看招标单详情
@@ -159,13 +175,14 @@ public class TenderController {
     /**
      * 招标方定标
      *
-     * @param tender 招标单json
+     * @param saleTenderItems 投标明细
      */
     @RequestMapping(value = "/decide", method = RequestMethod.POST)
     @ResponseBody
-    public ModelMap decideTender(@RequestBody String tender) {
-        PurchaseTender purchaseTender = FlexJsonUtils.fromJson(tender, PurchaseTender.class);
-        return tenderService.decide(purchaseTender);
+    public ModelMap decideTender(String saleTenderItems) throws UnsupportedEncodingException {
+        saleTenderItems = URLDecoder.decode(saleTenderItems, "UTF-8");
+        List<SaleTenderItem> tenderItems = FlexJsonUtils.fromJsonArray(saleTenderItems, SaleTenderItem.class);
+        return tenderService.decide(tenderItems);
     }
 
     /**
@@ -330,7 +347,7 @@ public class TenderController {
 
 
     /**
-     * 作为采购方,查看发出的招标单
+     * 作为采购方,查看发出的招标单(全部)
      *
      * @param params
      * @return
@@ -507,12 +524,14 @@ public class TenderController {
     @RequestMapping(value = "/publishSaved", method = RequestMethod.POST)
     @ResponseBody
     @Transactional
-    public ModelMap publishSavedTender(String tender, String vendorUUs) {
+    public ModelMap publishSavedTender(String tender, String vendorUUs) throws UnsupportedEncodingException {
+        tender = URLDecoder.decode(tender, "UTF-8");
         PurchaseTender purchaseTender = FlexJsonUtils.fromJson(tender, PurchaseTender.class);
         if (purchaseTender.getIfOpen() == Constant.YES) {
             return tenderService.publishSavedOpen(purchaseTender);
         } else {
             if (null != vendorUUs) {
+                vendorUUs = URLDecoder.decode(vendorUUs, "UTF-8");
                 vendorUUs = "[".concat(vendorUUs);
                 vendorUUs = vendorUUs.concat("]");
                 List<Long> vendUUs = FlexJsonUtils.fromJsonArray(vendorUUs, Long.class);
@@ -533,12 +552,14 @@ public class TenderController {
     @RequestMapping(value = "/updateSaved", method = RequestMethod.POST)
     @ResponseBody
     @Transactional
-    public ModelMap updateSavedTender(String tender, String vendorUUs) {
+    public ModelMap updateSavedTender(String tender, String vendorUUs) throws UnsupportedEncodingException {
+        tender = URLDecoder.decode(tender, "UTF-8");
         PurchaseTender purchaseTender = FlexJsonUtils.fromJson(tender, PurchaseTender.class);
         if (purchaseTender.getIfOpen() == Constant.YES) { // 开放时进另外的方法
             return tenderService.updateSavedOpen(purchaseTender);
         } else {
             if (null != vendorUUs) {
+                vendorUUs = URLDecoder.decode(vendorUUs, "UTF-8");
                 vendorUUs = "[".concat(vendorUUs);
                 vendorUUs = vendorUUs.concat("]");
                 List<Long> vendUUs = FlexJsonUtils.fromJsonArray(vendorUUs, Long.class);

+ 6 - 3
src/main/java/com/uas/platform/b2b/erp/service/TenderService.java

@@ -35,15 +35,17 @@ public interface TenderService {
      * @param enBaseInfo
      * @return
      */
-    ModelMap reply(List<SaleTenderItem> tenderItems, EnterpriseBaseInfo enBaseInfo, List<Attach> attaches);
+    ModelMap reply(List<SaleTenderItem> tenderItems, EnterpriseBaseInfo enBaseInfo, List<Attach> attaches, Long saleTenderId);
+
+    ModelMap reply(List<SaleTenderItem> saleTenderItems, EnterpriseBaseInfo vendor, Long aLong);
 
     /**
      * 采购方定标操作
      *
-     * @param purchaseTender
+     * @param saleTenderItems
      * @return
      */
-    ModelMap decide(PurchaseTender purchaseTender);
+    ModelMap decide(List<SaleTenderItem> saleTenderItems);
 
     /**
      * 根据id获取招标单
@@ -157,4 +159,5 @@ public interface TenderService {
      * @return
      */
     SaleTenderErp getSaleTenderDetail(Long id, Long venduu);
+
 }

+ 87 - 36
src/main/java/com/uas/platform/b2b/erp/service/impl/TenderServiceImpl.java

@@ -124,9 +124,11 @@ public class TenderServiceImpl implements TenderService {
         tender.setEnUU(SystemSession.getUser().getEnterprise().getUu());
         purchaseTenderDao.save(tender);
         Set<PurchaseTenderProd> tenderProds = tender.getPurchaseTenderProds();
-        for (PurchaseTenderProd tenderProd : tenderProds) {
-            tenderProd.setTender(tender);
-            purchaseTenderProdDao.save(tenderProd);
+        if (!CollectionUtils.isEmpty(tenderProds)) {
+            for (PurchaseTenderProd tenderProd : tenderProds) {
+                tenderProd.setTender(tender);
+                purchaseTenderProdDao.save(tenderProd);
+            }
         }
         ModelMap map = new ModelMap();
         map.put("id", tender.getId());
@@ -481,7 +483,9 @@ public class TenderServiceImpl implements TenderService {
         List<Enterprise> vendors = new ArrayList<>();
         for (Long vendUU : vendUUs) {
             Enterprise vendor = enterpriseDao.findOne(vendUU);
-            vendors.add(vendor);
+            if (null != vendor) {
+                vendors.add(vendor);
+            }
         }
         for (Enterprise enterprise : vendors) {
             EnterpriseBaseInfo enBaseInfo = enterpriseBaseInfoDao.findOne(enterprise.getUu());
@@ -580,6 +584,8 @@ public class TenderServiceImpl implements TenderService {
         PurchaseTender tender = purchaseTenderDao.findOne(id);
         SaleTender saleTenderTemp = saleTenderDao.findByEnUUAndVendUUAndCode(tender.getEnUU(), venduu, tender.getCode());
         SaleTenderErp saleTenderErp = saleTenderErpDao.findOne(saleTenderTemp.getId());
+//        String attachSql = "select count(*) from purc$pagingrelease pr left join purc$pagingreleasedetail prd on pr.pr_id = prd.prd_prid where prd.prd_emuu = " + vendUseruu + " and prd.prd_venduu = " + venduu + " and prd.prd_totalstatus = 0 and prd.prd_readstatus = 0";
+//        Set<Attach> tenderAttaches = = commonDao.queryForObject(countSql, Attach.class);
         return saleTenderErp;
     }
 
@@ -592,24 +598,77 @@ public class TenderServiceImpl implements TenderService {
      * @return
      */
     @Override
-    public ModelMap reply(List<SaleTenderItem> tenderItems, EnterpriseBaseInfo enBaseInfo, List<Attach> attaches) {
-        enterpriseBaseInfoDao.save(enBaseInfo);
-        SaleTenderItem item = saleTenderItemDao.findOne(tenderItems.get(0).getId());
-        SaleTender saleTender = item.getSaleTender();
-        saleTender.setStatus("已投标");
+    public ModelMap reply(List<SaleTenderItem> tenderItems, EnterpriseBaseInfo enBaseInfo, List<Attach> attaches, Long saleTenderId) {
+        if (!Objects.isNull(enBaseInfo) && null != enBaseInfo.getUu()) {
+            enterpriseBaseInfoDao.save(enBaseInfo);
+        }
+        SaleTender saleTender = saleTenderDao.findOne(saleTenderId);
         Set<Attach> attachSet = new HashSet<>();
-        attachSet.addAll(attaches);
+//        saleTender.setBidAttaches(attachSet); // 先清掉关联关系
+//        saleTenderDao.save(saleTender);
+        if (tenderItems.size() > 0) {
+            saleTender.setStatus("已投标");
+        }
+        List<Attach> attachList = new ArrayList<>();
+        for (Attach attach : attaches) {
+            if (null == attach.getId()) {
+                attachList.add(attach);
+            } else {
+                attachSet.add(attach);
+            }
+        }
+        if (!CollectionUtils.isEmpty(attachList)) {
+            attachList = attachDao.save(attachList);
+            attachSet.addAll(attachList);
+        }
+//        attachSet.addAll(attaches);
         saleTender.setBidAttaches(attachSet);
         saleTenderDao.save(saleTender);
-        for (SaleTenderItem tenderItem : tenderItems) {
-            SaleTenderItem saleTenderItem = saleTenderItemDao.findOne(tenderItem.getId());
-            // 需要修改见索引主表中的字段来触发索引更新
-            saleTenderItem.getTenderProd().getTender().setModified(new Date());
-            saleTenderItem.getTenderProd().getTender().setStatus("待评标");
-            saleTenderItem.setPrice(tenderItem.getPrice());
-            saleTenderItem.setTaxrate(tenderItem.getTaxrate());
-            saleTenderItem.setCycle(tenderItem.getCycle());
-            saleTenderItemDao.save(saleTenderItem);
+        if (tenderItems.size() > 0 ) {
+            for (SaleTenderItem tenderItem : tenderItems) {
+                SaleTenderItem saleTenderItem = saleTenderItemDao.findOne(tenderItem.getId());
+                // 需要修改见索引主表中的字段来触发索引更新
+                saleTenderItem.getTenderProd().getTender().setModified(new Date());
+                saleTenderItem.getTenderProd().getTender().setStatus("待评标");
+                saleTenderItem.setPrice(tenderItem.getPrice());
+                saleTenderItem.setTaxrate(tenderItem.getTaxrate());
+                saleTenderItem.setCycle(tenderItem.getCycle());
+                saleTenderItemDao.save(saleTenderItem);
+            }
+        }
+        ModelMap map = new ModelMap();
+        map.put("success", true);
+        return map;
+    }
+
+    /**
+     * 投标(未修改附件)
+     *
+     * @param tenderItems
+     * @param enBaseInfo
+     * @return
+     */
+    @Override
+    public ModelMap reply(List<SaleTenderItem> tenderItems, EnterpriseBaseInfo enBaseInfo, Long saleTenderId) {
+        if (!Objects.isNull(enBaseInfo) && null != enBaseInfo.getUu()) {
+            enterpriseBaseInfoDao.save(enBaseInfo);
+        }
+        SaleTender saleTender = saleTenderDao.findOne(saleTenderId);
+        if (tenderItems.size() > 0) {
+            saleTender.setStatus("已投标");
+        }
+        saleTenderDao.save(saleTender);
+        if (tenderItems.size() > 0 ) {
+            for (SaleTenderItem tenderItem : tenderItems) {
+                SaleTenderItem saleTenderItem = saleTenderItemDao.findOne(tenderItem.getId());
+                // 需要修改见索引主表中的字段来触发索引更新
+                saleTenderItem.getTenderProd().getTender().setModified(new Date());
+                saleTenderItem.getTenderProd().getTender().setStatus("待评标");
+                saleTenderItem.setPrice(tenderItem.getPrice());
+                saleTenderItem.setTaxrate(tenderItem.getTaxrate());
+                saleTenderItem.setCycle(tenderItem.getCycle());
+                saleTenderItemDao.save(saleTenderItem);
+            }
         }
         ModelMap map = new ModelMap();
         map.put("success", true);
@@ -620,32 +679,24 @@ public class TenderServiceImpl implements TenderService {
     /**
      * 采购方定标操作
      *
-     * @param purchaseTender
+     * @param saleTenderItems
      * @return
      */
     @Override
-    public ModelMap decide(PurchaseTender purchaseTender) {
+    public ModelMap decide(List<SaleTenderItem> saleTenderItems) {
         boolean isApply = false;
-        for (PurchaseTenderProd tenderProd : purchaseTender.getPurchaseTenderProds()) {
-            for (SaleTenderItem tenderItem : tenderProd.getSaleTenderItems()) {
-                if (tenderItem.getApplyStatus() != null && tenderItem.getApplyStatus() == Constant.YES) {
-                    isApply = true; // 只要有定标的明细,就确认状态为已结标
-                }
+        for (SaleTenderItem tenderItem : saleTenderItems) {
+            if (tenderItem.getApplyStatus() != null && tenderItem.getApplyStatus() == Constant.YES) {
+                isApply = true; // 只要有定标的明细,就确认状态为已结标
             }
         }
         if (isApply) {
-            purchaseTender.setStatus("已结标");
+            saleTenderItems.get(0).getTenderProd().getTender().setStatus("已结标");
         } else {
-            purchaseTender.setStatus("流标");
-        }
-        for (PurchaseTenderProd tenderProd : purchaseTender.getPurchaseTenderProds()) {
-            tenderProd.setTender(purchaseTender);
-            purchaseTenderProdDao.save(tenderProd);
-            for (SaleTenderItem tenderItem : tenderProd.getSaleTenderItems()) {
-                tenderItem.setTenderProd(tenderProd);
-                saleTenderItemDao.save(tenderItem);
-            }
+            saleTenderItems.get(0).getTenderProd().getTender().setStatus("流标");
         }
+        purchaseTenderDao.save(saleTenderItems.get(0).getTenderProd().getTender());
+        saleTenderItemDao.save(saleTenderItems);
         ModelMap map = new ModelMap();
         map.put("success", true);
         return map;

+ 38 - 2
src/main/java/com/uas/platform/b2b/listener/MessageListener.java

@@ -1,17 +1,23 @@
 package com.uas.platform.b2b.listener;
 
+import com.alibaba.dubbo.common.utils.CollectionUtils;
+import com.uas.account.util.AccountUtils;
 import com.uas.platform.b2b.dao.PagingReleaseDetailDao;
+import com.uas.platform.b2b.dao.UserDao;
 import com.uas.platform.b2b.event.SaveReleaseEvent;
 import com.uas.platform.b2b.mobile.service.MobileReleaseService;
 import com.uas.platform.b2b.model.PagingReleaseDetail;
+import com.uas.platform.b2b.model.User;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationListener;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
 import java.util.List;
 
-/**
+/*
+* *
  * 监听新增数据事件
  * 生成对应消息
  *
@@ -22,6 +28,10 @@ public class MessageListener implements ApplicationListener<SaveReleaseEvent<?,
 	@Autowired
 	private PagingReleaseDetailDao pagingReleaseDetailDao;
 
+
+	@Autowired
+	private UserDao userDao;
+
 	@Autowired
 	private MobileReleaseService mobileReleaseService;
 
@@ -29,7 +39,33 @@ public class MessageListener implements ApplicationListener<SaveReleaseEvent<?,
 	@Async
 	@Override
 	public void onApplicationEvent(final SaveReleaseEvent<?, ?> event) {
-		List<PagingReleaseDetail> pagingReleaseDetails = pagingReleaseDetailDao.save((List<PagingReleaseDetail>) event.release());
+		// 没有UAS和SAAS的才产生消息
+		List<PagingReleaseDetail> allDetails = (List<PagingReleaseDetail>) event.release();
+		List<PagingReleaseDetail> saveDetails = new ArrayList<>();
+		for (PagingReleaseDetail detail : allDetails) {
+			Long emUU = detail.getVendUserUU();
+			List<User> vendUsers = userDao.findUserByUserUU(emUU);
+			if (!CollectionUtils.isEmpty(vendUsers)) {
+				boolean hasUAS = false;
+				User vendUser = vendUsers.get(0);
+				try {
+					List<com.uas.account.entity.User> userAccounts = AccountUtils.getUserInfoByUid(vendUser.getUserTel());
+					if (!CollectionUtils.isEmpty(userAccounts)) {
+						for (com.uas.account.entity.User account : userAccounts) {
+							if ("uas".equals(account.getAppId()) || "saas".equals(account.getAppId())) {
+								hasUAS = true;
+							}
+						}
+						if (!hasUAS) {
+							saveDetails.add(detail);
+						}
+					}
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		List<PagingReleaseDetail> pagingReleaseDetails = pagingReleaseDetailDao.save(saveDetails);
 		try { // 推送消息
 			mobileReleaseService.pushReleases(pagingReleaseDetails);
 		} catch (Exception e) {

+ 2 - 2
src/main/java/com/uas/platform/b2b/model/Attach.java

@@ -91,8 +91,8 @@ public class Attach implements Serializable{
 		this.date = date;
 	}
 
-	@JsonIgnore
-	@JSONField(serialize = false)
+//	@JsonIgnore
+//	@JSONField(serialize = false)
 	public String getPath() {
 		return path;
 	}

+ 1 - 1
src/main/java/com/uas/platform/b2b/model/PurchaseTender.java

@@ -151,7 +151,7 @@ public class PurchaseTender implements Serializable {
     /**
      * 招标附件
      */
-    @OneToMany(fetch = FetchType.EAGER, cascade = {CascadeType.REFRESH})
+    @OneToMany(fetch = FetchType.EAGER, cascade = {CascadeType.ALL})
     @JoinTable(name = "purc$tenderattach", joinColumns = @JoinColumn(name = "pt_id", referencedColumnName = "pt_id"), inverseJoinColumns = @JoinColumn(name="at_id", referencedColumnName = "at_id"))
     private Set<Attach> tenderAttaches;
 

+ 1 - 1
src/main/java/com/uas/platform/b2b/model/SaleTender.java

@@ -143,7 +143,7 @@ public class SaleTender implements Serializable, Comparable<SaleTender> {
     /**
      * 投标附件
      */
-    @OneToMany(fetch = FetchType.EAGER, cascade = {CascadeType.REFRESH})
+    @OneToMany(fetch = FetchType.EAGER, cascade = {CascadeType.ALL})
     @JoinTable(name = "sale$tenderattach", joinColumns = @JoinColumn(name = "st_id", referencedColumnName = "st_id"), inverseJoinColumns = @JoinColumn(name="at_id", referencedColumnName = "at_id"))
     private Set<Attach> bidAttaches;
 

+ 7 - 7
src/main/java/com/uas/platform/b2b/model/SaleTenderErp.java

@@ -1,8 +1,5 @@
 package com.uas.platform.b2b.model;
 
-import com.alibaba.fastjson.annotation.JSONField;
-import org.codehaus.jackson.annotate.JsonIgnore;
-
 import javax.persistence.*;
 import java.io.Serializable;
 import java.util.Date;
@@ -139,6 +136,11 @@ public class SaleTenderErp implements Serializable {
     @Column(name = "st_status")
     private String status;
 
+//    /**
+//     * 招标附件
+//     */
+//    private Set<Attach> tenderAttaches;
+
     /**
      * 投标附件
      */
@@ -149,7 +151,8 @@ public class SaleTenderErp implements Serializable {
     /**
      * 投标明细
      */
-    @OneToMany(mappedBy = "saleTender", cascade = CascadeType.REFRESH, fetch = FetchType.EAGER)
+    @OneToMany(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER)
+    @JoinColumn(name = "sti_stid")
     @OrderBy("id")
     private Set<SaleTenderItemErp> saleTenderItems;
 
@@ -172,9 +175,6 @@ public class SaleTenderErp implements Serializable {
     @Column(name = "pt_auditstatus")
     private Short auditStatus;
 
-    public SaleTenderErp() {
-    }
-
 
     public Long getId() {
         return id;

+ 0 - 16
src/main/java/com/uas/platform/b2b/model/SaleTenderItemErp.java

@@ -70,13 +70,6 @@ public class SaleTenderItemErp implements Serializable{
     @JoinColumn(name = "sti_tpid", nullable = false)
     private SaleTenderProdErp tenderProd;
 
-    /**
-     * 投标主表
-     */
-    @ManyToOne(cascade = {CascadeType.REFRESH}, fetch = FetchType.LAZY)
-    @JoinColumn(name = "sti_stid", nullable = false)
-    private SaleTenderErp saleTender;
-
 
     public Long getId() {
         return id;
@@ -135,13 +128,4 @@ public class SaleTenderItemErp implements Serializable{
         this.tenderProd = tenderProd;
     }
 
-    @JsonIgnore
-    @JSONField(serialize = false)
-    public SaleTenderErp getSaleTender() {
-        return saleTender;
-    }
-
-    public void setSaleTender(SaleTenderErp saleTender) {
-        this.saleTender = saleTender;
-    }
 }

+ 0 - 17
src/main/java/com/uas/platform/b2b/model/SaleTenderProdErp.java

@@ -70,13 +70,6 @@ public class SaleTenderProdErp implements Serializable {
     @Column(name = "tp_qty")
     private Long qty;
 
-    /**
-     * 投标明细
-     */
-    @OneToMany(mappedBy = "tenderProd", cascade = CascadeType.REFRESH, fetch = FetchType.LAZY)
-    @OrderBy("id")
-    private Set<SaleTenderItemErp> saleTenderItems;
-
     public Long getId() {
         return id;
     }
@@ -140,14 +133,4 @@ public class SaleTenderProdErp implements Serializable {
     public void setProdSpec(String prodSpec) {
         this.prodSpec = prodSpec;
     }
-
-    @JsonIgnore
-    @JSONField(serialize = false)
-    public Set<SaleTenderItemErp> getSaleTenderItems() {
-        return saleTenderItems;
-    }
-
-    public void setSaleTenderItems(Set<SaleTenderItemErp> saleTenderItems) {
-        this.saleTenderItems = saleTenderItems;
-    }
 }

+ 8 - 0
src/main/java/com/uas/platform/b2b/search/SearchService.java

@@ -430,4 +430,12 @@ public interface SearchService {
 	 * @return
 	 */
 	public SPage<InvitationRecord> getInvitationByKeyword(String keyword, PageParams pageParams);
+
+	/**
+	 * 查看当前用户供应商企业信息
+	 * @param keyword
+	 * @param pageParams
+	 * @return
+	 */
+    SPage<Enterprise> searchVendorIds(String keyword, PageParams pageParams);
 }

+ 18 - 0
src/main/java/com/uas/platform/b2b/search/SearchServiceImpl.java

@@ -801,6 +801,24 @@ public class SearchServiceImpl implements com.uas.platform.b2b.search.SearchServ
 		return toSPage(idsPage, content);
 	}
 
+	/**
+	 * 供应商企业信息
+	 * @param keyword
+	 * @param pageParams
+	 * @return
+	 */
+	@Override
+	public SPage<Enterprise> searchVendorIds(String keyword, PageParams pageParams) {
+		SPage<Long> idsPage = searchService.searchIds(keyword, Table_name.PURC$VENDORS, pageParams);
+		List<Vendor> content = vendorDao.findAll(idsPage.getContent());
+		List<Enterprise> vendors = new ArrayList<>();
+		for (Vendor vendor : content) {
+			vendors.add(vendor.getVendorEnterprise());
+		}
+		sortByProperty(vendors, Enterprise.class, "uu", idsPage.getContent());
+		return toSPage(idsPage, vendors);
+	}
+
 	@Override
 	public Component getComponentByCode(String code) {
 		return componentDao.findByCode(code).get(0); // 因为只能带一个,选找到的第一个

+ 8 - 4
src/main/java/com/uas/platform/b2b/service/impl/PurchaseTenderServiceImpl.java

@@ -133,9 +133,11 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
         tender.setEnUU(SystemSession.getUser().getEnterprise().getUu());
         purchaseTenderDao.save(tender);
         Set<PurchaseTenderProd> tenderProds = tender.getPurchaseTenderProds();
-        for (PurchaseTenderProd tenderProd : tenderProds) {
-            tenderProd.setTender(tender);
-            purchaseTenderProdDao.save(tenderProd);
+        if (!CollectionUtils.isEmpty(tenderProds)) {
+            for (PurchaseTenderProd tenderProd : tenderProds) {
+                tenderProd.setTender(tender);
+                purchaseTenderProdDao.save(tenderProd);
+            }
         }
     }
 
@@ -501,7 +503,9 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
         List<Enterprise> vendors = new ArrayList<>();
         for (Long vendUU : vendUUs) {
             Enterprise vendor = enterpriseDao.findOne(vendUU);
-            vendors.add(vendor);
+            if (null != vendor) {
+                vendors.add(vendor);
+            }
         }
         for (Enterprise enterprise : vendors) {
             EnterpriseBaseInfo enBaseInfo = enterpriseBaseInfoDao.findOne(enterprise.getUu());

+ 15 - 3
src/main/webapp/resources/js/index/app.js

@@ -3948,8 +3948,8 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
 		BaseService.scrollBackToTop();
 		$scope.active = 'todo';
 		$scope.agreedText = '全部';
-		$scope.dateZoneText = '一个月内';
-		$scope.condition = {dateZone: 1};
+		$scope.dateZoneText = '不限';
+		$scope.condition = {dateZone: -1};
 		var inquiryMould_copy = {};
 		$scope.changeAgreed = function(agreed) {
 			$scope.condition.agreed = agreed;
@@ -3971,7 +3971,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
 					$scope.tableParams.page(1);
 				}
 			}
-		}
+		};
 		
 		var getService = function() {
 			return PurcInquiryMould;
@@ -4151,6 +4151,18 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
 			$scope.tableParams.page(1);
 			$scope.tableParams.reload();
 		};
+
+        $scope.openDatePicker = function($event, item, openParam) {
+            $event.preventDefault();
+            $event.stopPropagation();
+            item[openParam] = !item[openParam];
+        };
+
+        $scope.parseDate = function(dateStr) {
+            if(dateStr)
+                return Date.parse(dateStr, 'yyyy-MM-dd');
+            return new Date();
+        };
 		
 	}]);