Bläddra i källkod

Merge branch 'dev' into feature-hejq-20190109

suntg 7 år sedan
förälder
incheckning
502cbb4ecd
23 ändrade filer med 579 tillägg och 123 borttagningar
  1. 7 1
      db/ddl.sql
  2. 12 0
      src/main/java/com/uas/platform/b2b/erp/model/PurchaseDetail.java
  3. 14 0
      src/main/java/com/uas/platform/b2b/model/PurcOrderInfoItem.java
  4. 14 0
      src/main/java/com/uas/platform/b2b/model/PurchaseOrderAllItem.java
  5. 13 0
      src/main/java/com/uas/platform/b2b/model/PurchaseOrderDoneItem.java
  6. 0 42
      src/main/java/com/uas/platform/b2b/model/PurchaseOrderEnd.java
  7. 57 0
      src/main/java/com/uas/platform/b2b/model/PurchaseOrderEndItem.java
  8. 14 0
      src/main/java/com/uas/platform/b2b/model/PurchaseOrderReceivedItem.java
  9. 14 0
      src/main/java/com/uas/platform/b2b/model/PurchaseOrderTodoItem.java
  10. 10 6
      src/main/java/com/uas/platform/b2b/openapi/controller/UsoftController.java
  11. 22 0
      src/main/java/com/uas/platform/b2b/openapi/dao/UsoftOrderItemBatchDao.java
  12. 137 0
      src/main/java/com/uas/platform/b2b/openapi/model/UsoftAcceptItemBatch.java
  13. 138 0
      src/main/java/com/uas/platform/b2b/openapi/model/UsoftOrderItemBatch.java
  14. 2 2
      src/main/java/com/uas/platform/b2b/openapi/service/UsoftService.java
  15. 18 27
      src/main/java/com/uas/platform/b2b/openapi/service/impl/TradingDataServiceImpl.java
  16. 23 28
      src/main/java/com/uas/platform/b2b/openapi/service/impl/UsoftServiceImpl.java
  17. 19 0
      src/main/java/com/uas/platform/b2b/openapi/support/NumDefaultUtil.java
  18. 54 5
      src/main/java/com/uas/platform/b2b/openapi/support/NumFormat.java
  19. 2 3
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseApBillServiceImpl.java
  20. 4 5
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseApCheckServiceImpl.java
  21. 2 2
      src/main/resources/dev/sys.properties
  22. 2 2
      src/main/resources/ptest/sys.properties
  23. 1 0
      src/main/webapp/resources/tpl/index/sale/order_detail.html

+ 7 - 1
db/ddl.sql

@@ -218,4 +218,10 @@ alter table purc$apcheckitem add column pai_payment double COMMENT '付款金额
 alter table purc$apcheckitem
   add column pai_send_id BIGINT COMMENT '送货单明细id',
   add column pai_send_qty DOUBLE COMMENT '送货数量',
-  add column pai_send_price DOUBLE COMMENT '送货单价';
+  add column pai_send_price DOUBLE COMMENT '送货单价';
+
+-- date: 2019-01-15 16:51
+-- author: huj
+-- content: 漳州万利达需求新增物料承认状态
+alter table `purc$orderitems`
+  add column pd_prmaterial VARCHAR(255)  comment '物料承认状态';

+ 12 - 0
src/main/java/com/uas/platform/b2b/erp/model/PurchaseDetail.java

