瀏覽代碼

成本模型导出excel

sl 1 年之前
父節點
當前提交
173448a439

+ 7 - 3
module_kzks/src/main/java/org/jeecg/modules/costModelList/controller/CostModelListController.java

@@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 
 import org.jeecg.modules.costModelWxPrice.entity.CostModelWxPrice;
+import org.jeecg.modules.costModelXmxqWx.entity.CostModelXmxqWx;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -195,12 +196,15 @@ public class CostModelListController extends JeecgController<CostModelList, ICos
 	 /**
 	  * 选中相应的某条成本模型数据,导出该条数据相应的外协费以及材料费的详情表
 	  *
-	  * @param costModelListId
+	  * @param
 	  */
 	 @ApiOperation(value="成本模型——导出外协费材料费详情excel")
 	 @RequestMapping(value = "/exportXlsWXFCLFDetail")
-	 public ModelAndView exportXlsWXFCLFDetail(String costModelListId) {
-		 return costModelListService.exportXlsWXFCLFDetail(costModelListId, CostModelList.class, "成本模型");
+	 public ModelAndView exportXlsWXFCLFDetail(HttpServletRequest request, HttpServletResponse response) {
+//		 System.out.println("进入控制层");
+//		 String xiangmuid = request.getParameter("xiangmuid");
+//		 System.out.println(xiangmuid);
+		 return costModelListService.exportXlsWXFCLFDetail(request.getParameter("xiangmuid"), CostModelList.class, "成本模型");
 	 }
 
 }

+ 29 - 0
module_kzks/src/main/java/org/jeecg/modules/costModelList/entity/CostModelList.java

@@ -102,4 +102,33 @@ public class CostModelList implements Serializable {
 	@Excel(name = "总价", width = 15)
     @ApiModelProperty(value = "总价")
     private java.lang.String totalPrice;
+    /**外协费(最大值)*/
+    @Excel(name = "外协费(最大值)", width = 15)
+    @ApiModelProperty(value = "外协费(最大值)")
+    private java.lang.String maxWxf;
+    /**外协费(最小值)*/
+    @Excel(name = "外协费(最小值)", width = 15)
+    @ApiModelProperty(value = "外协费(最小值)")
+    private java.lang.String minWxf;
+    /**外协费(平均值)*/
+    @Excel(name = "外协费(平均值)", width = 15)
+    @ApiModelProperty(value = "外协费(平均值)")
+    private java.lang.String aveWxf;
+    /**材料费(最大值)*/
+    @Excel(name = "材料费(最大值)", width = 15)
+    @ApiModelProperty(value = "材料费(最大值)")
+    private java.lang.String maxClf;
+    /**材料费(最小值)*/
+    @Excel(name = "材料费(最小值)", width = 15)
+    @ApiModelProperty(value = "材料费(最小值)")
+    private java.lang.String minClf;
+    /**材料费(平均值)*/
+    @Excel(name = "材料费(平均值)", width = 15)
+    @ApiModelProperty(value = "材料费(平均值)")
+    private java.lang.String aveClf;
+    /**材料费(近期值)*/
+    @Excel(name = "材料费(近期值)", width = 15)
+    @ApiModelProperty(value = "材料费(近期值)")
+    private java.lang.String recentClf;
+
 }

+ 2 - 2
module_kzks/src/main/java/org/jeecg/modules/costModelList/mapper/CostModelListMapper.java

@@ -17,6 +17,6 @@ import org.jeecg.modules.projectChbSwf.entity.ProjectChbSwf;
  */
 public interface CostModelListMapper extends BaseMapper<CostModelList> {
     /**成本模型——外协费材料费各自最大值最小值平均值近期值总和——根据项目id查询*/
-    @Select("select max_wxf, min_wxf, ave_wxf, max_clf, min_clf, ave_clf, recent_clf from kzks_cost_model where xiangmu_id = #{xiangmuid}")
-    public List<CostModelList> getWXFCLFDetailList(@Param("xiangmuid") String xiangmuid);
+    @Select("select max_wxf, min_wxf, ave_wxf, max_clf, min_clf, ave_clf, recent_clf from kzks_cost_model where id = #{id}")
+    public List<CostModelList> getWXFCLFDetailList(@Param("id") String id);
 }

