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