Browse Source

makeOrder和makerReturn增加enuu和code的唯一约束,sql查询mysql数据库语句修改nvl方法

hejq 7 years ago
parent
commit
562f672d82

+ 1 - 1
src/main/java/com/uas/platform/b2b/dao/ProductTempDao.java

@@ -56,7 +56,7 @@ public class ProductTempDao {
 
     public void matchExists(String importId) {
         jdbcTemplate.update("Merge Into (Select * From Products_Temp Where Pr_Import_Id=? And Pr_Exist_Id Is Null) T " +
-                "Using Products P On ((T.pr_code = P.pr_code Or (T.Pr_Title=P.Pr_Title And T.Pr_Cmpcode=P.Pr_Cmpcode And T.Pr_Brand=P.Pr_Brand And T.Pr_Spec=P.Pr_Spec And nvl(P.pr_standard, 0) <> 1) " +
+                "Using Products P On ((T.pr_code = P.pr_code Or (T.Pr_Title=P.Pr_Title And T.Pr_Cmpcode=P.Pr_Cmpcode And T.Pr_Brand=P.Pr_Brand And T.Pr_Spec=P.Pr_Spec And ifnull(P.pr_standard, 0) <> 1) " +
                 "Or (T.Pr_Title=P.Pr_Kind And T.Pr_Cmpcode=P.Pr_Pcmpcode And T.Pr_Brand=P.Pr_Pbrand  And P.pr_standard = 1)) " +
                 "and t.pr_enuu=p.pr_enuu) when matched then update set t.pr_exist_id=p.pr_id", importId);
     }

+ 1 - 1
src/main/java/com/uas/platform/b2b/dao/PurchaseInquiryItemDao.java

@@ -43,7 +43,7 @@ public interface PurchaseInquiryItemDao extends JpaSpecificationExecutor<Purchas
 	 * @param backStatus
 	 * @return
 	 */
-	@Query("from PurchaseInquiryItem d where d.inquiry.enUU = :enUU and d.backStatus = :backStatus and nvl(d.sourceApp, ' ') <> 'B2B'")
+	@Query("from PurchaseInquiryItem d where d.inquiry.enUU = :enUU and d.backStatus = :backStatus and IFNULL(d.sourceApp, ' ') <> 'B2B'")
 	List<PurchaseInquiryItem> findByEnUUAndBackStatus(@Param("enUU") long enUU, @Param("backStatus") short backStatus);
 
 	/**

+ 4 - 5
src/main/java/com/uas/platform/b2b/dao/PurchaseOrderDao.java

@@ -1,14 +1,13 @@
 package com.uas.platform.b2b.dao;
 
-import java.util.List;
-
+import com.uas.platform.b2b.model.PurchaseOrder;
 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 com.uas.platform.b2b.model.PurchaseOrder;
+import java.util.List;
 
 @Repository
 public interface PurchaseOrderDao extends JpaSpecificationExecutor<PurchaseOrder>, JpaRepository<PurchaseOrder, Long> {
@@ -66,7 +65,7 @@ public interface PurchaseOrderDao extends JpaSpecificationExecutor<PurchaseOrder
 	 * @param ids 需要筛选的id号集合
 	 * @return 已回复单据id号集合
 	 */
-	@Query("select p.id from PurchaseOrderAll p where p.id in :ids and p.status=201 and nvl(p.end,0)=0")
+	@Query("select p.id from PurchaseOrderAll p where p.id in :ids and p.status=201 and IFNULL(p.end,0)=0")
 	List<Long> findRepliedId(@Param("ids") List<Long> ids);
 
     /**
@@ -75,6 +74,6 @@ public interface PurchaseOrderDao extends JpaSpecificationExecutor<PurchaseOrder
      * @param ids 需要筛选的id号集合
      * @return 未回复单据id号集合
      */
-	@Query("select p.id from PurchaseOrderAll p where p.id in :ids and p.status=200 and nvl(p.end,0)=0")
+	@Query("select p.id from PurchaseOrderAll p where p.id in :ids and p.status=200 and IFNULL(p.end,0)=0")
 	List<Long> findNotReplyId(@Param("ids") List<Long> ids);
 }

+ 1 - 1
src/main/java/com/uas/platform/b2b/dao/RoleDao.java

@@ -77,6 +77,6 @@ public interface RoleDao extends JpaRepository<Role, Long> {
 	 * @param enUU
 	 * @return
 	 */
-	@Query(value = "select nvl(max(role_index), 0) from sec$roles where role_enuu = :enUU", nativeQuery = true)
+	@Query(value = "select IFNULL(max(role_index), 0) from sec$roles where role_enuu = :enUU", nativeQuery = true)
 	Long findIndexByEnUU(@Param("enUU") Long enUU);
 }

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

@@ -10,7 +10,11 @@ import java.util.Date;
  * @author suntg
  *
  */
