Browse Source

委外单消息事件修改;招标问题修改。

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@10716 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
dongbw 8 years ago
parent
commit
a3563a1c40

+ 3 - 13
src/main/java/com/uas/platform/b2b/dao/PagingReleaseDetailDao.java

@@ -1,7 +1,6 @@
 package com.uas.platform.b2b.dao;
 
-import java.util.List;
-
+import com.uas.platform.b2b.model.PagingReleaseDetail;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Modifying;
@@ -9,8 +8,9 @@ import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.jpa.repository.query.Procedure;
 import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
 
-import com.uas.platform.b2b.model.PagingReleaseDetail;
+import java.util.List;
 
 /**
  * Created by dongbw
@@ -41,16 +41,6 @@ public interface PagingReleaseDetailDao extends JpaRepository<PagingReleaseDetai
     @Query("update PagingReleaseDetail o set o.readStatus = 1 where o.vendUserUU = :vendUseruu and o.vendUU = :venduu and o.pagingRelease in (select p from PagingRelease p where p.sourceId in :sourceId)")
     void setReadByVendUserUUAndVendUUAndSourceId(@Param("vendUseruu") Long vendUseruu, @Param("venduu") Long venduu, @Param("sourceId") Long[] sourceId);
 
-    /**
-     * 将消息设置成已推送
-     *
-     * @param ids
-     */
-    @Modifying
-    @Query("update PagingReleaseDetail o set o.pushStatus = 1 where o.id in :ids")
-    void setPushedByIds(@Param("ids") Object[] ids);
-
-
     /**
      * 获得未读消息的单据id
      *

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

@@ -175,7 +175,7 @@ public class SaleTenderErp implements Serializable {
      */
     @OneToOne(cascade = CascadeType.PERSIST)
     @JoinColumn(name = "st_venduu", insertable = false, updatable = false)
