Browse Source

询价查询增加分页搜索,增加封装字段

hejq 8 years ago
parent
commit
99f4cba0d4

+ 11 - 0
src/main/java/com/uas/ps/inquiry/dao/PurcInquiryItemDao.java

@@ -27,4 +27,15 @@ public interface PurcInquiryItemDao extends JpaSpecificationExecutor<PurcInquiry
     @Modifying(clearAutomatically = true)
     @Query("update PurcInquiryItem set overdue = 1 where inquiry.id = :sourceId")
     void updateStatus(@Param("sourceId") Long sourceId);
+
+    /**
+     * 通过id维护该询价明细客户报价数据
+     *
+     * @param sourceId
+     * @param amount
+     */
+    @Transactional
+    @Modifying
+    @Query("update PurcInquiryItem set offerAmount = nullif(offerAmount, 0) + :amount where id = :sourceId")
+    void updateAmount(@Param("sourceId") Long sourceId, @Param("amount") Integer amount);
 }

+ 72 - 57
src/main/java/com/uas/ps/inquiry/model/PublicInquiryItem.java

@@ -361,6 +361,12 @@ public class PublicInquiryItem implements Serializable {
 	@Column(name = "id_producedate")
 	private String produceDate;
 
+    /**
+     * 封装
+     */
+    @Column(name = "id_encapsulation")
+    private String encapsulation;
+
 	public Long getId() {
 		return id;
 	}
@@ -772,7 +778,15 @@ public class PublicInquiryItem implements Serializable {
 		this.produceDate = produceDate;
 	}
 
-	/**
+    public String getEncapsulation() {
+        return encapsulation;
+    }
+
+    public void setEncapsulation(String encapsulation) {
+        this.encapsulation = encapsulation;
+    }
+
+    /**
 	 * 将公共询价单转成报价单
 	 *
 	 * @param item 公共询价单明细
@@ -860,60 +874,61 @@ public class PublicInquiryItem implements Serializable {
 		return inquiries;
     }
 
-	@Override
-	public String toString() {
-		return "PublicInquiryItem{" +
-				"id=" + id +
-				", sourceId=" + sourceId +
-				", number=" + number +
-				", inquiry=" + inquiry +
-				", userUU=" + userUU +
-				", userName='" + userName + '\'' +
-				", userTel='" + userTel + '\'' +
-				", userCode='" + userCode + '\'' +
-				", productId=" + productId +
-				", product=" + product +
-				", prodCode='" + prodCode + '\'' +
-				", currency='" + currency + '\'' +
-				", taxrate=" + taxrate +
-				", remark='" + remark + '\'' +
-				", vendUU=" + vendUU +
-				", enterprise=" + enterprise +
-				", vendUserUU=" + vendUserUU +
-				", user=" + user +
-				", fromDate=" + fromDate +
-				", toDate=" + toDate +
-				", vendFromDate=" + vendFromDate +
-				", vendToDate=" + vendToDate +
-				", minOrderQty=" + minOrderQty +
-				", minPackQty=" + minPackQty +
-				", brand='" + brand + '\'' +
-				", vendorprodcode='" + vendorprodcode + '\'' +
-				", leadtime=" + leadtime +
-				", replies=" + replies +
-				", status=" + status +
-				", sendStatus=" + sendStatus +
-				", backStatus=" + backStatus +
-				", replySendStatus=" + replySendStatus +
-				", agreed=" + agreed +
-				", decideStatus=" + decideStatus +
-				", invalidStatus=" + invalidStatus +
-				", custLap=" + custLap +
-				", erpDate=" + erpDate +
-				", date=" + date +
-				", overdue=" + overdue +
-				", invalid=" + invalid +
-				", source='" + source + '\'' +
-				", qutoApp='" + qutoApp + '\'' +
-				", attaches=" + attaches +
-				", needquantity=" + needquantity +
-				", erpstatus=" + erpstatus +
-				", kind='" + kind + '\'' +
-				", vendName='" + vendName + '\'' +
-				", businessCode='" + businessCode + '\'' +
-				", offerTime=" + offerTime +
-				", sort='" + sort + '\'' +
-				", produceDate='" + produceDate + '\'' +
-				'}';
-	}
+    @Override
+    public String toString() {
+        return "PublicInquiryItem{" +
+                "id=" + id +
+                ", sourceId=" + sourceId +
+                ", number=" + number +
+                ", inquiry=" + inquiry +
+                ", userUU=" + userUU +
+                ", userName='" + userName + '\'' +
+                ", userTel='" + userTel + '\'' +
+                ", userCode='" + userCode + '\'' +
+                ", productId=" + productId +
+                ", product=" + product +
+                ", prodCode='" + prodCode + '\'' +
+                ", currency='" + currency + '\'' +
+                ", taxrate=" + taxrate +
+                ", remark='" + remark + '\'' +
+                ", vendUU=" + vendUU +
+                ", enterprise=" + enterprise +
+                ", vendUserUU=" + vendUserUU +
+                ", user=" + user +
+                ", fromDate=" + fromDate +
+                ", toDate=" + toDate +
+                ", vendFromDate=" + vendFromDate +
+                ", vendToDate=" + vendToDate +
+                ", minOrderQty=" + minOrderQty +
+                ", minPackQty=" + minPackQty +
+                ", brand='" + brand + '\'' +
+                ", vendorprodcode='" + vendorprodcode + '\'' +
+                ", leadtime=" + leadtime +
+                ", replies=" + replies +
+                ", status=" + status +
+                ", sendStatus=" + sendStatus +
+                ", backStatus=" + backStatus +
+                ", replySendStatus=" + replySendStatus +
+                ", agreed=" + agreed +
+                ", decideStatus=" + decideStatus +
+                ", invalidStatus=" + invalidStatus +
+                ", custLap=" + custLap +
+                ", erpDate=" + erpDate +
+                ", date=" + date +
+                ", overdue=" + overdue +
+                ", invalid=" + invalid +
+                ", source='" + source + '\'' +
+                ", qutoApp='" + qutoApp + '\'' +
+                ", attaches=" + attaches +
+                ", needquantity=" + needquantity +
+                ", erpstatus=" + erpstatus +
+                ", kind='" + kind + '\'' +
+                ", vendName='" + vendName + '\'' +
+                ", businessCode='" + businessCode + '\'' +
+                ", offerTime=" + offerTime +
+                ", sort='" + sort + '\'' +
+                ", produceDate='" + produceDate + '\'' +
+                ", encapsulation='" + encapsulation + '\'' +
+                '}';
+    }
 }

+ 109 - 49
src/main/java/com/uas/ps/inquiry/model/PurcInquiryItemInfo.java

@@ -299,6 +299,30 @@ public class PurcInquiryItemInfo {
     @Column(name = "id_encapsulation")
     private String encapsulation;
 
+    /**
+     * 单价预算
+     */
+    @Column(name = "id_unitprice")
+    private Double unitPrice;
+
+    /**
+     * 截止时间
+     */
+    @Column(name = "id_enddate")
+    private Date endDate;
+
+    /**
+     * 剩余时间
+     */
+    @Transient
+    private Long remainingTime;
+
+    /**
+     * 物料报价数量(记录多少人或企业对该物料进行报价)
+     */
+    @Column(name = "id_offeramount")
+    private Integer offerAmount;
+
 	public Long getId() {
 		return id;
 	}
@@ -659,6 +683,37 @@ public class PurcInquiryItemInfo {
         this.encapsulation = encapsulation;
     }
 
+    public Double getUnitPrice() {
+        return unitPrice;
+    }
+
+    public void setUnitPrice(Double unitPrice) {
+        this.unitPrice = unitPrice;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public Long getRemainingTime() {
+	    if (null != endDate) {
+            return endDate.getTime() - System.currentTimeMillis();
+        }
+        return null;
+    }
+
+    public Integer getOfferAmount() {
+        return offerAmount;
+    }
+
+    public void setOfferAmount(Integer offerAmount) {
+        this.offerAmount = offerAmount;
+    }
+
     public static List<PurcInquiryInfo> distinct(List<PurcInquiryItemInfo> inquiryItems) {
 		List<PurcInquiryInfo> inquiries = new ArrayList<>();
 		Set<Long> keys = new HashSet<>();
@@ -671,53 +726,58 @@ public class PurcInquiryItemInfo {
 		return inquiries;
     }
 
-	@Override
-	public String toString() {
-		return "PurcInquiryItemInfo{" +
-				"id=" + id +
-				", number=" + number +
-				", inquiry=" + inquiry +
-				", userUU=" + userUU +
-				", userName='" + userName + '\'' +
-				", userTel='" + userTel + '\'' +
-				", userCode='" + userCode + '\'' +
-				", productId=" + productId +
-				", product=" + product +
-				", prodCode='" + prodCode + '\'' +
-				", prodTitle='" + prodTitle + '\'' +
-				", spec='" + spec + '\'' +
-				", unit='" + unit + '\'' +
-				", cmpCode='" + cmpCode + '\'' +
-				", inbrand='" + inbrand + '\'' +
-				", currency='" + currency + '\'' +
-				", taxrate=" + taxrate +
-				", remark='" + remark + '\'' +
-				", vendUU=" + vendUU +
-				", enterprise=" + enterprise +
-				", vendUserUU=" + vendUserUU +
-				", fromDate=" + fromDate +
-				", toDate=" + toDate +
-				", vendFromDate=" + vendFromDate +
-				", vendToDate=" + vendToDate +
-				", minOrderQty=" + minOrderQty +
-				", minPackQty=" + minPackQty +
-				", brand='" + brand + '\'' +
-				", vendorprodcode='" + vendorprodcode + '\'' +
-				", leadtime=" + leadtime +
-				", replies=" + replies +
-				", status=" + status +
-				", agreed=" + agreed +
-				", custLap=" + custLap +
-				", overdue=" + overdue +
-				", source='" + source + '\'' +
-				", isOpen=" + isOpen +
-				", needquantity=" + needquantity +
-				", sourceid=" + sourceid +
-				", date=" + date +
-				", enuu=" + enuu +
-				", offerTime=" + offerTime +
-				", sort='" + sort + '\'' +
-				", produceDate='" + produceDate + '\'' +
-				'}';
-	}
+    @Override
+    public String toString() {
+        return "PurcInquiryItemInfo{" +
+                "id=" + id +
+                ", number=" + number +
+                ", inquiry=" + inquiry +
+                ", userUU=" + userUU +
+                ", userName='" + userName + '\'' +
+                ", userTel='" + userTel + '\'' +
+                ", userCode='" + userCode + '\'' +
+                ", productId=" + productId +
+                ", product=" + product +
+                ", prodCode='" + prodCode + '\'' +
+                ", prodTitle='" + prodTitle + '\'' +
+                ", spec='" + spec + '\'' +
+                ", unit='" + unit + '\'' +
+                ", cmpCode='" + cmpCode + '\'' +
+                ", inbrand='" + inbrand + '\'' +
+                ", currency='" + currency + '\'' +
+                ", taxrate=" + taxrate +
+                ", remark='" + remark + '\'' +
+                ", vendUU=" + vendUU +
+                ", enterprise=" + enterprise +
+                ", vendUserUU=" + vendUserUU +
+                ", fromDate=" + fromDate +
+                ", toDate=" + toDate +
+                ", vendFromDate=" + vendFromDate +
+                ", vendToDate=" + vendToDate +
+                ", minOrderQty=" + minOrderQty +
+                ", minPackQty=" + minPackQty +
+                ", brand='" + brand + '\'' +
+                ", vendorprodcode='" + vendorprodcode + '\'' +
+                ", leadtime=" + leadtime +
+                ", replies=" + replies +
+                ", status=" + status +
+                ", agreed=" + agreed +
+                ", custLap=" + custLap +
+                ", overdue=" + overdue +
+                ", source='" + source + '\'' +
+                ", isOpen=" + isOpen +
+                ", needquantity=" + needquantity +
+                ", sourceid=" + sourceid +
+                ", date=" + date +
+                ", enuu=" + enuu +
+                ", offerTime=" + offerTime +
+                ", sort='" + sort + '\'' +
+                ", produceDate='" + produceDate + '\'' +
+                ", encapsulation='" + encapsulation + '\'' +
+                ", unitPrice=" + unitPrice +
+                ", endDate=" + endDate +
+                ", remainingTime=" + remainingTime +
+                ", offerAmount=" + offerAmount +
+                '}';
+    }
 }

+ 5 - 0
src/main/java/com/uas/ps/inquiry/service/impl/InquiryForSaleServiceImpl.java

@@ -42,6 +42,9 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
     @Autowired
     private EnterpriseDao enterpriseDao;
 
+    @Autowired
+    private PurcInquiryItemDao purcInquiryItemDao;
+
     /**
      * 通过明细查询询价详情
      *
@@ -205,6 +208,8 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
             items.add(inquiryItem);
         }
         List<PublicInquiryItem> purcitems = infoDao.save(items);
+        // 更新原表的报价条数
+        purcInquiryItemDao.updateAmount(purcitems.get(0).getSourceId(), purcitems.size());
         if (purcitems.get(0).getId() != null) {
             return purcitems.get(0);
         } else {

+ 6 - 4
src/main/java/com/uas/ps/inquiry/service/impl/PublicInquiryServiceImpl.java

@@ -675,10 +675,12 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                         Predicate p = builder.notEqual(root.get("inquiry").get("enUU"), filter.getEnUU());
                         builder.and(p);
                     }
-                    if (filter.getKeyword() != null) {
-                        // 现在只用原厂型号搜索or
-                        Predicate p = builder.notEqual(root.get("product").get("cmpCode"), "%" + filter.getKeyword() + "%");
-                        builder.or(p);
+                    if (!StringUtils.isEmpty(filter.getKeyword())) {
+                        SimpleExpression code = new SimpleExpression("cmpCode", filter.getKeyword(), CriterionExpression.Operator.LIKE);
+                        SimpleExpression brand = new SimpleExpression("inbrand", filter.getKeyword(), CriterionExpression.Operator.LIKE);
+                        SimpleExpression[] simpleExpressions = new SimpleExpression[]{code, brand};
+                        LogicalExpression logicalExpression = PredicateUtils.or(simpleExpressions);
+                        info.expression(logicalExpression);
                     }
                 }
                 query.where(info.getPredicates(root, query, builder));