槽液各个bug修改

master
pangyang 1 month ago
parent 31d1093256
commit 8b55687c6f
  1. 4
      blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java
  2. 16
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTaskCopy.java
  3. 11
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/RelTankReportItem.java
  4. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankReportConfigVO.java
  5. 1
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawSingleVO.java
  6. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankReportConfigController.java
  7. 18
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankReportController.java
  8. 224
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskCopyController.java
  9. 14
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/LiquidTankExcel.java
  10. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankTaskCopyService.java
  11. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankTaskService.java
  12. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskSetVoService.java
  13. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankServiceImpl.java
  14. 49
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskCopyServiceImpl.java
  15. 61
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskServiceImpl.java
  16. 17
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/util/FullMergeExcelUtil.java

@ -12,9 +12,9 @@ public interface LauncherConstant {
/**
* nacos 命名空间
*/
String NACOS_NAMESPACE = "feaf627f-a847-463b-8b73-24a0538f526e";
// String NACOS_NAMESPACE = "feaf627f-a847-463b-8b73-24a0538f526e";
// 生产环境
// String NACOS_NAMESPACE = "db3f4da1-ae19-4104-8c17-6d9b8f069401";
String NACOS_NAMESPACE = "db3f4da1-ae19-4104-8c17-6d9b8f069401";
// 测试环境
// String NACOS_NAMESPACE = "6cdd0310-0d61-4f54-891a-7fb06224d9b8";

@ -536,4 +536,20 @@ public class LiquidTankTaskCopy extends BaseEntity {
@Schema(description = "药品监督人签名")
private String drugSuUserSign;
@Schema(description = "超出规范极限调整后的结果")
private String outRangeResult;
@Schema(description = "槽液清理记录")
private String clearRecord;
@Schema(description = "控制规范")
private String norm;
@Schema(description = "报告id")
private Long reportId;
@Schema(description = "采样时间")
private LocalDate sampleDate;
@Schema(description = "化验频率")
private String testFrequency;
@Schema(description = "药品计算公式")
private String reportFormulaContent;
}

@ -64,4 +64,15 @@ public class RelTankReportItem extends BaseEntity {
*/
@Schema(description = "备注")
private String remark;
@Schema(description = "药品添加人签名")
private String drugAddUserSign;
@Schema(description = "药品监督人签名")
private String drugSuUserSign;
@Schema(description = "超出规范极限调整后的结果")
private String result;
@Schema(description = "槽液清理记录")
private String clearRecord;
@Schema(description = "控制规范")
private String controllerText;
}

@ -21,4 +21,6 @@ public class LiquidTankReportConfigVO extends LiquidTankReportConfig {
@Serial
private static final long serialVersionUID = 1L;
private String wcName;
}

@ -9,6 +9,7 @@ import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

@ -24,6 +24,8 @@ import org.springblade.core.secure.BladeUser;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.pojo.entity.WorkCenter;
import org.springblade.desk.basic.service.IWorkCenterService;
import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.quality.constant.QAModuleConst;
import org.springblade.desk.quality.excel.LiquidTankReportConfigExcel;
@ -56,6 +58,9 @@ public class LiquidTankReportConfigController extends BladeController {
@Resource
private ILiquidTankReportConfigService service;
@Resource
private IWorkCenterService workCenterService;
/**
* [槽液报告配置] 详情
*/
@ -80,6 +85,12 @@ public class LiquidTankReportConfigController extends BladeController {
QueryWrapper<LiquidTankReportConfig> qw = Condition.getQueryWrapper(liquidTankReportConfig, LiquidTankReportConfig.class);
IPage<LiquidTankReportConfig> pages = service.page(Condition.getPage(query), qw);
IPage<LiquidTankReportConfigVO> pagesVO = LiquidTankReportConfigWrapper.build().pageVO(pages);
for(LiquidTankReportConfigVO one : pagesVO.getRecords()){
WorkCenter workCenter =workCenterService.getById(one.getWcId());
if(null != workCenter){
one.setWcName(workCenter.getWcName());
}
}
return R.data(pagesVO);
}

@ -37,6 +37,8 @@ import org.springblade.desk.quality.service.ILiquidTankReportService;
import org.springblade.desk.quality.service.ILiquidTankTaskCopyService;
import org.springblade.desk.quality.wrapper.LiquidTankReportDetailWrapper;
import org.springblade.desk.quality.wrapper.LiquidTankReportWrapper;
import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.User;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -64,6 +66,8 @@ public class LiquidTankReportController extends BladeController {
private ILiquidTankReportService service;
@Resource
private ILiquidTankTaskCopyService liquidTankTaskCopyService;
@Resource
private IUserClient iUserClient;
/**
* [槽液报告] 详情
@ -76,7 +80,9 @@ public class LiquidTankReportController extends BladeController {
LiquidTankReport detail = service.getOne(qw);
LiquidTankReportDetailVO detailVO = LiquidTankReportDetailWrapper.build().entityVO(detail);
// 直接查询明细列表
detailVO.setCopyList(liquidTankTaskCopyService.getListByLiquidTankReportId(detailVO.getId()));
// detailVO.setCopyList(liquidTankTaskCopyService.getListByLiquidTankReportId(detailVO.getId()));
detailVO.setCopyList(liquidTankTaskCopyService.getListByLiquidTankReportIdNew(detailVO.getId()));
return R.data(detailVO);
}
@ -97,6 +103,16 @@ public class LiquidTankReportController extends BladeController {
}
IPage<LiquidTankReport> pages = service.page(Condition.getPage(query), qw);
IPage<LiquidTankReportVO> pagesVO = LiquidTankReportWrapper.build().pageVO(pages);
for(LiquidTankReportVO one : pagesVO.getRecords()){
if(null == one.getUpdateUser()){
R<User> user= iUserClient.userInfoById(one.getCreateUser());
one.setUpdateUserRealName(user.getData().getRealName());
}else{
R<User> user= iUserClient.userInfoById(one.getUpdateUser());
one.setUpdateUserRealName(user.getData().getRealName());
}
}
return R.data(pagesVO);
}

@ -32,17 +32,12 @@ import org.springblade.desk.quality.constant.LiquidTankTaskConst;
import org.springblade.desk.quality.constant.QAModuleConst;
import org.springblade.desk.quality.excel.LiquidTankTaskCopyExcel;
import org.springblade.desk.quality.pojo.entity.*;
import org.springblade.desk.quality.pojo.vo.LiquidTankReportDetailVO;
import org.springblade.desk.quality.pojo.vo.LiquidTankTaskCopyVO;
import org.springblade.desk.quality.pojo.vo.LiquidTankWaveDrawVO;
import org.springblade.desk.quality.pojo.vo.LiquidTankWaveDrawSingleVO;
import org.springblade.desk.quality.service.ILiquidTankReportConfigService;
import org.springblade.desk.quality.service.ILiquidTankReportService;
import org.springblade.desk.quality.service.ILiquidTankService;
import org.springblade.desk.quality.service.ILiquidTankTaskCopyService;
import org.springblade.desk.quality.pojo.vo.*;
import org.springblade.desk.quality.service.*;
import org.springblade.desk.quality.util.FullMergeExcelUtil;
import org.springblade.desk.quality.wrapper.LiquidTankReportDetailWrapper;
import org.springblade.desk.quality.wrapper.LiquidTankTaskCopyWrapper;
import org.springblade.desk.quality.wrapper.LiquidTankTaskWrapper;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -71,6 +66,9 @@ public class LiquidTankTaskCopyController extends BladeController {
@Resource
private ILiquidTankTaskCopyService service;
@Resource
private ILiquidTankTaskService taskService;
@Resource
private ILiquidTankService tankService;
@ -90,16 +88,82 @@ public class LiquidTankTaskCopyController extends BladeController {
/**
* [槽液报告] 查询Copy任务 list分页
*/
// @GetMapping("/listReport")
// @ApiOperationSupport(order = 20)
// @Operation(summary = "[槽液报告] 查询任务 list分页", description = "传入LiquidTankTaskCopy Obj")
// public R<IPage<LiquidTankTaskCopyVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> map,
// Query query) {
// map.forEach((key, value) -> {
// log.warn("key = {}, value = {}, type = {}", key, value, value.getClass());
// }
// );
// QueryWrapper<LiquidTankTaskCopy> qw = Condition.getQueryWrapper(map, LiquidTankTaskCopy.class);
// // 正常结束的,异常结束的
// qw.in(BaseCol.STATUS, asList(LiquidTankTaskConst.S_FINISH_FAILED, LiquidTankTaskConst.S_FINISH_OK));
// // [作业中心]id
// qw.eq(map.containsKey(LiquidTankTaskCopy.COL_WORK_CENTER_ID), LiquidTankTaskCopy.COL_WORK_CENTER_ID, Func.toLong(map.get("workCenterId")));
// // [作业槽]id
// qw.eq(map.containsKey(LiquidTankTaskCopy.COL_WORK_TANK_ID), LiquidTankTaskCopy.COL_WORK_TANK_ID, Func.toLong(map.get("workTankId")));
// // 待测成分/分析项目
// qw.like(map.containsKey(LiquidTankTaskCopy.COL_TEST_ELEMENT), LiquidTankTaskCopy.COL_TEST_ELEMENT, Func.toStr(map.get("testElement")));
// // 范围日期
// if (map.containsKey(BaseRequest.CREATE_TIME_START) && map.containsKey(BaseRequest.CREATE_TIME_END)) {
// Date crStart = RequestUtil.buildDateBeginOfDay(map, BaseRequest.CREATE_TIME_START);
// Date crEnd = RequestUtil.buildDateEndOfDay(map, BaseRequest.CREATE_TIME_END);
// qw.between(BaseCol.CREATE_TIME, crStart, crEnd);
// }
// // ID 升序
// qw.orderByAsc(BaseCol.ID);
// //
// IPage<LiquidTankTaskCopy> pages = service.page(Condition.getPage(query), qw);
// IPage<LiquidTankTaskCopyVO> pagesVO = LiquidTankTaskCopyWrapper.build().pageVO(pages);
//
// List<LiquidTankTaskCopyVO> list = pagesVO.getRecords();
// for(LiquidTankTaskCopyVO copyVO : list){
// QueryWrapper<LiquidTank> queryWrapper = new QueryWrapper<>();
// queryWrapper.eq("ID",copyVO.getLiquidTankId());
// List<LiquidTank> records = tankService.list(queryWrapper);
// if(null != records && records.size()>0){
// LiquidTank tank = records.get(0);
// if(1==tank.getJobType()){
// String weekly = tank.getJobTypeWeekValue();
// List<String> weeks = Arrays.asList(weekly.split(","));
// copyVO.setTestFrequency( weeks.size()+"次/周");
// }
//
// if(2==tank.getJobType()){
// String month = tank.getJobTypeMonthValue();
// List<String> months = Arrays.asList(month.split(","));
// copyVO.setTestFrequency( months.size()+"次/月");
// }
//
// if(3==tank.getJobType()){
// String year = tank.getJobTypeYearValue();
// List<String> years = Arrays.asList(year.split(","));
// copyVO.setTestFrequency( years.size()+"次/年");
// }
// }
// }
//
// pagesVO.getRecords()
// .stream()
// .peek(service::setVOValue)
// .collect(Collectors.toList());
// return R.data(pagesVO);
// }
@GetMapping("/listReport")
@ApiOperationSupport(order = 20)
@Operation(summary = "[槽液报告] 查询任务 list分页", description = "传入LiquidTankTaskCopy Obj")
public R<IPage<LiquidTankTaskCopyVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> map,
Query query) {
public R<IPage<LiquidTankTaskVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> map,
Query query) {
map.forEach((key, value) -> {
log.warn("key = {}, value = {}, type = {}", key, value, value.getClass());
}
);
QueryWrapper<LiquidTankTaskCopy> qw = Condition.getQueryWrapper(map, LiquidTankTaskCopy.class);
QueryWrapper<LiquidTankTask> qw = Condition.getQueryWrapper(map, LiquidTankTask.class);
// 正常结束的,异常结束的
qw.in(BaseCol.STATUS, asList(LiquidTankTaskConst.S_FINISH_FAILED, LiquidTankTaskConst.S_FINISH_OK));
// [作业中心]id
@ -117,11 +181,11 @@ public class LiquidTankTaskCopyController extends BladeController {
// ID 升序
qw.orderByAsc(BaseCol.ID);
//
IPage<LiquidTankTaskCopy> pages = service.page(Condition.getPage(query), qw);
IPage<LiquidTankTaskCopyVO> pagesVO = LiquidTankTaskCopyWrapper.build().pageVO(pages);
IPage<LiquidTankTask> pages = taskService.page(Condition.getPage(query), qw);
IPage<LiquidTankTaskVO> pagesVO = LiquidTankTaskWrapper.build().pageVO(pages);
List<LiquidTankTaskCopyVO> list = pagesVO.getRecords();
for(LiquidTankTaskCopyVO copyVO : list){
List<LiquidTankTaskVO> list = pagesVO.getRecords();
for(LiquidTankTaskVO copyVO : list){
QueryWrapper<LiquidTank> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ID",copyVO.getLiquidTankId());
List<LiquidTank> records = tankService.list(queryWrapper);
@ -147,16 +211,91 @@ public class LiquidTankTaskCopyController extends BladeController {
}
}
// pagesVO.getRecords()
// .stream()
// .peek(service::setVOValue)
// .collect(Collectors.toList());
pagesVO.getRecords()
.stream()
.peek(taskService::setVOCopyValue)
.collect(Collectors.toList());
return R.data(pagesVO);
}
/**
* [槽液曲线] 查询Copy任务 list分页
*/
// @GetMapping("/listWave")
// @ApiOperationSupport(order = 20)
// @Operation(summary = "[槽液曲线] 查询任务 list分页", description = "传入LiquidTankTaskCopy Obj")
// public R listWave(@Parameter(hidden = true) @RequestParam Map<String, Object> map,
// Query query) {
// map.forEach((key, value) -> {
// log.warn("key = {}, value = {}, type = {}", key, value, value.getClass());
// }
// );
// QueryWrapper<LiquidTankTaskCopy> qw = Condition.getQueryWrapper(map, LiquidTankTaskCopy.class);
// // 正常结束的,异常结束的
// qw.in(BaseCol.STATUS, asList(LiquidTankTaskConst.S_FINISH_FAILED, LiquidTankTaskConst.S_FINISH_OK));
// // [作业中心]id
// qw.eq(map.containsKey(LiquidTankTaskCopy.COL_WORK_CENTER_ID), LiquidTankTaskCopy.COL_WORK_CENTER_ID, Func.toLong(map.get("workCenterId")));
// // 范围日期
// if (map.containsKey(BaseRequest.CREATE_TIME_START) && map.containsKey(BaseRequest.CREATE_TIME_END)) {
// Date crStart = RequestUtil.buildDateBeginOfDay(map, BaseRequest.CREATE_TIME_START);
// Date crEnd = RequestUtil.buildDateEndOfDay(map, BaseRequest.CREATE_TIME_END);
// qw.between(BaseCol.CREATE_TIME, crStart, crEnd);
// }
// // 排序 槽液id升序 复测化验时间升序
// qw.orderByAsc(
// List.of(
// BaseCol.ID,
// LiquidTankTaskCopy.COL_REPEAT_TEST_DATE
// ));
// IPage<LiquidTankTaskCopy> pages = service.page(Condition.getPage(query), qw);
// IPage<LiquidTankTaskCopyVO> pagesVO = LiquidTankTaskCopyWrapper.build().pageVO(pages);
// pagesVO.getRecords()
// .stream()
// .peek(service::setVOValue)
// .collect(Collectors.toList());
// // key 自带排序
// // key: [作业槽]id
// // value: 任务数据列表
// Map<Long, List<LiquidTankTaskCopyVO>> treeMap = new TreeMap<>();
// // 遍历赋值到treeMap中
// pagesVO.getRecords().forEach(vo -> {
// final Long wtId = vo.getWorkTankId();
// // 不包含,新建
// if (!treeMap.containsKey(wtId)) {
// List<LiquidTankTaskCopyVO> list = new ArrayList<>();
// treeMap.put(wtId, list);
// }
// treeMap.get(wtId).add(vo);
// });
// // 前端要求匹配对象
// LiquidTankWaveDrawVO allVO = new LiquidTankWaveDrawVO();
// List<LiquidTankWaveDrawSingleVO> allChart = allVO.getWaveData();
// // 每个entry一个图表
// for (Map.Entry<Long, List<LiquidTankTaskCopyVO>> entry : treeMap.entrySet()) {
// Long wtId = entry.getKey();
// // 数据列表
// List<LiquidTankTaskCopyVO> list = entry.getValue();
// LiquidTankWaveDrawSingleVO singleChart = new LiquidTankWaveDrawSingleVO();
// for (LiquidTankTaskCopyVO one : list) {
// singleChart.setWcId(one.getWorkCenterId());
// singleChart.setWcName(one.getWcName());
// singleChart.setWorkTankId(one.getWorkTankId());
// singleChart.setWorkTankName(one.getWorkTankName());
// singleChart.setLiquidTankId(one.getLiquidTankId());
// singleChart.setTestElement(one.getTestElement());
// singleChart.getMaxList().add(one.getTargetValueMax());
// singleChart.getMinList().add(one.getTargetValueMin());
// singleChart.getTargetList().add(one.getTargetValue());
// singleChart.getTestList().add(one.getRepeatTestValue());
// singleChart.getTestDateList().add(one.getRepeatTestDate());
// singleChart.setId(one.getId());
// }
// allChart.add(singleChart);
// }
// return R.data(allVO);
// }
@GetMapping("/listWave")
@ApiOperationSupport(order = 20)
@Operation(summary = "[槽液曲线] 查询任务 list分页", description = "传入LiquidTankTaskCopy Obj")
@ -166,39 +305,45 @@ public class LiquidTankTaskCopyController extends BladeController {
log.warn("key = {}, value = {}, type = {}", key, value, value.getClass());
}
);
QueryWrapper<LiquidTankTaskCopy> qw = Condition.getQueryWrapper(map, LiquidTankTaskCopy.class);
map.forEach((key, value) -> {
log.warn("key = {}, value = {}, type = {}", key, value, value.getClass());
}
);
QueryWrapper<LiquidTankTask> qw = Condition.getQueryWrapper(map, LiquidTankTask.class);
// 正常结束的,异常结束的
qw.in(BaseCol.STATUS, asList(LiquidTankTaskConst.S_FINISH_FAILED, LiquidTankTaskConst.S_FINISH_OK));
// [作业中心]id
qw.eq(map.containsKey(LiquidTankTaskCopy.COL_WORK_CENTER_ID), LiquidTankTaskCopy.COL_WORK_CENTER_ID, Func.toLong(map.get("workCenterId")));
// [作业槽]id
// qw.eq(map.containsKey(LiquidTankTaskCopy.COL_WORK_TANK_ID), LiquidTankTaskCopy.COL_WORK_TANK_ID, Func.toLong(map.get("workTankId")));
// 待测成分/分析项目
// qw.like(map.containsKey(LiquidTankTaskCopy.COL_TEST_ELEMENT), LiquidTankTaskCopy.COL_TEST_ELEMENT, Func.toStr(map.get("testElement")));
// 范围日期
if (map.containsKey(BaseRequest.CREATE_TIME_START) && map.containsKey(BaseRequest.CREATE_TIME_END)) {
Date crStart = RequestUtil.buildDateBeginOfDay(map, BaseRequest.CREATE_TIME_START);
Date crEnd = RequestUtil.buildDateEndOfDay(map, BaseRequest.CREATE_TIME_END);
qw.between(BaseCol.CREATE_TIME, crStart, crEnd);
}
// 排序 槽液id升序 复测化验时间升序
qw.orderByAsc(
List.of(
BaseCol.ID,
LiquidTankTaskCopy.COL_REPEAT_TEST_DATE
));
IPage<LiquidTankTaskCopy> pages = service.page(Condition.getPage(query), qw);
IPage<LiquidTankTaskCopyVO> pagesVO = LiquidTankTaskCopyWrapper.build().pageVO(pages);
// ID 升序
qw.orderByAsc(BaseCol.ID);
//
IPage<LiquidTankTask> pages = taskService.page(Condition.getPage(query), qw);
IPage<LiquidTankTaskVO> pagesVO = LiquidTankTaskWrapper.build().pageVO(pages);
pagesVO.getRecords()
.stream()
.peek(service::setVOValue)
.peek(taskService::setVOCopyValue)
.collect(Collectors.toList());
// key 自带排序
// key: [作业槽]id
// value: 任务数据列表
Map<Long, List<LiquidTankTaskCopyVO>> treeMap = new TreeMap<>();
Map<Long, List<LiquidTankTaskVO>> treeMap = new TreeMap<>();
// 遍历赋值到treeMap中
pagesVO.getRecords().forEach(vo -> {
final Long wtId = vo.getWorkTankId();
// 不包含,新建
if (!treeMap.containsKey(wtId)) {
List<LiquidTankTaskCopyVO> list = new ArrayList<>();
List<LiquidTankTaskVO> list = new ArrayList<>();
treeMap.put(wtId, list);
}
treeMap.get(wtId).add(vo);
@ -207,12 +352,12 @@ public class LiquidTankTaskCopyController extends BladeController {
LiquidTankWaveDrawVO allVO = new LiquidTankWaveDrawVO();
List<LiquidTankWaveDrawSingleVO> allChart = allVO.getWaveData();
// 每个entry一个图表
for (Map.Entry<Long, List<LiquidTankTaskCopyVO>> entry : treeMap.entrySet()) {
for (Map.Entry<Long, List<LiquidTankTaskVO>> entry : treeMap.entrySet()) {
Long wtId = entry.getKey();
// 数据列表
List<LiquidTankTaskCopyVO> list = entry.getValue();
List<LiquidTankTaskVO> list = entry.getValue();
LiquidTankWaveDrawSingleVO singleChart = new LiquidTankWaveDrawSingleVO();
for (LiquidTankTaskCopyVO one : list) {
for (LiquidTankTaskVO one : list) {
singleChart.setWcId(one.getWorkCenterId());
singleChart.setWcName(one.getWcName());
singleChart.setWorkTankId(one.getWorkTankId());
@ -223,6 +368,9 @@ public class LiquidTankTaskCopyController extends BladeController {
singleChart.getMinList().add(one.getTargetValueMin());
singleChart.getTargetList().add(one.getTargetValue());
singleChart.getTestList().add(one.getRepeatTestValue());
LocalDate localDate = one.getRepeatFillDate().toLocalDate();
singleChart.getTestDateList().add(localDate);
// singleChart.getTestDateList().add(one.getRepeatFillDate());
singleChart.setId(one.getId());
}
allChart.add(singleChart);
@ -359,7 +507,10 @@ public class LiquidTankTaskCopyController extends BladeController {
HttpServletResponse response) {
LiquidTankReport report = reportService.getById(id);
List<LiquidTankTaskCopyVO> list = service.getListByLiquidTankReportId(report.getId());
// List<LiquidTankTaskCopyVO> list = service.getListByLiquidTankReportId(report.getId());
List<LiquidTankTaskCopyVO> list = service.getListByLiquidTankReportIdNew(report.getId());
Long centerId = list.get(0).getWorkCenterId();
@ -367,8 +518,10 @@ public class LiquidTankTaskCopyController extends BladeController {
queryWrapper.eq("WC_ID",centerId);
List<LiquidTankReportConfig> rule = configService.list(queryWrapper);
String name = "";
String tableTtile ="";
if(null != rule && rule.size() > 0){
name = rule.get(0).getNamePrefix();
tableTtile = rule.get(0).getReportCode();
}
@ -377,6 +530,7 @@ public class LiquidTankTaskCopyController extends BladeController {
response,
"槽液检测报告",
name,
tableTtile,
new String[]{"取样时间", "温度(℃)", "槽号", "体积(L)", "分析项目", "规范下限(g/L)", "目标下限(g/L)",
"添加点(g/L)", "目标值(g/L)","目标上限(g/L)","规范上限(g/L)","化验频率","化验值(g/L)",
"药品计算公式","药品添加量","药品批次号","药品监督员签名","药品添加人签名","调整后化验值(g/L)",

@ -72,47 +72,47 @@ public class LiquidTankExcel implements Serializable {
*/
@ColumnWidth(20)
@ExcelProperty("规范上限")
private BigDecimal normValueMax;
private Double normValueMax;
/**
* 规范下限
*/
@ColumnWidth(20)
@ExcelProperty("规范下限")
private BigDecimal normValueMin;
private Double normValueMin;
/**
* 目标上限
*/
@ColumnWidth(20)
@ExcelProperty("目标上限")
private BigDecimal targetValueMax;
private Double targetValueMax;
/**
* 目标下限
*/
@ColumnWidth(20)
@ExcelProperty("目标下限")
private BigDecimal targetValueMin;
private Double targetValueMin;
/**
* 目标值
*/
@ColumnWidth(20)
@ExcelProperty("目标值")
private BigDecimal targetValue;
private Double targetValue;
/**
* 添加点
*/
@ColumnWidth(20)
@ExcelProperty("添加点")
private BigDecimal fillingLocation;
private Double fillingLocation;
/**
* 体积
*/
@ColumnWidth(20)
@ExcelProperty("体积")
private BigDecimal volume;
private Double volume;
/**
* 测量值计量单位

@ -45,6 +45,6 @@ public interface ILiquidTankTaskCopyService extends BaseService<LiquidTankTaskCo
R generateReport(@Valid @RequestBody List<LiquidTankTaskCopy> list);
R generateWave(@Valid @RequestBody List<LiquidTankTaskCopy> list);
List<LiquidTankTaskCopyVO> getListByLiquidTankReportIdNew(Long liquidTankReportId);
List<LiquidTankTaskCopyVO> getListByLiquidTankReportId(Long liquidTankReportId);
}

@ -68,6 +68,8 @@ public interface ILiquidTankTaskService extends BaseService<LiquidTankTask> {
void setVOValue(LiquidTankTaskVO vo);
void setVOCopyValue(LiquidTankTaskVO vo);
void generateAuto();
void checkRemind();

@ -63,11 +63,12 @@ public class LiquidTankTaskSetVoService {
// 加药量[计算公式]
vo.setAddDrugFormulaName(formulaAdd.getName());
// 药品计算公式(报告) 加药量[计算公式] 公式内容
vo.setReportFormulaContent(formulaAdd.getContent());
// vo.setReportFormulaContent(formulaAdd.getContent());
}
Formula formulaThe = formulaService.getById(lt.getAfterTheoryFormulaId());
if (formulaThe != null) {
vo.setAfterTheoryFormulaName(formulaThe.getName());
vo.setReportFormulaContent(formulaThe.getContent());
}
}
WorkCenter wc = workCenterService.getById(vo.getWorkCenterId());
@ -128,8 +129,8 @@ public class LiquidTankTaskSetVoService {
// 取样时间:当天时间
vo.setSampleDate(LocalDate.now());
// 有效期
Date validDateT = DateUtil.offsetDay(vo.getCreateTime(), vo.getAnalysisCycle());
vo.setValidDate(LocalDateTimeUtil.of(validDateT).toLocalDate());
// Date validDateT = DateUtil.offsetDay(vo.getCreateTime(), vo.getAnalysisCycle());
// vo.setValidDate(LocalDateTimeUtil.of(validDateT).toLocalDate());
// 超出规范极限调整后的结果 打印用 todo:
vo.setOutRangeResult("");
// 槽液清理记录 todo:

@ -253,7 +253,7 @@ public class LiquidTankServiceImpl extends BaseServiceImpl<LiquidTankMapper, Liq
}
WorkTank wt = workTankService.getById(vo.getWorkTankId());
if (wt != null) {
vo.setWorkTankName(wt.getName());
vo.setWorkTankName(wt.getWorkTankCode());
}
Formula formulaAdd = formulaService.getById(vo.getAddDrugFormulaId());
if (formulaAdd != null) {

@ -16,7 +16,9 @@ import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import org.springblade.desk.basic.pojo.entity.WorkCenter;
import org.springblade.desk.basic.pojo.entity.WorkTank;
import org.springblade.desk.basic.service.IWorkCenterService;
import org.springblade.desk.basic.service.IWorkTankService;
import org.springblade.desk.quality.excel.LiquidTankTaskCopyExcel;
import org.springblade.desk.quality.mapper.LiquidTankTaskCopyMapper;
import org.springblade.desk.quality.pojo.entity.*;
@ -61,6 +63,8 @@ public class LiquidTankTaskCopyServiceImpl extends BaseServiceImpl<LiquidTankTas
private IRelTankReportItemService relReportItemService;
@Resource
private IRelTankWaveItemService relTankWaveItemService;
@Resource
private IWorkTankService workTankService;
@Override
@ -95,8 +99,7 @@ public class LiquidTankTaskCopyServiceImpl extends BaseServiceImpl<LiquidTankTas
if (wc == null) {
return R.fail("作业中心错误");
}
// 保存copy任务list数据
updateBatchById(list);
LiquidTankReport report = new LiquidTankReport();
LiquidTankReportConfigVO vo = reportConfigService.getByWcId(wc.getId());
if(null != vo){
@ -117,12 +120,21 @@ public class LiquidTankTaskCopyServiceImpl extends BaseServiceImpl<LiquidTankTas
// 保存报告
reportService.save(report);
for (LiquidTankTaskCopy one : list) {
RelTankReportItem item = new RelTankReportItem();
item.setLiquidTankReportId(report.getId());
item.setLiquidTankTaskId(one.getId());
one.setId(null);
one.setReportId(report.getId());
// RelTankReportItem item = new RelTankReportItem();
// item.setLiquidTankReportId(report.getId());
// item.setLiquidTankTaskId(one.getId());
// 保存关联关系
relReportItemService.save(item);
// relReportItemService.save(item);
}
// 保存copy任务list数据
// updateBatchById(list);
saveBatch( list);
return R.success("生成报告成功");
}
@ -162,10 +174,35 @@ public class LiquidTankTaskCopyServiceImpl extends BaseServiceImpl<LiquidTankTas
for (RelTankReportItem relOne : relList) {
Long taskId = relOne.getLiquidTankTaskId();
LiquidTankTaskCopy copy = getById(taskId);
copy.setDrugAddUserSign(relOne.getDrugAddUserSign());
copy.setDrugSuUserSign(relOne.getDrugSuUserSign());
copy.setOutRangeResult(relOne.getResult());
copy.setClearRecord(relOne.getClearRecord());
LiquidTankTaskCopyVO copyVO = LiquidTankTaskCopyWrapper.build().entityVO(copy);
// setVOValue(copyVO);
copyList.add(copyVO);
}
return copyList;
}
@Override
public List<LiquidTankTaskCopyVO> getListByLiquidTankReportIdNew(Long liquidTankReportId) {
LambdaQueryWrapper<LiquidTankTaskCopy> qw = Wrappers.lambdaQuery();
qw.eq(LiquidTankTaskCopy::getReportId, liquidTankReportId);
List<LiquidTankTaskCopy> copys = this.list(qw);
List<LiquidTankTaskCopyVO> copyList = LiquidTankTaskCopyWrapper.build().listVO(copys);
for(LiquidTankTaskCopyVO copyVO : copyList){
WorkTank tank = workTankService.getById(copyVO.getWorkTankId());
if(tank != null){
copyVO.setWorkTankName(tank.getName());
}
}
return copyList;
}
}

@ -320,6 +320,14 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
setVoService.setVOValue(vo);
}
@Override
public void setVOCopyValue(LiquidTankTaskVO vo) {
LiquidTankTaskVO fromVO = new LiquidTankTaskVO();
BeanUtil.copyProperties(vo, fromVO, true);
setVoService.setVOValue(fromVO);
BeanUtil.copyProperties(fromVO, vo, true);
}
/**
* todo:
* 定时运行:每天00:00
@ -474,11 +482,12 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
}
task.setId(null);
// save后有id
save(task);
LiquidTankTaskCopy copy = new LiquidTankTaskCopy();
BeanUtil.copyProperties(task, copy, true);
// 同步新增
return copyService.save(copy);
return save(task);
//下面copy注释,现在不需要生成copy数据
// LiquidTankTaskCopy copy = new LiquidTankTaskCopy();
// BeanUtil.copyProperties(task, copy, true);
// // 同步新增
// return copyService.save(copy);
}
/**
@ -493,11 +502,11 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
return false;
}
// update
updateById(task);
LiquidTankTaskCopy copy = new LiquidTankTaskCopy();
BeanUtil.copyProperties(task, copy, true);
// 同步更新
return copyService.updateById(copy);
return updateById(task);
// LiquidTankTaskCopy copy = new LiquidTankTaskCopy();
// BeanUtil.copyProperties(task, copy, true);
// // 同步更新
// return copyService.updateById(copy);
}
@Transactional
@ -515,21 +524,21 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
*/
public LiquidTankTask basicChangeStatus(Long id, Integer newStatus) {
LiquidTankTask task = getById(id);
LiquidTankTaskCopy taskCopy = copyService.getById(id);
// LiquidTankTaskCopy taskCopy = copyService.getById(id);
if (task == null) {
log.error("not find LiquidTankTask.");
return null;
}
if (taskCopy == null) {
log.error("not find LiquidTankTaskCopy.");
return null;
}
// if (taskCopy == null) {
// log.error("not find LiquidTankTaskCopy.");
// return null;
// }
int oldStatus = task.getStatus();
task.setStatus(newStatus);
taskCopy.setStatus(newStatus);
// taskCopy.setStatus(newStatus);
// 更新状态
updateById(task);
copyService.updateById(taskCopy);
// copyService.updateById(taskCopy);
// history
LiquidTankTaskHi hi = new LiquidTankTaskHi();
hi.setLiquidTankTaskId(id);
@ -543,24 +552,24 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
public LiquidTankTask basicChangeTaskStatus(LiquidTankTask task, Integer newStatus) {
// LiquidTankTask task = getById(id);
LiquidTankTaskCopy taskCopy = copyService.getById(task.getId());
// LiquidTankTaskCopy taskCopy = copyService.getById(task.getId());
if (task == null) {
log.error("not find LiquidTankTask.");
return null;
}
if (taskCopy == null) {
log.error("not find LiquidTankTaskCopy.");
return null;
}
// if (taskCopy == null) {
// log.error("not find LiquidTankTaskCopy.");
// return null;
// }
int oldStatus = task.getStatus();
task.setStatus(newStatus);
taskCopy.setStatus(newStatus);
task.setValidDate(taskCopy.getValidDate());
// taskCopy.setStatus(newStatus);
//
// task.setValidDate(taskCopy.getValidDate());
// 更新状态
updateById(task);
// taskCopy.setValidDate(task.getValidDate());
copyService.updateById(taskCopy);
// copyService.updateById(taskCopy);
// history
LiquidTankTaskHi hi = new LiquidTankTaskHi();
hi.setLiquidTankTaskId(task.getId());

@ -26,7 +26,7 @@ public class FullMergeExcelUtil {
* @throws Exception 异常
*/
public static void exportUserExcel(HttpServletResponse response, String fileName,
String mergeTitle, String[] columnTitles,
String mergeTitle,String tableTtile, String[] columnTitles,
List<LiquidTankTaskCopyVO> userList, int[] mergeColumnIndexes) throws Exception {
// 1. 创建工作簿和工作表
Workbook workbook = new XSSFWorkbook();
@ -44,7 +44,17 @@ public class FullMergeExcelUtil {
mergeTitleCell.setCellValue(mergeTitle);
CellStyle mergeTitleStyle = createStyle(workbook, true, (short) 16, HorizontalAlignment.CENTER);
mergeTitleCell.setCellStyle(mergeTitleStyle);
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, columnTitles.length - 1));
// sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, columnTitles.length - 1));
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, columnTitles.length - 3));
CellStyle merge = createStyle(workbook, false, (short) 9, HorizontalAlignment.CENTER);
Cell celltitle = mergeTitleRow.createCell(columnTitles.length-2);
celltitle.setCellValue("表号:");
celltitle.setCellStyle(merge);
Cell celldata = mergeTitleRow.createCell(columnTitles.length-1);
celldata.setCellValue(tableTtile);
celldata.setCellStyle(merge);
// -------------------------- 第二步:创建列标题 --------------------------
Row columnTitleRow = sheet.createRow(1);
@ -167,9 +177,10 @@ public class FullMergeExcelUtil {
cell18.setCellValue(user.getRepeatTestValue()== null ? 0 : user.getRepeatTestValue());
//1\合格 2、不合格
String qualified = user.getQualified() == 1 ? "合格" : "不合格";
Cell cell19 = dataRow.createCell(19);
cell19.setCellStyle(dataStyle);
cell19.setCellValue(user.getQualified()== null ? 0 : user.getQualified());
cell19.setCellValue(qualified);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
//有效期

Loading…
Cancel
Save