Sfoglia il codice sorgente

优化采è´申请查询

曾成 6 anni fa
parent
commit
ff21237947

+ 13 - 28
Api/src/main/java/com/java110/api/listener/purchaseApply/ListPurchaseApplysListener.java

@@ -73,37 +73,22 @@ public class ListPurchaseApplysListener extends AbstractServiceApiListener {
 
         List<ApiPurchaseApplyDataVo> purchaseApplys = null;
         if (count > 0) {
-            purchaseApplys = BeanConvertUtil.covertBeanList(purchaseApplyInnerServiceSMOImpl.queryPurchaseApplys(purchaseApplyDto), ApiPurchaseApplyDataVo.class);
-            List<String> orderIds = new ArrayList<>();
-            for( ApiPurchaseApplyDataVo apiPurchaseApplyDataVo : purchaseApplys){
-                orderIds.add(apiPurchaseApplyDataVo.getApplyOrderId());
-            }
-            //明细列表
-            PurchaseApplyDetailDto purchaseApplyDetailDto = new PurchaseApplyDetailDto();
-            purchaseApplyDetailDto.setApplyOrderIds(orderIds);
-            List<PurchaseApplyDetailVo> purchaseApplyDetailVos = BeanConvertUtil.covertBeanList(purchaseApplyInnerServiceSMOImpl.queryPurchaseApplyDetails(purchaseApplyDetailDto), PurchaseApplyDetailVo.class);
-
-            for( ApiPurchaseApplyDataVo apiPurchaseApplyDataVo : purchaseApplys){
-                List<PurchaseApplyDetailVo> applyDetailList = new ArrayList<>();
-                for( PurchaseApplyDetailVo purchaseApplyDetailVo : purchaseApplyDetailVos){
-                    if(apiPurchaseApplyDataVo.getApplyOrderId().equals(purchaseApplyDetailVo.getApplyOrderId())){
-                        applyDetailList.add(purchaseApplyDetailVo);
-                    }
-                }
-                apiPurchaseApplyDataVo.setPurchaseApplyDetailVo(applyDetailList);
-            }
+            List<PurchaseApplyDto> purchaseApplyDtos = purchaseApplyInnerServiceSMOImpl.queryPurchaseApplyAndDetails(purchaseApplyDto);
+            purchaseApplys = BeanConvertUtil.covertBeanList(purchaseApplyDtos, ApiPurchaseApplyDataVo.class);
             for( ApiPurchaseApplyDataVo apiPurchaseApplyDataVo : purchaseApplys){
                 List<PurchaseApplyDetailVo> applyDetailList = apiPurchaseApplyDataVo.getPurchaseApplyDetailVo();
-                StringBuffer resNames = new StringBuffer();
-                BigDecimal totalPrice = new BigDecimal(0);
-                for( PurchaseApplyDetailVo purchaseApplyDetailVo : applyDetailList){
-                    resNames.append(purchaseApplyDetailVo.getResName()+";");
-                    BigDecimal price = new BigDecimal(purchaseApplyDetailVo.getPrice());
-                    BigDecimal quantity = new BigDecimal(purchaseApplyDetailVo.getQuantity());
-                    totalPrice = totalPrice.add(price.multiply(quantity));
+                if(applyDetailList.size() > 0){
+                    StringBuffer resNames = new StringBuffer();
+                    BigDecimal totalPrice = new BigDecimal(0);
+                    for( PurchaseApplyDetailVo purchaseApplyDetailVo : applyDetailList){
+                        resNames.append(purchaseApplyDetailVo.getResName()+";");
+                        BigDecimal price = new BigDecimal(purchaseApplyDetailVo.getPrice());
+                        BigDecimal quantity = new BigDecimal(purchaseApplyDetailVo.getQuantity());
+                        totalPrice = totalPrice.add(price.multiply(quantity));
+                    }
+                    apiPurchaseApplyDataVo.setResourceNames(resNames.toString());
+                    apiPurchaseApplyDataVo.setTotalPrice(totalPrice.toString());
                 }
-                apiPurchaseApplyDataVo.setResourceNames(resNames.toString());
-                apiPurchaseApplyDataVo.setTotalPrice(totalPrice.toString());
             }
         } else {
             purchaseApplys = new ArrayList<>();

+ 3 - 0
StoreService/src/main/java/com/java110/store/dao/IPurchaseApplyServiceDao.java

@@ -1,6 +1,7 @@
 package com.java110.store.dao;
 
 
+import com.java110.dto.purchaseApply.PurchaseApplyDto;
 import com.java110.utils.exception.DAOException;
 import com.java110.vo.api.purchaseApply.PurchaseApplyDetailVo;
 
@@ -68,6 +69,8 @@ public interface IPurchaseApplyServiceDao {
      */
     List<Map> getPurchaseApplyInfo(Map info) throws DAOException;
 
+    List<PurchaseApplyDto> getPurchaseApplyInfo2(Map info) throws DAOException;
+
 
     //查询采购明细
     List<Map> getPurchaseApplyDetailInfo(Map info) throws DAOException;

+ 10 - 0
StoreService/src/main/java/com/java110/store/dao/impl/PurchaseApplyServiceDaoImpl.java

@@ -2,6 +2,7 @@ package com.java110.store.dao.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.base.dao.BaseServiceDao;
+import com.java110.dto.purchaseApply.PurchaseApplyDto;
 import com.java110.store.dao.IPurchaseApplyServiceDao;
 import com.java110.utils.constant.ResponseConstant;
 import com.java110.utils.exception.DAOException;
@@ -118,6 +119,15 @@ public class PurchaseApplyServiceDaoImpl extends BaseServiceDao implements IPurc
         return businessPurchaseApplyInfos;
     }
 
+    @Override
+    public List<PurchaseApplyDto> getPurchaseApplyInfo2(Map info) throws DAOException {
+        logger.debug("查询采购申请信息 入参 info : {}",info);
+
+        List<PurchaseApplyDto> businessPurchaseApplyInfos = sqlSessionTemplate.selectList("purchaseApplyServiceDaoImpl.getPurchaseApplyInfo2",info);
+
+        return businessPurchaseApplyInfos;
+    }
+
     @Override
     public List<Map> getPurchaseApplyDetailInfo(Map info) throws DAOException {
         logger.debug("查询采购申请明细信息 入参 info : {}",info);

+ 28 - 0
StoreService/src/main/java/com/java110/store/smo/impl/PurchaseApplyInnerServiceSMOImpl.java

@@ -61,6 +61,34 @@ public class PurchaseApplyInnerServiceSMOImpl extends BaseServiceSMO implements
         return purchaseApplys;
     }
 
+    @Override
+    public List<PurchaseApplyDto> queryPurchaseApplyAndDetails(@RequestBody  PurchaseApplyDto purchaseApplyDto) {
+
+        //校验是否传了 分页信息
+
+        int page = purchaseApplyDto.getPage();
+
+        if (page != PageDto.DEFAULT_PAGE) {
+            purchaseApplyDto.setPage((page - 1) * purchaseApplyDto.getRow());
+        }
+
+        List<PurchaseApplyDto> purchaseApplys = BeanConvertUtil.covertBeanList(purchaseApplyServiceDaoImpl.getPurchaseApplyInfo2(BeanConvertUtil.beanCovertMap(purchaseApplyDto)), PurchaseApplyDto.class);
+
+        if (purchaseApplys == null || purchaseApplys.size() == 0) {
+            return purchaseApplys;
+        }
+
+        String[] userIds = getUserIds(purchaseApplys);
+        //根据 userId 查询用户信息
+        List<UserDto> users = userInnerServiceSMOImpl.getUserInfo(userIds);
+
+        for (PurchaseApplyDto purchaseApply : purchaseApplys) {
+            refreshPurchaseApply(purchaseApply, users);
+        }
+        return purchaseApplys;
+    }
+
+
     /**
      * 从用户列表中查询用户,将用户中的信息 刷新到 floor对象中
      *

+ 2 - 1
StoreService/src/main/resources/application-dev.yml

@@ -7,7 +7,7 @@ jedis:
     host: dev.redis.java110.com
     port: 6379
     timeout: 3000
-    password:
+    password: hc
 
 eureka:
   instance:
@@ -36,6 +36,7 @@ spring:
     database: 0
     host: dev.redis.java110.com
     port: 6379
+    password: hc
     pool:
       max-active: 300
       max-wait: 10000

+ 21 - 1
java110-bean/src/main/java/com/java110/dto/purchaseApply/PurchaseApplyDto.java

@@ -1,9 +1,11 @@
 package com.java110.dto.purchaseApply;
 
 import com.java110.dto.PageDto;
+import com.java110.vo.api.purchaseApply.PurchaseApplyDetailVo;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @ClassName FloorDto
@@ -18,12 +20,13 @@ public class PurchaseApplyDto extends PageDto implements Serializable {
     private String resOrderType;
     private String description;
     private String applyOrderId;
+    private String bId;
     private String state;
     private String storeId;
     private String userName;
     private String userId;
     private String stateName;
-
+    private List<PurchaseApplyDetailVo> purchaseApplyDetailVo;
 
     private Date createTime;
 
@@ -37,6 +40,7 @@ public class PurchaseApplyDto extends PageDto implements Serializable {
 
 
 
+
     public String getResOrderType() {
         return resOrderType;
     }
@@ -157,4 +161,20 @@ public class PurchaseApplyDto extends PageDto implements Serializable {
     public void setAuditMessage(String auditMessage) {
         this.auditMessage = auditMessage;
     }
+
+    public List<PurchaseApplyDetailVo> getPurchaseApplyDetailVo() {
+        return purchaseApplyDetailVo;
+    }
+
+    public void setPurchaseApplyDetailVo(List<PurchaseApplyDetailVo> purchaseApplyDetailVo) {
+        this.purchaseApplyDetailVo = purchaseApplyDetailVo;
+    }
+
+    public String getbId() {
+        return bId;
+    }
+
+    public void setbId(String bId) {
+        this.bId = bId;
+    }
 }

+ 9 - 0
java110-bean/src/main/java/com/java110/vo/api/purchaseApply/PurchaseApplyDetailVo.java

@@ -15,6 +15,7 @@ public class PurchaseApplyDetailVo {
     private List<String> applyOrderIds;
     private String bId;
     private String operate;
+    private String id;
 
 
     public String getApplyOrderId() {
@@ -104,6 +105,14 @@ public class PurchaseApplyDetailVo {
     public void setOperate(String operate) {
         this.operate = operate;
     }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
 }
 
 

+ 4 - 0
java110-core/src/main/java/com/java110/core/smo/purchaseApply/IPurchaseApplyInnerServiceSMO.java

@@ -32,6 +32,10 @@ public interface IPurchaseApplyInnerServiceSMO {
     @RequestMapping(value = "/queryPurchaseApplys", method = RequestMethod.POST)
     List<PurchaseApplyDto> queryPurchaseApplys(@RequestBody PurchaseApplyDto purchaseApplyDto);
 
+
+    @RequestMapping(value = "/queryPurchaseApplyAndDetails", method = RequestMethod.POST)
+    List<PurchaseApplyDto> queryPurchaseApplyAndDetails(@RequestBody PurchaseApplyDto purchaseApplyDto);
+
     /**
      * 查询<p>小区楼</p>总记录数
      *

+ 76 - 2
java110-db/src/main/resources/mapper/store/PurchaseApplyServiceDaoImplMapper.xml

@@ -4,6 +4,33 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="purchaseApplyServiceDaoImpl">
 
+
+    <resultMap type="com.java110.dto.purchaseApply.PurchaseApplyDto" id="applyMap">
+        <id column="applyOrderId"  property="applyOrderId"/>
+        <result column="description"  property="description"/>
+        <result column="resOrderType"  property="resOrderType"/>
+        <result column="statusCd"  property="statusCd"/>
+        <result column="state"  property="state"/>
+        <result column="storeId"  property="storeId"/>
+        <result column="userName"  property="userName"/>
+        <result column="bId"  property="bId"/>
+        <result column="userId" property="userId"/>
+        <result column="createTime" property="createTime"/>
+        <result column="stateName" property="stateName"/>
+        <!-- 一对多关系 -->
+        <collection property="purchaseApplyDetailVo" ofType="com.java110.vo.api.purchaseApply.PurchaseApplyDetailVo"  javaType="java.util.ArrayList">
+            <id property="id" column="id"/>
+            <result property="applyOrderId" column="applyOrderId"/>
+            <result property="resId" column="resId"/>
+            <result property="quantity" column="quantity"/>
+            <result property="resName" column="resName"/>
+            <result property="remark" column="remark"/>
+            <result property="resCode" column="resCode"/>
+            <result property="price" column="price"/>
+            <result property="stock" column="stock"/>
+        </collection>
+    </resultMap>
+
     <!-- 保存采购申请信息 add by wuxw 2018-07-03 -->
     <insert id="saveBusinessPurchaseApplyInfo" parameterType="Map">
            insert into business_purchase_apply
@@ -144,8 +171,9 @@
             t.res_order_type resOrderType,t.description,
             t.apply_order_id applyOrderId,t.status_cd statusCd,t.state,
             t.store_id storeId,t.user_name userName,
-            t.b_id bId,t.user_id userId,t.create_time createTime,d.name stateName
-        from purchase_apply t inner join t_dict d on t.state = d.status_cd and d.table_name = 'purchase_apply' and d.table_columns = 'state'
+            t.b_id bId,t.user_id userId,t.create_time createTime,d.name stateName,
+        from purchase_apply t
+        inner join t_dict d on t.state = d.status_cd and d.table_name = 'purchase_apply' and d.table_columns = 'state'
         where 1 =1
         <if test="resOrderType !=null and resOrderType != ''">
             and t.res_order_type= #{resOrderType}
@@ -179,6 +207,52 @@
 
     </select>
 
+
+
+    <select id="getPurchaseApplyInfo2" parameterType="Map" resultMap="applyMap">
+        select
+        t.res_order_type resOrderType,t.description,
+        t.apply_order_id applyOrderId,t.status_cd statusCd,t.state,
+        t.store_id storeId,t.user_name userName,
+        t.b_id bId,t.user_id userId,t.create_time createTime,d.name stateName,
+        de.apply_order_id applyOrderId,de.res_id resId,de.quantity,de.remark,de.id,rs.res_name resName,rs.price,rs.stock,rs.res_code resCode
+        from purchase_apply t
+        inner join t_dict d on t.state = d.status_cd and d.table_name = 'purchase_apply' and d.table_columns = 'state'
+        inner join purchase_apply_detail de on de.apply_order_id = t.apply_order_id
+        inner join resource_store rs on de.res_id = rs.res_id
+
+        where 1 =1
+        <if test="resOrderType !=null and resOrderType != ''">
+            and t.res_order_type= #{resOrderType}
+        </if>
+        <if test="description !=null and description != ''">
+            and t.description= #{description}
+        </if>
+        <if test="applyOrderId !=null and applyOrderId != ''">
+            and t.apply_order_id= #{applyOrderId}
+        </if>
+        <if test="userName !=null and userName != ''">
+            and t.user_name like concat('%',#{userName},'%')
+        </if>
+        <if test="statusCd !=null and statusCd != ''">
+            and t.status_cd= #{statusCd}
+        </if>
+        <if test="state !=null and state != ''">
+            and t.state= #{state}
+        </if>
+        <if test="storeId !=null and storeId != ''">
+            and t.store_id= #{storeId}
+        </if>
+        <if test="bId !=null and bId != ''">
+            and t.b_id= #{bId}
+        </if>
+
+        order by t.create_time desc
+        <if test="page != -1 and page != null ">
+            limit #{page}, #{row}
+        </if>
+
+    </select>
     <!-- 查询采购明细 -->
     <select id="getPurchaseApplyDetailInfo" parameterType="Map" resultType="Map">
         select