-    private EnterpriseBaseInfo vendor;
+    private EnterpriseBaseInfo enterpriseBaseInfo;
 
     /**
      * 审核状态(0代表已提交,1代表已审核,uas审批流用,平台发布单据为空)
@@ -352,12 +352,12 @@ public class SaleTenderErp implements Serializable {
         this.saleTenderItems = saleTenderItems;
     }
 
-    public EnterpriseBaseInfo getVendor() {
-        return vendor;
+    public EnterpriseBaseInfo getEnterpriseBaseInfo() {
+        return enterpriseBaseInfo;
     }
 
-    public void setVendor(EnterpriseBaseInfo vendor) {
-        this.vendor = vendor;
+    public void setEnterpriseBaseInfo(EnterpriseBaseInfo enterpriseBaseInfo) {
+        this.enterpriseBaseInfo = enterpriseBaseInfo;
     }
 
     public Long getEnUU() {

+ 82 - 6
src/main/java/com/uas/platform/b2b/erp/service/impl/TenderServiceImpl.java

@@ -1,5 +1,6 @@
 package com.uas.platform.b2b.erp.service.impl;
 
+import com.uas.account.util.AccountUtils;
 import com.uas.platform.b2b.core.util.ThreadTask;
 import com.uas.platform.b2b.dao.*;
 import com.uas.platform.b2b.erp.model.SaleTenderErp;
@@ -7,6 +8,7 @@ import com.uas.platform.b2b.erp.service.TenderService;
 import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.service.AttachService;
 import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.b2b.temporary.model.PartnershipRecord;
 import com.uas.platform.b2b.temporary.model.PurcTenderProd;
 import com.uas.platform.b2b.temporary.model.TenderContactInfo;
 import com.uas.platform.core.model.Constant;
@@ -577,8 +579,8 @@ public class TenderServiceImpl implements TenderService {
                         } else {
                             User admin = userDao.findOne(enterprise.getEnAdminuu());
                             if (null != admin) {
-                                contactInfo.setContactTel(admin.getUserName());
-                                contactInfo.setContact(admin.getUserTel());
+                                contactInfo.setContactTel(admin.getUserTel());
+                                contactInfo.setContact(admin.getUserName());
                                 contactInfo.setContactUU(admin.getUserUU());
                             }
                         }
@@ -593,9 +595,28 @@ public class TenderServiceImpl implements TenderService {
                             if (null == saleTender) {
                                 saleTender = new SaleTender(tender, contactInfo);
                                 saleTender.setVendUU(enBaseInfo.getUu());
-                                saleTender.setVendor(enBaseInfo); // 投标单主表构造完毕
-                                saleTenderDao.save(saleTender);
-                                saveUserOrders(saleTender, tender);
+                                saleTender.setEnterpriseBaseInfo(enBaseInfo); // 投标单主表构造完毕
+                                List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(saleTender.getEnUU(), saleTender.getVendUU());
+                                Vendor vendor = null;
+                                if (vendors.size() == 0) {// 供应商列表中不存在供应商关系
+                                    vendor = addVendor(saleTender);// 增加供应商关系
+                                    addPartnerShipRecord(vendor);
+                                } else {
+                                    vendor = vendors.get(0);
+                                }
+                                if (vendor != null) {// 供应商uu号不为非法的值
+                                    // 如果客户联系人UU号为空或者UU号不存在对应的用户,则设为供应商资料中的供应商联系人(可能为空)
+                                    if (saleTender.getUseruu() != null) {
+                                        List<User> vendUsers = userDao.findByEnUUAndUserUU(vendor.getVendEnUU(),
+                                                saleTender.getUseruu());
+                                        if (vendUsers.size() == 0)
+                                            saleTender.setUseruu(vendor.getVendUserUU());
+                                    }
+                                }
+                                saleTender = saleTenderDao.save(saleTender);
+                                if (tender.getIsPublish() == Constant.YES) {
+                                    saveUserOrders(saleTender, tender);
+                                }
                             }
                             tenderItem.setSaleTender(saleTender);
                         }
@@ -610,13 +631,68 @@ public class TenderServiceImpl implements TenderService {
                 List<SaleTender> saleTenders = saleTenderDao.findByEnUUAndCode(tender.getEnUU(), tender.getCode());
                 for (SaleTender saleTender : saleTenders) {
                     saleTender.setIsPublish(Constant.YES);
-                    saveUserOrders(saleTender, tender);
+                    if (tender.getIsPublish() == Constant.YES) {
+                        saveUserOrders(saleTender, tender);
+                    }
                 }
                 saleTenderDao.save(saleTenders);
             }
         }
     }
 
+    /**
+     * 添加供应商资料
+     *
+     * @param saleTender
+     */
+    private Vendor addVendor(SaleTender saleTender) {
+        Enterprise enterprise = enterpriseDao.findOne(saleTender.getVendUU());
+        if (enterprise != null) {
+            Vendor vendor = new Vendor();
+            vendor.setMyEnUU(saleTender.getEnUU());
+            vendor.setMyUserUU(saleTender.getRecorderuu());
+            vendor.setVendorEnterprise(enterprise);
+            vendor.setVendEnUU(enterprise.getUu());
+            if (saleTender.getUseruu() != null) {
+                List<User> users = userDao.findByEnUUAndUserUU(enterprise.getUu(), saleTender.getUseruu());
+                if (users.size() > 0) {
+                    vendor.setVendUserUU(saleTender.getUseruu());
+                }
+            }
+            return vendorDao.save(vendor);
+        }
+        return null;
+    }
+
+    /**
+     * 添加合作伙伴关系
+     * @param vendor
+     */
+    private void addPartnerShipRecord(Vendor vendor) {
+        PartnershipRecord shipRecord = new PartnershipRecord("uas", vendor);
+        com.uas.account.entity.PartnershipRecord record = new com.uas.account.entity.PartnershipRecord();
+        record.setAppId(shipRecord.getAppId());
+        record.setCustName(shipRecord.getCustName());
+        record.setCustUID(shipRecord.getCustUID());
+        record.setCustUserCode(shipRecord.getCustUserCode());
+        record.setCustUserEmail(shipRecord.getCustUserEmail());
+        record.setCustUserName(shipRecord.getCustUserName());
+        record.setCustUserTel(shipRecord.getCustUserTel());
+        record.setVendName(shipRecord.getVendName());
+        record.setVendUID(shipRecord.getVendUID());
+        record.setVendUserCode(shipRecord.getVendUserCode());
+        record.setVendUserEmail(shipRecord.getVendUserEmail());
+        record.setVendUserName(shipRecord.getVendUserName());
+        record.setVendUserTel(shipRecord.getVendUserTel());
+        try {
+            AccountUtils.synchronizeRecord(record);
+            vendor.setSynchStatus(Constant.YES);
+            vendorDao.save(vendor);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
     /**
      * 保存
      *

+ 3 - 1
src/main/java/com/uas/platform/b2b/event/MakeOrderEndReleaseEvent.java

@@ -33,10 +33,12 @@ public class MakeOrderEndReleaseEvent extends SaveReleaseEvent<PagingReleaseDeta
     public PagingReleaseDetail release(MakeOrder make) {
         //TODO 结案或反结案订单之后,触发新增消息事件。
         Long emUU = make.getUserUU();
+        String emName = "采购员";
         if (null == emUU) {
             emUU = 1L;
+        } else {
+            emName = make.getUser().getUserName();
         }
-        String emName = make.getUser().getUserName();
         Long enUU = make.getEnUU();
         Date date = new Date();
         String codeValue = make.getCode();

+ 3 - 1
src/main/java/com/uas/platform/b2b/event/MakeOrderSaveReleaseEvent.java

@@ -33,10 +33,12 @@ public class MakeOrderSaveReleaseEvent extends SaveReleaseEvent<PagingReleaseDet
 	public PagingReleaseDetail release(MakeOrder make) {
         //TODO 保存新订单之后,触发新增消息事件。
         Long emUU = make.getUserUU();
+        String emName = "采购员";
         if (null == emUU) {
             emUU = 1L;
+        } else {
+            emName = make.getUser().getUserName();
         }
-        String emName = make.getUser().getUserName();
         Long enUU = make.getEnUU();
         Date date = new Date();
         String codeValue = make.getCode();

+ 3 - 3
src/main/java/com/uas/platform/b2b/mobile/service/impl/MobileReleaseServiceImpl.java

@@ -216,7 +216,7 @@ public class MobileReleaseServiceImpl implements MobileReleaseService {
 
     @Override
     public void pushReleases(List<PagingReleaseDetail> pagingReleaseDetails) {
-        List<Long> detailIds = new ArrayList<>();
+        List<PagingReleaseDetail> details = new ArrayList<>();
         Set<Long> userUUs = new HashSet<>();
         for (PagingReleaseDetail releaseDetail : pagingReleaseDetails) {
             // 推送消息同一个人只推一次
@@ -248,9 +248,9 @@ public class MobileReleaseServiceImpl implements MobileReleaseService {
                 }
             }
             releaseDetail.setPushStatus(Constant.YES);
-            detailIds.add(releaseDetail.getId());
+            details.add(releaseDetail);
         }
-        pagingReleaseDetailDao.setPushedByIds(detailIds.toArray());
+        pagingReleaseDetailDao.save(details);
     }
 
 }

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

@@ -213,7 +213,7 @@ public class SaleTender implements Serializable, Comparable<SaleTender> {
      */
     @OneToOne(cascade = CascadeType.REFRESH)
     @JoinColumn(name = "st_venduu", insertable = false, updatable = false)
-    private EnterpriseBaseInfo vendor;
+    private EnterpriseBaseInfo enterpriseBaseInfo;
 
     /**
      * 审核状态(0代表已提交,1代表已审核,uas审批流用,平台发布单据为空)
@@ -466,12 +466,12 @@ public class SaleTender implements Serializable, Comparable<SaleTender> {
         this.saleTenderItems = saleTenderItems;
     }
 
-    public EnterpriseBaseInfo getVendor() {
-        return vendor;
+    public EnterpriseBaseInfo getEnterpriseBaseInfo() {
+        return enterpriseBaseInfo;
     }
 
-    public void setVendor(EnterpriseBaseInfo vendor) {
-        this.vendor = vendor;
+    public void setEnterpriseBaseInfo(EnterpriseBaseInfo enterpriseBaseInfo) {
+        this.enterpriseBaseInfo = enterpriseBaseInfo;
     }
 
     public Long getEnUU() {

+ 8 - 1
src/main/java/com/uas/platform/b2b/service/impl/MakeOrderServiceImpl.java

@@ -102,7 +102,14 @@ public class MakeOrderServiceImpl implements MakeOrderService {
 		List<MakeOrder> newOrders = makeOrderDao.save(orders);
 		saveUserOrders(orders);
 		ContextUtils.publishEvent(new MakeOrderSaveEvent(newOrders));
-		ContextUtils.publishEvent(new MakeOrderSaveReleaseEvent(newOrders));
+		// 结案委外单也用了这个方法,所以需要判断
+		List<MakeOrder> makeOrders = new ArrayList<>();
+		for (MakeOrder order : newOrders) {
+			if (order.getEnd() != 1) {
+				makeOrders.add(order);
+			}
+		}
+		ContextUtils.publishEvent(new MakeOrderSaveReleaseEvent(makeOrders));
 	}
 
 	private void saveUserOrders(final List<MakeOrder> orders) {

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

@@ -578,8 +578,8 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
                     } else {
                         User admin = userDao.findOne(enterprise.getEnAdminuu());
                         if (null != admin) {
-                            contactInfo.setContactTel(admin.getUserName());
-                            contactInfo.setContact(admin.getUserTel());
+                            contactInfo.setContactTel(admin.getUserTel());
+                            contactInfo.setContact(admin.getUserName());
                             contactInfo.setContactUU(admin.getUserUU());
                         }
                     }
@@ -594,11 +594,13 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
                         if (null == saleTender) {
                             saleTender = new SaleTender(tender, contactInfo);
                             saleTender.setVendUU(enBaseInfo.getUu());
-                            saleTender.setVendor(enBaseInfo); // 投标单主表构造完毕
+                            saleTender.setEnterpriseBaseInfo(enBaseInfo); // 投标单主表构造完毕
                             saleTenderDao.save(saleTender);
                             // 用于新增消息
                             saleTenders.add(saleTender);
-                            saveUserOrders(saleTender, tender);
+                            if (tender.getIsPublish() == Constant.YES) {
+                                saveUserOrders(saleTender, tender);
+                            }
                         }
                         tenderItem.setSaleTender(saleTender);
                     }

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

@@ -952,6 +952,9 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
                 }
             });
             PagingRelease.setRead({}, selectedMessages, function (message) {
+                $scope.checks = {
+                    checked: false
+                };
                 toaster.pop("success", "成功", "设置成功");
                 $scope.tableParams.page(1);
                 $scope.tableParams.reload();

+ 1 - 1
src/main/webapp/resources/tpl/index/purc/tender_evaluation.html

@@ -274,7 +274,7 @@
                     </div>
                     <div class="col-xs-12">
                         <div class="bid-desc">证照要求:</div>
-                        <div class="unchanged-info">{{tender.certificate}}</div>
+                        <div class="unchanged-info">{{tender.certificate || '无'}}</div>
                     </div>
                 </div>
                 <!--<div class="title-div" style="border-bottom: 1px dashed #327ebe;">

+ 11 - 1
src/main/webapp/resources/tpl/index/sale/tender.html

@@ -51,6 +51,10 @@
     .bid-content>div>div.col-xs-4{
         padding-left: 5px;
     }
+
+    .bid-content>div>div.col-xs-12{
+        padding-left: 5px;
+    }
     /* 输入框 */
     .bid-input {
         border: none;
@@ -369,7 +373,7 @@
                         </div>
                     </div>
                 </div>
-                <div style="min-height: 150px;">
+                <div style="min-height: 150px;" ng-hide="bid.overdue == 1 || !canSave || !emNumYes">
                     <div class="bid-desc" style="margin-left: 20px;">投标附件:</div>
                     <div class="fileInputContainer">
                         <input class="fileInput" type="file" ng-file-select name="file" ng-model="myFile" ng-change="upload(myFile)" />
@@ -378,6 +382,12 @@
                     </div>
                     <span style="margin-left: 100px; color: #969595; font-size: 12px; font-family: 'Microsoft Yahei Regular';">提示:选择附件大小不超过5MB,可上传JPG,PNG,EXCEL,WORD,PDF</span>
                 </div>
+                <div style="min-height: 50px;" ng-show="(bid.overdue == 1 || !canSave || !emNumYes) && attaches.length > 0">
+                    <div class="bid-desc" style="margin-left: 20px;">投标附件:</div>
+                    <div class="">
+                        <div class="" ng-repeat="attach in attaches">{{attach.name}}</div>
+                    </div>
+                </div>
                 <div  class="title-div" style="border-bottom: 1px dashed #327ebe;">
                     <span>投标企业基本信息</span>
                     <span style="color: rgb(211,37,38);">*</span>