1 жил өмнө
parent
commit
c8fb98d799

+ 3 - 0
platform-dao/src/main/java/com/platform/dao/dto/longyanpurchaseorder/LongYanPurchaseOrderDTO.java

@@ -22,6 +22,9 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class LongYanPurchaseOrderDTO extends BaseDTO implements Serializable {
+    private String purchaseNo;
+    private Integer status;
+    private Integer oldOrNew;
     private LocalDateTime startTime;
     private LocalDateTime endTime;
     private BigDecimal totalNum;

+ 3 - 0
platform-dao/src/main/java/com/platform/dao/entity/longyanpurchaseorder/LongYanPurchaseOrder.java

@@ -22,6 +22,9 @@ import javax.persistence.Transient;
 @Accessors(chain = true)
 @Table(name = "t_long_yan_purchase_order")
 public class LongYanPurchaseOrder implements Serializable{
+    private String purchaseNo;
+    private Integer status;
+    private Integer oldOrNew;
     private BigDecimal totalNum;
     private String positionNo;
 

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/mapper/longyanpurchaseorder/LongYanPurchaseOrderMapper.java

@@ -5,6 +5,7 @@ import com.platform.dao.config.MyMapper;
 import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseOrder;
 import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseOrderVO;
 import com.platform.dao.vo.report.LongYanPurchaseOrderReportVO;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Component;
 import java.util.List;
 
@@ -17,6 +18,9 @@ import java.util.List;
  */
 @Component
 public interface LongYanPurchaseOrderMapper extends MyMapper<LongYanPurchaseOrder> {
+
+    LongYanPurchaseOrderVO getById(@Param("id") String id);
+
     List<LongYanPurchaseOrderReportVO> getPurchaseReport(LongYanPurchaseOrderDTO dto);
     /**
      * 分页查询

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/mapper/sb/SbInfoMapper.java

@@ -22,6 +22,7 @@ import java.util.Map;
  */
 @Component
 public interface SbInfoMapper extends MyMapper<SbInfo> {
+    List<String> selectList2(SbInfoDTO dto);
 
 
     List<String> getChildIds(@Param("sbIds") List<String> sbIds);

+ 8 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/longyanpurchaseorder/LongYanPurchaseOrderVO.java

@@ -11,6 +11,7 @@ import java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.LocalDate;
+import java.util.List;
 
 /**
  * @Description 龙岩采购单表VO结果类
@@ -22,6 +23,13 @@ import java.time.LocalDate;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class LongYanPurchaseOrderVO extends BaseVO implements Serializable{
+    private List<LongYanPurchaseDetailVO> detailVOS;
+    private String complateProjectName;
+    private String projectName;
+    private String parentProjectName;
+    private String purchaseNo;
+    private Integer status;
+    private Integer oldOrNew;
     private BigDecimal totalNum;
     private String positionNo;
 

+ 23 - 2
platform-dao/src/main/resources/mapper/longyanpurchaseorder/LongYanPurchaseOrderMapper.xml

@@ -85,10 +85,18 @@
                 #{item}
             </foreach>
         </if>
+        <if test="status != null ">
+            and menu.status = #{status}
+        </if>
+        <if test="purchaseNo != null and purchaseNo!='' ">
+            and menu.purchase_no like concat('%',#{purchaseNo},'%')
+        </if>
     </sql>
     <select id="selectList" parameterType="com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseOrderDTO" resultType="com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseOrderVO">
-        select menu.*
-                                                                                                                                                                                                                                                                from t_long_yan_purchase_order as menu
+        select menu.*,project.name as projectName,project2.name as parentProjectName
+        from t_long_yan_purchase_order as menu
+        left join t_project project on project.id = menu.project_id
+        left join t_project project2 on project.parent_id = project2.id
                                                                                                                                                                                                                                                                 <where>
             <include refid="List_Condition" />
         </where>
@@ -108,4 +116,17 @@
         </where>
         group by type
     </select>
+
+    <select id="getById" parameterType="java.lang.String"
+            resultType="com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseOrderVO">
+        select menu.*,project.name as projectName,project2.name as parentProjectName
+        from t_long_yan_purchase_order as menu
+        left join t_project project on project.id = menu.project_id
+        left join t_project project2 on project.parent_id = project2.id
+        <where>
+            <if test="id!=null and id!=''">
+                and menu.id = #{id}
+            </if>
+        </where>
+    </select>
 </mapper>

+ 180 - 0
platform-dao/src/main/resources/mapper/sb/SbInfoMapper.xml

@@ -958,4 +958,184 @@ sb.check_type
 <!--            </if>-->
 <!--        </where>-->
 <!--    </select>-->
+
+    <select id="selectList2" parameterType="com.platform.dao.dto.sb.SbInfoDTO"
+            resultType="java.lang.String">
+        select distinct (info.id) from t_sb_info info inner join t_long_yan_purchase_order orders
+        on info.id = orders.sb_id
+        <where>
+        1 = 1
+        <if test="keyword != null and keyword != ''">
+            and (
+            sb.name like concat('%',#{keyword},'%')
+            or sb.no like concat('%',#{keyword},'%')
+            or sb.position_no like concat('%',#{keyword},'%')
+            or sb.remark like concat('%',#{keyword},'%')
+            )
+        </if>
+        <if test="name != null and name!=''">
+            and sb.name like concat('%',#{name},'%')
+        </if>
+        <if test="zbh != null and zbh!=''">
+            and sb.zbh like concat('%',#{zbh},'%')
+        </if>
+        <if test="producerName != null and producerName!=''">
+            and sb.producer_id like concat('%',#{producerName},'%')
+        </if>
+        <if test="producerId != null and producerId!=''">
+            and sb.producer_id like concat('%',#{producerId},'%')
+        </if>
+        <if test="positionId != null and positionId!=''">
+            and sb.position_id = #{positionId}
+        </if>
+        <if test="positionNo != null and positionNo!=''">
+            and sb.position_no like concat('%',#{positionNo},'%')
+        </if>
+        <if test="ppNo != null and ppNo!=''">
+            and sb.pp_no like concat('%',#{ppNo},'%')
+        </if>
+        <if test="likeDeptCode != null and likeDeptCode!=''">
+            and sdDept.dept_code like concat(#{likeDeptCode},'%')
+        </if>
+        <if test="financingNo != null and financingNo!=''">
+            and sb.financing_no like concat(#{financingNo},'%')
+        </if>
+        <if test="positionIds != null">
+            AND sb.position_id in
+            <foreach item="item" index="index" collection="positionIds" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="ids != null">
+            AND sb.id in
+            <foreach item="item" index="index" collection="ids" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="typeList != null">
+            AND sb.type_id in
+            <foreach item="item" index="index" collection="typeList" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="useType != null">
+            and sb.use_type = #{useType}
+        </if>
+        <if test="id != null">
+            and sb.id = #{id}
+        </if>
+        <if test="checkId != null">
+            and sb.check_id = #{checkId}
+        </if>
+        <if test="isChild != null">
+            and sb.is_child = #{isChild}
+        </if>
+        <if test="isMeasure != null">
+            and sb.is_measure = #{isMeasure}
+        </if>
+        <if test="isSelf != null">
+            and sb.is_self = #{isSelf}
+        </if>
+        <if test="measureStatus != null">
+            and sb.measure_status = #{measureStatus}
+        </if>
+        <if test="isShow != null">
+            and sb.is_show = #{isShow}
+        </if>
+        <if test="isFinancing != null">
+            and sb.is_financing = #{isFinancing}
+        </if>
+        <if test="useArea != null">
+            and sb.use_area = #{useArea}
+        </if>
+        <if test="useCompany != null">
+            and sb.use_company = #{useCompany}
+        </if>
+        <if test="useProject != null">
+            and sb.use_project = #{useProject}
+        </if>
+        <if test="baoyangTimes != null">
+            and sb.baoyang_times = #{baoyangTimes}
+        </if>
+        <if test="typeId != null and typeId != ''">
+            and sb.type_id = #{typeId}
+        </if>
+        <if test="parentId != null">
+            and sb.parent_id = #{parentId}
+        </if>
+        <if test="model != null">
+            and sb.model like concat('%',#{model},'%')
+        </if>
+        <if test="cph != null">
+            and sb.model like concat('%',#{cph},'%')
+        </if>
+        <if test="useDept != null">
+            and sb.use_dept = #{useDept}
+        </if>
+        <if test="useGroup != null">
+            and sb.use_group = #{useGroup}
+        </if>
+        <if test="saveDept != null">
+            and sb.save_dept = #{saveDept}
+        </if>
+        <if test="saveUser != null">
+            and sb.save_user = #{saveUser}
+        </if>
+        <if test="checkDateStart != null">
+            and sb.check_date <![CDATA[ >= ]]> #{checkDateStart}
+        </if>
+        <if test="checkDateEnd != null">
+            and sb.check_date <![CDATA[ <= ]]> #{checkDateEnd}
+        </if>
+        <if test="nextCheckDateStart != null">
+            and sb.next_check_date <![CDATA[ >= ]]> #{nextCheckDateStart}
+        </if>
+        <if test="nextCheckDateEnd != null">
+            and sb.next_check_date <![CDATA[ <= ]]> #{nextCheckDateEnd}
+        </if>
+        <if test="repairUser != null">
+            and sb.repair_user = #{repairUser}
+        </if>
+        <if test="repairUserSecond != null">
+            and sb.repair_user_second = #{repairUserSecond}
+        </if>
+        <if test="repairUserSearch != null">
+            and (
+            sb.repair_user = #{repairUserSearch}
+            or
+            sb.repair_user_second = #{repairUserSearch}
+            )
+        </if>
+        <if test="status != null">
+            and sb.status = #{status}
+        </if>
+        <if test="modelId != null">
+            and sb.model_id = #{modelId}
+        </if>
+        <if test="notStatusList != null and notStatusList.size > 0">
+            AND sb.status not in
+            <foreach item="item" index="index" collection="notStatusList" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="statusList != null and statusList.size > 0">
+            AND sb.status in
+            <foreach item="item" index="index" collection="statusList" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="sbIds != null and sbIds.size > 0">
+            AND sb.id in
+            <foreach item="item" index="index" collection="sbIds" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="checkType!=null">
+            and sb.check_type = #{checkType}
+        </if>
+        <if test="ascriptionDept != null and ascriptionDept">
+            <include refid="deptSql"/>
+        </if>
+        </where>
+    </select>
 </mapper>

+ 7 - 3
platform-rest/src/main/java/com/platform/rest/controller/longyanpurchaseorder/LongYanPurchaseOrderController.java

@@ -43,6 +43,10 @@ public class LongYanPurchaseOrderController {
   public R<LongYanPurchaseOrder> getById(@PathVariable("id") String id){
       return new R<>(longYanPurchaseOrderService.getModelById(id));
   }
+  @GetMapping("/get/{id}")
+  public R<LongYanPurchaseOrderVO> getById2(@PathVariable("id") String id){
+    return new R<>(longYanPurchaseOrderService.getById(id));
+  }
 
   /**
    * 新增记录
@@ -142,10 +146,10 @@ public class LongYanPurchaseOrderController {
   /**
    * 采购记录按sb统计
    *
-   * @param longYanPurchaseOrderDTO 龙岩采购单表DTO
+   * @param
    * @return R
    */
-  @GetMapping("/getPurchaseRecord")
+  @GetMapping("/record/getPurchaseRecord")
   public R getPurchaseRecord(SbInfoDTO sbInfoDTO , @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
     return new R<>(longYanPurchaseOrderService.getPurchaseRecord(sbInfoDTO,pageNum,pageSize));
   }
@@ -153,7 +157,7 @@ public class LongYanPurchaseOrderController {
   /**
    * 采购单按类型统计报表
    *
-   * @param longYanPurchaseOrderDTO 龙岩采购单表DTO
+   * @param
    * @return R
    */
   @GetMapping("/getPurchaseReport")

+ 2 - 0
platform-service/src/main/java/com/platform/service/longyanpurchaseorder/LongYanPurchaseOrderService.java

@@ -20,6 +20,8 @@ import java.util.List;
  * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
  */
 public interface LongYanPurchaseOrderService extends IBaseService<LongYanPurchaseOrder, LongYanPurchaseOrderDTO> {
+    LongYanPurchaseOrderVO getById(String id);
+
     List<LongYanPurchaseOrderReportVO> getPurchaseReport(LongYanPurchaseOrderDTO dto);
 
     AbstractPageResultBean<SbInfoVO> getPurchaseRecord(SbInfoDTO dto, Integer pageNum, Integer pageSize);

+ 62 - 6
platform-service/src/main/java/com/platform/service/longyanpurchaseorder/impl/LongYanPurchaseOrderServiceImpl.java

@@ -14,10 +14,12 @@ import com.platform.dao.dto.sb.SbModelSpareBomDTO;
 import com.platform.dao.dto.store.OutStoreDetailDTO;
 import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseDetail;
 import com.platform.dao.entity.repair.RepairApplicationForm;
+import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.entity.sb.SbModelSpareBom;
 import com.platform.dao.mapper.longyanpurchaseorder.LongYanPurchaseDetailMapper;
 import com.platform.dao.mapper.sb.SbInfoMapper;
 import com.platform.dao.mapper.sb.SbModelSpareBomMapper;
+import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseDetailVO;
 import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseOrderVO;
 import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseOrderDTO;
 import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseOrder;
@@ -26,6 +28,8 @@ import com.platform.dao.vo.report.LongYanPurchaseOrderReportVO;
 import com.platform.dao.vo.sb.SbInfoVO;
 import com.platform.dao.vo.sb.SbModelSpareBomVO;
 import com.platform.service.longyanpurchaseorder.LongYanPurchaseOrderService;
+import com.platform.service.util.PageUtils;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.stereotype.Service;
 import com.platform.service.base.impl.BaseServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
@@ -51,6 +55,18 @@ public class LongYanPurchaseOrderServiceImpl extends BaseServiceImpl<LongYanPurc
     private LongYanPurchaseDetailMapper longYanPurchaseDetailMapper;
     private SbModelSpareBomMapper sbModelSpareBomMapper;
     private SbInfoMapper sbInfoMapper;
+
+    @Override
+    public LongYanPurchaseOrderVO getById(String id) {
+        LongYanPurchaseOrderVO vo = mapper.getById(id);
+        LongYanPurchaseDetailDTO detailDTO = new LongYanPurchaseDetailDTO();
+        detailDTO.setLongYangPurchaseOrderId(vo.getId());
+        List<LongYanPurchaseDetailVO> detailVOS = longYanPurchaseDetailMapper.selectList(detailDTO);
+        vo.setDetailVOS(detailVOS);
+        vo.setComplateProjectName(vo.getParentProjectName()+"->"+vo.getProjectName());
+        return vo;
+    }
+
     @Override
     public LongYanPurchaseOrder saveModelByDTO(LongYanPurchaseOrderDTO model) {
         List<LongYanPurchaseDetailDTO> detailDTOS = model.getDetailDTOS();
@@ -106,7 +122,6 @@ public class LongYanPurchaseOrderServiceImpl extends BaseServiceImpl<LongYanPurc
         boms.add(sbModelSpareBom);
         }
 
-
     @Override
     public List<LongYanPurchaseOrderReportVO> getPurchaseReport(LongYanPurchaseOrderDTO dto) {
         List<LongYanPurchaseOrderReportVO> list = mapper.getPurchaseReport(dto);
@@ -127,12 +142,19 @@ public class LongYanPurchaseOrderServiceImpl extends BaseServiceImpl<LongYanPurc
 
     @Override
     public AbstractPageResultBean<SbInfoVO> getPurchaseRecord(SbInfoDTO dto, Integer pageNum, Integer pageSize) {
-        PageHelper.startPage(pageNum,pageSize);
-        List<SbInfoVO> sbInfoVOS = sbInfoMapper.selectVOList(dto);
-        List<String> sbIds = sbInfoVOS.stream().map(SbInfoVO::getId).collect(Collectors.toList());
+//        PageHelper.startPage(pageNum,pageSize);
+        List<String> sbIds = sbInfoMapper.selectList2(dto);
+        if (sbIds==null||sbIds.size()==0){
+            return null;
+        }
+//        List<String> sbIds = sbInfoVOS.stream().map(SbInfoVO::getId).collect(Collectors.toList());
         LongYanPurchaseOrderDTO orderDTO = new LongYanPurchaseOrderDTO();
         orderDTO.setSbIds(sbIds);
+        dto = new SbInfoDTO();
+        dto.setSbIds(sbIds);
+        List<SbInfoVO> sbInfoVOS = sbInfoMapper.selectVOList(dto);
         List<LongYanPurchaseOrderVO> orderVOS = mapper.selectList(orderDTO);
+        List<SbInfoVO> sbInfoVOList = new ArrayList<>();
         for (SbInfoVO vo:sbInfoVOS){
             List<LongYanPurchaseOrderVO> orderVOList = new ArrayList<>();
             for (LongYanPurchaseOrderVO vo1:orderVOS){
@@ -141,8 +163,37 @@ public class LongYanPurchaseOrderServiceImpl extends BaseServiceImpl<LongYanPurc
                 }
             }
             vo.setLongYanPurchaseOrderVOS(orderVOList);
+            if (orderVOList.size()>0) {
+                sbInfoVOList.add(vo);
+            }
         }
-        return new MyPage(sbInfoVOS);
+        AbstractPageResultBean<SbInfoVO> data = null;
+
+        if (sbInfoVOList.size()>0){
+            data = getPageInfo(pageNum,pageSize,sbInfoVOList);
+        }
+        return data;
+    }
+
+    private AbstractPageResultBean<SbInfoVO> getPageInfo(Integer pageNum, Integer pageSize, List<SbInfoVO> list){
+        AbstractPageResultBean<SbInfoVO> pageInfo = new MyPage(list);
+        pageInfo.setPageNum(pageNum);
+        pageInfo.setPageSize(pageSize);
+        List<SbInfoVO> dataList = new ArrayList<>();
+        for (int i = pageSize*(pageNum-1);i<pageSize*pageNum;i++){
+            if (i<list.size()) {
+                dataList.add(list.get(i));
+            }
+        }
+        pageInfo.setRows(dataList);
+        if (list!=null&&list.size()>0){
+            int pages = list.size()%pageSize==0?list.size()/pageSize:(list.size()/pageSize)+1;
+            pageInfo.setPages(pages);
+        }else {
+            pageInfo.setPages(0);
+        }
+        pageInfo.setTotal((long)list.size());
+        return pageInfo;
     }
 
     @Override
@@ -157,7 +208,12 @@ public class LongYanPurchaseOrderServiceImpl extends BaseServiceImpl<LongYanPurc
     @Override
     public AbstractPageResultBean<LongYanPurchaseOrderVO> selectPageList(LongYanPurchaseOrderDTO record, int pageNum, int pageSize) {
         PageHelper.startPage(pageNum, pageSize);
-        return new MyPage(mapper.selectList(record));
+        List<LongYanPurchaseOrderVO> longYanPurchaseOrderVOS = mapper.selectList(record);
+        for (LongYanPurchaseOrderVO vo:longYanPurchaseOrderVOS){
+            vo.setComplateProjectName(vo.getParentProjectName()+"->"+vo.getProjectName());
+        }
+
+        return new MyPage(longYanPurchaseOrderVOS);
     }
 
     @Override

+ 50 - 0
platform-service/src/main/java/com/platform/service/util/PageUtils.java

@@ -0,0 +1,50 @@
+package com.platform.service.util;
+
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.exception.BusinessException;
+import com.platform.common.util.BigDecimalUtil;
+import com.platform.dao.bean.MyPage;
+import lombok.experimental.UtilityClass;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.ss.formula.functions.T;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.*;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.*;
+import java.util.*;
+
+
+/**
+ * @Description web 工具类
+ * @Author chenyuehu
+ * @Date 2019/5/7
+ * @Version Copyright (c) 2019,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Slf4j
+@UtilityClass
+public class PageUtils {
+    private static AbstractPageResultBean<T> getPageInfo(Integer pageNum, Integer pageSize, List<T> list){
+        AbstractPageResultBean<T> pageInfo = new MyPage(list);
+        pageInfo.setPageNum(pageNum);
+        pageInfo.setPageSize(pageSize);
+        List<T> dataList = new ArrayList<>();
+        for (int i = pageSize*(pageNum-1);i<pageSize*pageNum;i++){
+            if (i<list.size()) {
+                dataList.add(list.get(i));
+            }
+        }
+        pageInfo.setRows(dataList);
+        if (list!=null&&list.size()>0){
+            int pages = list.size()%pageSize==0?list.size()/pageSize:(list.size()/pageSize)+1;
+            pageInfo.setPages(pages);
+        }else {
+            pageInfo.setPages(0);
+        }
+        pageInfo.setTotal((long)list.size());
+        return pageInfo;
+    }
+
+}
+