From 86514597377ddeff1b6c925a46dbbd129e3f7aa7 Mon Sep 17 00:00:00 2001 From: pangyang <475446853@qq.com> Date: Mon, 2 Mar 2026 18:07:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=A8=E9=87=8F=E7=AE=A1=E7=90=86=E6=A7=BD?= =?UTF-8?q?=E6=B6=B2=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/basic/pojo/vo/BsAssignVO.java | 3 + .../quality/pojo/entity/LiquidTankTask.java | 3 + .../pojo/entity/LiquidTankTaskCopy.java | 8 + .../pojo/vo/LiquidTankWaveDrawSingleVO.java | 2 + .../quality/pojo/vo/LiquidTankWaveVO.java | 4 + .../basic/controller/BsAssignController.java | 5 + .../service/impl/BsAssignServiceImpl.java | 118 ++++++--- .../controller/LiquidTankController.java | 71 ++++- .../controller/LiquidTankTaskController.java | 34 +++ .../LiquidTankTaskCopyController.java | 42 ++- .../controller/LiquidTankWaveController.java | 94 ++++++- .../desk/quality/excel/LiquidTankExcel.java | 246 +++++++++++------- .../quality/mapper/InspectionTaskMapper.xml | 2 +- .../impl/LiquidTankTaskCopyServiceImpl.java | 21 +- .../impl/LiquidTankTaskServiceImpl.java | 25 +- .../resources/Excel/QA/分派规则维护.xls | Bin 7680 -> 7680 bytes 16 files changed, 518 insertions(+), 160 deletions(-) diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/BsAssignVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/BsAssignVO.java index 3cf07439..455100cf 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/BsAssignVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/BsAssignVO.java @@ -43,4 +43,7 @@ public class BsAssignVO extends BsAssignEntity { @Serial private static final long serialVersionUID = 1L; + private String areaName; + private String limitAreaName; + } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTask.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTask.java index 3c4301a2..82ea0db6 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTask.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTask.java @@ -10,6 +10,7 @@ import lombok.EqualsAndHashCode; import org.springblade.core.mp.base.BaseEntity; import java.io.Serial; +import java.time.LocalDate; import java.time.LocalDateTime; /** @@ -293,6 +294,8 @@ public class LiquidTankTask extends BaseEntity { */ @Schema(description = "工艺主管[用户]id") private Long processUserId; + + private LocalDate validDate; /** * 审核[用户]id */ diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTaskCopy.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTaskCopy.java index fb72cd22..8c9145c2 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTaskCopy.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTaskCopy.java @@ -3,6 +3,7 @@ */ package org.springblade.desk.quality.pojo.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -11,6 +12,7 @@ import org.springblade.core.mp.base.BaseEntity; import java.io.Serial; import java.math.BigDecimal; +import java.time.LocalDate; import java.time.LocalDateTime; /** @@ -264,6 +266,8 @@ public class LiquidTankTaskCopy extends BaseEntity { */ @Schema(description = "[作业中心]id") private Long workCenterId; + @TableField(exist = false) + private Long wcId; /** * [作业槽]id */ @@ -524,4 +528,8 @@ public class LiquidTankTaskCopy extends BaseEntity { */ @Schema(description = "超期标记") private Integer flagOut; + + @Schema(description = "有效期") + private LocalDate validDate; + } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawSingleVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawSingleVO.java index de04067b..2fdcd0dd 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawSingleVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawSingleVO.java @@ -46,4 +46,6 @@ public class LiquidTankWaveDrawSingleVO implements Serializable { private List targetList = new ArrayList<>(); @Schema(description = "复测测量值") private List testList = new ArrayList<>(); + + private Long id; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveVO.java index 4eb1cf92..1f79a2ec 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveVO.java @@ -9,6 +9,8 @@ import lombok.EqualsAndHashCode; import org.springblade.desk.quality.pojo.entity.LiquidTankWave; import java.io.Serial; +import java.util.ArrayList; +import java.util.List; /** * [槽液曲线] 视图实体类 @@ -24,4 +26,6 @@ public class LiquidTankWaveVO extends LiquidTankWave { @Schema(description = "维护人") private String updateUserRealName; + + private List waveData = new ArrayList<>(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BsAssignController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BsAssignController.java index df75f5ac..e60b07b3 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BsAssignController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BsAssignController.java @@ -111,6 +111,11 @@ public class BsAssignController extends BladeController { @Operation(summary = "分页", description = "传入bsAssign") public R> page(BsAssignVO bsAssign, Query query) { IPage pages = bsAssignService.selectBsAssignPage(Condition.getPage(query), bsAssign); + List list = pages.getRecords(); + for(BsAssignVO vo:list){ + vo.setAreaName(vo.getLowArea()+"~"+vo.getUpArea()); + vo.setLimitAreaName(vo.getSingleDownArea()+"~"+vo.getSingleUpArea()); + } return R.data(pages); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/BsAssignServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/BsAssignServiceImpl.java index d361b948..55eecf65 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/BsAssignServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/BsAssignServiceImpl.java @@ -117,29 +117,53 @@ public class BsAssignServiceImpl extends BaseServiceImpl=0 && currentLowArea.compareTo(traversedUpperArea)<=0) + if((currentLowArea.compareTo(traversedLowerArea)==1 && currentLowArea.compareTo(traversedUpperArea)==-1) + || (currentUpperArea.compareTo(traversedLowerArea)==1 && currentUpperArea.compareTo(traversedUpperArea)==-1)){ + return R.fail("单面积上下限已存在,请检查数据"); + } + + if(currentLowArea.compareTo(traversedLowerArea)<=0 && (currentUpperArea.compareTo(traversedLowerArea)>=0 && currentUpperArea.compareTo(traversedUpperArea)<=0)){ -// if (currentUpperArea >= traversedLowerArea && currentUpperArea <= traversedUpperArea) { -// System.out.printf( -// "触发退出条件!当前数据%s的上限%.1f,落在已遍历数据%s的区间[%.1f, %.1f]内%n", -// current.getId(), currentUpperArea, traversed.getId(), traversedLowerArea, traversedUpperArea -// ); -// foundLowMatch = true; - // 跳出内层循环 -// break; return R.fail("单面积上下限已存在,请检查数据"); } -// if(currentUpperArea.compareTo(traversedLowerArea)>=0 && currentUpperArea.compareTo(traversedUpperArea)<=0){ -// return R.fail("单面积上限已存在,请检查数据"); -// } + if((currentLowArea.compareTo(traversedLowerArea)>=0 && currentLowArea.compareTo(traversedUpperArea)<=0) + && currentUpperArea.compareTo(traversedUpperArea)>=0){ + return R.fail("单面积上下限已存在,请检查数据"); + } + + if(currentLowArea.compareTo(traversedLowerArea)<=0 + && currentUpperArea.compareTo(traversedUpperArea)>=0){ + return R.fail("单面积上下限已存在,请检查数据"); + } + + if(currentLowArea.compareTo(traversedLowerArea)==0 + && currentUpperArea.compareTo(traversedUpperArea)==0){ + return R.fail("单面积上下限已存在,请检查数据"); + } - if((singleLowArea.compareTo(traversedSingleLowArea)>=0 && singleLowArea.compareTo(traversedSingleUpArea)<=0) && - (singleUpArea.compareTo(traversedSingleLowArea)>=0 && singleUpArea.compareTo(traversedSingleUpArea)<=0)){ + if((singleLowArea.compareTo(traversedSingleLowArea)==1 && singleLowArea.compareTo(traversedSingleUpArea)==-1) || + (singleUpArea.compareTo(traversedSingleLowArea)==1 && singleUpArea.compareTo(traversedSingleUpArea)==-1)){ + return R.fail("单批面积上下限已存在,请检查数据"); + } -// foundLowMatch = true; - // 跳出内层循环 -// break; + if(singleLowArea.compareTo(traversedSingleLowArea)<=0 + && (singleUpArea.compareTo(traversedSingleLowArea)>=0 && singleUpArea.compareTo(traversedSingleUpArea)<=0)){ + return R.fail("单批面积上下限已存在,请检查数据"); + } + + if((singleLowArea.compareTo(traversedSingleLowArea)>=0 && currentLowArea.compareTo(traversedSingleUpArea)<=0) + && singleUpArea.compareTo(traversedSingleUpArea)>=0){ + return R.fail("单批面积上下限已存在,请检查数据"); + } + + if(singleLowArea.compareTo(traversedSingleLowArea)<=0 + && singleUpArea.compareTo(traversedSingleUpArea)>=0){ + return R.fail("单批面积上下限已存在,请检查数据"); + } + + if(singleLowArea.compareTo(traversedSingleLowArea)==0 && + singleUpArea.compareTo(traversedSingleUpArea)==0){ return R.fail("单批面积上下限已存在,请检查数据"); } @@ -249,35 +273,55 @@ public class BsAssignServiceImpl extends BaseServiceImpl=0 && currentLowArea.compareTo(traversedUpperArea)<=0) + if((currentLowArea.compareTo(traversedLowerArea)==1 && currentLowArea.compareTo(traversedUpperArea)==-1) + || (currentUpperArea.compareTo(traversedLowerArea)==1 && currentUpperArea.compareTo(traversedUpperArea)==-1)){ + return R.fail("单面积上下限已存在,请检查数据"); + } + + if(currentLowArea.compareTo(traversedLowerArea)<=0 && (currentUpperArea.compareTo(traversedLowerArea)>=0 && currentUpperArea.compareTo(traversedUpperArea)<=0)){ -// if (currentUpperArea >= traversedLowerArea && currentUpperArea <= traversedUpperArea) { -// System.out.printf( -// "触发退出条件!当前数据%s的上限%.1f,落在已遍历数据%s的区间[%.1f, %.1f]内%n", -// current.getId(), currentUpperArea, traversed.getId(), traversedLowerArea, traversedUpperArea -// ); -// foundLowMatch = true; - // 跳出内层循环 -// break; return R.fail("单面积上下限已存在,请检查数据"); } -// if(currentUpperArea.compareTo(traversedLowerArea)>=0 && currentUpperArea.compareTo(traversedUpperArea)<=0){ -// return R.fail("单面积上限已存在,请检查数据"); -// } + if((currentLowArea.compareTo(traversedLowerArea)>=0 && currentLowArea.compareTo(traversedUpperArea)<=0) + && currentUpperArea.compareTo(traversedUpperArea)>=0){ + return R.fail("单面积上下限已存在,请检查数据"); + } - if((singleLowArea.compareTo(traversedSingleLowArea)>=0 && singleLowArea.compareTo(traversedSingleUpArea)<=0) && - (singleUpArea.compareTo(traversedSingleLowArea)>=0 && singleUpArea.compareTo(traversedSingleUpArea)<=0)){ + if(currentLowArea.compareTo(traversedLowerArea)<=0 + && currentUpperArea.compareTo(traversedUpperArea)>=0){ + return R.fail("单面积上下限已存在,请检查数据"); + } + + if(currentLowArea.compareTo(traversedLowerArea)==0 + && currentUpperArea.compareTo(traversedUpperArea)==0){ + return R.fail("单面积上下限已存在,请检查数据"); + } -// foundLowMatch = true; - // 跳出内层循环 -// break; + if((singleLowArea.compareTo(traversedSingleLowArea)==1 && singleLowArea.compareTo(traversedSingleUpArea)==-1) || + (singleUpArea.compareTo(traversedSingleLowArea)==1 && singleUpArea.compareTo(traversedSingleUpArea)==-1)){ return R.fail("单批面积上下限已存在,请检查数据"); } -// if(singleUpArea.compareTo(traversedSingleLowArea)>=0 && singleUpArea.compareTo(traversedSingleUpArea)<=0){ -// return R.fail("单批面积上限已存在,请检查数据"); -// } + if(singleLowArea.compareTo(traversedSingleLowArea)<=0 + && (singleUpArea.compareTo(traversedSingleLowArea)>=0 && singleUpArea.compareTo(traversedSingleUpArea)<=0)){ + return R.fail("单批面积上下限已存在,请检查数据"); + } + + if((singleLowArea.compareTo(traversedSingleLowArea)>=0 && currentLowArea.compareTo(traversedSingleUpArea)<=0) + && singleUpArea.compareTo(traversedSingleUpArea)>=0){ + return R.fail("单批面积上下限已存在,请检查数据"); + } + + if(singleLowArea.compareTo(traversedSingleLowArea)<=0 + && singleUpArea.compareTo(traversedSingleUpArea)>=0){ + return R.fail("单批面积上下限已存在,请检查数据"); + } + + if(singleLowArea.compareTo(traversedSingleLowArea)==0 && + singleUpArea.compareTo(traversedSingleUpArea)==0){ + return R.fail("单批面积上下限已存在,请检查数据"); + } } // 未匹配,将当前数据加入已遍历集合,继续下一条 traversedList.add(current); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankController.java index 6048003a..e7cc036f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankController.java @@ -21,8 +21,15 @@ import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; +import org.springblade.desk.basic.excel.TeamSetExcel; +import org.springblade.desk.basic.pojo.entity.Shifts; +import org.springblade.desk.basic.pojo.entity.TeamSet; +import org.springblade.desk.basic.pojo.entity.WorkCenter; +import org.springblade.desk.basic.pojo.entity.WorkTank; +import org.springblade.desk.basic.service.IWorkTankService; import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.quality.constant.QAModuleConst; import org.springblade.desk.quality.excel.LiquidTankExcel; @@ -30,10 +37,12 @@ import org.springblade.desk.quality.pojo.entity.LiquidTank; import org.springblade.desk.quality.pojo.vo.LiquidTankVO; import org.springblade.desk.quality.service.ILiquidTankService; import org.springblade.desk.quality.wrapper.LiquidTankWrapper; +import org.springblade.system.pojo.entity.User; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -55,6 +64,9 @@ public class LiquidTankController extends BladeController { @Resource private ILiquidTankService service; + @Resource + private IWorkTankService tankService; + /** * [槽液] 详情 */ @@ -66,6 +78,14 @@ public class LiquidTankController extends BladeController { LiquidTank detail = service.getOne(qw); LiquidTankVO detailVO = LiquidTankWrapper.build().entityVO(detail); service.setVOValue(detailVO); + + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ID",detailVO.getWorkTankId()); + List records = tankService.list(queryWrapper); + if(null != records && records.size()>0){ + detailVO.setWorkTankName(records.get(0).getWorkTankCode()); + } return R.data(detailVO); } @@ -80,6 +100,18 @@ public class LiquidTankController extends BladeController { QueryWrapper qw = Condition.getQueryWrapper(liquidTank, LiquidTank.class); IPage pages = service.page(Condition.getPage(query), qw); IPage pagesVO = LiquidTankWrapper.build().pageVO(pages); + + List list = pagesVO.getRecords(); + for(LiquidTankVO vo : list){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ID",vo.getWorkTankId()); + List records = tankService.list(queryWrapper); + if(null != records && records.size()>0){ + vo.setWorkTankName(records.get(0).getWorkTankCode()); + } + } + + pagesVO.getRecords() .stream() .peek(service::setVOValue) @@ -241,14 +273,37 @@ public class LiquidTankController extends BladeController { @ApiOperationSupport(order = 72) @Operation(summary = "导入Excel", description = "MultipartFile") public R importExcel(@RequestParam("file") MultipartFile file) { - R checkR = ExcelExtUtil.importExcelCheck(file); - if (checkR != null) { - return checkR; - } - List importList = ExcelUtil.read( - file, 0, 1, LiquidTank.class - ); - return R.status(service.saveBatch(importList)); + List noticeList = new ArrayList<>(); + List list = ExcelUtil.read(file, LiquidTankExcel.class); + list.forEach(noticeExcel -> { + + LiquidTank notice = BeanUtil.copy(noticeExcel, LiquidTank.class); + +// List userPlanners = iUserClient.listByNameNolike(noticeExcel.getPlannerName()); +// if(null != userPlanners && userPlanners.size() > 0){ +// notice.setPlanner(userPlanners.get(0).getId()); +// } +// +// List userDispatchers = iUserClient.listByNameNolike(noticeExcel.getDispatcherName()); +// if(null != userDispatchers && userDispatchers.size() > 0){ +// notice.setDispatcher(userDispatchers.get(0).getId()); +// } +// +// List userLeaders = iUserClient.listByNameNolike(noticeExcel.getTeamLeaderName()); +// if(null != userLeaders && userLeaders.size() > 0){ +// notice.setTeamLeader(userLeaders.get(0).getId()); +// } +// +// QueryWrapper queryWrapper = new QueryWrapper<>(); +// queryWrapper.eq("name",noticeExcel.getCsName()); +// List shifts = shiftService.list(queryWrapper); +// if(null != shifts && shifts.size() > 0){ +// notice.setCsId(shifts.get(0).getId()); +// } + + noticeList.add(notice); + }); + return R.status(service.saveBatch(noticeList)); } @PostMapping("/updateUserBat") diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskController.java index bb963075..57aabd24 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskController.java @@ -24,7 +24,9 @@ import org.springblade.core.secure.BladeUser; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.desk.basic.pojo.entity.Formula; +import org.springblade.desk.basic.pojo.entity.WorkTank; import org.springblade.desk.basic.service.IFormulaService; +import org.springblade.desk.basic.service.IWorkTankService; import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.basic.constant.BaseCol; import org.springblade.desk.quality.constant.LiquidTankTaskConst; @@ -36,6 +38,8 @@ import org.springblade.desk.quality.pojo.vo.LiquidTankTaskVO; import org.springblade.desk.quality.service.ILiquidTankService; import org.springblade.desk.quality.service.ILiquidTankTaskService; import org.springblade.desk.quality.wrapper.LiquidTankTaskWrapper; +import org.springblade.system.feign.IUserClient; +import org.springblade.system.pojo.entity.User; import org.springblade.wms.feign.StRealtimeStockClient; import org.springblade.wms.pojo.entity.StGoods; import org.springframework.http.ResponseEntity; @@ -72,7 +76,11 @@ public class LiquidTankTaskController extends BladeController { @Resource private final StRealtimeStockClient stRealtimeStockClient; + @Resource + private IUserClient iUserClient; + @Resource + private IWorkTankService tankService; /** * [槽液检测任务] 详情 */ @@ -82,7 +90,26 @@ public class LiquidTankTaskController extends BladeController { public R detail(LiquidTankTask liquidTankTask) { QueryWrapper qw = Condition.getQueryWrapper(liquidTankTask); LiquidTankTask detail = service.getOne(qw); + + + + LiquidTankTaskVO detailVO = LiquidTankTaskWrapper.build().entityVO(detail); + + if(null != detail.getReceiveDrugUserId()){ + R user = iUserClient.userInfoById(detail.getReceiveDrugUserId()); + detailVO.setReceiveDurgUserRealName(user.getData().getRealName()); + } + if(null != detail.getRepeatTestUserId()){ + R userrepeat = iUserClient.userInfoById(detail.getRepeatTestUserId()); + detailVO.setRepeatTestUserRealName(userrepeat.getData().getRealName()); + } + + Long goodId = detail.getDrugMaterialId(); + StGoods good = new StGoods(); + good.setId(goodId); + StGoods stGoods = stRealtimeStockClient.getById(good).getData(); + detailVO.setDrugMaterialCode(stGoods.getGoodsCode()); service.setVOValue(detailVO); return R.data(detailVO); } @@ -184,6 +211,13 @@ public class LiquidTankTaskController extends BladeController { good.setId(goodId); StGoods stGoods = stRealtimeStockClient.getById(good).getData(); one.setDrugMaterialCode(stGoods.getGoodsCode()); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ID",one.getWorkTankId()); + List records = tankService.list(queryWrapper); + if(null != records && records.size()>0){ + one.setWorkTankName(records.get(0).getWorkTankCode()); + } } pagesVO.getRecords() .stream() diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskCopyController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskCopyController.java index 77017380..21a97d0b 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskCopyController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskCopyController.java @@ -23,6 +23,7 @@ import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; +import org.springblade.desk.basic.pojo.entity.WorkTank; import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.basic.util.RequestUtil; import org.springblade.desk.basic.constant.BaseCol; @@ -30,10 +31,13 @@ import org.springblade.desk.basic.constant.BaseRequest; 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.LiquidTank; +import org.springblade.desk.quality.pojo.entity.LiquidTankTask; import org.springblade.desk.quality.pojo.entity.LiquidTankTaskCopy; 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.ILiquidTankService; import org.springblade.desk.quality.service.ILiquidTankTaskCopyService; import org.springblade.desk.quality.wrapper.LiquidTankTaskCopyWrapper; import org.springframework.http.ResponseEntity; @@ -44,6 +48,8 @@ import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; +import static java.util.Arrays.asList; + /** * [槽液检测任务复制] 控制器 * @@ -62,6 +68,9 @@ public class LiquidTankTaskCopyController extends BladeController { @Resource private ILiquidTankTaskCopyService service; + @Resource + private ILiquidTankService tankService; + /** * [槽液检测任务复制] 详情 */ @@ -89,7 +98,7 @@ public class LiquidTankTaskCopyController extends BladeController { ); QueryWrapper qw = Condition.getQueryWrapper(map, LiquidTankTaskCopy.class); // 正常结束的,异常结束的 - qw.in(BaseCol.STATUS, Arrays.asList(LiquidTankTaskConst.S_FINISH_FAILED, LiquidTankTaskConst.S_FINISH_OK)); + 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 @@ -107,6 +116,34 @@ public class LiquidTankTaskCopyController extends BladeController { // IPage pages = service.page(Condition.getPage(query), qw); IPage pagesVO = LiquidTankTaskCopyWrapper.build().pageVO(pages); + + List list = pagesVO.getRecords(); + for(LiquidTankTaskCopyVO copyVO : list){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ID",copyVO.getLiquidTankId()); + List records = tankService.list(queryWrapper); + if(null != records && records.size()>0){ + LiquidTank tank = records.get(0); + if(1==tank.getJobType()){ + String weekly = tank.getJobTypeWeekValue(); + List weeks = Arrays.asList(weekly.split(",")); + copyVO.setTestFrequency( weeks.size()+"次/周"); + } + + if(2==tank.getJobType()){ + String month = tank.getJobTypeMonthValue(); + List months = Arrays.asList(month.split(",")); + copyVO.setTestFrequency( months.size()+"次/月"); + } + + if(3==tank.getJobType()){ + String year = tank.getJobTypeYearValue(); + List years = Arrays.asList(year.split(",")); + copyVO.setTestFrequency( years.size()+"次/年"); + } + } + } + pagesVO.getRecords() .stream() .peek(service::setVOValue) @@ -128,7 +165,7 @@ public class LiquidTankTaskCopyController extends BladeController { ); QueryWrapper qw = Condition.getQueryWrapper(map, LiquidTankTaskCopy.class); // 正常结束的,异常结束的 - qw.in(BaseCol.STATUS, Arrays.asList(LiquidTankTaskConst.S_FINISH_FAILED, LiquidTankTaskConst.S_FINISH_OK)); + 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"))); // 范围日期 @@ -183,6 +220,7 @@ public class LiquidTankTaskCopyController extends BladeController { singleChart.getMinList().add(one.getTargetValueMin()); singleChart.getTargetList().add(one.getTargetValue()); singleChart.getTestList().add(one.getRepeatTestValue()); + singleChart.setId(one.getId()); } allChart.add(singleChart); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankWaveController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankWaveController.java index 75bb58bb..fb766fe8 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankWaveController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankWaveController.java @@ -3,8 +3,10 @@ */ package org.springblade.desk.quality.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -30,18 +32,22 @@ import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.basic.util.RequestUtil; import org.springblade.desk.quality.constant.QAModuleConst; import org.springblade.desk.quality.excel.LiquidTankWaveExcel; -import org.springblade.desk.quality.pojo.entity.LiquidTankReport; -import org.springblade.desk.quality.pojo.entity.LiquidTankWave; +import org.springblade.desk.quality.pojo.entity.*; +import org.springblade.desk.quality.pojo.vo.LiquidTankTaskCopyVO; +import org.springblade.desk.quality.pojo.vo.LiquidTankWaveDrawSingleVO; +import org.springblade.desk.quality.pojo.vo.LiquidTankWaveDrawVO; import org.springblade.desk.quality.pojo.vo.LiquidTankWaveVO; +import org.springblade.desk.quality.service.ILiquidTankTaskCopyService; import org.springblade.desk.quality.service.ILiquidTankWaveService; +import org.springblade.desk.quality.service.IRelTankWaveItemService; +import org.springblade.desk.quality.wrapper.LiquidTankTaskCopyWrapper; import org.springblade.desk.quality.wrapper.LiquidTankWaveWrapper; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * [槽液曲线] 控制器 @@ -61,6 +67,30 @@ public class LiquidTankWaveController extends BladeController { @Resource private ILiquidTankWaveService service; + @Resource + private ILiquidTankTaskCopyService copyService; + @Resource + private IRelTankWaveItemService relReportItemService; + + + public List getListByLiquidTankReportId(Long liquidTankReportId) { + LambdaQueryWrapper qw = Wrappers.lambdaQuery(); + qw.eq(RelTankWaveItem::getLiquidTankWaveId, liquidTankReportId); + List relList = relReportItemService.list(qw); +// List copyList = new ArrayList<>(); + List list = new ArrayList<>(); + for (RelTankWaveItem relOne : relList) { + Long taskId = relOne.getLiquidTankTaskId(); + LiquidTankTaskCopy copy = copyService.getById(taskId); + list.add(copy); +// LiquidTankTaskCopyVO copyVO = LiquidTankTaskCopyWrapper.build().entityVO(copy); +// setVoValue(copyVO); +// copyList.add(copyVO); + } + List pagesVO = LiquidTankTaskCopyWrapper.build().listVO(list); + return pagesVO; + } + /** * [槽液曲线] 详情 */ @@ -71,6 +101,60 @@ public class LiquidTankWaveController extends BladeController { QueryWrapper qw = Condition.getQueryWrapper(liquidTankWave); LiquidTankWave detail = service.getOne(qw); LiquidTankWaveVO detailVO = LiquidTankWaveWrapper.build().entityVO(detail); + + List pagesVO = getListByLiquidTankReportId(detailVO.getId()); + + +// QueryWrapper queryWrapper = new QueryWrapper<>(); +// queryWrapper.eq(LiquidTankTaskCopy.COL_LIQUID_TANK_WAVE_ID, detailVO.getId()) +// queryWrapper.orderByAsc("ID"); +// queryWrapper.orderByAsc(LiquidTankTaskCopy.COL_REPEAT_TEST_DATE); + +// List pages = copyService.list(queryWrapper); +// List pagesVO = LiquidTankTaskCopyWrapper.build().listVO(pages); +// IPage pagesVO = LiquidTankTaskCopyWrapper.build().pageVO(pages); + pagesVO.stream() + .peek(copyService::setVOValue) + .collect(Collectors.toList()); + // key 自带排序 + // key: [作业槽]id + // value: 任务数据列表 + Map> treeMap = new TreeMap<>(); + // 遍历赋值到treeMap中 + pagesVO.forEach(vo -> { + final Long wtId = vo.getWorkTankId(); + // 不包含,新建 + if (!treeMap.containsKey(wtId)) { + List list = new ArrayList<>(); + treeMap.put(wtId, list); + } + treeMap.get(wtId).add(vo); + }); + // 前端要求匹配对象 +// LiquidTankWaveDrawVO allVO = new LiquidTankWaveDrawVO(); +// List allChart = detailVO.getWaveData(); + List allChart = new ArrayList<>(); + // 每个entry一个图表 + for (Map.Entry> entry : treeMap.entrySet()) { + Long wtId = entry.getKey(); + // 数据列表 + List 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()); + } + allChart.add(singleChart); + } + detailVO.setWaveData(allChart); return R.data(detailVO); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/LiquidTankExcel.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/LiquidTankExcel.java index 147e90f6..b3e0b1c3 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/LiquidTankExcel.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/LiquidTankExcel.java @@ -41,200 +41,260 @@ public class LiquidTankExcel implements Serializable { * [作业中心]id */ @ColumnWidth(20) - @ExcelProperty("[作业中心]id") - private BigDecimal workCenterId; + @ExcelProperty("作业中心") +// private BigDecimal workCenterId; + private String workCenterName; /** * 槽液编码/槽号 */ @ColumnWidth(20) @ExcelProperty("槽液编码/槽号") private String code; + /** - * 待测成分 + * [作业槽]id */ @ColumnWidth(20) - @ExcelProperty("待测成分") - private String testElement; + @ExcelProperty("作业槽") +// private BigDecimal workTankId; + private String workTankName; + /** - * 药品名称 + * 待测成分 */ @ColumnWidth(20) - @ExcelProperty("药品名称") - private String drugName; +// @ExcelProperty("待测成分") + @ExcelProperty("分析项目") + private String testElement; + /** - * 药品[物料]id + * 规范上限 */ @ColumnWidth(20) - @ExcelProperty("药品[物料]id") - private BigDecimal drugMaterialId; + @ExcelProperty("规范上限") + private BigDecimal normValueMax; /** - * 药品[物料]编码 + * 规范下限 */ @ColumnWidth(20) - @ExcelProperty("药品[物料]编码") - private String drugMaterialCode; + @ExcelProperty("规范下限") + private BigDecimal normValueMin; + /** - * 药品物料名称 + * 目标上限 */ @ColumnWidth(20) - @ExcelProperty("药品物料名称") - private String drugMaterialName; + @ExcelProperty("目标上限") + private BigDecimal targetValueMax; /** - * 工艺含量 + * 目标下限 */ @ColumnWidth(20) - @ExcelProperty("工艺含量") - private BigDecimal processContent; + @ExcelProperty("目标下限") + private BigDecimal targetValueMin; + /** * 目标值 */ @ColumnWidth(20) @ExcelProperty("目标值") private BigDecimal targetValue; + /** * 添加点 */ @ColumnWidth(20) @ExcelProperty("添加点") private BigDecimal fillingLocation; + /** * 体积 */ @ColumnWidth(20) @ExcelProperty("体积") private BigDecimal volume; + /** * 测量值计量单位 */ @ColumnWidth(20) @ExcelProperty("测量值计量单位") private String testUnit; + /** - * 分析周期 + * 添加值[计量单位] */ @ColumnWidth(20) - @ExcelProperty("分析周期") - private Integer analysisCycle; + @ExcelProperty("添加值单位") + private String addUnit; /** - * 有效期 + * 添加值[计量单位]id */ @ColumnWidth(20) - @ExcelProperty("有效期") - private LocalDateTime validDate; + @ExcelProperty("添加值[计量单位]id") + private BigDecimal addUnitId; + /** - * 上次化验日期 + * 加药量[计算公式]id */ @ColumnWidth(20) - @ExcelProperty("上次化验日期") - private LocalDateTime lastTest; + @ExcelProperty("加药量计算公式") +// private BigDecimal addDrugFormulaId; + private String addDrugFormulaName; /** - * 槽液到期日期 + * 添加后理论值[计算公式]id */ @ColumnWidth(20) - @ExcelProperty("槽液到期日期") - private LocalDateTime expiryDate; + @ExcelProperty("添加后理论值计算公式") +// private BigDecimal afterTheoryFormulaId; + private String afterTheoryFormulaName; + /** - * 化验人[用户]id + * 温度范围类型:[1]:无;[2]:室内温度;[3]:环境温度;[4]:温度范围; */ @ColumnWidth(20) - @ExcelProperty("化验人[用户]id") - private BigDecimal testUserId; + @ExcelProperty("温度范围类型:[1]:无;[2]:室内温度;[3]:环境温度;[4]:温度范围;") + private Long temperatureType; + /** - * 工艺主管[用户]id + * PH范围类型:[1]:无;[2]:PH值范围; */ @ColumnWidth(20) - @ExcelProperty("工艺主管[用户]id") - private BigDecimal processUserId; + @ExcelProperty("PH范围类型:[1]:无;[2]:PH值范围;") + private Long phType; + + + /** - * 实测温度 + * 药品名称 */ @ColumnWidth(20) - @ExcelProperty("实测温度") - private String temperatureActual; + @ExcelProperty("药品名称") + private String drugName; /** - * 实测ph值 + * 药品[物料]id */ @ColumnWidth(20) - @ExcelProperty("实测ph值") - private String phActual; + @ExcelProperty("药品[物料]id") + private BigDecimal drugMaterialId; /** - * 目标上限 + * 药品[物料]编码 */ @ColumnWidth(20) - @ExcelProperty("目标上限") - private BigDecimal targetValueMax; + @ExcelProperty("药品物料编码") + private String drugMaterialCode; /** - * 目标下限 + * 药品物料名称 */ @ColumnWidth(20) - @ExcelProperty("目标下限") - private BigDecimal targetValueMin; + @ExcelProperty("药品物料名称") + private String drugMaterialName; + /** - * 药品批次号 + * 测试周期 */ @ColumnWidth(20) - @ExcelProperty("药品批次号") - private String drugBatNum; + @ExcelProperty("测试周期") + private Integer analysisCycle; + /** - * 加药后化验值 + * 化验人[用户]id */ @ColumnWidth(20) - @ExcelProperty("加药后化验值") - private String postTestValue; + @ExcelProperty("化验人") +// private BigDecimal testUserId; + private String testUserName; + /** - * 是否合格 + * 工艺主管[用户]id */ @ColumnWidth(20) - @ExcelProperty("是否合格") - private Long qualified; + @ExcelProperty("工艺主管") +// private BigDecimal processUserId; + private String processUserName; + + /** - * 测量值[计量单位]id + * [班组]id */ @ColumnWidth(20) - @ExcelProperty("测量值[计量单位]id") - private BigDecimal testUnitId; + @ExcelProperty("班组") +// private BigDecimal teamId; + private String teamName; + + /** - * [作业槽]id + * 有效期 */ @ColumnWidth(20) - @ExcelProperty("[作业槽]id") - private BigDecimal workTankId; + @ExcelProperty("有效期") + private LocalDateTime validDate; + + /** - * 添加值[计量单位] + * 工艺含量 */ @ColumnWidth(20) - @ExcelProperty("添加值[计量单位]") - private String addUnit; + @ExcelProperty("工艺含量") + private BigDecimal processContent; + + /** - * 添加值[计量单位]id + * 上次化验日期 */ @ColumnWidth(20) - @ExcelProperty("添加值[计量单位]id") - private BigDecimal addUnitId; + @ExcelProperty("上次化验日期") + private LocalDateTime lastTest; /** - * 加药量[计算公式]id + * 槽液到期日期 */ @ColumnWidth(20) - @ExcelProperty("加药量[计算公式]id") - private BigDecimal addDrugFormulaId; + @ExcelProperty("槽液到期日期") + private LocalDateTime expiryDate; + + /** - * 添加后理论值[计算公式]id + * 实测温度 */ @ColumnWidth(20) - @ExcelProperty("添加后理论值[计算公式]id") - private BigDecimal afterTheoryFormulaId; + @ExcelProperty("实测温度") + private String temperatureActual; /** - * 温度范围类型:[1]:无;[2]:室内温度;[3]:环境温度;[4]:温度范围; + * 实测ph值 */ @ColumnWidth(20) - @ExcelProperty("温度范围类型:[1]:无;[2]:室内温度;[3]:环境温度;[4]:温度范围;") - private Long temperatureType; + @ExcelProperty("实测ph值") + private String phActual; + /** - * PH范围类型:[1]:无;[2]:PH值范围; + * 药品批次号 */ @ColumnWidth(20) - @ExcelProperty("PH范围类型:[1]:无;[2]:PH值范围;") - private Long phType; + @ExcelProperty("药品批次号") + private String drugBatNum; + /** + * 加药后化验值 + */ + @ColumnWidth(20) + @ExcelProperty("加药后化验值") + private String postTestValue; + /** + * 是否合格 + */ + @ColumnWidth(20) + @ExcelProperty("是否合格") + private Long qualified; + /** + * 测量值[计量单位]id + */ + @ColumnWidth(20) + @ExcelProperty("测量值[计量单位]id") + private BigDecimal testUnitId; + + + + + /** * PH范围LEFT */ @@ -277,12 +337,7 @@ public class LiquidTankExcel implements Serializable { @ColumnWidth(20) @ExcelProperty("环境温度") private BigDecimal temperatureEnv; - /** - * [班组]id - */ - @ColumnWidth(20) - @ExcelProperty("[班组]id") - private BigDecimal teamId; + /** * 生成周期类型:生成周期类型:[1]:每周;[2]:每月;[3]:每年;[4]:自定义CRON */ @@ -325,16 +380,5 @@ public class LiquidTankExcel implements Serializable { @ColumnWidth(20) @ExcelProperty("是否顺延-[1]:是;[0]:否;") private Long isPutOff; - /** - * 规范上限 - */ - @ColumnWidth(20) - @ExcelProperty("规范上限") - private BigDecimal normValueMax; - /** - * 规范下限 - */ - @ColumnWidth(20) - @ExcelProperty("规范下限") - private BigDecimal normValueMin; + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTaskMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTaskMapper.xml index cbed62cf..d54fdcdd 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTaskMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTaskMapper.xml @@ -79,7 +79,7 @@ -- 工序 LEFT JOIN DS_PROCESS ps ON wp.ORDERS = ps.PROCESS_CODE -- 外协厂商 oem - LEFT JOIN BA_OEM oem ON wp.OC_ID = oem.ID + LEFT JOIN BS_OEM oem ON wp.OC_ID = oem.ID -- 班组 ts -- LEFT JOIN BA_TEAM_SET ts ON wp.MAKE_TEAM = ts.ID -- 部门 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskCopyServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskCopyServiceImpl.java index 14e4d260..a50a9b61 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskCopyServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskCopyServiceImpl.java @@ -20,6 +20,7 @@ import org.springblade.desk.basic.service.IWorkCenterService; import org.springblade.desk.quality.excel.LiquidTankTaskCopyExcel; import org.springblade.desk.quality.mapper.LiquidTankTaskCopyMapper; import org.springblade.desk.quality.pojo.entity.*; +import org.springblade.desk.quality.pojo.vo.LiquidTankReportConfigVO; import org.springblade.desk.quality.pojo.vo.LiquidTankTaskCopyVO; import org.springblade.desk.quality.pojo.vo.LiquidTankTaskVO; import org.springblade.desk.quality.service.*; @@ -97,9 +98,22 @@ public class LiquidTankTaskCopyServiceImpl extends BaseServiceImpl list) { // todo:用户权限过滤 for (LiquidTankTask task : list) { - task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_FILL_DATA_SECOND); + LiquidTankTask taskOld = getById(task.getId()); + + task = basicChangeTaskStatus(task, LiquidTankTaskConst.S_PENDING_FILL_DATA_SECOND); +// task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_FILL_DATA_SECOND); + + task.setTeamId(taskOld.getTeamId()); + + + + // 领药人 为指定班组 班组长 // task.setReceiveDrugUserId(AuthUtil.getUserId()); Long teamId = task.getTeamId(); - task.setReceiveDrugUserId(teamSetService.getTeamSetLeader(teamId)); + TeamSet teamSet = teamSetService.getById(task.getTeamId()); + if(teamSet != null){ + task.setReceiveDrugUserId(teamSet.getTeamLeader()); + } // 领药时间 task.setReceiveDrugDate(LocalDateTime.now()); basicUpdateById(task); @@ -237,12 +250,15 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl list) { for (LiquidTankTask task : list) { - task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_FINISH_OK); +// task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_FINISH_OK); + task = basicChangeTaskStatus(task, LiquidTankTaskConst.S_FINISH_OK); + // 复检化验时间 用户填写 // 复检填报时间 task.setRepeatFillDate(LocalDateTime.now()); // 结束时间 task.setFinishDate(LocalDateTime.now()); + task.setRepeatTestUserId(AuthUtil.getUserId()); basicUpdateById(task); } return R.success("复检填报成功"); @@ -401,6 +417,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpln%mdE7eOegV^185l!@lcv9~V1GCfOT8Y=+&vmwO* delta 113 zcmZp$X|UOl!@`!JVd4|MVsjD8JZ>E>zkq4142+?{Nz>m~asxSRAWmfxhzpWK;&N}c y5m?R0WXwJJrQmBmZUzcX{-Rh*dUz%