槽液各个bug修改

liweidong
pangyang 2 months 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 命名空间 * 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"; // String NACOS_NAMESPACE = "6cdd0310-0d61-4f54-891a-7fb06224d9b8";

@ -536,4 +536,20 @@ public class LiquidTankTaskCopy extends BaseEntity {
@Schema(description = "药品监督人签名") @Schema(description = "药品监督人签名")
private String drugSuUserSign; 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 = "备注") @Schema(description = "备注")
private String remark; 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 @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private String wcName;
} }

@ -9,6 +9,7 @@ import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; 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.api.R;
import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func; 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.basic.util.ExcelExtUtil;
import org.springblade.desk.quality.constant.QAModuleConst; import org.springblade.desk.quality.constant.QAModuleConst;
import org.springblade.desk.quality.excel.LiquidTankReportConfigExcel; import org.springblade.desk.quality.excel.LiquidTankReportConfigExcel;
@ -56,6 +58,9 @@ public class LiquidTankReportConfigController extends BladeController {
@Resource @Resource
private ILiquidTankReportConfigService service; private ILiquidTankReportConfigService service;
@Resource
private IWorkCenterService workCenterService;
/** /**
* [槽液报告配置] 详情 * [槽液报告配置] 详情
*/ */
@ -80,6 +85,12 @@ public class LiquidTankReportConfigController extends BladeController {
QueryWrapper<LiquidTankReportConfig> qw = Condition.getQueryWrapper(liquidTankReportConfig, LiquidTankReportConfig.class); QueryWrapper<LiquidTankReportConfig> qw = Condition.getQueryWrapper(liquidTankReportConfig, LiquidTankReportConfig.class);
IPage<LiquidTankReportConfig> pages = service.page(Condition.getPage(query), qw); IPage<LiquidTankReportConfig> pages = service.page(Condition.getPage(query), qw);
IPage<LiquidTankReportConfigVO> pagesVO = LiquidTankReportConfigWrapper.build().pageVO(pages); 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); 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.service.ILiquidTankTaskCopyService;
import org.springblade.desk.quality.wrapper.LiquidTankReportDetailWrapper; import org.springblade.desk.quality.wrapper.LiquidTankReportDetailWrapper;
import org.springblade.desk.quality.wrapper.LiquidTankReportWrapper; 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.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -64,6 +66,8 @@ public class LiquidTankReportController extends BladeController {
private ILiquidTankReportService service; private ILiquidTankReportService service;
@Resource @Resource
private ILiquidTankTaskCopyService liquidTankTaskCopyService; private ILiquidTankTaskCopyService liquidTankTaskCopyService;
@Resource
private IUserClient iUserClient;
/** /**
* [槽液报告] 详情 * [槽液报告] 详情
@ -76,7 +80,9 @@ public class LiquidTankReportController extends BladeController {
LiquidTankReport detail = service.getOne(qw); LiquidTankReport detail = service.getOne(qw);
LiquidTankReportDetailVO detailVO = LiquidTankReportDetailWrapper.build().entityVO(detail); 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); return R.data(detailVO);
} }
@ -97,6 +103,16 @@ public class LiquidTankReportController extends BladeController {
} }
IPage<LiquidTankReport> pages = service.page(Condition.getPage(query), qw); IPage<LiquidTankReport> pages = service.page(Condition.getPage(query), qw);
IPage<LiquidTankReportVO> pagesVO = LiquidTankReportWrapper.build().pageVO(pages); 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); 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.constant.QAModuleConst;
import org.springblade.desk.quality.excel.LiquidTankTaskCopyExcel; import org.springblade.desk.quality.excel.LiquidTankTaskCopyExcel;
import org.springblade.desk.quality.pojo.entity.*; import org.springblade.desk.quality.pojo.entity.*;
import org.springblade.desk.quality.pojo.vo.LiquidTankReportDetailVO; import org.springblade.desk.quality.pojo.vo.*;
import org.springblade.desk.quality.pojo.vo.LiquidTankTaskCopyVO; import org.springblade.desk.quality.service.*;
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.util.FullMergeExcelUtil; import org.springblade.desk.quality.util.FullMergeExcelUtil;
import org.springblade.desk.quality.wrapper.LiquidTankReportDetailWrapper; import org.springblade.desk.quality.wrapper.LiquidTankReportDetailWrapper;
import org.springblade.desk.quality.wrapper.LiquidTankTaskCopyWrapper; import org.springblade.desk.quality.wrapper.LiquidTankTaskCopyWrapper;
import org.springblade.desk.quality.wrapper.LiquidTankTaskWrapper;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -71,6 +66,9 @@ public class LiquidTankTaskCopyController extends BladeController {
@Resource @Resource
private ILiquidTankTaskCopyService service; private ILiquidTankTaskCopyService service;
@Resource
private ILiquidTankTaskService taskService;
@Resource @Resource
private ILiquidTankService tankService; private ILiquidTankService tankService;
@ -90,16 +88,82 @@ public class LiquidTankTaskCopyController extends BladeController {
/** /**
* [槽液报告] 查询Copy任务 list分页 * [槽液报告] 查询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") @GetMapping("/listReport")
@ApiOperationSupport(order = 20) @ApiOperationSupport(order = 20)
@Operation(summary = "[槽液报告] 查询任务 list分页", description = "传入LiquidTankTaskCopy Obj") @Operation(summary = "[槽液报告] 查询任务 list分页", description = "传入LiquidTankTaskCopy Obj")
public R<IPage<LiquidTankTaskCopyVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> map, public R<IPage<LiquidTankTaskVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> map,
Query query) { Query query) {
map.forEach((key, value) -> { map.forEach((key, value) -> {
log.warn("key = {}, value = {}, type = {}", key, value, value.getClass()); 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)); qw.in(BaseCol.STATUS, asList(LiquidTankTaskConst.S_FINISH_FAILED, LiquidTankTaskConst.S_FINISH_OK));
// [作业中心]id // [作业中心]id
@ -117,11 +181,11 @@ public class LiquidTankTaskCopyController extends BladeController {
// ID 升序 // ID 升序
qw.orderByAsc(BaseCol.ID); qw.orderByAsc(BaseCol.ID);
// //
IPage<LiquidTankTaskCopy> pages = service.page(Condition.getPage(query), qw); IPage<LiquidTankTask> pages = taskService.page(Condition.getPage(query), qw);
IPage<LiquidTankTaskCopyVO> pagesVO = LiquidTankTaskCopyWrapper.build().pageVO(pages); IPage<LiquidTankTaskVO> pagesVO = LiquidTankTaskWrapper.build().pageVO(pages);
List<LiquidTankTaskCopyVO> list = pagesVO.getRecords(); List<LiquidTankTaskVO> list = pagesVO.getRecords();
for(LiquidTankTaskCopyVO copyVO : list){ for(LiquidTankTaskVO copyVO : list){
QueryWrapper<LiquidTank> queryWrapper = new QueryWrapper<>(); QueryWrapper<LiquidTank> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ID",copyVO.getLiquidTankId()); queryWrapper.eq("ID",copyVO.getLiquidTankId());
List<LiquidTank> records = tankService.list(queryWrapper); List<LiquidTank> records = tankService.list(queryWrapper);
@ -147,16 +211,91 @@ public class LiquidTankTaskCopyController extends BladeController {
} }
} }
// pagesVO.getRecords() pagesVO.getRecords()
// .stream() .stream()
// .peek(service::setVOValue) .peek(taskService::setVOCopyValue)
// .collect(Collectors.toList()); .collect(Collectors.toList());
return R.data(pagesVO); return R.data(pagesVO);
} }
/** /**
* [槽液曲线] 查询Copy任务 list分页 * [槽液曲线] 查询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") @GetMapping("/listWave")
@ApiOperationSupport(order = 20) @ApiOperationSupport(order = 20)
@Operation(summary = "[槽液曲线] 查询任务 list分页", description = "传入LiquidTankTaskCopy Obj") @Operation(summary = "[槽液曲线] 查询任务 list分页", description = "传入LiquidTankTaskCopy Obj")
@ -166,39 +305,45 @@ public class LiquidTankTaskCopyController extends BladeController {
log.warn("key = {}, value = {}, type = {}", key, value, value.getClass()); 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)); qw.in(BaseCol.STATUS, asList(LiquidTankTaskConst.S_FINISH_FAILED, LiquidTankTaskConst.S_FINISH_OK));
// [作业中心]id // [作业中心]id
qw.eq(map.containsKey(LiquidTankTaskCopy.COL_WORK_CENTER_ID), LiquidTankTaskCopy.COL_WORK_CENTER_ID, Func.toLong(map.get("workCenterId"))); 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)) { if (map.containsKey(BaseRequest.CREATE_TIME_START) && map.containsKey(BaseRequest.CREATE_TIME_END)) {
Date crStart = RequestUtil.buildDateBeginOfDay(map, BaseRequest.CREATE_TIME_START); Date crStart = RequestUtil.buildDateBeginOfDay(map, BaseRequest.CREATE_TIME_START);
Date crEnd = RequestUtil.buildDateEndOfDay(map, BaseRequest.CREATE_TIME_END); Date crEnd = RequestUtil.buildDateEndOfDay(map, BaseRequest.CREATE_TIME_END);
qw.between(BaseCol.CREATE_TIME, crStart, crEnd); qw.between(BaseCol.CREATE_TIME, crStart, crEnd);
} }
// 排序 槽液id升序 复测化验时间升序 // ID 升序
qw.orderByAsc( qw.orderByAsc(BaseCol.ID);
List.of( //
BaseCol.ID, IPage<LiquidTankTask> pages = taskService.page(Condition.getPage(query), qw);
LiquidTankTaskCopy.COL_REPEAT_TEST_DATE IPage<LiquidTankTaskVO> pagesVO = LiquidTankTaskWrapper.build().pageVO(pages);
));
IPage<LiquidTankTaskCopy> pages = service.page(Condition.getPage(query), qw);
IPage<LiquidTankTaskCopyVO> pagesVO = LiquidTankTaskCopyWrapper.build().pageVO(pages);
pagesVO.getRecords() pagesVO.getRecords()
.stream() .stream()
.peek(service::setVOValue) .peek(taskService::setVOCopyValue)
.collect(Collectors.toList()); .collect(Collectors.toList());
// key 自带排序 // key 自带排序
// key: [作业槽]id // key: [作业槽]id
// value: 任务数据列表 // value: 任务数据列表
Map<Long, List<LiquidTankTaskCopyVO>> treeMap = new TreeMap<>(); Map<Long, List<LiquidTankTaskVO>> treeMap = new TreeMap<>();
// 遍历赋值到treeMap中 // 遍历赋值到treeMap中
pagesVO.getRecords().forEach(vo -> { pagesVO.getRecords().forEach(vo -> {
final Long wtId = vo.getWorkTankId(); final Long wtId = vo.getWorkTankId();
// 不包含,新建 // 不包含,新建
if (!treeMap.containsKey(wtId)) { if (!treeMap.containsKey(wtId)) {
List<LiquidTankTaskCopyVO> list = new ArrayList<>(); List<LiquidTankTaskVO> list = new ArrayList<>();
treeMap.put(wtId, list); treeMap.put(wtId, list);
} }
treeMap.get(wtId).add(vo); treeMap.get(wtId).add(vo);
@ -207,12 +352,12 @@ public class LiquidTankTaskCopyController extends BladeController {
LiquidTankWaveDrawVO allVO = new LiquidTankWaveDrawVO(); LiquidTankWaveDrawVO allVO = new LiquidTankWaveDrawVO();
List<LiquidTankWaveDrawSingleVO> allChart = allVO.getWaveData(); List<LiquidTankWaveDrawSingleVO> allChart = allVO.getWaveData();
// 每个entry一个图表 // 每个entry一个图表
for (Map.Entry<Long, List<LiquidTankTaskCopyVO>> entry : treeMap.entrySet()) { for (Map.Entry<Long, List<LiquidTankTaskVO>> entry : treeMap.entrySet()) {
Long wtId = entry.getKey(); Long wtId = entry.getKey();
// 数据列表 // 数据列表
List<LiquidTankTaskCopyVO> list = entry.getValue(); List<LiquidTankTaskVO> list = entry.getValue();
LiquidTankWaveDrawSingleVO singleChart = new LiquidTankWaveDrawSingleVO(); LiquidTankWaveDrawSingleVO singleChart = new LiquidTankWaveDrawSingleVO();
for (LiquidTankTaskCopyVO one : list) { for (LiquidTankTaskVO one : list) {
singleChart.setWcId(one.getWorkCenterId()); singleChart.setWcId(one.getWorkCenterId());
singleChart.setWcName(one.getWcName()); singleChart.setWcName(one.getWcName());
singleChart.setWorkTankId(one.getWorkTankId()); singleChart.setWorkTankId(one.getWorkTankId());
@ -223,6 +368,9 @@ public class LiquidTankTaskCopyController extends BladeController {
singleChart.getMinList().add(one.getTargetValueMin()); singleChart.getMinList().add(one.getTargetValueMin());
singleChart.getTargetList().add(one.getTargetValue()); singleChart.getTargetList().add(one.getTargetValue());
singleChart.getTestList().add(one.getRepeatTestValue()); singleChart.getTestList().add(one.getRepeatTestValue());
LocalDate localDate = one.getRepeatFillDate().toLocalDate();
singleChart.getTestDateList().add(localDate);
// singleChart.getTestDateList().add(one.getRepeatFillDate());
singleChart.setId(one.getId()); singleChart.setId(one.getId());
} }
allChart.add(singleChart); allChart.add(singleChart);
@ -359,7 +507,10 @@ public class LiquidTankTaskCopyController extends BladeController {
HttpServletResponse response) { HttpServletResponse response) {
LiquidTankReport report = reportService.getById(id); 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(); Long centerId = list.get(0).getWorkCenterId();
@ -367,8 +518,10 @@ public class LiquidTankTaskCopyController extends BladeController {
queryWrapper.eq("WC_ID",centerId); queryWrapper.eq("WC_ID",centerId);
List<LiquidTankReportConfig> rule = configService.list(queryWrapper); List<LiquidTankReportConfig> rule = configService.list(queryWrapper);
String name = ""; String name = "";
String tableTtile ="";
if(null != rule && rule.size() > 0){ if(null != rule && rule.size() > 0){
name = rule.get(0).getNamePrefix(); name = rule.get(0).getNamePrefix();
tableTtile = rule.get(0).getReportCode();
} }
@ -377,6 +530,7 @@ public class LiquidTankTaskCopyController extends BladeController {
response, response,
"槽液检测报告", "槽液检测报告",
name, name,
tableTtile,
new String[]{"取样时间", "温度(℃)", "槽号", "体积(L)", "分析项目", "规范下限(g/L)", "目标下限(g/L)", new String[]{"取样时间", "温度(℃)", "槽号", "体积(L)", "分析项目", "规范下限(g/L)", "目标下限(g/L)",
"添加点(g/L)", "目标值(g/L)","目标上限(g/L)","规范上限(g/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) @ColumnWidth(20)
@ExcelProperty("规范上限") @ExcelProperty("规范上限")
private BigDecimal normValueMax; private Double normValueMax;
/** /**
* 规范下限 * 规范下限
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("规范下限") @ExcelProperty("规范下限")
private BigDecimal normValueMin; private Double normValueMin;
/** /**
* 目标上限 * 目标上限
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("目标上限") @ExcelProperty("目标上限")
private BigDecimal targetValueMax; private Double targetValueMax;
/** /**
* 目标下限 * 目标下限
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("目标下限") @ExcelProperty("目标下限")
private BigDecimal targetValueMin; private Double targetValueMin;
/** /**
* 目标值 * 目标值
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("目标值") @ExcelProperty("目标值")
private BigDecimal targetValue; private Double targetValue;
/** /**
* 添加点 * 添加点
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("添加点") @ExcelProperty("添加点")
private BigDecimal fillingLocation; private Double fillingLocation;
/** /**
* 体积 * 体积
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("体积") @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 generateReport(@Valid @RequestBody List<LiquidTankTaskCopy> list);
R generateWave(@Valid @RequestBody List<LiquidTankTaskCopy> list); R generateWave(@Valid @RequestBody List<LiquidTankTaskCopy> list);
List<LiquidTankTaskCopyVO> getListByLiquidTankReportIdNew(Long liquidTankReportId);
List<LiquidTankTaskCopyVO> getListByLiquidTankReportId(Long liquidTankReportId); List<LiquidTankTaskCopyVO> getListByLiquidTankReportId(Long liquidTankReportId);
} }

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

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

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

@ -16,7 +16,9 @@ import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.desk.basic.pojo.entity.WorkCenter; 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.IWorkCenterService;
import org.springblade.desk.basic.service.IWorkTankService;
import org.springblade.desk.quality.excel.LiquidTankTaskCopyExcel; import org.springblade.desk.quality.excel.LiquidTankTaskCopyExcel;
import org.springblade.desk.quality.mapper.LiquidTankTaskCopyMapper; import org.springblade.desk.quality.mapper.LiquidTankTaskCopyMapper;
import org.springblade.desk.quality.pojo.entity.*; import org.springblade.desk.quality.pojo.entity.*;
@ -61,6 +63,8 @@ public class LiquidTankTaskCopyServiceImpl extends BaseServiceImpl<LiquidTankTas
private IRelTankReportItemService relReportItemService; private IRelTankReportItemService relReportItemService;
@Resource @Resource
private IRelTankWaveItemService relTankWaveItemService; private IRelTankWaveItemService relTankWaveItemService;
@Resource
private IWorkTankService workTankService;
@Override @Override
@ -95,8 +99,7 @@ public class LiquidTankTaskCopyServiceImpl extends BaseServiceImpl<LiquidTankTas
if (wc == null) { if (wc == null) {
return R.fail("作业中心错误"); return R.fail("作业中心错误");
} }
// 保存copy任务list数据
updateBatchById(list);
LiquidTankReport report = new LiquidTankReport(); LiquidTankReport report = new LiquidTankReport();
LiquidTankReportConfigVO vo = reportConfigService.getByWcId(wc.getId()); LiquidTankReportConfigVO vo = reportConfigService.getByWcId(wc.getId());
if(null != vo){ if(null != vo){
@ -117,12 +120,21 @@ public class LiquidTankTaskCopyServiceImpl extends BaseServiceImpl<LiquidTankTas
// 保存报告 // 保存报告
reportService.save(report); reportService.save(report);
for (LiquidTankTaskCopy one : list) { for (LiquidTankTaskCopy one : list) {
RelTankReportItem item = new RelTankReportItem();
item.setLiquidTankReportId(report.getId()); one.setId(null);
item.setLiquidTankTaskId(one.getId()); 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("生成报告成功"); return R.success("生成报告成功");
} }
@ -162,10 +174,35 @@ public class LiquidTankTaskCopyServiceImpl extends BaseServiceImpl<LiquidTankTas
for (RelTankReportItem relOne : relList) { for (RelTankReportItem relOne : relList) {
Long taskId = relOne.getLiquidTankTaskId(); Long taskId = relOne.getLiquidTankTaskId();
LiquidTankTaskCopy copy = getById(taskId); 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); LiquidTankTaskCopyVO copyVO = LiquidTankTaskCopyWrapper.build().entityVO(copy);
// setVOValue(copyVO); // setVOValue(copyVO);
copyList.add(copyVO); copyList.add(copyVO);
} }
return copyList; 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); 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: * todo:
* 定时运行:每天00:00 * 定时运行:每天00:00
@ -474,11 +482,12 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
} }
task.setId(null); task.setId(null);
// save后有id // save后有id
save(task); return save(task);
LiquidTankTaskCopy copy = new LiquidTankTaskCopy(); //下面copy注释,现在不需要生成copy数据
BeanUtil.copyProperties(task, copy, true); // LiquidTankTaskCopy copy = new LiquidTankTaskCopy();
// 同步新增 // BeanUtil.copyProperties(task, copy, true);
return copyService.save(copy); // // 同步新增
// return copyService.save(copy);
} }
/** /**
@ -493,11 +502,11 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
return false; return false;
} }
// update // update
updateById(task); return updateById(task);
LiquidTankTaskCopy copy = new LiquidTankTaskCopy(); // LiquidTankTaskCopy copy = new LiquidTankTaskCopy();
BeanUtil.copyProperties(task, copy, true); // BeanUtil.copyProperties(task, copy, true);
// 同步更新 // // 同步更新
return copyService.updateById(copy); // return copyService.updateById(copy);
} }
@Transactional @Transactional
@ -515,21 +524,21 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
*/ */
public LiquidTankTask basicChangeStatus(Long id, Integer newStatus) { public LiquidTankTask basicChangeStatus(Long id, Integer newStatus) {
LiquidTankTask task = getById(id); LiquidTankTask task = getById(id);
LiquidTankTaskCopy taskCopy = copyService.getById(id); // LiquidTankTaskCopy taskCopy = copyService.getById(id);
if (task == null) { if (task == null) {
log.error("not find LiquidTankTask."); log.error("not find LiquidTankTask.");
return null; return null;
} }
if (taskCopy == null) { // if (taskCopy == null) {
log.error("not find LiquidTankTaskCopy."); // log.error("not find LiquidTankTaskCopy.");
return null; // return null;
} // }
int oldStatus = task.getStatus(); int oldStatus = task.getStatus();
task.setStatus(newStatus); task.setStatus(newStatus);
taskCopy.setStatus(newStatus); // taskCopy.setStatus(newStatus);
// 更新状态 // 更新状态
updateById(task); updateById(task);
copyService.updateById(taskCopy); // copyService.updateById(taskCopy);
// history // history
LiquidTankTaskHi hi = new LiquidTankTaskHi(); LiquidTankTaskHi hi = new LiquidTankTaskHi();
hi.setLiquidTankTaskId(id); hi.setLiquidTankTaskId(id);
@ -543,24 +552,24 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap
public LiquidTankTask basicChangeTaskStatus(LiquidTankTask task, Integer newStatus) { public LiquidTankTask basicChangeTaskStatus(LiquidTankTask task, Integer newStatus) {
// LiquidTankTask task = getById(id); // LiquidTankTask task = getById(id);
LiquidTankTaskCopy taskCopy = copyService.getById(task.getId()); // LiquidTankTaskCopy taskCopy = copyService.getById(task.getId());
if (task == null) { if (task == null) {
log.error("not find LiquidTankTask."); log.error("not find LiquidTankTask.");
return null; return null;
} }
if (taskCopy == null) { // if (taskCopy == null) {
log.error("not find LiquidTankTaskCopy."); // log.error("not find LiquidTankTaskCopy.");
return null; // return null;
} // }
int oldStatus = task.getStatus(); int oldStatus = task.getStatus();
task.setStatus(newStatus); task.setStatus(newStatus);
taskCopy.setStatus(newStatus); // taskCopy.setStatus(newStatus);
//
task.setValidDate(taskCopy.getValidDate()); // task.setValidDate(taskCopy.getValidDate());
// 更新状态 // 更新状态
updateById(task); updateById(task);
// taskCopy.setValidDate(task.getValidDate()); // taskCopy.setValidDate(task.getValidDate());
copyService.updateById(taskCopy); // copyService.updateById(taskCopy);
// history // history
LiquidTankTaskHi hi = new LiquidTankTaskHi(); LiquidTankTaskHi hi = new LiquidTankTaskHi();
hi.setLiquidTankTaskId(task.getId()); hi.setLiquidTankTaskId(task.getId());

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

Loading…
Cancel
Save