app首页
This commit is contained in:
parent
b0bea87aeb
commit
a11c5a932b
|
|
@ -0,0 +1,62 @@
|
||||||
|
package com.bonus.aqgqj.app.controller;
|
||||||
|
|
||||||
|
import com.bonus.aqgqj.app.entity.HomeAppVo;
|
||||||
|
import com.bonus.aqgqj.app.service.HomeAppService;
|
||||||
|
import com.bonus.aqgqj.basis.entity.vo.HomeVo;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author hay
|
||||||
|
* @description app首页
|
||||||
|
* @date 2024/8/6 10:18
|
||||||
|
*/
|
||||||
|
@Api(tags = "app首页")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/app/home/")
|
||||||
|
public class HomeAppController {
|
||||||
|
private static final Logger log = LoggerFactory.getLogger("adminLogger");
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HomeAppService service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* app首页--代办任务统计
|
||||||
|
*/
|
||||||
|
@PostMapping(value = "getApprovalNum")
|
||||||
|
public Map<String, Object> getApprovalNum(HomeAppVo vo) {
|
||||||
|
return service.getApprovalNum(vo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 班组工作情况统计
|
||||||
|
*/
|
||||||
|
@PostMapping(value = "getATeamNumForEcharts")
|
||||||
|
public Map<String,Object> getATeamNumForEcharts(HomeAppVo vo) {
|
||||||
|
return service.getATeamNumForEcharts(vo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 费用统计
|
||||||
|
*/
|
||||||
|
@PostMapping(value = "getATeamCostForEcharts")
|
||||||
|
public Map<String,Object> getATeamCostForEcharts(HomeAppVo vo) {
|
||||||
|
return service.getATeamCostForEcharts(vo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 大客户信息
|
||||||
|
*/
|
||||||
|
@PostMapping(value = "getCostRank")
|
||||||
|
public Map<String,Object> getCostRank(HomeAppVo vo) {
|
||||||
|
return service.getCostRank(vo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,49 @@
|
||||||
|
package com.bonus.aqgqj.app.dao;
|
||||||
|
|
||||||
|
import com.bonus.aqgqj.app.entity.HomeAppVo;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description app首页
|
||||||
|
* @author hay
|
||||||
|
* @date 2024/8/6 10:25
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface HomeAppDao {
|
||||||
|
/**
|
||||||
|
* 获取代办任务
|
||||||
|
* @param vo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<HomeAppVo> getApprovalNum(HomeAppVo vo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取班组
|
||||||
|
* @param vo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<HomeAppVo> getTeams(HomeAppVo vo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询试验班组echarts
|
||||||
|
* @param vo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<HomeAppVo> getATeamNumForEcharts(HomeAppVo vo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询试验费用echarts
|
||||||
|
* @param vo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<HomeAppVo> getATeamCostForEcharts(HomeAppVo vo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询大客户信息
|
||||||
|
* @param vo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<HomeAppVo> getCostRank(HomeAppVo vo);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,85 @@
|
||||||
|
package com.bonus.aqgqj.app.entity;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @className:ExperDeviceVo
|
||||||
|
* @author:cwchen
|
||||||
|
* @date:2024-07-19-13:29
|
||||||
|
* @version:1.0
|
||||||
|
* @description:试验设备-vo
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class HomeAppVo {
|
||||||
|
private String id;
|
||||||
|
/**
|
||||||
|
* 待派工
|
||||||
|
*/
|
||||||
|
private String dispatchWorkNum;
|
||||||
|
/**
|
||||||
|
* 待试验/实验数
|
||||||
|
*/
|
||||||
|
private String testNum;
|
||||||
|
/**
|
||||||
|
* 待重新审阅
|
||||||
|
*/
|
||||||
|
private String reloadReviewNUm;
|
||||||
|
/**
|
||||||
|
* 待审阅
|
||||||
|
*/
|
||||||
|
private String reviewNUm;
|
||||||
|
/**
|
||||||
|
* 待审核
|
||||||
|
*/
|
||||||
|
private String examineNum;
|
||||||
|
/**
|
||||||
|
* 待审批
|
||||||
|
*/
|
||||||
|
private String approvalNum;
|
||||||
|
/**
|
||||||
|
* 班组名称
|
||||||
|
*/
|
||||||
|
private String teamName;
|
||||||
|
/**
|
||||||
|
* 试验日期
|
||||||
|
*/
|
||||||
|
private String testData;
|
||||||
|
/**
|
||||||
|
* 试验费用
|
||||||
|
*/
|
||||||
|
private String testCost;
|
||||||
|
/**
|
||||||
|
* 排名
|
||||||
|
*/
|
||||||
|
private String sortNum;
|
||||||
|
/**
|
||||||
|
* 用户名称
|
||||||
|
*/
|
||||||
|
private String userName;
|
||||||
|
/**
|
||||||
|
* 总费用
|
||||||
|
*/
|
||||||
|
private String totalCost;
|
||||||
|
/**
|
||||||
|
* 订单量
|
||||||
|
*/
|
||||||
|
private String orderNum;
|
||||||
|
/**
|
||||||
|
* 联系人
|
||||||
|
*/
|
||||||
|
private String contacts;
|
||||||
|
/**
|
||||||
|
* 联系电话
|
||||||
|
*/
|
||||||
|
private String contactPhone;
|
||||||
|
/**
|
||||||
|
* 合作时间
|
||||||
|
*/
|
||||||
|
private String cooperateDate;
|
||||||
|
|
||||||
|
private String updateDate;
|
||||||
|
private String type;
|
||||||
|
private List<HomeAppVo> listData;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
package com.bonus.aqgqj.app.service;
|
||||||
|
|
||||||
|
import com.bonus.aqgqj.app.entity.HomeAppVo;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description app首页
|
||||||
|
* @author hay
|
||||||
|
* @date 2024/8/6 10:21
|
||||||
|
*/
|
||||||
|
public interface HomeAppService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 代办任务数量
|
||||||
|
* @param vo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> getApprovalNum(HomeAppVo vo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 班组工作情况统计
|
||||||
|
* @param vo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> getATeamNumForEcharts(HomeAppVo vo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 费用统计
|
||||||
|
* @param vo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> getATeamCostForEcharts(HomeAppVo vo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 大客户信息
|
||||||
|
* @param vo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> getCostRank(HomeAppVo vo);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,154 @@
|
||||||
|
package com.bonus.aqgqj.app.service.impl;
|
||||||
|
|
||||||
|
import com.bonus.aqgqj.app.dao.HomeAppDao;
|
||||||
|
import com.bonus.aqgqj.app.entity.HomeAppVo;
|
||||||
|
import com.bonus.aqgqj.app.service.HomeAppService;
|
||||||
|
import com.bonus.aqgqj.basis.entity.vo.HomeVo;
|
||||||
|
import com.bonus.aqgqj.utils.DateTimeHelper;
|
||||||
|
import com.bonus.aqgqj.utils.ListHelper;
|
||||||
|
import com.bonus.aqgqj.utils.StringHelper;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.text.DecimalFormat;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description app首页
|
||||||
|
* @author hay
|
||||||
|
* @date 2024/8/6 10:24
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Service
|
||||||
|
public class HomeAppServiceImpl implements HomeAppService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private HomeAppDao dao;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取代办任务数量
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> getApprovalNum(HomeAppVo vo) {
|
||||||
|
Map<String, Object> map=new HashMap<>();
|
||||||
|
try{
|
||||||
|
List<HomeAppVo> list=dao.getApprovalNum(vo);
|
||||||
|
HomeAppVo hvo=list.get(0);
|
||||||
|
map.put("data",hvo);
|
||||||
|
map.put("code","200");
|
||||||
|
}catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
map.put("code","400");
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 班组工作情况统计
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> getATeamNumForEcharts(HomeAppVo vo) {
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
try {
|
||||||
|
List<String> dates = new ArrayList<>();
|
||||||
|
//获取班组数据
|
||||||
|
List<HomeAppVo> teamlist = dao.getTeams(vo);
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
Date date = new Date();
|
||||||
|
if ("1".equals(vo.getType())) {
|
||||||
|
// 获取当前日期和时间
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
for (int i = 1; i <= 14; i++) {
|
||||||
|
// 使用add方法减去指定的天数
|
||||||
|
calendar.add(Calendar.DAY_OF_MONTH, -1);
|
||||||
|
date = calendar.getTime();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 获取当前日期和时间
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
for (int i = 1; i <= 6; i++) {
|
||||||
|
// 使用add方法减去指定的天数
|
||||||
|
calendar.add(Calendar.DAY_OF_MONTH, -1);
|
||||||
|
date = calendar.getTime();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dates = DateTimeHelper.getDatesBetween(sdf.format(date), sdf.format(new Date()));
|
||||||
|
List<HomeAppVo> lists = new ArrayList<>();
|
||||||
|
List<HomeAppVo> listsalls = new ArrayList<>();
|
||||||
|
for (HomeAppVo teamvo : teamlist) {
|
||||||
|
List<HomeAppVo> list = dao.getATeamNumForEcharts(teamvo);
|
||||||
|
if (ListHelper.isEmpty(list)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
lists = new ArrayList<>();
|
||||||
|
for (String daetr : dates) {
|
||||||
|
HomeAppVo hvod = new HomeAppVo();
|
||||||
|
hvod.setTeamName(teamvo.getTeamName());
|
||||||
|
hvod.setTestData(daetr);
|
||||||
|
hvod.setTestNum("0");
|
||||||
|
for (HomeAppVo hvo : list) {
|
||||||
|
if (daetr.equals(hvo.getTestData())) {
|
||||||
|
hvod.setTestNum(hvo.getTestNum());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lists.add(hvod);
|
||||||
|
}
|
||||||
|
teamvo.setListData(lists);
|
||||||
|
listsalls.add(teamvo);
|
||||||
|
}
|
||||||
|
map.put("data", listsalls);
|
||||||
|
map.put("code", "200");
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
map.put("code", "400");
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 班组费用统计
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> getATeamCostForEcharts(HomeAppVo vo) {
|
||||||
|
Map<String, Object> map=new HashMap<>();
|
||||||
|
try{
|
||||||
|
List<HomeAppVo> list=dao.getATeamCostForEcharts(vo);
|
||||||
|
map.put("data",list);
|
||||||
|
map.put("code","200");
|
||||||
|
}catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
map.put("code","400");
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> getCostRank(HomeAppVo vo) {
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
try {
|
||||||
|
List<HomeAppVo> list = dao.getCostRank(vo);
|
||||||
|
//将金额转换为万元
|
||||||
|
for (HomeAppVo hvo : list) {
|
||||||
|
if (StringHelper.isNotEmpty(hvo.getTotalCost())) {
|
||||||
|
// 转换为 double 并除以 10000
|
||||||
|
double value = Double.valueOf(hvo.getTotalCost()) / 10000;
|
||||||
|
// 创建 DecimalFormat 实例,设置最多四位小数
|
||||||
|
DecimalFormat df = new DecimalFormat("#.####");
|
||||||
|
// 设置舍入模式为直接截断(可选,因为默认就是这样)
|
||||||
|
df.setRoundingMode(java.math.RoundingMode.DOWN);
|
||||||
|
// 格式化 double 值
|
||||||
|
String formattedValue = df.format(value);
|
||||||
|
hvo.setTotalCost(formattedValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
map.put("data", list);
|
||||||
|
map.put("code", "200");
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
map.put("code", "400");
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,87 @@
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.bonus.aqgqj.app.dao.HomeAppDao">
|
||||||
|
<select id="getApprovalNum" parameterType="com.bonus.aqgqj.app.entity.HomeAppVo" resultType="com.bonus.aqgqj.app.entity.HomeAppVo">
|
||||||
|
select
|
||||||
|
sum(case when team_id is null then 1 else 0 end ) as dispatchWorkNum
|
||||||
|
,sum(case when team_id is not null and process_status is null then 1 else 0 end ) as testNum
|
||||||
|
,sum(case when process_status='1' and is_er=0 then 1 else 0 end ) as reloadReviewNUm
|
||||||
|
,sum(case when process_status='1' and is_er is null and audti_status!='2' then 1 else 0 end ) as reviewNUm
|
||||||
|
,sum(case when process_status='2' and audti_status!='2' then 1 else 0 end ) as examineNum
|
||||||
|
,sum(case when process_status='3' and audti_status!='2' then 1 else 0 end ) as approvalNum
|
||||||
|
,DATE_FORMAT(NOW(), '%Y-%m-%d') as updateDate
|
||||||
|
from (
|
||||||
|
select * from tb_sample where del_flag='0'
|
||||||
|
) ts
|
||||||
|
</select>
|
||||||
|
<select id="getATeamNumForEcharts" parameterType="com.bonus.aqgqj.app.entity.HomeAppVo" resultType="com.bonus.aqgqj.app.entity.HomeAppVo">
|
||||||
|
SELECT testData, COUNT(1) AS testNum
|
||||||
|
from (select tt.team_name as teamName, ts.id, DATE_FORMAT(ts.dispatch_time, '%Y-%m-%d') as testData
|
||||||
|
from tb_sample ts
|
||||||
|
LEFT JOIN tb_team tt on ts.team_id = tt.id
|
||||||
|
where ts.del_flag = '0'
|
||||||
|
and tt.id = #{id}) aa
|
||||||
|
group by testData
|
||||||
|
</select>
|
||||||
|
<select id="getTeams" parameterType="com.bonus.aqgqj.app.entity.HomeAppVo" resultType="com.bonus.aqgqj.app.entity.HomeAppVo">
|
||||||
|
select id, team_name as teamname
|
||||||
|
from tb_team
|
||||||
|
where del_flag = '0'
|
||||||
|
</select>
|
||||||
|
<select id="getATeamCostForEcharts" parameterType="com.bonus.aqgqj.app.entity.HomeAppVo" resultType="com.bonus.aqgqj.app.entity.HomeAppVo">
|
||||||
|
select teamName,
|
||||||
|
sum(amount) as testCost
|
||||||
|
from (select tt.team_name as teamName, ts.id, te.amount
|
||||||
|
from tb_exper te
|
||||||
|
left join tb_sample ts on te.sample_id = ts.id
|
||||||
|
left join tb_team tt on ts.team_id = tt.id
|
||||||
|
where ts.del_flag = '0') aa
|
||||||
|
group by teamName
|
||||||
|
</select>
|
||||||
|
<select id="getCostRank" parameterType="com.bonus.aqgqj.app.entity.HomeAppVo" resultType="com.bonus.aqgqj.app.entity.HomeAppVo">
|
||||||
|
SELECT
|
||||||
|
*
|
||||||
|
FROM
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
aa.id,
|
||||||
|
aa.custom_name AS userName,
|
||||||
|
aa.custom_user AS contacts,
|
||||||
|
aa.custom_phone AS contactPhone,
|
||||||
|
SUM( te.dev_num ) AS orderNum,
|
||||||
|
MAX( te.update_time ) AS cooperateDate,
|
||||||
|
SUM( te.dev_num * bb.amount ) + SUM(IFNULL( ted.amount, 0 )) AS totalCost
|
||||||
|
FROM
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
ec.id,
|
||||||
|
ec.custom_name,
|
||||||
|
ec.custom_user,
|
||||||
|
ec.custom_phone
|
||||||
|
FROM
|
||||||
|
tb_custom ec
|
||||||
|
WHERE
|
||||||
|
ec.del_flag = 0
|
||||||
|
AND ec.dept_id = 0
|
||||||
|
) aa
|
||||||
|
LEFT JOIN tb_exper te ON te.submit_unit = aa.id
|
||||||
|
AND te.del_flag = 0
|
||||||
|
LEFT JOIN(
|
||||||
|
SELECT
|
||||||
|
exper_id,
|
||||||
|
SUM(amount) as amount
|
||||||
|
FROM
|
||||||
|
tb_exper_dev
|
||||||
|
GROUP BY exper_id
|
||||||
|
) ted ON ted.exper_id = te.id
|
||||||
|
LEFT JOIN ( SELECT exper_id, SUM( IFNULL( amount, 0 ) ) AS amount FROM tb_exper_items GROUP BY exper_id ) bb ON bb.exper_id = te.id
|
||||||
|
GROUP BY
|
||||||
|
te.submit_unit
|
||||||
|
) cc
|
||||||
|
WHERE
|
||||||
|
cc.cooperateDate IS NOT NULL
|
||||||
|
ORDER BY
|
||||||
|
cc.totalCost DESC
|
||||||
|
LIMIT 5
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
Loading…
Reference in New Issue