-@Table(name = "make$orders")
+@Table(name = "make$orders", indexes = {
+		@Index(name = "make_order_code_index", columnList = "ma_code"),
+		@Index(name = "make_order_enuu_index", columnList = "ma_enuu"),
+		@Index(name = "make_order_code_enuu_index", columnList = "ma_code,ma_enuu", unique = true)
+})
 @Entity
 public class MakeOrder implements Serializable {
 

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

@@ -11,7 +11,11 @@ import java.util.Set;
  * @author aof
  * @date 2015年8月26日
  */
-@Table(name = "make$return")
+@Table(name = "make$return", indexes = {
+		@Index(name = "make_return_code_index", columnList = "mr_code"),
+		@Index(name = "make_return_enuu_index", columnList = "mr_enuu"),
+		@Index(name = "make_return_enuu_code_index", columnList = "mr_code,mr_enuu", unique = true)
+})
 @Entity
 public class MakeReturn implements Serializable {
 	private static final long serialVersionUID = 1L;

+ 4 - 16
src/main/java/com/uas/platform/b2b/model/PurchaseOrderEnd.java

@@ -1,23 +1,11 @@
 package com.uas.platform.b2b.model;
 
+import org.hibernate.annotations.Where;
+
+import javax.persistence.*;
 import java.util.Date;
 import java.util.Set;
 
-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.OneToMany;
-import javax.persistence.OneToOne;
-import javax.persistence.OrderBy;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-
-import org.hibernate.annotations.Where;
-
 /**
  * 平台里面,以供应商的角度来查看采购订单 <br>
  * 级联采购明细<br>
@@ -150,7 +138,7 @@ public class PurchaseOrderEnd {
 	 */
 	@OneToMany(mappedBy = "order", cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.MERGE }, fetch = FetchType.EAGER)
 	@OrderBy("number")
-	@Where(clause = "pd_end=1 or (nvl(pd_acceptqty,0)=nvl(pd_qty,0)+nvl(pd_returnqty,0))")
+	@Where(clause = "pd_end=1 or (ifnull(pd_acceptqty,0)=ifnull(pd_qty,0)+ifnull(pd_returnqty,0))")
 	private Set<PurchaseOrderEndItem> orderItems;
 
 	/**

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

@@ -14,7 +14,7 @@ import java.util.Set;
 
 @Table(name = "purc$orders", indexes = { @Index(name = "purc$orders_date", columnList = "pu_date") })
 @Entity
-@Where(clause = "(pu_end is null or pu_end = 0) and pu_id in (select i.pd_puid from purc$orderitems i where nvl(i.pd_acceptqty,0)>=nvl(i.pd_qty,0)+nvl(i.pd_returnqty,0))")
+@Where(clause = "(pu_end is null or pu_end = 0) and pu_id in (select i.pd_puid from purc$orderitems i where IFNULL(i.pd_acceptqty,0)>=IFNULL(i.pd_qty,0)+IFNULL(i.pd_returnqty,0))")
 public class PurchaseOrderReceived {
 	
 	@Id
@@ -142,7 +142,7 @@ public class PurchaseOrderReceived {
 	 */
 	@OneToMany(mappedBy = "order", cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.MERGE }, fetch = FetchType.EAGER)
 	@OrderBy("number")
-	@Where(clause = "nvl(pd_acceptqty,0)>=nvl(pd_qty,0)+nvl(pd_returnqty,0) and (pd_end = 0 or pd_end is null)")
+	@Where(clause = "IFNULL(pd_acceptqty,0)>=IFNULL(pd_qty,0)+IFNULL(pd_returnqty,0) and (pd_end = 0 or pd_end is null)")
 	private Set<PurchaseOrderReceivedItem> orderItems;
 	
 	/**

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

@@ -1,23 +1,11 @@
 package com.uas.platform.b2b.model;
 
+import org.hibernate.annotations.Where;
+
+import javax.persistence.*;
 import java.util.Date;
 import java.util.Set;
 
-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.OneToMany;
-import javax.persistence.OneToOne;
-import javax.persistence.OrderBy;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-
-import org.hibernate.annotations.Where;
-
 /** 
   * @author yujia 
   * @version 创建时间:2015年12月29日 上午11:25:19 
@@ -26,7 +14,7 @@ import org.hibernate.annotations.Where;
 
 @Table(name = "purc$orders", indexes = { @Index(name = "purc$orders_date", columnList = "pu_date") })
 @Entity
-@Where(clause = "(pu_end=0 or pu_end is null) and pu_id in (select i.pd_puid from purc$orderitems i where nvl(i.pd_acceptqty,0)<nvl(i.pd_qty,0)+nvl(i.pd_returnqty,0))")
+@Where(clause = "(pu_end=0 or pu_end is null) and pu_id in (select i.pd_puid from purc$orderitems i where ifnull(i.pd_acceptqty,0)<ifnull(i.pd_qty,0)+ifnull(i.pd_returnqty,0))")
 public class PurchaseOrderWaiting {
 	
 	@Id
@@ -154,7 +142,7 @@ public class PurchaseOrderWaiting {
 	 */
 	@OneToMany(mappedBy = "order", cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.MERGE }, fetch = FetchType.EAGER)
 	@OrderBy("number")
