Prechádzať zdrojové kódy

消息红点: 招标单和投标单数据错位异常的处理;供应商和客户增加设置消息阅读功能

hejq 7 rokov pred
rodič
commit
723af77ac5

+ 5 - 4
src/main/java/com/uas/platform/b2b/controller/VendorController.java

@@ -3,6 +3,7 @@ package com.uas.platform.b2b.controller;
 import com.alibaba.fastjson.JSON;
 import com.uas.platform.b2b.model.Distribute;
 import com.uas.platform.b2b.model.OrderType;
+import com.uas.platform.b2b.model.Role;
 import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.model.User;
 import com.uas.platform.b2b.model.Vendor;
@@ -282,8 +283,8 @@ public class VendorController {
 	 */
 	@RequestMapping(value = "/customer/setRead", method = RequestMethod.POST)
 	@ResponseBody
-	public void setReadByIds(@RequestBody Long... sourceIds) {
-        redDotService.setReadByIds(OrderType.vendors.name(), sourceIds);
+	public void setReadByIds() {
+        redDotService.setReadByState(OrderType.vendors.name(), Role.SELLER);
 	}
 
 	/**
@@ -292,8 +293,8 @@ public class VendorController {
 	 */
 	@RequestMapping(value = "/vendor/setRead", method = RequestMethod.POST)
 	@ResponseBody
-	public void setVendorReadByIds(@RequestBody Long... sourceIds) {
-		redDotService.setReadByIds(OrderType.vendors.name(), sourceIds);
+	public void setVendorReadByIds() {
+		redDotService.setReadByState(OrderType.vendors.name(), Role.BUYER);
 	}
 
 	/**

+ 26 - 13
src/main/java/com/uas/platform/b2b/dao/PurchaseTenderDao.java

@@ -9,52 +9,65 @@ import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.sql.SQLException;
 import java.util.Date;
 import java.util.List;
 import java.util.Set;
 
 /**
- * Created by dongbw on 17/03/07 14:10.
+ * 招标单信息
+ * @author dongbw
+ * @date 17/03/07 14:10
  */
 @Repository
 public interface PurchaseTenderDao extends JpaSpecificationExecutor<PurchaseTender>, JpaRepository<PurchaseTender, Long> {
 
+    /**
+     * 通过企业UU和编号查询招标单信息
+     * @param uu 企业UU
+     * @param code 编号
+     * @return  List<PurchaseTender>
+     */
     List<PurchaseTender> findByEnUUAndCode(Long uu, String code);
 
     /**
      * 获得待评标的数量
      *
      * @param ids 单据id
-     * @return
+     * @return 数量
      */
     @Query("select count(p) from PurchaseTender p where p.id in :ids and p.overdue = 1 and p.status = '待评标' and p.result <> 1")
-    public Integer getEvaluationCount(@Param("ids") List<Long> ids);
+    Integer getEvaluationCount(@Param("ids") List<Long> ids);
 
     /**
      * 获得待投标的数量
      *
      * @param ids 单据id
-     * @return
+     * @param vendUU 供应商UU
+     * @return 数量
      */
     @Query("select count(p) from SaleTender p where p.ptId in :ids and p.overdue <> 1 and p.status = '待投标' and p.vendUU = :vendUU and p.isPublish = 1")
-    public Integer getTenterCount(@Param("ids") List<Long> ids, @Param("vendUU") Long vendUU);
+    Integer getTenterCount(@Param("ids") List<Long> ids, @Param("vendUU") Long vendUU);
 
     /**
-     * 全包定标时,修改招标单
-     * @param tenderIds
-     * @param modified
+     * 全部定标时,修改招标单
+     *
+     * @param tenderIds 招标单id
+     * @param modified 单据最后时间
      */
-    @Modifying@Transactional
+    @Modifying
+    @Transactional(rollbackFor = SQLException.class)
     @Query("update PurchaseTender p set p.modified = :modified,p.auditStatus = 0 where p.id in :tenderIds")
     void updateTenderDecide(@Param("tenderIds") Set<Long> tenderIds, @Param("modified") Date modified);
 
     /**
      * 全包定标时,修改投标明细
-     * @param applyStatus
-     * @param reason
-     * @param saleTenderId
+     * @param applyStatus 中标状态
+     * @param reason 说明
+     * @param saleTenderId 投标主表
      */
-    @Modifying@Transactional
+    @Modifying
+    @Transactional(rollbackFor = SQLException.class)
     @Query("update SaleTenderItem s set s.applyStatus = :applyStatus,s.description = :reason where s.saleTender.id = :saleTenderId")
     void updateSaleTenderItemDecide(@Param("applyStatus") Short applyStatus, @Param("reason") String reason, @Param("saleTenderId") Long saleTenderId);
 }

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

@@ -1,14 +1,28 @@
 package com.uas.platform.b2b.model;
 
 
-import javax.persistence.*;
-import java.io.Serializable;
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.Id;
+import javax.persistence.Index;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinTable;
+import javax.persistence.OneToMany;
+import javax.persistence.OneToOne;
+import javax.persistence.OrderBy;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+import java.io.*;
 import java.util.Date;
 import java.util.Set;
 
 /**
  *  招标单信息(因为存在根据日期判断状态,需要使用定时任务,采用视图)
- * Created by dongbw on 17/03/07 11:16.
+ *
+ * @author dongbw
+ * @date 17/03/07 11:16
  */
 
 @Table(name = "v$purc$tender", indexes = {@Index(name= "unique_enuu_code", columnList = "pt_enuu,pt_code", unique = true)})

+ 11 - 9
src/main/java/com/uas/platform/b2b/model/SaleTenderItem.java

@@ -3,8 +3,16 @@ 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 javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+import java.io.*;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
@@ -14,6 +22,7 @@ import java.util.Set;
  *  投标单明细
  * Created by dongbw
  * 17/03/30 11:53.
+ * @author US50
  */
 @Table(name = "sale$tenderitem")
 @Entity
@@ -29,7 +38,6 @@ public class SaleTenderItem implements Serializable{
     @Column(name = "sti_id")
     private Long id;
 
-
     /**
      * 税率
      */
@@ -60,12 +68,6 @@ public class SaleTenderItem implements Serializable{
     @Column(name = "sti_applystatus")
     private Short applyStatus;
 
-//    /**
-//     * 投标状态(用于search项目的单据过滤,是否投标其实可以通过是否存在价格判断)
-//     */
-//    @Column(name = "sti_status")
-//    private String status;
-
     /**
      * 招标产品明细
      */

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

@@ -488,8 +488,7 @@ public class OrderRedDotServiceImpl implements OrderRedDotService {
         if (Role.SELLER.equals(roleName)) {
             // 超过1000条需要拆分,不然会报错
             if (unreadIds.size() <= SplitArray.QUERY_MAX_NUMBER) {
-                notReplyCount = purchaseTenderDao.getTenterCount(unreadIds,
-                    SystemSession.getUser().getEnterprise().getUu());
+                notReplyCount = purchaseTenderDao.getEvaluationCount(unreadIds);
             } else {
                 List<List<Long>> idsArray = SplitArray.splitAry(unreadIds, SplitArray.QUERY_MAX_NUMBER);
                 for (List<Long> ids : idsArray) {
@@ -497,13 +496,13 @@ public class OrderRedDotServiceImpl implements OrderRedDotService {
                     if (notReplyCount > 99){
                         break;
                     }
-                    notReplyCount = notReplyCount + purchaseTenderDao.getTenterCount(ids,
-                        SystemSession.getUser().getEnterprise().getUu());
+                    notReplyCount = notReplyCount + purchaseTenderDao.getEvaluationCount(ids);
                 }
             }
         } else if (Role.BUYER.equals(roleName)){
             if (unreadIds.size() <= SplitArray.QUERY_MAX_NUMBER) {
-                notReplyCount = purchaseTenderDao.getEvaluationCount(unreadIds);
+                notReplyCount = purchaseTenderDao.getTenterCount(unreadIds,
+                    SystemSession.getUser().getEnterprise().getUu());
             } else {
                 List<List<Long>> idsArray = SplitArray.splitAry(unreadIds, SplitArray.QUERY_MAX_NUMBER);
                 for (List<Long> ids : idsArray) {
@@ -511,7 +510,8 @@ public class OrderRedDotServiceImpl implements OrderRedDotService {
                     if (notReplyCount > 99) {
                         break;
                     }
-                    notReplyCount = notReplyCount + purchaseTenderDao.getEvaluationCount(ids);
+                    notReplyCount = notReplyCount + purchaseTenderDao.getTenterCount(ids,
+                        SystemSession.getUser().getEnterprise().getUu());
                 }
             }
         }

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

@@ -2247,7 +2247,6 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
         var setOrdersRead = function () {
             var sourceId = [];
             Vendor.setRead({}, sourceId, function (message) {
-                // $scope.getUnreadIds();
             });
         };
         setOrdersRead();