首页接口
This commit is contained in:
parent
e2c495003a
commit
8db6d34665
|
|
@ -8,6 +8,9 @@ package com.bonus.gzcar.business.backstage.controller;
|
||||||
* @description:首页
|
* @description:首页
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||||
|
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||||
|
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
||||||
import com.bonus.gzcar.business.backstage.entity.BackParamsDto;
|
import com.bonus.gzcar.business.backstage.entity.BackParamsDto;
|
||||||
import com.bonus.gzcar.business.backstage.entity.HomeProDetailVo;
|
import com.bonus.gzcar.business.backstage.entity.HomeProDetailVo;
|
||||||
import com.bonus.gzcar.business.backstage.service.HomeIndexService;
|
import com.bonus.gzcar.business.backstage.service.HomeIndexService;
|
||||||
|
|
@ -19,13 +22,15 @@ import com.github.pagehelper.PageInfo;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.ServletOutputStream;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.net.URLEncoder;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
@Api(tags = "首页")
|
@Api(tags = "首页")
|
||||||
@RestController
|
@RestController
|
||||||
|
|
@ -93,4 +98,34 @@ public class HomeIndexController {
|
||||||
List<HomeProDetailVo> list = service.getProDetails(dto.getData());;
|
List<HomeProDetailVo> list = service.getProDetails(dto.getData());;
|
||||||
return new PageInfo<>(list);
|
return new PageInfo<>(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "首页-二级页面-工程详情导出")
|
||||||
|
@PostMapping("exportProDetails")
|
||||||
|
public void exportApplyPlanList(HttpServletResponse response, @RequestBody BackParamsDto dto) {
|
||||||
|
try {
|
||||||
|
List<HomeProDetailVo> list = service.getProDetails(dto);
|
||||||
|
final int[] num = {1};
|
||||||
|
list.forEach(vo -> {
|
||||||
|
vo.setSerialNum(num[0]);
|
||||||
|
if(Objects.equals(vo.getDispatchStatus(),"1")){
|
||||||
|
vo.setDispatchStatus("部分派车");
|
||||||
|
}else if(Objects.equals(vo.getDispatchStatus(),"2")){
|
||||||
|
vo.setDispatchStatus("待派车");
|
||||||
|
}else if(Objects.equals(vo.getDispatchStatus(),"3")){
|
||||||
|
vo.setDispatchStatus("全部派车");
|
||||||
|
}
|
||||||
|
num[0]++;
|
||||||
|
});
|
||||||
|
ExportParams exportParams = new ExportParams("工程详情", "工程详情", ExcelType.XSSF);
|
||||||
|
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, HomeProDetailVo.class, list);
|
||||||
|
response.setContentType("application/vnd.ms-excel");
|
||||||
|
response.setHeader("content-disposition", "attachment;fileName=" + URLEncoder.encode("工程详情" + ".xlsx", "UTF-8"));
|
||||||
|
ServletOutputStream outputStream = response.getOutputStream();
|
||||||
|
workbook.write(outputStream);
|
||||||
|
outputStream.close();
|
||||||
|
workbook.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e.toString(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ public class BackParamsDto {
|
||||||
|
|
||||||
/**分公司*/
|
/**分公司*/
|
||||||
private String companyId;
|
private String companyId;
|
||||||
/**派车状态 1.已派车 2.待派车*/
|
/**派车状态 1.部分派车 2.未派车 3.全部派车*/
|
||||||
private String dispatchStatus;
|
private String dispatchStatus;
|
||||||
/**年份*/
|
/**年份*/
|
||||||
private String year;
|
private String year;
|
||||||
|
|
|
||||||
|
|
@ -13,27 +13,39 @@ import lombok.Data;
|
||||||
@Data
|
@Data
|
||||||
public class HomeProDetailVo {
|
public class HomeProDetailVo {
|
||||||
|
|
||||||
|
/**序号*/
|
||||||
|
@Excel(name = "序号", width = 10.0, orderNum = "0")
|
||||||
|
private int serialNum;
|
||||||
/**工程ID*/
|
/**工程ID*/
|
||||||
private String proId;
|
private String proId;
|
||||||
/**工程名称*/
|
/**工程名称*/
|
||||||
@Excel(name = "序号", width = 10.0, orderNum = "0")
|
@Excel(name = "工程名称", width = 20.0, orderNum = "1")
|
||||||
private String proName;
|
private String proName;
|
||||||
/**计划数*/
|
/**计划数*/
|
||||||
|
@Excel(name = "计划数", width = 20.0, orderNum = "2")
|
||||||
private int planNum;
|
private int planNum;
|
||||||
/**已派车计划*/
|
/**已派车计划*/
|
||||||
|
@Excel(name = "已派车计划", width = 20.0, orderNum = "3")
|
||||||
private int dispatchPlanNum;
|
private int dispatchPlanNum;
|
||||||
/**待派车计划*/
|
/**待派车计划*/
|
||||||
|
@Excel(name = "待派车计划", width = 20.0, orderNum = "4")
|
||||||
private int noDispatchPlanNum;
|
private int noDispatchPlanNum;
|
||||||
/**派车状态*/
|
/**派车状态*/
|
||||||
|
@Excel(name = "派车状态", width = 20.0, orderNum = "5")
|
||||||
private String dispatchStatus;
|
private String dispatchStatus;
|
||||||
/**应派车数量*/
|
/**应派车数量*/
|
||||||
|
@Excel(name = "应派车数量", width = 20.0, orderNum = "6")
|
||||||
private int shouldDispatchNum;
|
private int shouldDispatchNum;
|
||||||
/**已派车数量*/
|
/**已派车数量*/
|
||||||
|
@Excel(name = "已派车数量", width = 20.0, orderNum = "7")
|
||||||
private int dispatchNum;
|
private int dispatchNum;
|
||||||
/**待派车数量*/
|
/**待派车数量*/
|
||||||
|
@Excel(name = "待派车数量", width = 20.0, orderNum = "8")
|
||||||
private int noDispatchNum;
|
private int noDispatchNum;
|
||||||
/**已派车金额*/
|
/**已派车金额*/
|
||||||
|
@Excel(name = "已派车金额", width = 20.0, orderNum = "9")
|
||||||
private double money;
|
private double money;
|
||||||
/**所属分公司*/
|
/**所属分公司*/
|
||||||
|
@Excel(name = "所属分公司", width = 20.0, orderNum = "10")
|
||||||
private String companyName;
|
private String companyName;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.bonus.gzcar.business.backstage.mapper;
|
package com.bonus.gzcar.business.backstage.mapper;
|
||||||
|
|
||||||
import com.bonus.gzcar.business.backstage.entity.BackParamsDto;
|
import com.bonus.gzcar.business.backstage.entity.BackParamsDto;
|
||||||
|
import com.bonus.gzcar.business.backstage.entity.HomeProDetailVo;
|
||||||
import com.bonus.gzcar.business.backstage.entity.HomeProRankingVo;
|
import com.bonus.gzcar.business.backstage.entity.HomeProRankingVo;
|
||||||
import com.bonus.gzcar.business.backstage.entity.HomeSupStatisticsVo;
|
import com.bonus.gzcar.business.backstage.entity.HomeSupStatisticsVo;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
@ -99,4 +100,13 @@ public interface HomeIndexMapper {
|
||||||
* @date 2025/1/16 16:41
|
* @date 2025/1/16 16:41
|
||||||
*/
|
*/
|
||||||
List<Map<String, String>> getCompanyData(BackParamsDto dto);
|
List<Map<String, String>> getCompanyData(BackParamsDto dto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 首页-二级页面-工程详情
|
||||||
|
* @param dto
|
||||||
|
* @return List<HomeProDetailVo>
|
||||||
|
* @author cwchen
|
||||||
|
* @date 2025/1/17 9:58
|
||||||
|
*/
|
||||||
|
List<HomeProDetailVo> getProDetails(BackParamsDto dto);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package com.bonus.gzcar.business.backstage.service;
|
||||||
import com.bonus.gzcar.business.backstage.entity.*;
|
import com.bonus.gzcar.business.backstage.entity.*;
|
||||||
import com.bonus.gzcar.business.backstage.mapper.HomeIndexMapper;
|
import com.bonus.gzcar.business.backstage.mapper.HomeIndexMapper;
|
||||||
import com.bonus.gzcar.manager.common.util.DateTimeHelper;
|
import com.bonus.gzcar.manager.common.util.DateTimeHelper;
|
||||||
|
import com.bonus.gzcar.manager.common.util.StringUtils;
|
||||||
import com.bonus.gzcar.manager.webResult.ServerResponse;
|
import com.bonus.gzcar.manager.webResult.ServerResponse;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
|
@ -331,10 +332,17 @@ public class HomeIndexServiceImpl implements HomeIndexService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<HomeProDetailVo> getProDetails(BackParamsDto data) {
|
public List<HomeProDetailVo> getProDetails(BackParamsDto dto) {
|
||||||
List<HomeProDetailVo> list = new ArrayList<>();
|
List<HomeProDetailVo> list = new ArrayList<>();
|
||||||
|
if(StringUtils.isNotEmpty(dto.getYear()) && StringUtils.isNotEmpty(dto.getMonth())){
|
||||||
|
dto.setYearMonth(dto.getYear() + "-" + dto.getMonth());
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
|
list = mapper.getProDetails(dto);
|
||||||
|
for (HomeProDetailVo vo : list) {
|
||||||
|
vo.setNoDispatchNum(vo.getShouldDispatchNum() - vo.getDispatchNum());
|
||||||
|
// 金额待计算
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.toString(),e);
|
log.error(e.toString(),e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -112,4 +112,38 @@
|
||||||
FROM bm_company bc
|
FROM bm_company bc
|
||||||
WHERE IS_ACTIVE = '1'
|
WHERE IS_ACTIVE = '1'
|
||||||
</select>
|
</select>
|
||||||
|
<!--首页-二级页面-工程详情-->
|
||||||
|
<select id="getProDetails" resultType="com.bonus.gzcar.business.backstage.entity.HomeProDetailVo">
|
||||||
|
SELECT bp.name AS proName,
|
||||||
|
cpa.pro_id AS proId,
|
||||||
|
COUNT(ANY_VALUE(cpa.id)) AS planNum,
|
||||||
|
COUNT(ANY_VALUE(IF(cpa.dispatch_num > 0, 1, null))) AS dispatchPlanNum,
|
||||||
|
COUNT(ANY_VALUE(IF(cpa.dispatch_num = 0, 1, null))) AS noDispatchPlanNum,
|
||||||
|
IFNULL(SUM(ANY_VALUE(cpa.need_num)),0) AS shouldDispatchNum,
|
||||||
|
IFNULL(SUM(ANY_VALUE(cpa.dispatch_num)),0) AS dispatchNum,
|
||||||
|
ANY_VALUE(bp.bmname) AS companyName,
|
||||||
|
CASE WHEN SUM(ANY_VALUE(cpa.dispatch_num)) = 0 OR SUM(ANY_VALUE(cpa.dispatch_num)) IS NULL THEN '2'
|
||||||
|
WHEN SUM(ANY_VALUE(cpa.dispatch_num)) = SUM(ANY_VALUE(cpa.need_num)) THEN '3'
|
||||||
|
ELSE '1' END AS dispatchStatus
|
||||||
|
FROM car_plan_apply cpa
|
||||||
|
LEFT JOIN bm_project bp ON cpa.pro_id = bp.bid_id
|
||||||
|
<where>
|
||||||
|
<if test="yearMonth!=null and yearMonth!=''">
|
||||||
|
AND DATE_FORMAT(cpa.create_time,'%Y-%m') = #{yearMonth}
|
||||||
|
</if>
|
||||||
|
<if test="year!=null and year!=''">
|
||||||
|
AND DATE_FORMAT(cpa.create_time,'%Y') = #{year}
|
||||||
|
</if>
|
||||||
|
<if test="month!=null and month!=''">
|
||||||
|
AND DATE_FORMAT(cpa.create_time,'%m') = #{month}
|
||||||
|
</if>
|
||||||
|
AND cpa.`status` = '2' AND cpa.status_type = '1'
|
||||||
|
</where>
|
||||||
|
GROUP BY cpa.pro_id
|
||||||
|
<if test="dispatchStatus!='0' and dispatchStatus!=null">
|
||||||
|
HAVING (CASE WHEN SUM(ANY_VALUE(cpa.dispatch_num)) = 0 OR SUM(ANY_VALUE(cpa.dispatch_num)) IS NULL THEN '2'
|
||||||
|
WHEN SUM(ANY_VALUE(cpa.dispatch_num)) = SUM(ANY_VALUE(cpa.need_num)) THEN '3'
|
||||||
|
ELSE '1' END = #{dispatchStatus})
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
Loading…
Reference in New Issue