+ 5 - 4
module_kzks/src/main/java/org/jeecg/modules/costModelList/service/ICostModelListService.java

@@ -11,6 +11,7 @@ import org.jeecg.modules.costModelXmxqWx.mapper.CostModelXmxqWxMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.servlet.ModelAndView;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 
 /**
@@ -23,14 +24,14 @@ public interface ICostModelListService extends IService<CostModelList> {
     /**
      * 成本模型——导出外协费材料费详情excel
      */
-    public ModelAndView exportXlsWXFCLFDetail(String costModelListId, Class<CostModelList> clazz, String title);
+    public ModelAndView exportXlsWXFCLFDetail(String xiangmuid, Class<CostModelList> clazz, String title);
 
     /**成本模型——外协费材料费各自最大值最小值平均值近期值总和——根据项目id查询*/
-    public List<CostModelList> getWXFCLFDetailList(String costModelListId);
+    public List<CostModelList> getWXFCLFDetailList(String xiangmuid);
 
     /**项目成本——事务费详情——根据项目id查询*/
-    public List<CostModelXmxqWx> getWXFDetailList(String costModelListId);
+    public List<CostModelXmxqWx> getWXFDetailList(String xiangmuid);
 
     /**成本模型——材料费详情——根据项目id查询*/
-    public List<CostModelXmxqCl> getCLFDetailList(String costModelListId);
+    public List<CostModelXmxqCl> getCLFDetailList(String xiangmuid);
 }

+ 58 - 18
module_kzks/src/main/java/org/jeecg/modules/costModelList/service/impl/CostModelListServiceImpl.java

@@ -1,5 +1,6 @@
 package org.jeecg.modules.costModelList.service.impl;
 
