|
|
|
@ -4,7 +4,6 @@ |
|
|
|
package org.springblade.desk.quality.service.impl; |
|
|
|
package org.springblade.desk.quality.service.impl; |
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
import cn.hutool.cron.task.Task; |
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
@ -17,9 +16,11 @@ import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.jetbrains.annotations.NotNull; |
|
|
|
import org.jetbrains.annotations.NotNull; |
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
|
|
|
|
import org.springblade.core.mp.support.Condition; |
|
|
|
import org.springblade.core.secure.utils.AuthUtil; |
|
|
|
import org.springblade.core.secure.utils.AuthUtil; |
|
|
|
import org.springblade.core.tool.api.R; |
|
|
|
import org.springblade.core.tool.api.R; |
|
|
|
import org.springblade.core.tool.utils.Func; |
|
|
|
import org.springblade.core.tool.utils.Func; |
|
|
|
|
|
|
|
import org.springblade.desk.basic.constant.BaseCol; |
|
|
|
import org.springblade.desk.basic.constant.WorkTankConst; |
|
|
|
import org.springblade.desk.basic.constant.WorkTankConst; |
|
|
|
import org.springblade.desk.basic.pojo.entity.TeamSet; |
|
|
|
import org.springblade.desk.basic.pojo.entity.TeamSet; |
|
|
|
import org.springblade.desk.basic.pojo.entity.WorkTank; |
|
|
|
import org.springblade.desk.basic.pojo.entity.WorkTank; |
|
|
|
@ -27,23 +28,25 @@ import org.springblade.desk.basic.service.IFormulaService; |
|
|
|
import org.springblade.desk.basic.service.ITeamSetService; |
|
|
|
import org.springblade.desk.basic.service.ITeamSetService; |
|
|
|
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.basic.service.IWorkTankService; |
|
|
|
import org.springblade.desk.basic.constant.BaseCol; |
|
|
|
import org.springblade.desk.basic.util.IdUtil; |
|
|
|
import org.springblade.desk.basic.constant.BaseValue; |
|
|
|
import org.springblade.desk.common.enums.MesApprovalRecordBizTypeEnum; |
|
|
|
|
|
|
|
import org.springblade.desk.common.service.IMesApprovalRecordService; |
|
|
|
import org.springblade.desk.quality.constant.LiquidTankTaskConst; |
|
|
|
import org.springblade.desk.quality.constant.LiquidTankTaskConst; |
|
|
|
import org.springblade.desk.quality.excel.LiquidTankTaskExcel; |
|
|
|
import org.springblade.desk.quality.excel.LiquidTankTaskExcel; |
|
|
|
import org.springblade.desk.quality.mapper.LiquidTankTaskMapper; |
|
|
|
import org.springblade.desk.quality.mapper.LiquidTankTaskMapper; |
|
|
|
import org.springblade.desk.quality.pojo.entity.LiquidTank; |
|
|
|
import org.springblade.desk.quality.pojo.entity.LiquidTank; |
|
|
|
import org.springblade.desk.quality.pojo.entity.LiquidTankTask; |
|
|
|
import org.springblade.desk.quality.pojo.entity.LiquidTankTask; |
|
|
|
import org.springblade.desk.quality.pojo.entity.LiquidTankTaskCopy; |
|
|
|
|
|
|
|
import org.springblade.desk.quality.pojo.entity.LiquidTankTaskHi; |
|
|
|
import org.springblade.desk.quality.pojo.entity.LiquidTankTaskHi; |
|
|
|
import org.springblade.desk.quality.pojo.request.JobExt; |
|
|
|
import org.springblade.desk.quality.pojo.request.JobExt; |
|
|
|
import org.springblade.desk.quality.pojo.vo.LiquidTankTaskVO; |
|
|
|
import org.springblade.desk.quality.pojo.vo.LiquidTankTaskVO; |
|
|
|
import org.springblade.desk.quality.service.*; |
|
|
|
import org.springblade.desk.quality.service.*; |
|
|
|
import org.springblade.desk.basic.util.IdUtil; |
|
|
|
|
|
|
|
import org.springblade.desk.quality.util.JobExtUtil; |
|
|
|
import org.springblade.desk.quality.util.JobExtUtil; |
|
|
|
|
|
|
|
import org.springblade.desk.quality.wrapper.LiquidTankTaskWrapper; |
|
|
|
import org.springblade.system.feign.IDictClient; |
|
|
|
import org.springblade.system.feign.IDictClient; |
|
|
|
import org.springblade.system.feign.IUserClient; |
|
|
|
import org.springblade.system.feign.IUserClient; |
|
|
|
import org.springblade.system.pojo.entity.User; |
|
|
|
import org.springblade.system.pojo.entity.User; |
|
|
|
|
|
|
|
import org.springblade.wms.feign.StRealtimeStockClient; |
|
|
|
|
|
|
|
import org.springblade.wms.pojo.entity.StGoods; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
|
|
@ -94,6 +97,15 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap |
|
|
|
@Resource |
|
|
|
@Resource |
|
|
|
private LiquidTankTaskSetVoService setVoService; |
|
|
|
private LiquidTankTaskSetVoService setVoService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
|
|
|
private IMesApprovalRecordService mesApprovalRecordService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
|
|
|
private final StRealtimeStockClient stRealtimeStockClient; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
|
|
|
private IUserClient iUserClient; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public IPage<LiquidTankTaskVO> selectLiquidTankTaskPage(IPage<LiquidTankTaskVO> page, |
|
|
|
public IPage<LiquidTankTaskVO> selectLiquidTankTaskPage(IPage<LiquidTankTaskVO> page, |
|
|
|
@ -103,7 +115,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public IPage<LiquidTankTaskVO> selectLiquidTankTaskPageByJoin(IPage<LiquidTankTaskVO> page, |
|
|
|
public IPage<LiquidTankTaskVO> selectLiquidTankTaskPageByJoin(IPage<LiquidTankTaskVO> page, |
|
|
|
LiquidTankTaskVO liquidTankTask) { |
|
|
|
LiquidTankTaskVO liquidTankTask) { |
|
|
|
return page.setRecords(baseMapper.selectLiquidTankTaskPageByJoin(page, liquidTankTask)); |
|
|
|
return page.setRecords(baseMapper.selectLiquidTankTaskPageByJoin(page, liquidTankTask)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -168,6 +180,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap |
|
|
|
// task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_REVIEW);
|
|
|
|
// task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_REVIEW);
|
|
|
|
task = basicChangeTaskStatus(task, LiquidTankTaskConst.S_PENDING_REVIEW); |
|
|
|
task = basicChangeTaskStatus(task, LiquidTankTaskConst.S_PENDING_REVIEW); |
|
|
|
basicUpdateById(task); |
|
|
|
basicUpdateById(task); |
|
|
|
|
|
|
|
mesApprovalRecordService.createApproval(task.getId(), MesApprovalRecordBizTypeEnum.LIQUID_TANK_TASK.getDesc(), task.getUpdateUser(), task.getUpdateTime()); |
|
|
|
} |
|
|
|
} |
|
|
|
return R.success(); |
|
|
|
return R.success(); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -191,19 +204,21 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap |
|
|
|
LiquidTankTask task = baseMapper.selectById(id); |
|
|
|
LiquidTankTask task = baseMapper.selectById(id); |
|
|
|
// 通过id去查这一条槽液任务的实际添加量actualAddValue的值,如果是0的话审核通过之后状态就变为正常完成的,不是0按之前的逻辑走
|
|
|
|
// 通过id去查这一条槽液任务的实际添加量actualAddValue的值,如果是0的话审核通过之后状态就变为正常完成的,不是0按之前的逻辑走
|
|
|
|
if (Objects.nonNull(task.getActualAddValue()) && 0 == task.getActualAddValue()) { |
|
|
|
if (Objects.nonNull(task.getActualAddValue()) && 0 == task.getActualAddValue()) { |
|
|
|
zeroUpdate(task,reviewPass,reviewOpinion); |
|
|
|
zeroUpdate(task, reviewPass, reviewOpinion); |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
if (Objects.equals(reviewPass, LiquidTankTaskConst.REVIEW_YES)) { |
|
|
|
if (Objects.equals(reviewPass, LiquidTankTaskConst.REVIEW_YES)) { |
|
|
|
// 审核通过
|
|
|
|
// 审核通过
|
|
|
|
task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_SEND_DRUG); |
|
|
|
task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_SEND_DRUG); |
|
|
|
task.setReviewPass(LiquidTankTaskConst.REVIEW_YES); |
|
|
|
task.setReviewPass(LiquidTankTaskConst.REVIEW_YES); |
|
|
|
|
|
|
|
mesApprovalRecordService.passApproval(task.getId(), MesApprovalRecordBizTypeEnum.LIQUID_TANK_TASK.getDesc(), task.getUpdateUser(), task.getUpdateTime()); |
|
|
|
// todo: flag
|
|
|
|
// todo: flag
|
|
|
|
// todo: 是否需要加药?
|
|
|
|
// todo: 是否需要加药?
|
|
|
|
} else if (Objects.equals(reviewPass, LiquidTankTaskConst.REVIEW_NO)) { |
|
|
|
} else if (Objects.equals(reviewPass, LiquidTankTaskConst.REVIEW_NO)) { |
|
|
|
// 审核不通过
|
|
|
|
// 审核不通过
|
|
|
|
task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_EDIT_DRUG); |
|
|
|
task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_EDIT_DRUG); |
|
|
|
task.setReviewPass(LiquidTankTaskConst.REVIEW_NO); |
|
|
|
task.setReviewPass(LiquidTankTaskConst.REVIEW_NO); |
|
|
|
|
|
|
|
mesApprovalRecordService.rejectApproval(task.getId(), MesApprovalRecordBizTypeEnum.LIQUID_TANK_TASK.getDesc(), task.getUpdateUser(), task.getUpdateTime()); |
|
|
|
// todo: flag
|
|
|
|
// todo: flag
|
|
|
|
} |
|
|
|
} |
|
|
|
// 审核意见
|
|
|
|
// 审核意见
|
|
|
|
@ -278,13 +293,11 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap |
|
|
|
task.setTeamId(taskOld.getTeamId()); |
|
|
|
task.setTeamId(taskOld.getTeamId()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 领药人 为指定班组 班组长
|
|
|
|
// 领药人 为指定班组 班组长
|
|
|
|
// task.setReceiveDrugUserId(AuthUtil.getUserId());
|
|
|
|
// task.setReceiveDrugUserId(AuthUtil.getUserId());
|
|
|
|
Long teamId = task.getTeamId(); |
|
|
|
Long teamId = task.getTeamId(); |
|
|
|
TeamSet teamSet = teamSetService.getById(task.getTeamId()); |
|
|
|
TeamSet teamSet = teamSetService.getById(task.getTeamId()); |
|
|
|
if(teamSet != null){ |
|
|
|
if (teamSet != null) { |
|
|
|
task.setReceiveDrugUserId(teamSet.getTeamLeader()); |
|
|
|
task.setReceiveDrugUserId(teamSet.getTeamLeader()); |
|
|
|
} |
|
|
|
} |
|
|
|
// 领药时间
|
|
|
|
// 领药时间
|
|
|
|
@ -519,7 +532,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap |
|
|
|
// todo:判断条件
|
|
|
|
// todo:判断条件
|
|
|
|
boolean toAccept = true; |
|
|
|
boolean toAccept = true; |
|
|
|
R<User> user = userClient.userInfoById(task.getTestUserId()); |
|
|
|
R<User> user = userClient.userInfoById(task.getTestUserId()); |
|
|
|
if(null == user || null == user.getData() || user.getData().getId() == null){ |
|
|
|
if (null == user || null == user.getData() || user.getData().getId() == null) { |
|
|
|
toAccept = false; |
|
|
|
toAccept = false; |
|
|
|
} |
|
|
|
} |
|
|
|
// 状态
|
|
|
|
// 状态
|
|
|
|
@ -664,7 +677,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap |
|
|
|
// 只允许删除以下状态的任务:
|
|
|
|
// 只允许删除以下状态的任务:
|
|
|
|
// S_FINISH_OK(11): 正常结束
|
|
|
|
// S_FINISH_OK(11): 正常结束
|
|
|
|
// S_FINISH_FAILED(10): 异常结束
|
|
|
|
// S_FINISH_FAILED(10): 异常结束
|
|
|
|
if (task.getStatus().equals(LiquidTankTaskConst.S_FINISH_OK) |
|
|
|
if (task.getStatus().equals(LiquidTankTaskConst.S_FINISH_OK) |
|
|
|
|| task.getStatus().equals(LiquidTankTaskConst.S_FINISH_FAILED)) { |
|
|
|
|| task.getStatus().equals(LiquidTankTaskConst.S_FINISH_FAILED)) { |
|
|
|
canDeleteIds.add(id); |
|
|
|
canDeleteIds.add(id); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
@ -685,9 +698,10 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap |
|
|
|
// 关联的历史记录
|
|
|
|
// 关联的历史记录
|
|
|
|
hiService.remove(new LambdaQueryWrapper<LiquidTankTaskHi>() |
|
|
|
hiService.remove(new LambdaQueryWrapper<LiquidTankTaskHi>() |
|
|
|
.eq(LiquidTankTaskHi::getLiquidTankTaskId, taskId)); |
|
|
|
.eq(LiquidTankTaskHi::getLiquidTankTaskId, taskId)); |
|
|
|
|
|
|
|
|
|
|
|
// 删除
|
|
|
|
// 删除
|
|
|
|
basicDeleteLogic(java.util.Collections.singletonList(taskId)); |
|
|
|
basicDeleteLogic(java.util.Collections.singletonList(taskId)); |
|
|
|
|
|
|
|
mesApprovalRecordService.removeApproval(taskId, MesApprovalRecordBizTypeEnum.LIQUID_TANK_TASK.getDesc()); |
|
|
|
} |
|
|
|
} |
|
|
|
return R.success(); |
|
|
|
return R.success(); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -731,4 +745,26 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl<LiquidTankTaskMap |
|
|
|
return "未知状态(" + status + ")"; |
|
|
|
return "未知状态(" + status + ")"; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public LiquidTankTaskVO detail(LiquidTankTask liquidTankTask) { |
|
|
|
|
|
|
|
QueryWrapper<LiquidTankTask> qw = Condition.getQueryWrapper(liquidTankTask); |
|
|
|
|
|
|
|
LiquidTankTask detail = this.getOne(qw); |
|
|
|
|
|
|
|
LiquidTankTaskVO detailVO = LiquidTankTaskWrapper.build().entityVO(detail); |
|
|
|
|
|
|
|
if (null != detail.getReceiveDrugUserId()) { |
|
|
|
|
|
|
|
R<User> user = iUserClient.userInfoById(detail.getReceiveDrugUserId()); |
|
|
|
|
|
|
|
detailVO.setReceiveDurgUserRealName(user.getData().getRealName()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (null != detail.getRepeatTestUserId()) { |
|
|
|
|
|
|
|
R<User> 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()); |
|
|
|
|
|
|
|
this.setVOValue(detailVO); |
|
|
|
|
|
|
|
return detailVO; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|