大屏接口结束

dev
litao 3 years ago
parent 7ffb2286a6
commit 8f0e83d68e
  1. 274
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/LargeScreenController.java
  2. 12
      lab-service/lab-lims/src/main/java/org/springblade/lims/service/ILargeScreenService.java
  3. 24
      lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/LargeScreenServiceImpl.java

@ -6,22 +6,14 @@ import lombok.AllArgsConstructor;
import org.joda.time.DateTime;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.api.R;
import org.springblade.lims.entry.Entrust;
import org.springblade.lims.entry.Instrument;
import org.springblade.lims.entry.InstrumentUseLog;
import org.springblade.lims.entry.RepairApplication;
import org.springblade.lims.service.IEntrtrustService;
import org.springblade.lims.service.IInstrumentService;
import org.springblade.lims.service.IInstrumentUseLogService;
import org.springblade.lims.service.IRepairApplicationService;
import org.springblade.lims.entry.*;
import org.springblade.lims.service.*;
import org.springframework.web.bind.annotation.*;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* @author swj
@ -41,8 +33,11 @@ public class LargeScreenController extends BladeController {
private final IInstrumentUseLogService instrumentUseLogService;
private final IExamineService examineService;
/**
* 本年度委托单完成情况
* 1.本年度委托单完成情况
*/
@GetMapping("/entrustYear")
public R<Map<String, Object>> entrustYear() throws ParseException {
@ -50,57 +45,58 @@ public class LargeScreenController extends BladeController {
DateTime date = new DateTime();
int year = date.getYear();
String str = year + "-01-01 00:00:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parse = sdf.parse(str);
// 本年度委托单完成数量
LambdaQueryWrapper<Entrust> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Entrust::getStatus, 6);
wrapper.eq(Entrust::getEntrustStatus, 6);
wrapper.ge(Entrust::getCreateTime, parse);
int count = entrtrustService.count(wrapper);
// 年度计划数量
double plan = 0.00;
double plan = 1000.00;
double actual = 0.00;
actual += count;
// 完成率
double rate = actual / plan * 100;
// 委托
wrapper.clear();
wrapper.eq(Entrust::getStatus, 6);
wrapper.eq(Entrust::getEntrustStatus, 6);
wrapper.ge(Entrust::getCreateTime, parse);
wrapper.eq(Entrust::getInvestigativeType, "1");
int wt = entrtrustService.count(wrapper);
double wt1 = 0.00;
wt1 += wt;
double rate1 = wt1 / wt * 100;
double rate1 = wt1 / count * 100;
// 监督
wrapper.clear();
wrapper.eq(Entrust::getStatus, 6);
wrapper.eq(Entrust::getEntrustStatus, 6);
wrapper.ge(Entrust::getCreateTime, parse);
wrapper.eq(Entrust::getInvestigativeType, "2");
int jd = entrtrustService.count(wrapper);
double jd1 = 0.00;
jd1 += jd;
double rate2 = jd1 / jd * 100;
double rate2 = jd1 / count * 100;
// 仲裁
wrapper.clear();
wrapper.eq(Entrust::getStatus, 6);
wrapper.eq(Entrust::getEntrustStatus, 6);
wrapper.ge(Entrust::getCreateTime, parse);
wrapper.eq(Entrust::getInvestigativeType, "3");
int zc = entrtrustService.count(wrapper);
double zc1 = 0.00;
zc1 += zc;
double rate3 = zc1 / zc * 100;
double rate3 = zc1 / count * 100;
// 门诊
wrapper.clear();
wrapper.eq(Entrust::getStatus, 6);
wrapper.eq(Entrust::getEntrustStatus, 6);
wrapper.ge(Entrust::getCreateTime, parse);
wrapper.eq(Entrust::getInvestigativeType, "4");
int mz = entrtrustService.count(wrapper);
double mz1 = 0.00;
mz1 += mz;
double rate4 = mz1 / mz * 100;
double rate4 = mz1 / count * 100;
Map<String, Object> map = new HashMap<>();
map.put("entrustCount", count);
map.put("rate", rate);
map.put("wt", rate1);
map.put("jd", rate2);
map.put("zc", rate3);
@ -108,6 +104,106 @@ public class LargeScreenController extends BladeController {
return R.data(map);
}
/**
* 2.以周为维度统计委托单完成数量并计算较上周的比率
*/
@GetMapping("/entrustMonth")
public R<Map<String, Object>> entrustMonth() throws ParseException {
Map<String, Object> map = new HashMap<>();
//设置日期格式
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar cld = Calendar.getInstance(Locale.CHINA);
//以周一为首日
cld.setFirstDayOfWeek(Calendar.MONDAY);
//当前时间
cld.setTimeInMillis(System.currentTimeMillis());
// 本周周一开始时间
cld.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
Date parse1 = df2.parse(df.format(cld.getTime()) + " 00:00:00");
// 本周周日结束时间
cld.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
Date parse2 = df2.parse(df.format(cld.getTime()) + " 23:59:59");
//上周时间
cld.setTimeInMillis(System.currentTimeMillis() - (1000 * 60 * 60 * 24 * 7 * 1));
// 上周周一开始时间
cld.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
Date parse3 = df2.parse(df.format(cld.getTime()) + " 00:00:00");
// 上周周日结束时间
cld.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
Date parse4 = df2.parse(df.format(cld.getTime()) + " 23:59:59");
// 本周的数量
LambdaQueryWrapper<Entrust> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Entrust::getEntrustStatus, 6);
wrapper.between(Entrust::getCreateTime, parse1, parse2);
int currWeekEntrustCount = entrtrustService.count(wrapper);
DecimalFormat df1 = new DecimalFormat("#0.00");
double a1 = Double.parseDouble(df1.format(currWeekEntrustCount));
// 上周的数量
wrapper.clear();
wrapper.eq(Entrust::getEntrustStatus, 6);
wrapper.between(Entrust::getCreateTime, parse3, parse4);
int lastWeekEntrustCount = entrtrustService.count(wrapper);
double a2 = Double.parseDouble(df1.format(lastWeekEntrustCount));
// 本周较上周增长百分比
int ratioByLastWeek = 100;
if (a2 > 0) {
ratioByLastWeek = (int) ((a1 - a2) / a2 * 100);
}
map.put("currWeekEntrustCount", currWeekEntrustCount);
map.put("ratioByLastWeek", ratioByLastWeek);
for (long i = 1; i <= 7; i++) {
long i1 = 1000 * 60 * 60 * 24 * 7 * i;
// 本周时间
cld.setTimeInMillis(System.currentTimeMillis() - i1);
// 获取第几周
String getzs = getzs(df.format(cld.getTime()));
// 本周周一开始时间
cld.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
Date tempParse1 = df2.parse(df.format(cld.getTime()) + " 00:00:00");
// 本周周日结束时间
cld.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
Date tempParse2 = df2.parse(df.format(cld.getTime()) + " 23:59:59");
// 本周数量
wrapper.clear();
wrapper.eq(Entrust::getEntrustStatus, 6);
wrapper.between(Entrust::getCreateTime, tempParse1, tempParse2);
int count = entrtrustService.count(wrapper);
map.put("week" + i, getzs + ":" + count);
}
return R.data(map);
}
/**
* 工具方法获取周数
*/
public static String getzs(String time) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = format.parse(time);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.setTime(date);
int i = calendar.get(Calendar.WEEK_OF_YEAR);
return String.valueOf(i);
}
/**
* 今日委托单完成情况
*/
@ -119,9 +215,9 @@ public class LargeScreenController extends BladeController {
int year = date.getYear();
int month = date.getMonthOfYear();
int day = date.getDayOfMonth();
String str1 = year + month + day + "00:00:00";
String str2 = year + month + day + "23:59:59";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String str1 = year + "-" + month + "-" + day + " 00:00:00";
String str2 = year + "-" + month + "-" + day + " 23:59:59";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parse1 = sdf.parse(str1);
Date parse2 = sdf.parse(str2);
// 今日委托单数量
@ -131,12 +227,12 @@ public class LargeScreenController extends BladeController {
int count = entrtrustService.count(wrapper);
wrapper.clear();
// 今日进行中
wrapper.between(Entrust::getCreateTime, parse1, parse2);
wrapper.ne(Entrust::getStatus, 6);
// wrapper.between(Entrust::getCreateTime, parse1, parse2);
wrapper.ne(Entrust::getEntrustStatus, 6);
int count1 = entrtrustService.count(wrapper);
// 今日完成
wrapper.between(Entrust::getCreateTime, parse1, parse2);
wrapper.eq(Entrust::getStatus, 6);
wrapper.between(Entrust::getUpdateTime, parse1, parse2);
wrapper.eq(Entrust::getEntrustStatus, 6);
int count2 = entrtrustService.count(wrapper);
map.put("count", count);
map.put("jxz", count1);
@ -146,11 +242,111 @@ public class LargeScreenController extends BladeController {
/**
* 各实验室检测数量统计
* 各实验室检测数量统计(今年)
*/
@GetMapping("/examine")
public void examine() {
public R<Map<String, Object>> examine() throws ParseException {
Map<String, Object> map = new HashMap<>();
//获取今年第一天
DateTime date = new DateTime();
int year = date.getYear();
String str = year + "-01-01 00:00:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date parse = sdf.parse(str);
LambdaQueryWrapper<Examine> wrapper = new LambdaQueryWrapper<>();
// 科室一今年已完成的检测
wrapper.eq(Examine::getDeptId, "1536303217085018114");
wrapper.eq(Examine::getIsFinished, "1");
wrapper.ge(Examine::getFinishTime, parse);
List<Examine> examineList1 = examineService.list(wrapper);
int wt1 = 0;
int jd1 = 0;
int zc1 = 0;
int sy1 = 0;
if (examineList1 != null) {
for (Examine examine : examineList1) {
Entrust entrust = entrtrustService.getById(examine.getEntrustId());
if ("1".equals(entrust.investigativeType)) {
wt1++;
}
if ("2".equals(entrust.investigativeType)) {
jd1++;
}
if ("3".equals(entrust.investigativeType)) {
zc1++;
}
if ("4".equals(entrust.investigativeType)) {
sy1++;
}
}
}
// 科室二今年已完成的检测
wrapper.clear();
wrapper.eq(Examine::getDeptId, "1536303261238456322");
wrapper.eq(Examine::getIsFinished, "1");
wrapper.ge(Examine::getFinishTime, parse);
List<Examine> examineList2 = examineService.list(wrapper);
int wt2 = 0;
int jd2 = 0;
int zc2 = 0;
int sy2 = 0;
if (examineList2 != null) {
for (Examine examine : examineList2) {
Entrust entrust = entrtrustService.getById(examine.getEntrustId());
if ("1".equals(entrust.investigativeType)) {
wt2++;
}
if ("2".equals(entrust.investigativeType)) {
jd2++;
}
if ("3".equals(entrust.investigativeType)) {
zc2++;
}
if ("4".equals(entrust.investigativeType)) {
sy2++;
}
}
}
// 科室三今年已完成的检测
wrapper.clear();
wrapper.eq(Examine::getDeptId, "1536303317815422978");
wrapper.eq(Examine::getIsFinished, "1");
wrapper.ge(Examine::getFinishTime, parse);
List<Examine> examineList3 = examineService.list(wrapper);
int wt3 = 0;
int jd3 = 0;
int zc3 = 0;
int sy3 = 0;
if (examineList3 != null) {
for (Examine examine : examineList3) {
Entrust entrust = entrtrustService.getById(examine.getEntrustId());
if ("1".equals(entrust.investigativeType)) {
wt3++;
}
if ("2".equals(entrust.investigativeType)) {
jd3++;
}
if ("3".equals(entrust.investigativeType)) {
zc3++;
}
if ("4".equals(entrust.investigativeType)) {
sy3++;
}
}
}
map.put("wt1", wt1);
map.put("jd1", jd1);
map.put("zc1", zc1);
map.put("sy1", sy1);
map.put("wt2", wt2);
map.put("jd2", jd2);
map.put("zc2", zc2);
map.put("sy2", sy2);
map.put("wt3", wt3);
map.put("jd3", jd3);
map.put("zc3", zc3);
map.put("sy3", sy3);
return R.data(map);
}
@ -268,7 +464,15 @@ public class LargeScreenController extends BladeController {
LambdaQueryWrapper<InstrumentUseLog> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.orderByDesc(InstrumentUseLog::getCreateTime);
List<InstrumentUseLog> useLogs = instrumentUseLogService.list(queryWrapper);
map.put("useLogs", useLogs);
if (useLogs.size() > 0 && useLogs.size() < 4) {
map.put("useLogs", useLogs);
} else {
List<InstrumentUseLog> useLogList = new ArrayList<>();
for (int i = 0; i < 3; i++) {
useLogList.add(useLogs.get(i));
}
map.put("useLogs", useLogList);
}
return R.data(map);
}

@ -1,12 +0,0 @@
package org.springblade.lims.service;
import org.springblade.core.mp.base.BaseService;
import org.springblade.lims.entry.ExamineWay;
/**
* @author swj
* @since 2022年6月1日19:50:34
*/
public interface ILargeScreenService extends BaseService {
}

@ -1,24 +0,0 @@
package org.springblade.lims.service.impl;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.lims.entry.ExamineItem;
import org.springblade.lims.mapper.ExamineItemMapper;
import org.springblade.lims.mapper.LargeScreenMapper;
import org.springblade.lims.service.IExamineItemService;
import org.springblade.lims.service.ILargeScreenService;
import org.springframework.stereotype.Service;
/**
*
* @author swj
* @since 2022年6月2日15:53:01
*/
@Service
@AllArgsConstructor
public class LargeScreenServiceImpl extends BaseServiceImpl implements ILargeScreenService {
}
Loading…
Cancel
Save