-	@Where(clause = "(nvl(pd_acceptqty,0)<nvl(pd_qty,0)+nvl(pd_returnqty,0)) and (pd_end = 0 or pd_end is null)")
+	@Where(clause = "(ifnull(pd_acceptqty,0)<ifnull(pd_qty,0)+ifnull(pd_returnqty,0)) and (pd_end = 0 or pd_end is null)")
 	private Set<PurchaseOrderWaitingItem> orderItems;
 	
 	/**

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

@@ -531,7 +531,7 @@ public class DeputyOrderServiceImpl implements DeputyOrderService {
 	@Override
 	public ModelMap odersAmount() {
 		DecimalFormat df = new java.text.DecimalFormat("#.00");
-		String sql = "select nvl(sum(deo_totalamount), 0) from purc$deputyorders where deo_enuu = "
+		String sql = "select IFNULL(sum(deo_totalamount), 0) from purc$deputyorders where deo_enuu = "
 				+ SystemSession.getUser().getEnterprise().getUu()
 				+ " and deo_entrystatus = '已提交' and deo_downloadstatus = '已下载'";
 		return new ModelMap("amount", df.format(commonDao.queryForObject(sql, Double.class)));

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

@@ -187,7 +187,7 @@ public class PurchaseApBillServiceImpl implements PurchaseApBillService {
 						sql = sql + ", i.papi_taxrate = " + prod.getPbu_taxrate() + ", i.papi_taxamount = trunc(i.papi_qty * "
 								  + prod.getPbu_orderprice() + "/(1 +" + prod.getPbu_taxrate()/100 + ") * " + prod.getPbu_taxrate()/100 + ", 2)";
 					} else {
-						sql = sql + ", i.papi_taxamount = trunc(i.papi_qty * " + prod.getPbu_orderprice() + "/(1 + (nvl(i.papi_taxrate, 0)/100)) * (nvl(i.papi_taxrate, 0)/100), 2)";
+						sql = sql + ", i.papi_taxamount = trunc(i.papi_qty * " + prod.getPbu_orderprice() + "/(1 + (IFNULL(i.papi_taxrate, 0)/100)) * (IFNULL(i.papi_taxrate, 0)/100), 2)";
 					}
 					commonDao.getJdbcTemplate().update(sql);
 					logger.log("批量更新价格", "更新'" + prod.getPbu_inoutno() + "'发票明细价格", 1);

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

@@ -545,7 +545,7 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
 	@Override
 	public List<PurchaseApCheckItem> findDoneApCheckItems(List<Long> filter, String keyword, Long fromDate, Long endDate) {
 		Long enUu = SystemSession.getUser().getEnterprise().getUu();
-		String sql = "select i.pai_id id from purc$apcheck c,purc$apcheckItem i  where i.pai_paid=c.pa_id and i.PAI_CHECKQTY>0 and i.PAI_CHECKQTY>nvl(i.PAI_BILLED,0) and c.PA_CHECKSTATUS='已确认' and c.PA_ENUU = ?";
+		String sql = "select i.pai_id id from purc$apcheck c,purc$apcheckItem i  where i.pai_paid=c.pa_id and i.PAI_CHECKQTY>0 and i.PAI_CHECKQTY>ifnull(i.PAI_BILLED,0) and c.PA_CHECKSTATUS='已确认' and c.PA_ENUU = ?";
 		if (!org.apache.axis.utils.StringUtils.isEmpty(keyword)) {
 			// 物料名称和规格存在特殊符号,用|做分隔符
 			String[] strs = keyword.split("\\|");

+ 3 - 3
src/main/java/com/uas/platform/b2b/v2/service/impl/InviteRecordServiceImpl.java

@@ -137,9 +137,9 @@ public class InviteRecordServiceImpl implements InviteRecordService {
         Integer allNum = 0;
         Integer todoNum = 0;
         Integer doneNum = 0;
-        String allSql = "select nvl(sum(count), 0) from v$invitation where useruu = " + userUU;
-        String todoSql = "select nvl(sum(count), 0) from v$invitation where active = 0 and useruu = " + userUU;
-        String doneSql = "select nvl(sum(count), 0) from v$invitation where active = 1 and useruu = " + userUU;
+        String allSql = "select ifnull(sum(count), 0) from v$invitation where useruu = " + userUU;
+        String todoSql = "select ifnull(sum(count), 0) from v$invitation where active = 0 and useruu = " + userUU;
+        String doneSql = "select ifnull(sum(count), 0) from v$invitation where active = 1 and useruu = " + userUU;
         allNum = commonDao.queryForObject(allSql, Integer.class);
         todoNum = commonDao.queryForObject(todoSql, Integer.class);
         doneNum = commonDao.queryForObject(doneSql, Integer.class);