@@ -72,6 +72,17 @@ public class PurchaseDetail {
 	//旧料规格
 	private String pr_oldspec;
 
+	//物料承认状态
+	private String pd_prmaterial;
+
+	public String getPd_prmaterial() {
+		return pd_prmaterial;
+	}
+
+	public void setPd_prmaterial(String pd_prmaterial) {
+		this.pd_prmaterial = pd_prmaterial;
+	}
+
 	public String getPr_oldcode() {
 		return pr_oldcode;
 	}
@@ -366,6 +377,7 @@ public class PurchaseDetail {
 		item.setProdOldCode(this.pr_oldcode);
 		item.setProdOldTitle(this.pr_oldname);
 		item.setProdOldSpec(this.pr_oldspec);
+		item.setPrmaterial(this.pd_prmaterial);
 		if (!CollectionUtils.isEmpty(this.attaches)) {
 			Set<com.uas.platform.b2b.model.Attach> b2bAttaches = new HashSet<com.uas.platform.b2b.model.Attach>();
 			for(Attach attach : this.attaches) {

+ 14 - 0
src/main/java/com/uas/platform/b2b/model/PurcOrderInfoItem.java

@@ -296,6 +296,20 @@ public class PurcOrderInfoItem extends AbstractRedDotKey {
 	@Column(name = "pd_prodoldspec")
 	private String prodOldSpec;
 
+	/**
+	 * 物料承认状态(漳州万利达需求)
+	 */
+	@Column(name = "pd_prmaterial")
+	private String prmaterial;
+
+	public String getPrmaterial() {
+		return prmaterial;
+	}
+
+	public void setPrmaterial(String prmaterial) {
+		this.prmaterial = prmaterial;
+	}
+
 	public String getProdOldCode() {
 		return prodOldCode;
 	}

+ 14 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseOrderAllItem.java

@@ -299,6 +299,12 @@ public class PurchaseOrderAllItem extends AbstractRedDotKey {
 	@Column(name = "pd_prodoldspec")
 	private String prodOldSpec;
 
+	/**
+	 * 物料承认状态(漳州万利达需求)
+	 */
+	@Column(name = "pd_prmaterial")
+	private String prmaterial;
+
 	/**
 	 * 是否在变更中
 	 */
@@ -311,6 +317,14 @@ public class PurchaseOrderAllItem extends AbstractRedDotKey {
 	@Transient
 	private Double latestReplyQty;
 
+	public String getPrmaterial() {
+		return prmaterial;
+	}
+
+	public void setPrmaterial(String prmaterial) {
+		this.prmaterial = prmaterial;
+	}
+
 	public String getProdOldCode() {
 		return prodOldCode;
 	}

+ 13 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseOrderDoneItem.java

@@ -222,6 +222,11 @@ public class PurchaseOrderDoneItem extends AbstractOrderProduct {
 	@Column(name = "pd_prodoldspec")
 	private String prodOldSpec;
 
+	/**
+	 * 物料承认状态(漳州万利达需求)
+	 */
+	@Column(name = "pd_prmaterial")
+	private String prmaterial;
 
 	/**
 	 * 最后一次回复数量
@@ -229,6 +234,14 @@ public class PurchaseOrderDoneItem extends AbstractOrderProduct {
 	@Transient
 	private Double latestReplyQty;
 
+	public String getPrmaterial() {
+		return prmaterial;
+	}
+
+	public void setPrmaterial(String prmaterial) {
+		this.prmaterial = prmaterial;
+	}
+
 	public String getProdOldCode() {
 		return prodOldCode;
 	}

+ 0 - 42
src/main/java/com/uas/platform/b2b/model/PurchaseOrderEnd.java

@@ -215,48 +215,6 @@ public class PurchaseOrderEnd {
 	@Column(name = "pu_custname")
 	private String custName; // 客户名称。
 
-	/**
-	 * 替代料号
-	 */
-	@Column(name = "pd_repprodcode")
-	private String repProdCode;
-
-	/**
-	 * 替代料名称
-	 */
-	@Column(name = "pd_repprodtitle")
-	private String repProdTitle;
-
-	/**
-	 * 替代料规格
-	 */
-	@Column(name = "pd_repprodspec")
-	private String repProdSpec;
-
-	public String getRepProdCode() {
-		return repProdCode;
-	}
-
-	public void setRepProdCode(String repProdCode) {
-		this.repProdCode = repProdCode;
-	}
-
-	public String getRepProdTitle() {
-		return repProdTitle;
-	}
-
-	public void setRepProdTitle(String repProdTitle) {
-		this.repProdTitle = repProdTitle;
-	}
-
-	public String getRepProdSpec() {
-		return repProdSpec;
-	}
-
-	public void setRepProdSpec(String repProdSpec) {
-		this.repProdSpec = repProdSpec;
-	}
-
 	public String getPurpose() {
 		return purpose;
 	}

+ 57 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseOrderEndItem.java

@@ -151,6 +151,31 @@ public class PurchaseOrderEndItem extends AbstractOrderProduct {
 	@Column(name = "pd_returnqty")
 	private Double returnQty;
 
+	/**
+	 * 替代料号
+	 */
+	@Column(name = "pd_repprodcode")
+	private String repProdCode;
+
+	/**
+	 * 替代料名称
+	 */
+	@Column(name = "pd_repprodtitle")
+	private String repProdTitle;
+
+	/**
+	 * 替代料规格
+	 */
+	@Column(name = "pd_repprodspec")
+	private String repProdSpec;
+
+
+	/**
+	 * 物料承认状态(漳州万利达需求)
+	 */
+	@Column(name = "pd_prmaterial")
+	private String prmaterial;
+
 	/**
 	 * 关键词查询相关
 	 */
@@ -163,6 +188,14 @@ public class PurchaseOrderEndItem extends AbstractOrderProduct {
 	@Transient
 	private Double latestReplyQty;
 
+	public String getPrmaterial() {
+		return prmaterial;
+	}
+
+	public void setPrmaterial(String prmaterial) {
+		this.prmaterial = prmaterial;
+	}
+
 	public Long getId() {
 		return id;
 	}
@@ -179,6 +212,30 @@ public class PurchaseOrderEndItem extends AbstractOrderProduct {
 		this.number = number;
 	}
 
+	public String getRepProdCode() {
+		return repProdCode;
+	}
+
+	public void setRepProdCode(String repProdCode) {
+		this.repProdCode = repProdCode;
+	}
+
+	public String getRepProdTitle() {
+		return repProdTitle;
+	}
+
+	public void setRepProdTitle(String repProdTitle) {
+		this.repProdTitle = repProdTitle;
+	}
+
+	public String getRepProdSpec() {
+		return repProdSpec;
+	}
+
+	public void setRepProdSpec(String repProdSpec) {
+		this.repProdSpec = repProdSpec;
+	}
+
 	@Override
 	public Long getProductId() {
 		return productId;

+ 14 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseOrderReceivedItem.java

@@ -144,6 +144,12 @@ public class PurchaseOrderReceivedItem extends AbstractOrderProduct {
 	@Column(name = "pd_returnqty")
 	private Double returnQty;
 
+	/**
+	 * 物料承认状态(漳州万利达需求)
+	 */
+	@Column(name = "pd_prmaterial")
+	private String prmaterial;
+
 	/**
 	 * 关键词查询相关
 	 */
@@ -156,6 +162,14 @@ public class PurchaseOrderReceivedItem extends AbstractOrderProduct {
 	@Transient
 	private Double latestReplyQty;
 
+	public String getPrmaterial() {
+		return prmaterial;
+	}
+
+	public void setPrmaterial(String prmaterial) {
+		this.prmaterial = prmaterial;
+	}
+
 	public Long getId() {
 		return id;
 	}

+ 14 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseOrderTodoItem.java

@@ -212,12 +212,26 @@ public class PurchaseOrderTodoItem extends AbstractOrderProduct {
 	@Column(name = "pd_prodoldspec")
 	private String prodOldSpec;
 
+	/**
+	 * 物料承认状态(漳州万利达需求)
+	 */
+	@Column(name = "pd_prmaterial")
+	private String prmaterial;
+
     /**
      * 最后一次回复数量
      */
 	@Transient
 	private Double latestReplyQty;
 
+	public String getPrmaterial() {
+		return prmaterial;
+	}
+
+	public void setPrmaterial(String prmaterial) {
+		this.prmaterial = prmaterial;
+	}
+
 	public String getProdOldCode() {
 		return prodOldCode;
 	}

+ 10 - 6
src/main/java/com/uas/platform/b2b/openapi/controller/UsoftController.java

@@ -1,5 +1,6 @@
 package com.uas.platform.b2b.openapi.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.uas.platform.b2b.openapi.model.*;
 import com.uas.platform.b2b.openapi.service.UsoftService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -40,9 +41,11 @@ public class UsoftController {
      *      订单id
      * @return
      */
-    @RequestMapping(value = "/order/item/batch", method = RequestMethod.GET)
-    public List<UsoftOrderItem> getUsoftOrderItemsBatch(String orderIds) {
-        return usoftService.getUsoftOrderItemsBatch(orderIds);
+    @RequestMapping(value = "/order/item/batch", method = RequestMethod.POST)
+    public List<UsoftOrderItemBatch> getUsoftOrderItemsBatch(@RequestBody String orderIds) {
+        String ids = JSON.parseObject(orderIds).getString("orderIds");
+
+        return usoftService.getUsoftOrderItemsBatch(ids);
     }
 
     /**
@@ -88,9 +91,10 @@ public class UsoftController {
      *      验收单id字符串
      * @return
      */
-    @RequestMapping(value = "/accept/item/batch", method = RequestMethod.GET)
-    public List<UsoftAcceptItem> getUsoftAcceptItemsBatch(String acceptIds) {
-        return usoftService.getUsoftAcceptItemsBatch(acceptIds);
+    @RequestMapping(value = "/accept/item/batch", method = RequestMethod.POST)
+    public List<UsoftAcceptItemBatch> getUsoftAcceptItemsBatch(@RequestBody String acceptIds) {
+        String ids = JSON.parseObject(acceptIds).getString("acceptIds");
+        return usoftService.getUsoftAcceptItemsBatch(ids);
     }
 
     /**

+ 22 - 0
src/main/java/com/uas/platform/b2b/openapi/dao/UsoftOrderItemBatchDao.java

@@ -0,0 +1,22 @@
+package com.uas.platform.b2b.openapi.dao;
+
+import com.uas.platform.b2b.openapi.model.UsoftOrderItemBatch;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+
+/**
+ * @Author: huj
+ * @Date: Created in 18:07 2019/01/09.
+ */
+@Repository
+public interface UsoftOrderItemBatchDao extends JpaSpecificationExecutor<UsoftOrderItemBatch>, JpaRepository<UsoftOrderItemBatch, Long> {
+
+    @Query(value = "select u from UsoftOrderItemBatch u where u.orderId in :orderIds")
+    List<UsoftOrderItemBatch> findByIds(@Param("orderIds") List<Long> orderIds);
+}

+ 137 - 0
src/main/java/com/uas/platform/b2b/openapi/model/UsoftAcceptItemBatch.java

@@ -0,0 +1,137 @@
+package com.uas.platform.b2b.openapi.model;
+
+/**
+ * @Author: huj
+ * @Date: Created in 10:30 2019/01/10.
+ */
+public class UsoftAcceptItemBatch {
+    private Long id;
+
+    private String orderCode;
+
+    private String title;
+
+    private String code;
+
+    private String cmpcode;
+
+    private String spec;
+
+    private String brand;
+
+    private Double price;
+
+    private String unit;
+
+    private Double checkqty;
+
+    private Double amount;
+
+    private String batchCode;
+
+    private Long acceptId;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getOrderCode() {
+        return orderCode;
+    }
+
+    public void setOrderCode(String orderCode) {
+        this.orderCode = orderCode;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getCmpcode() {
+        return cmpcode;
+    }
+
+    public void setCmpcode(String cmpcode) {
+        this.cmpcode = cmpcode;
+    }
+
+    public String getSpec() {
+        return spec;
+    }
+
+    public void setSpec(String spec) {
+        this.spec = spec;
+    }
+
+    public String getBrand() {
+        return brand;
+    }
+
+    public void setBrand(String brand) {
+        this.brand = brand;
+    }
+
+    public Double getPrice() {
+        return price;
+    }
+
+    public void setPrice(Double price) {
+        this.price = price;
+    }
+
+    public String getUnit() {
+        return unit;
+    }
+
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+
+    public Double getCheckqty() {
+        return checkqty;
+    }
+
+    public void setCheckqty(Double checkqty) {
+        this.checkqty = checkqty;
+    }
+
+    public Double getAmount() {
+        return amount;
+    }
+
+    public void setAmount(Double amount) {
+        this.amount = amount;
+    }
+
+    public String getBatchCode() {
+        return batchCode;
+    }
+
+    public void setBatchCode(String batchCode) {
+        this.batchCode = batchCode;
+    }
+
+    public Long getAcceptId() {
+        return acceptId;
+    }
+
+    public void setAcceptId(Long acceptId) {
+        this.acceptId = acceptId;
+    }
+}

+ 138 - 0
src/main/java/com/uas/platform/b2b/openapi/model/UsoftOrderItemBatch.java

@@ -0,0 +1,138 @@
+package com.uas.platform.b2b.openapi.model;
+
+import com.alibaba.fastjson.annotation.JSONField;
+
+import javax.persistence.*;
+
+/**
+ * @Author: huj
+ * @Date: Created in 18:03 2019/01/09.
+ */
+@Table(name = "purc$orderitems")
+@Entity
+public class UsoftOrderItemBatch {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    @Column(name = "pd_id")
+    private Long id;
+
+    @Column(name = "pr_code")
+    private String code;
+
+    @Column(name = "pr_title")
+    private String title;
+
+    @Column(name = "pr_cmpcode")
+    private String cmpcode;
+
+    @Column(name = "pr_spec", length = 1000)
+    private String spec;
+
+    @Column(name = "pd_price")
+    private Double price;
+
+    @Column(name = "pd_taxrate")
+    private Float rate;
+
+    @Column(name = "pd_qty")
+    private Double quantity;
+
+    @Column(name = "pr_unit")
+    private String unit;
+
+    @Column(name = "pd_delivery")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+    private String delivery;
+
+    @Column(name = "pd_puid")
+    private Long orderId;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getCmpcode() {
+        return cmpcode;
+    }
+
+    public void setCmpcode(String cmpcode) {
+        this.cmpcode = cmpcode;
+    }
+
+    public String getSpec() {
+        return spec;
+    }
+
+    public void setSpec(String spec) {
+        this.spec = spec;
+    }
+
+    public Double getPrice() {
+        return price;
+    }
+
+    public void setPrice(Double price) {
+        this.price = price;
+    }
+
+    public Float getRate() {
+        return rate;
+    }
+
+    public void setRate(Float rate) {
+        this.rate = rate;
+    }
+
+    public Double getQuantity() {
+        return quantity;
+    }
+
+    public void setQuantity(Double quantity) {
+        this.quantity = quantity;
+    }
+
+    public String getUnit() {
+        return unit;
+    }
+
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+
+    public String getDelivery() {
+        return delivery;
+    }
+
+    public void setDelivery(String delivery) {
+        this.delivery = delivery;
+    }
+
+    public Long getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Long orderId) {
+        this.orderId = orderId;
+    }
+}

+ 2 - 2
src/main/java/com/uas/platform/b2b/openapi/service/UsoftService.java

@@ -36,7 +36,7 @@ public interface UsoftService {
      *      订单id
      * @return
      */
-    List<UsoftOrderItem> getUsoftOrderItemsBatch(String orderIds);
+    List<UsoftOrderItemBatch> getUsoftOrderItemsBatch(String orderIds);
 
     /**
      * 根据卖方uu获取验收单数据
@@ -64,7 +64,7 @@ public interface UsoftService {
      *      验收单id字符串
      * @return
      */
-    List<UsoftAcceptItem> getUsoftAcceptItemsBatch(String acceptIds);
+    List<UsoftAcceptItemBatch> getUsoftAcceptItemsBatch(String acceptIds);
 
     /**
      * 获取白名单用户数据

+ 18 - 27
src/main/java/com/uas/platform/b2b/openapi/service/impl/TradingDataServiceImpl.java

@@ -5,9 +5,7 @@ import com.uas.platform.b2b.openapi.model.CustTrading;
 import com.uas.platform.b2b.openapi.model.RecentOfMonth;
 import com.uas.platform.b2b.openapi.model.RecentOfYear;
 import com.uas.platform.b2b.openapi.service.TradingDataService;
-import com.uas.platform.b2b.openapi.support.ErpRate;
-import com.uas.platform.b2b.openapi.support.NumFormat;
-import com.uas.platform.b2b.openapi.support.TimeStauts;
+import com.uas.platform.b2b.openapi.support.*;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -46,7 +44,7 @@ public class TradingDataServiceImpl implements TradingDataService {
         Double apBillSum = getApBillSum(enUU);
         // 获取历史退货率
         Double orderSum = getOrderSum(enUU);
-        Double historyReturn = NumFormat.getPercent(orderSum == 0.0 ? 0.0 : returnSum / orderSum);
+        Double historyReturn = NumFormat.getPercent(NumDefaultUtil.DOUBLE.equals(orderSum) ? NumDefaultUtil.DOUBLE : returnSum / orderSum);
         map.put("timeSum", timeSum);
         map.put("acceptSum", acceptSum);
         map.put("returnSum", returnSum);
@@ -64,23 +62,24 @@ public class TradingDataServiceImpl implements TradingDataService {
         Double sum = getAcceptSum(enUU, null) - getReturnSum(enUU, null);
         Integer sumNum = getAcceptNum(enUU, null) - getReturnNum(enUU, null);
         if (CollectionUtils.isNotEmpty(datas)) {
-            for (CustTrading custTrading : datas) {
+            System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "100");
+            datas.parallelStream().forEach(custTrading -> {
                 Double acceptSum = getAcceptSum(enUU, custTrading.getCustUU());
                 Double returnSum = getReturnSum(enUU, custTrading.getCustUU());
                 custTrading.setRealAccept(NumFormat.getTwo(acceptSum - returnSum));
-                if (StringUtils.isEmpty(acceptSum) || acceptSum == 0.0) {
-                    custTrading.setAcceptPercent(0.00);
+                if (StringUtils.isEmpty(acceptSum) || NumDefaultUtil.DOUBLE.equals(acceptSum)) {
+                    custTrading.setAcceptPercent(NumDefaultUtil.DOUBLE);
                 } else {
-                    custTrading.setAcceptPercent(NumFormat.getPercent(sum == 0.0 ? 0.0 : (acceptSum - returnSum) / sum));
+                    custTrading.setAcceptPercent(NumFormat.getPercent(NumDefaultUtil.DOUBLE.equals(sum) ? NumDefaultUtil.DOUBLE : (acceptSum - returnSum) / sum));
                 }
                 Integer acceptNum = getAcceptNum(enUU, custTrading.getCustUU());
                 Integer realNum = acceptNum - getReturnNum(enUU, custTrading.getCustUU());
                 custTrading.setRealNum(realNum);
-                if (0 != acceptNum) {
-                    custTrading.setNumPercent(NumFormat.getPercent(sumNum == 0 ? 0 : (double) realNum / sumNum));
+                if (!NumDefaultUtil.INTEGER.equals(acceptNum)) {
+                    custTrading.setNumPercent(NumFormat.getPercent(NumDefaultUtil.INTEGER.equals(sumNum) ? NumDefaultUtil.INTEGER : (double) realNum / sumNum));
                 }
                 custTrading.setTimeSum(NumFormat.getOne(getTimeSum(enUU, custTrading.getCustUU())));
-            }
+            });
         }
         map.put("data", datas);
         return map;
@@ -365,7 +364,7 @@ public class TradingDataServiceImpl implements TradingDataService {
     private Double getApBillSum(Long enUU) {
         StringBuffer sql = new StringBuffer("SELECT sum(case currency when 'RMB' then a.amount when 'USD' "
                 + "then a.amount * " + ErpRate.USD_RATE + " when 'HKD' then a.amount * " + ErpRate.HKD_RATE + " end) result "
-                + "FROM (SELECT SUM(pab_paymount) amount,pab_currency currency FROM purc$apbill WHERE pad_venduu=" + enUU
+                + "FROM (SELECT SUM(pab_apamount) amount,pab_currency currency FROM purc$apbill WHERE pad_venduu=" + enUU
                 + " GROUP BY pab_currency) a");
         Double result = commonDao.queryForObject(sql.toString(), Double.class);
         return NumFormat.getTwo(NumFormat.getTenThousand(result));
@@ -543,7 +542,7 @@ public class TradingDataServiceImpl implements TradingDataService {
     private Double getApBillSumTime(Long enUU, Date startTime, Date endTime) {
         StringBuffer sql = new StringBuffer("SELECT sum(case currency when 'RMB' then a.amount when 'USD' "
                 + "then a.amount * " + ErpRate.USD_RATE + " when 'HKD' then a.amount * " + ErpRate.HKD_RATE + " end) result "
-                + "FROM (SELECT SUM(pab_paymount) amount,pab_currency currency FROM purc$apbill WHERE pad_venduu=" + enUU
+                + "FROM (SELECT SUM(pab_apamount) amount,pab_currency currency FROM purc$apbill WHERE pad_venduu=" + enUU
                 + " and pab_date >= '" + startTime + "' and pab_date < '" + endTime + "' GROUP BY pab_currency) a");
         Double result = commonDao.queryForObject(sql.toString(), Double.class);
         return NumFormat.getTwo(result);
@@ -571,22 +570,14 @@ public class TradingDataServiceImpl implements TradingDataService {
      */
     @Override
     public Double getTimeSum(Long enUU, Long custUU) {
-        StringBuffer last = new StringBuffer("SELECT ifnull((SELECT pu_date from purc$orders "
-                + "WHERE pu_venduu = " + enUU + " and pu_date is not null ");
+        StringBuffer sql = new StringBuffer("SELECT TIMESTAMPDIFF(MONTH,min(pu_date),max(pu_date)) from purc$orders WHERE pu_venduu = " + enUU);
         if (!StringUtils.isEmpty(custUU)) {
-            last.append("and pu_enuu = " + custUU + "");
+            sql.append(" and pu_enuu = " + custUU);
         }
-        last.append(" ORDER BY pu_date desc limit 1),now()) pu_date");
-        StringBuffer first = new StringBuffer("SELECT ifnull((SELECT pu_date from purc$orders "
-                + "WHERE pu_venduu = " + enUU + " and pu_date is not null ");
-        if (!StringUtils.isEmpty(custUU)) {
-            first.append("and pu_enuu = " + custUU + "");
+        Double result = commonDao.queryForObject(sql.toString(), Double.class);
+        if (StringUtils.isEmpty(result)) {
+            result = NumDefaultUtil.DOUBLE;
         }
-        first.append(" ORDER BY pu_date asc limit 1),now()) pu_date");
-        Date lastTime = commonDao.queryForObject(last.toString(), Date.class);
-        Date firstTime = commonDao.queryForObject(first.toString(), Date.class);
-        StringBuffer result = new StringBuffer("SELECT TIMESTAMPDIFF(MONTH,'" + firstTime + "','" + lastTime + "')");
-        Double resultTime = commonDao.queryForObject(result.toString(), Double.class) / TimeStauts.TYEAR.value();
-        return NumFormat.getOne(resultTime);
+        return NumFormat.getOne(result / TimeStauts.TYEAR.value());
     }
 }

+ 23 - 28
src/main/java/com/uas/platform/b2b/openapi/service/impl/UsoftServiceImpl.java

@@ -3,6 +3,7 @@ package com.uas.platform.b2b.openapi.service.impl;
 import com.uas.platform.b2b.dao.CommonDao;
 import com.uas.platform.b2b.dao.EnterpriseDao;
 import com.uas.platform.b2b.model.Enterprise;
+import com.uas.platform.b2b.openapi.dao.UsoftOrderItemBatchDao;
 import com.uas.platform.b2b.openapi.dao.UsoftWhitelistDao;
 import com.uas.platform.b2b.openapi.model.*;
 import com.uas.platform.b2b.openapi.service.TradingDataService;
@@ -16,10 +17,7 @@ import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 
 import java.sql.Date;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 /**
  * @Author: huj
@@ -40,6 +38,9 @@ public class UsoftServiceImpl implements UsoftService {
     @Autowired
     EnterpriseDao enterpriseDao;
 
+    @Autowired
+    UsoftOrderItemBatchDao usoftOrderItemBatchDao;
+
     /**
      * 根据卖方uu获取订单数据
      *
@@ -89,18 +90,18 @@ public class UsoftServiceImpl implements UsoftService {
      * @return
      */
     @Override
-    public List<UsoftOrderItem> getUsoftOrderItemsBatch(String orderIds) {
-        String sql = "SELECT pd_id id,pd_price price,pd_taxrate rate,pd_qty quantity,pr_unit unit,pd_puid orderId,"
-                + "pd_delivery  delivery from purc$orderitems WHERE pd_puid in (" + orderIds + ")";
-        List<UsoftOrderItem> orderItems = commonDao.query(sql, UsoftOrderItem.class);
-        if (!CollectionUtils.isEmpty(orderItems)) {
-            orderItems.forEach( orderItem -> {
-                Product product = commonDao.queryBean("select pr_code code,pr_title title,pr_cmpcode cmpcode,"
-                        + "pr_spec spec from purc$orderitems WHERE pd_id = " + orderItem.getId(), Product.class);
-                orderItem.setProduct(product);
-            });
+    public List<UsoftOrderItemBatch> getUsoftOrderItemsBatch(String orderIds) {
+        if (!StringUtils.isEmpty(orderIds)) {
+            String[] split = orderIds.split(",");
+            List<Long> ids = new ArrayList<>();
+            if (split != null) {
+                for (String id : split) {
+                    ids.add(Long.parseLong(id));
+                }
+            }
+            return usoftOrderItemBatchDao.findByIds(ids);
         }
-        return orderItems;
+        return null;
     }
 
     /**
@@ -138,7 +139,7 @@ public class UsoftServiceImpl implements UsoftService {
                 + " on pai_paid = pa_id where pai_paid = " + acceptId;
         List<UsoftAcceptItem> acceptItems = commonDao.query(sql, UsoftAcceptItem.class);
         if (!CollectionUtils.isEmpty(acceptItems)) {
-            acceptItems.forEach( acceptItem -> {
+            acceptItems.parallelStream().forEach( acceptItem -> {
                 Product product = commonDao.queryBean("select pr_code code,pr_title title,pr_cmpcode cmpcode,"
                         + "pr_spec spec from purc$acceptitem WHERE pai_id = " + acceptItem.getId(), Product.class);
                 acceptItem.setProduct(product);
@@ -154,21 +155,15 @@ public class UsoftServiceImpl implements UsoftService {
      * @return
      */
     @Override
-    public List<UsoftAcceptItem> getUsoftAcceptItemsBatch(String acceptIds) {
-        String sql = "SELECT pai_id id,pu_code orderCode,a.pr_brand brand,a.pr_unit unit,pai_orderprice price, pai_paid acceptId,"
+    public List<UsoftAcceptItemBatch> getUsoftAcceptItemsBatch(String acceptIds) {
+        String sql = "SELECT a.pr_code code,a.pr_title title,a.pr_cmpcode cmpcode,a.pr_spec spec,pai_id id,pu_code orderCode,a.pr_brand brand,a.pr_unit unit,pai_orderprice price, pai_paid acceptId,"
                 + "(case pa_currency when 'RMB' then pai_qty * pai_orderprice when 'USD' then pai_qty * pai_orderprice * "
                 + ErpRate.USD_RATE + " when 'HKD' then pai_qty * pai_orderprice * " + ErpRate.HKD_RATE
                 + " end) amount,pai_qty checkqty,pai_batchcode batchCode from purc$acceptitem a "
                 + "LEFT JOIN purc$orderitems on pai_pdid = pd_id LEFT JOIN purc$orders on pd_puid = pu_id LEFT JOIN purc$accept"
                 + " on pai_paid = pa_id where pai_paid in (" + acceptIds + ")";
-        List<UsoftAcceptItem> acceptItems = commonDao.query(sql, UsoftAcceptItem.class);
-        if (!CollectionUtils.isEmpty(acceptItems)) {
-            acceptItems.forEach( acceptItem -> {
-                Product product = commonDao.queryBean("select pr_code code,pr_title title,pr_cmpcode cmpcode,"
-                        + "pr_spec spec from purc$acceptitem WHERE pai_id = " + acceptItem.getId(), Product.class);
-                acceptItem.setProduct(product);
-            });
-        }
+        List<UsoftAcceptItemBatch> acceptItems = commonDao.query(sql, UsoftAcceptItemBatch.class);
+
         return acceptItems;
     }
 
@@ -317,7 +312,7 @@ public class UsoftServiceImpl implements UsoftService {
         // 累计发票金额(元)
         Double historyApbillAmount = commonDao.queryForObject("SELECT sum(case currency when 'RMB' then a.amount "
                 + "when 'USD' then a.amount * " + ErpRate.USD_RATE + " when 'HKD' then a.amount * " + ErpRate.HKD_RATE
-                + " end) result FROM (SELECT SUM(pab_paymount) amount,pab_currency currency FROM purc$apbill "
+                + " end) result FROM (SELECT SUM(pab_apamount) amount,pab_currency currency FROM purc$apbill "
                 + "GROUP BY pab_currency) a", Double.class);
         UsoftHistoryTradingData data = new UsoftHistoryTradingData(totalQty, havingTradingQty, whitelistQty,
                 historyTradingHours, historyOrderNum, historyOrderAmount, historyAcceptAmount, historyReturnAmount,
@@ -633,7 +628,7 @@ public class UsoftServiceImpl implements UsoftService {
     private Double getApbillAmount(Date start, Date end) {
         StringBuilder sql = new StringBuilder("SELECT sum(case currency when 'RMB' then a.amount "
                 + "when 'USD' then a.amount * " + ErpRate.USD_RATE + " when 'HKD' then a.amount * " + ErpRate.HKD_RATE
-                + " end) result FROM (SELECT SUM(pab_paymount) amount,pab_currency currency FROM purc$apbill where  "
+                + " end) result FROM (SELECT SUM(pab_apamount) amount,pab_currency currency FROM purc$apbill where  "
                 + " pab_date >= ' " + start  + " ' and pab_date < ' "  +  end + "'" + "GROUP BY pab_currency) a");
         return commonDao.queryForObject(sql.toString(), Double.class);
     }

+ 19 - 0
src/main/java/com/uas/platform/b2b/openapi/support/NumDefaultUtil.java

@@ -0,0 +1,19 @@
+package com.uas.platform.b2b.openapi.support;
+
+/**
+ * 基本类型默认值
+ * @Author: huj
+ * @Date: Created in 11:38 2019/01/15.
+ */
+public class NumDefaultUtil {
+
+    public final static Integer INTEGER = 0;
+
+    public final static Double DOUBLE = 0.0;
+
+    public final static String ONE_DECIMAL_POINT = "#.0";
+
+    public final static String TWO_DECIMAL_POINT = "#.00";
+
+    public final static String TWO_DECIMAL_PERCENT = "##.00%";
+}

+ 54 - 5
src/main/java/com/uas/platform/b2b/openapi/support/NumFormat.java

@@ -7,6 +7,7 @@ import java.util.Calendar;
 import java.util.Date;
 
 /**
+ * 工具类,百分比、时间、小数点计算
  * @Author: huj
  * @Date: Created in 16:55 2018/9/20.
  */
@@ -20,27 +21,43 @@ public class NumFormat {
         }
     }
 
+
+    /**
+     * 获取一位小数
+     * @param result
+     * @return
+     */
     public static Double getOne(Double result) {
-        DecimalFormat df = new DecimalFormat("#.0");
+        DecimalFormat df = new DecimalFormat(NumDefaultUtil.ONE_DECIMAL_POINT);
         if (StringUtils.isEmpty(result)) {
-            return 0.0;
+            return NumDefaultUtil.DOUBLE;
         } else {
             return Double.parseDouble(df.format(result));
         }
     }
 
+    /**
+     * 取两位小数
+     * @param result
+     * @return
+     */
     public static Double getTwo(Double result) {
-        DecimalFormat df = new DecimalFormat("#.00");
+        DecimalFormat df = new DecimalFormat(NumDefaultUtil.TWO_DECIMAL_POINT);
         if (StringUtils.isEmpty(result)) {
-            return 0.00;
+            return NumDefaultUtil.DOUBLE;
         } else {
             return Double.parseDouble(df.format(result));
         }
     }
 
+    /**
+     * 保留两位小数
+     * @param result
+     * @return
+     */
     public static Double getPercent(Double result) {
         //设置百分数精确度2即保留两位小数
-        DecimalFormat dfPercent = new DecimalFormat("##.00%");
+        DecimalFormat dfPercent = new DecimalFormat(NumDefaultUtil.TWO_DECIMAL_PERCENT);
         String resultStr = dfPercent.format(result);
         String needStr = resultStr.substring(0, resultStr.length() - 1);
         return getTwo(Double.valueOf(needStr));
@@ -85,6 +102,10 @@ public class NumFormat {
         return 0.0;
     }
 
+    /**
+     * 前半年开始时间
+     * @return
+     */
     public static java.sql.Date getsixM() {
         Calendar ca = Calendar.getInstance();
         ca.setTime(getDayStartMon());
@@ -92,6 +113,10 @@ public class NumFormat {
         return new java.sql.Date(ca.getTime().getTime());
     }
 
+    /**
+     * 前四个月开始时间, xxx月1号
+     * @return
+     */
     public static java.sql.Date getThreeM() {
         Calendar ca = Calendar.getInstance();
         ca.setTime(getDayStartMon());
@@ -99,6 +124,10 @@ public class NumFormat {
         return new java.sql.Date(ca.getTime().getTime());
     }
 
+    /**
+     * 前三个月开始时间, xxx月1号
+     * @return
+     */
     public static java.sql.Date getTwoM() {
         Calendar ca = Calendar.getInstance();
         ca.setTime(getDayStartMon());
@@ -106,6 +135,10 @@ public class NumFormat {
         return new java.sql.Date(ca.getTime().getTime());
     }
 
+    /**
+     * 前两个月开始时间, xxx月1号
+     * @return
+     */
     public static java.sql.Date getOneM() {
         Calendar ca = Calendar.getInstance();
         ca.setTime(getDayStartMon());
@@ -113,6 +146,10 @@ public class NumFormat {
         return new java.sql.Date(ca.getTime().getTime());
     }
 
+    /**
+     * 上月开始时间
+     * @return
+     */
     public static java.sql.Date getThisM() {
         Calendar ca = Calendar.getInstance();
         ca.setTime(getDayStartMon());
@@ -120,11 +157,19 @@ public class NumFormat {
         return new java.sql.Date(ca.getTime().getTime());
     }
 
+    /**
+     * 本月开始时间
+     * @return
+     */
     public static java.sql.Date getNowM() {
         return new java.sql.Date(getDayStartMon().getTime());
     }
 
 
+    /**
+     * 本年开始时间,xxxx年1月1号 00:00:00
+     * @return
+     */
     public static Date getDayStartYear() {
         Calendar calendar = Calendar.getInstance();
         calendar.set(Calendar.MONTH, 0);
@@ -136,6 +181,10 @@ public class NumFormat {
         return calendar.getTime();
     }
 
+    /**
+     * 本月开始时间,xxxx年年xx月1号 00:00:00
+     * @return
+     */
     public static Date getDayStartMon() {
         Calendar calendar = Calendar.getInstance();
         calendar.set(Calendar.DATE, 1);

+ 2 - 3
src/main/java/com/uas/platform/b2b/service/impl/PurchaseApBillServiceImpl.java

@@ -244,10 +244,9 @@ public class PurchaseApBillServiceImpl implements PurchaseApBillService {
         List<Vendor> vendors = findVendorByPage(params, keyword);
         SPage<Vendor> vendorSPage = new SPage<>();
         if (!org.springframework.util.CollectionUtils.isEmpty(vendors)) {
-            List<Vendor> resultVendors = vendors.stream().filter(customer -> null != customer.getApcheck() && customer.getApcheck() == 1).collect(Collectors.toList());
             System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "100");
-            resultVendors.parallelStream().forEach(vendor -> purchaseApCheckService.countApCheck(vendor, checkDate, fromDate, endDate));
-            purchaseApCheckService.setVendorSPage(params, resultVendors, vendorSPage);
+            vendors.parallelStream().forEach(vendor -> purchaseApCheckService.countApCheck(vendor, checkDate, fromDate, endDate));
+            purchaseApCheckService.setVendorSPage(params, vendors, vendorSPage);
         }
         return vendorSPage;
     }

+ 4 - 5
src/main/java/com/uas/platform/b2b/service/impl/PurchaseApCheckServiceImpl.java

@@ -618,13 +618,12 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
      */
     @Override
     public SPage<Vendor> getCustomerInfo(PageParams params, String keyword, String checkDate, Long fromDate, Long endDate) throws InterruptedException {
-        List<Vendor> vendors = findCustomerByPage(params, keyword);
+        List<Vendor> customers = findCustomerByPage(params, keyword);
         SPage<Vendor> vendorSPage = new SPage<>();
-        if (!CollectionUtils.isEmpty(vendors)) {
-            List<Vendor> resultVendors = vendors.stream().filter(customer -> null != customer.getApcheck() && customer.getApcheck() == 1).collect(Collectors.toList());
+        if (!CollectionUtils.isEmpty(customers)) {
             System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "100");
-            resultVendors.parallelStream().forEach(customer -> this.countApCheck(customer, checkDate, fromDate, endDate));
-            setVendorSPage(params, resultVendors, vendorSPage);
+            customers.parallelStream().forEach(customer -> this.countApCheck(customer, checkDate, fromDate, endDate));
+            setVendorSPage(params, customers, vendorSPage);
         }
         return vendorSPage;
     }

+ 2 - 2
src/main/resources/dev/sys.properties

@@ -7,8 +7,8 @@ b2c=https://test-mall.uuzcc.cn
 registerUrl=https://test-sso.uuzcc.cn/register/enterpriseRegistration
 
 #report url
-reportPrintUrl=http://192.168.253.121:8090/report/print?userName=B2B%s&profile=${profile}&reportName=%s&whereCondition=%s
-reportUploadUrl=http://192.168.253.121:8090/report/fileUpload?userName=B2B%s
+reportPrintUrl=http://test-print.uuzcc.cn/print?userName=B2B%s&profile=${profile}&reportName=%s&whereCondition=%s
+reportUploadUrl=http://test-print.uuzcc.cn/fileUpload?userName=B2B%s
 
 #product service url
 productServiceUrl=https://test-product.uuzcc.cn

+ 2 - 2
src/main/resources/ptest/sys.properties

@@ -7,8 +7,8 @@ b2c=https://rel-mall.uuzcc.cn
 registerUrl=https://rel-sso.uuzcc.cn/register/enterpriseRegistration
 
 #report url
-reportPrintUrl=http://192.168.100.8:8080/report/print?userName=B2B%s&profile=${profile}&reportName=%s&whereCondition=%s
-reportUploadUrl=http://192.168.100.8:8080/report/fileUpload?userName=B2B%s
+reportPrintUrl=http://test-print.uuzcc.cn/print?userName=B2B%s&profile=${profile}&reportName=%s&whereCondition=%s
+reportUploadUrl=http://test-print.uuzcc.cn/fileUpload?userName=B2B%s
 
 #product service url
 productServiceUrl=https://test-product.uuzcc.cn

+ 1 - 0
src/main/webapp/resources/tpl/index/sale/order_detail.html

@@ -146,6 +146,7 @@
 							<div class="text-overflow" title="{{::item.product.title}}">
 								<span ng-bind="::item.product.title"></span> </div>
 							<div class="text-muted text-over" ng-bind="::item.product.spec" title="{{::item.product.spec}}"></div>
+							<div class="text-bole text-inverse text-flow" ng-if="item.prmaterial" ><b>承认状态:</b><span ng-bind="::item.prmaterial"></span></div>
 							<div class="text-bole text-inverse text-flow" ng-if="item.prodOldCode" ><b>旧料编号:</b><span ng-bind="::item.prodOldCode"></span></div>
 							<div class="text-bold text-inverse text-flow" ng-if="item.prodOldTitle" ><b>旧料名称:</b><span ng-bind="::item.prodOldTitle"></span></div>
 							<div class="text-bold text-inverse text-flow" ng-if="item.prodOldSpec" ><b>旧料规格:</b><span ng-bind="::item.prodOldSpec"></span></div>