曾成
2020-03-26 ff21237947a4fc83b23ef1c57a8b627b364d80a2
优化采è´申请查询
9个文件已修改
198 ■■■■ 已修改文件
Api/src/main/java/com/java110/api/listener/purchaseApply/ListPurchaseApplysListener.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StoreService/src/main/java/com/java110/store/dao/IPurchaseApplyServiceDao.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StoreService/src/main/java/com/java110/store/dao/impl/PurchaseApplyServiceDaoImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StoreService/src/main/java/com/java110/store/smo/impl/PurchaseApplyInnerServiceSMOImpl.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StoreService/src/main/resources/application-dev.yml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/purchaseApply/PurchaseApplyDto.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/vo/api/purchaseApply/PurchaseApplyDetailVo.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/smo/purchaseApply/IPurchaseApplyInnerServiceSMO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/store/PurchaseApplyServiceDaoImplMapper.xml 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/purchaseApply/ListPurchaseApplysListener.java
@@ -73,37 +73,22 @@
        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<>();
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 @@
     */
    List<Map> getPurchaseApplyInfo(Map info) throws DAOException;
    List<PurchaseApplyDto> getPurchaseApplyInfo2(Map info) throws DAOException;
    //查询采购明细
    List<Map> getPurchaseApplyDetailInfo(Map info) throws DAOException;
StoreService/src/main/java/com/java110/store/dao/impl/PurchaseApplyServiceDaoImpl.java
@@ -2,6 +2,7 @@
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;
@@ -119,6 +120,15 @@
    }
    @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);
StoreService/src/main/java/com/java110/store/smo/impl/PurchaseApplyInnerServiceSMOImpl.java
@@ -61,6 +61,34 @@
        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对象中
     *
StoreService/src/main/resources/application-dev.yml
@@ -7,7 +7,7 @@
    host: dev.redis.java110.com
    port: 6379
    timeout: 3000
    password:
    password: hc
eureka:
  instance:
@@ -36,6 +36,7 @@
    database: 0
    host: dev.redis.java110.com
    port: 6379
    password: hc
    pool:
      max-active: 300
      max-wait: 10000
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 @@
    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;
@@ -34,6 +37,7 @@
    private String taskId;
    private String auditCode;
    private String auditMessage;
@@ -157,4 +161,20 @@
    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;
    }
}
java110-bean/src/main/java/com/java110/vo/api/purchaseApply/PurchaseApplyDetailVo.java
@@ -15,6 +15,7 @@
    private List<String> applyOrderIds;
    private String bId;
    private String operate;
    private String id;
    public String getApplyOrderId() {
@@ -104,6 +105,14 @@
    public void setOperate(String operate) {
        this.operate = operate;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
}
java110-core/src/main/java/com/java110/core/smo/purchaseApply/IPurchaseApplyInnerServiceSMO.java
@@ -32,6 +32,10 @@
    @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>总记录数
     *
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