1 yıl önce
ebeveyn
işleme
d9372450ad

+ 40 - 0
platform-dao/src/main/java/com/platform/dao/vo/report/LongYanPurchaseOrderByTimeExport.java

@@ -0,0 +1,40 @@
+package com.platform.dao.vo.report;
+
+import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseOrderVO;
+import com.platform.dao.vo.query.preparation.PreparationVO;
+import com.platform.office.annotation.Excel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author cyz
+ */
+@Data
+@Accessors(chain = true)
+public class LongYanPurchaseOrderByTimeExport implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 周
+     */
+    @Excel(name = "年", orderNum = "1")
+    private Integer year;
+    /**
+     * 月份
+     */
+    @Excel(name = "月份", orderNum = "2")
+    private Integer month;
+
+    /**
+     * 次数
+     */
+    @Excel(name = "采购单个数", orderNum = "3")
+    private Integer num;
+
+    /**
+     * 明细列表
+     */
+    List<LongYanPurchaseOrderVO> detailList;
+}

+ 33 - 0
platform-rest/src/main/java/com/platform/rest/controller/longyanpurchaseorder/LongYanPurchaseOrderController.java

@@ -2,8 +2,12 @@ package com.platform.rest.controller.longyanpurchaseorder;
 
 import com.platform.common.util.R;
 import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseOrderDTO;
+import com.platform.dao.dto.preparation.PreparationDTO;
 import com.platform.dao.dto.sb.SbInfoDTO;
 import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseOrder;
+import com.platform.dao.vo.query.preparation.PreparationVO;
+import com.platform.dao.vo.report.AllPreparationReportVO;
+import com.platform.dao.vo.report.LongYanPurchaseOrderByTimeExport;
 import com.platform.dao.vo.report.LongYanPurchaseOrderReportVO;
 import com.platform.service.longyanpurchaseorder.LongYanPurchaseOrderService;
 import com.platform.dao.util.ExcelUtil;
@@ -19,6 +23,7 @@ import lombok.AllArgsConstructor;
 import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.rest.log.annotation.SysLog;
 
+import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
@@ -200,4 +205,32 @@ public class LongYanPurchaseOrderController {
     ExcelUtil.exportResponseDict(response, ExportLongYanPurchaseOrderVO.class, BeanConverterUtil.copyListProperties(orderVOS, ExportLongYanPurchaseOrderVO.class), "龙岩采购单表");
   }
 
+  /**
+   *
+   */
+  @GetMapping("/byType/time/export")
+  @SysLog("龙岩采购单根据时间导出")
+  public void exportPurchaseByTime(HttpServletResponse response, LongYanPurchaseOrderDTO dto, @RequestParam(required = false) Integer year, @RequestParam(required = false) LocalDate startMonth, @RequestParam(required = false) LocalDate endMonth) {
+    List<LongYanPurchaseOrderByTimeExport> list = longYanPurchaseOrderService.exportPurchaseByTime(dto, year, startMonth, endMonth);
+    ExcelUtil.exportResponseDict(response, LongYanPurchaseOrderByTimeExport.class, BeanConverterUtil.copyListProperties(list, LongYanPurchaseOrderByTimeExport.class), "龙岩采购单报表统计导出");
+  }
+
+  /**
+   *
+   */
+  @GetMapping("/byType/time/detail/export")
+  @SysLog("龙岩采购单详情根据时间导出")
+  public void exportPurchaseDetailByTime(HttpServletResponse response, LongYanPurchaseOrderDTO dto, @RequestParam(required = false) Integer year, @RequestParam(required = false) LocalDate startMonth, @RequestParam(required = false) LocalDate endMonth,String yearMonth) {
+    List<LongYanPurchaseOrderByTimeExport> list = longYanPurchaseOrderService.exportPurchaseByTime(dto, year, startMonth, endMonth);
+    List<LongYanPurchaseOrderVO> longYanPurchaseOrderVOS = new ArrayList<>();
+    for (LongYanPurchaseOrderByTimeExport vo:list){
+      String str = vo.getYear()+"-"+vo.getMonth();
+      if (str.equals(yearMonth)){
+        longYanPurchaseOrderVOS = vo.getDetailList();
+        break;
+      }
+    }
+    ExcelUtil.exportResponseDict(response, ExportLongYanPurchaseOrderVO.class, BeanConverterUtil.copyListProperties(longYanPurchaseOrderVOS, ExportLongYanPurchaseOrderVO.class), "龙岩采购单详情报表统计导出");
+  }
+
 }

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