+import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.costModelList.entity.CostModelList;
@@ -13,11 +14,13 @@ import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
 import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Repository;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.web.servlet.ModelAndView;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -33,36 +36,69 @@ import java.util.Map;
 public class CostModelListServiceImpl extends ServiceImpl<CostModelListMapper, CostModelList> implements ICostModelListService {
     @Autowired
     @SuppressWarnings("all")
-    private CostModelListMapper wxfclfMapper;
-    private CostModelXmxqWxMapper wxfMapper;
-    private CostModelXmxqClMapper clfMapper;
+    public CostModelListMapper wxfclfMapper;
+    @Autowired
+    @SuppressWarnings("all")
+    public CostModelXmxqWxMapper wxfMapper;
+    @Autowired
+    @SuppressWarnings("all")
+    public CostModelXmxqClMapper clfMapper;
 
     /**
      * 成本模型——导出外协费材料费详情excel
      */
-    public ModelAndView exportXlsWXFCLFDetail(String costModelListId, Class<CostModelList> clazz, String title) {
+    public ModelAndView exportXlsWXFCLFDetail(String xiangmuid, Class<CostModelList> clazz, String title) {
+//        System.out.println("进入服务层");
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         //1.根据项目id查出外协费材料费总计价格、外协费详情、材料费详情
-        List<CostModelList> listWxfClf = getWXFCLFDetailList(costModelListId);
-        List<CostModelXmxqWx> listWxf = getWXFDetailList(costModelListId);
-        List<CostModelXmxqCl> listClf = getCLFDetailList(costModelListId);
+//        System.out.println("从数据库中获取详情列表");
+        List<CostModelList> listWxfClf = getWXFCLFDetailList(xiangmuid);
+        List<CostModelXmxqWx> listWxf = getWXFDetailList(xiangmuid);
+        List<CostModelXmxqCl> listClf = getCLFDetailList(xiangmuid);
+//        CostModelList wxfclfAll = new CostModelList();   //创建成本模型对象存储项目的外协费材料费总和  此处只是项目唯一选中进行导出
+//        for(CostModelList wxfclf:listWxfClf){
+//            wxfclfAll.setMaxWxf(wxfclf.getMaxWxf());
+//            wxfclfAll.setMinWxf(wxfclf.getMinWxf());
+//            wxfclfAll.setAveWxf(wxfclf.getAveWxf());
+//            wxfclfAll.setMaxClf(wxfclf.getMaxClf());
+//            wxfclfAll.setMinClf(wxfclf.getMinClf());
+//            wxfclfAll.setAveClf(wxfclf.getAveClf());
+//            wxfclfAll.setRecentClf(wxfclf.getRecentClf());
+//        }
+        CostModelXmxqWx wxfAll = new CostModelXmxqWx();
+        wxfAll.setXiangmuName("合计");
+        wxfAll.setMaxPrice(listWxfClf.get(0).getMaxWxf());
+        wxfAll.setMinPrice(listWxfClf.get(0).getMinWxf());
+        wxfAll.setAvePrice(listWxfClf.get(0).getAveWxf());
+        listWxf.add(wxfAll);
 
+        CostModelXmxqCl clfAll = new CostModelXmxqCl();
+        clfAll.setXiangmuName("合计");
+        clfAll.setMaxPrice(listWxfClf.get(0).getMaxClf());
+        clfAll.setMinPrice(listWxfClf.get(0).getMinClf());
+        clfAll.setAvePrice(listWxfClf.get(0).getAveClf());
+        clfAll.setRecentPrice(listWxfClf.get(0).getRecentClf());
+        listClf.add(clfAll);
         //2.多sheep输入
         List<Map<String, Object>> list = new ArrayList<>();
         //外协费
+//        System.out.println("制作外协表");
         Map<String, Object> map1 = new HashMap<>();
-        map1.put(NormalExcelConstants.CLASS, clazz);
-        map1.put(NormalExcelConstants.PARAMS, new ExportParams("外协费报表", "导出人:" + sysUser.getRealname(), "外协费"));
+        map1.put(NormalExcelConstants.CLASS, CostModelXmxqWx.class);
+        map1.put(NormalExcelConstants.PARAMS, new ExportParams("外协费详情表", "导出人:" + sysUser.getRealname(), "外协费"));
         map1.put(NormalExcelConstants.DATA_LIST, listWxf);
+
         list.add(map1);
         //材料费
+//        System.out.println("制作材料表");
         Map<String, Object> map2 = new HashMap<>();
-        map2.put(NormalExcelConstants.CLASS, clazz);
-        map2.put(NormalExcelConstants.PARAMS, new ExportParams("材料费报表", "导出人:" + sysUser.getRealname(), "材料费"));
+        map2.put(NormalExcelConstants.CLASS, CostModelXmxqCl.class);
+        map2.put(NormalExcelConstants.PARAMS, new ExportParams("材料费详情表", "导出人:" + sysUser.getRealname(), "材料费"));
         map2.put(NormalExcelConstants.DATA_LIST, listClf);
         list.add(map2);
 
         //3.AutoPoi 导出Excel
+//        System.out.println("导出excel");
         ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
         mv.addObject(NormalExcelConstants.FILE_NAME, title);  //文件名称,但是前端会重新命名
         mv.addObject(NormalExcelConstants.MAP_LIST, list);
@@ -74,17 +110,21 @@ public class CostModelListServiceImpl extends ServiceImpl<CostModelListMapper, C
     }
 
     /**成本模型——外协费材料费各自最大值最小值平均值近期值总和——根据项目id查询*/
-    public List<CostModelList> getWXFCLFDetailList(String costModelListId){
-        return wxfclfMapper.getWXFCLFDetailList(costModelListId);
+    public List<CostModelList> getWXFCLFDetailList(String xiangmuid){
+        return wxfclfMapper.getWXFCLFDetailList(xiangmuid);
     }
 
-    /**项目成本——事务费详情——根据项目id查询*/
-    public List<CostModelXmxqWx> getWXFDetailList(String costModelListId){
-        return wxfMapper.getWXFDetailList(costModelListId);
+    /**成本模型——外协费详情——根据项目id查询*/
+    public List<CostModelXmxqWx> getWXFDetailList(String xiangmuid){
+//        System.out.println("获取外协费详情");
+//        System.out.println(wxfMapper.getWXFDetailList(xiangmuid));
+        return wxfMapper.getWXFDetailList(xiangmuid);
     }
 
     /**成本模型——材料费详情——根据项目id查询*/
-    public List<CostModelXmxqCl> getCLFDetailList(String costModelListId){
-        return clfMapper.getCLFDetailList(costModelListId);
+    public List<CostModelXmxqCl> getCLFDetailList(String xiangmuid){
+//        System.out.println("获取材料费详情");
+//        System.out.println(clfMapper.getCLFDetailList(xiangmuid));
+        return clfMapper.getCLFDetailList(xiangmuid);
     }
 }

+ 4 - 4
module_kzks/src/main/java/org/jeecg/modules/costModelXmxqCl/entity/CostModelXmxqCl.java

@@ -56,7 +56,7 @@ public class CostModelXmxqCl implements Serializable {
     @ApiModelProperty(value = "所属部门")
     private java.lang.String sysOrgCode;
 	/**项目ID*/
-	@Excel(name = "项目ID", width = 15)
+//	@Excel(name = "项目ID", width = 15)
     @ApiModelProperty(value = "项目ID")
     private java.lang.String xiangmuId;
 	/**项目名称*/
@@ -86,7 +86,7 @@ public class CostModelXmxqCl implements Serializable {
     @ApiModelProperty(value = "采购日期")
     private java.util.Date caigouTime;
 	/**单价*/
-	@Excel(name = "单价", width = 15)
+//	@Excel(name = "单价", width = 15)
     @ApiModelProperty(value = "单价")
     private java.lang.String danjia;
 	/**数量*/
@@ -94,11 +94,11 @@ public class CostModelXmxqCl implements Serializable {
     @ApiModelProperty(value = "数量")
     private java.lang.String number;
 	/**价格(单价*数量)*/
-	@Excel(name = "价格(单价*数量)", width = 15)
+//	@Excel(name = "价格(单价*数量)", width = 15)
     @ApiModelProperty(value = "价格(单价*数量)")
     private java.lang.String price;
 	/**材料费类型*/
-	@Excel(name = "材料费类型", width = 15)
+//	@Excel(name = "材料费类型", width = 15)
     @ApiModelProperty(value = "材料费类型")
     private java.lang.String clfType;
     /**单价(最大值)*/

+ 6 - 6
module_kzks/src/main/java/org/jeecg/modules/costModelXmxqWx/entity/CostModelXmxqWx.java

@@ -56,7 +56,7 @@ public class CostModelXmxqWx implements Serializable {
     @ApiModelProperty(value = "所属部门")
     private java.lang.String sysOrgCode;
 	/**项目ID*/
-	@Excel(name = "项目ID", width = 15)
+//	@Excel(name = "项目ID", width = 15)
     @ApiModelProperty(value = "项目ID")
     private java.lang.String xiangmuId;
 	/**项目名称*/
@@ -72,7 +72,7 @@ public class CostModelXmxqWx implements Serializable {
     @ApiModelProperty(value = "外协单位")
     private java.lang.String wxCompany;
 	/**单价*/
-	@Excel(name = "单价", width = 15)
+//	@Excel(name = "单价", width = 15)
     @ApiModelProperty(value = "单价")
     private java.lang.String danjia;
 	/**计量单位*/
@@ -84,11 +84,11 @@ public class CostModelXmxqWx implements Serializable {
     @ApiModelProperty(value = "数量")
     private java.lang.String number;
 	/**价格(单价*数量)*/
-	@Excel(name = "价格(单价*数量)", width = 15)
+//	@Excel(name = "价格(单价*数量)", width = 15)
     @ApiModelProperty(value = "价格(单价*数量)")
     private java.lang.String price;
 	/**描述*/
-	@Excel(name = "描述", width = 15)
+//	@Excel(name = "描述", width = 15)
     @ApiModelProperty(value = "描述")
     private java.lang.String remark;
     /**单价(最大值)*/
@@ -104,7 +104,7 @@ public class CostModelXmxqWx implements Serializable {
     @ApiModelProperty(value = "单价(平均值)")
     private java.lang.String aveDanjia;
     /**单价(近期值)*/
-    @Excel(name = "单价(近期值)", width = 15)
+//    @Excel(name = "单价(近期值)", width = 15)
     @ApiModelProperty(value = "单价(近期值)")
     private java.lang.String recentDanjia;
     /**价格(单价最大值*数量)*/
@@ -120,7 +120,7 @@ public class CostModelXmxqWx implements Serializable {
     @ApiModelProperty(value = "价格(单价平均值*数量)")
     private java.lang.String avePrice;
     /**价格(单价近期值*数量)*/
-    @Excel(name = "价格(单价近期值*数量)", width = 15)
+//    @Excel(name = "价格(单价近期值*数量)", width = 15)
     @ApiModelProperty(value = "价格(单价近期值*数量)")
     private java.lang.String recentPrice;
 }