@@ -1,15 +1,19 @@
 package com.platform.service.longyanpurchaseorder;
 
+import com.platform.dao.dto.preparation.PreparationDTO;
 import com.platform.dao.dto.sb.SbInfoDTO;
 import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseOrderVO;
 import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseOrderDTO;
 import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseOrder;
 import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.dao.vo.report.LongYanPurchaseOrderByTimeExport;
 import com.platform.dao.vo.report.LongYanPurchaseOrderReportVO;
 import com.platform.dao.vo.sb.SbInfoVO;
 import com.platform.service.base.IBaseService;
 import org.omg.CORBA.INTERNAL;
+import org.springframework.web.bind.annotation.RequestParam;
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -20,6 +24,7 @@ import java.util.List;
  * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
  */
 public interface LongYanPurchaseOrderService extends IBaseService<LongYanPurchaseOrder, LongYanPurchaseOrderDTO> {
+    List<LongYanPurchaseOrderByTimeExport> exportPurchaseByTime(LongYanPurchaseOrderDTO dto, Integer year, LocalDate startMonth, LocalDate endMonth);
     LongYanPurchaseOrderVO getById(String id);
 
     List<LongYanPurchaseOrderReportVO> getPurchaseReport(LongYanPurchaseOrderDTO dto);

+ 75 - 0
platform-service/src/main/java/com/platform/service/longyanpurchaseorder/impl/LongYanPurchaseOrderServiceImpl.java

@@ -3,12 +3,14 @@ import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.common.exception.BusinessException;
 import com.platform.common.model.UserInfo;
 import com.platform.common.util.BeanConverterUtil;
+import com.platform.common.util.DateUtils;
 import com.platform.common.util.IdGeneratorUtils;
 import com.platform.common.util.SecurityUtils;
 import com.platform.dao.bean.MyPage;
 import com.github.pagehelper.PageHelper;
 import com.platform.dao.bean.MyVOPage;
 import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseDetailDTO;
+import com.platform.dao.dto.preparation.PreparationDTO;
 import com.platform.dao.dto.sb.SbInfoDTO;
 import com.platform.dao.dto.sb.SbModelSpareBomDTO;
 import com.platform.dao.dto.store.OutStoreDetailDTO;
@@ -26,6 +28,9 @@ import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseOrderVO;
 import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseOrderDTO;
 import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseOrder;
 import com.platform.dao.mapper.longyanpurchaseorder.LongYanPurchaseOrderMapper;
+import com.platform.dao.vo.query.preparation.PreparationVO;
+import com.platform.dao.vo.report.AllPreparationReportVO;
+import com.platform.dao.vo.report.LongYanPurchaseOrderByTimeExport;
 import com.platform.dao.vo.report.LongYanPurchaseOrderReportVO;
 import com.platform.dao.vo.sb.SbInfoVO;
 import com.platform.dao.vo.sb.SbModelSpareBomVO;
@@ -40,9 +45,11 @@ import tk.mybatis.mapper.weekend.WeekendCriteria;
 import lombok.AllArgsConstructor;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -58,6 +65,74 @@ public class LongYanPurchaseOrderServiceImpl extends BaseServiceImpl<LongYanPurc
     private SbModelSpareBomMapper sbModelSpareBomMapper;
     private SbInfoMapper sbInfoMapper;
 
+    @Override
+    public List<LongYanPurchaseOrderByTimeExport> exportPurchaseByTime(LongYanPurchaseOrderDTO dto, Integer searchYear, LocalDate startMonth, LocalDate endMonth) {
+        List<Map<String, LocalDateTime>> monthStartAndEndList = new ArrayList<Map<String, LocalDateTime>>();
+        LocalDateTime searchStartTime = null;
+        LocalDateTime searchEndTime = null;
+        if (searchYear != null) {
+            LocalDate localDate = LocalDate.now();
+            int year = localDate.getYear();
+            // 如2021-10-15号码,则month=10,需要计算到11月份,需要加1
+            int month = localDate.getMonthValue();
+            if (searchYear < year) {
+                month = 12;
+                year = searchYear;
+            }
+            monthStartAndEndList = DateUtils.getMonthStartAndEndByYear(year, month);
+            // 当前年份只统计到当前月,历史年份统计全年
+            searchStartTime = DateUtils.getFirstDayOfThisYear(year);
+            searchEndTime = DateUtils.getLastDayOfMonth(year, month);
+        } else {
+            monthStartAndEndList = DateUtils.getMonthStartAndEndByYear(startMonth, endMonth);
+            searchStartTime = DateUtils.getFirstDayOfMonth(startMonth);
+            searchEndTime = DateUtils.getLastDayOfMonth(endMonth);
+        }
+
+        dto.setCreatedTimeEnd(searchStartTime);
+        dto.setCreatedTimeEnd(searchEndTime);
+        List<LongYanPurchaseOrderVO> list = mapper.selectList(dto);
+        List<LongYanPurchaseOrderByTimeExport> result = new ArrayList<LongYanPurchaseOrderByTimeExport>();
+
+        for (Map<String, LocalDateTime> map : monthStartAndEndList) {
+            int i = 0;
+            LongYanPurchaseOrderByTimeExport vo = new LongYanPurchaseOrderByTimeExport();
+            List<LongYanPurchaseOrderVO> detailList = new ArrayList<LongYanPurchaseOrderVO>();
+            vo.setYear(map.get("searchStartTimeMonth").getYear());
+            vo.setMonth(map.get("searchStartTimeMonth").getMonthValue());
+
+//            // 维修描述
+//            Weekend<CustomFieldTemplateData> weekend = new Weekend<>(CustomFieldTemplateData.class);
+//            WeekendCriteria<CustomFieldTemplateData, Object> weekendCriteria = weekend.weekendCriteria();
+//            weekendCriteria = weekendCriteria.andEqualTo(CustomFieldTemplateData::getRemark, CommonConstants.REPAIR_RECORD);
+//            weekendCriteria.andLessThan(CustomFieldTemplateData::getCreatedTime,map.get("searchEndTimeMonth"));
+//            weekendCriteria.andGreaterThan(CustomFieldTemplateData::getCreatedTime,map.get("searchStartTimeMonth"));
+//            List<CustomFieldTemplateData> listCustomer = customFieldTemplateDataMapper.selectByExample(weekend);
+//            Map<String,CustomFieldTemplateData> dataMap = new HashMap<>();
+//            if(listCustomer != null && listCustomer.size() > 0){
+//                listCustomer.forEach(item->{
+//                    String key = item.getObjId() + "&" + item.getCreatedUserId();
+//                    CustomFieldTemplateData tempData = dataMap.get(key);
+//                    if(tempData == null){
+//                        dataMap.put(key,item);
+//                    }
+//                });
+//            }
+            for (LongYanPurchaseOrderVO orderVO : list) {
+                if (orderVO.getCreatedTime().isAfter(map.get("searchStartTimeMonth")) && orderVO.getCreatedTime().isBefore(map.get("searchEndTimeMonth"))) {
+                    i++;
+                    // 维修专业
+
+                    detailList.add(orderVO);
+                }
+            }
+            vo.setNum(i);
+            vo.setDetailList(detailList);
+            result.add(vo);
+        }
+        return result;
+    }
+
     @Override
     public LongYanPurchaseOrderVO getById(String id) {
         LongYanPurchaseOrderVO vo = mapper.getById(id);