维修拆分及修饰审核
This commit is contained in:
parent
11d3ac48c4
commit
aaf3000c70
|
|
@ -14,6 +14,7 @@ public enum RepairTaskStatusEnum {
|
|||
TASK_STATUS_PROCESSING(0, "维修管理--进行中"),
|
||||
TASK_STATUS_COMPLETE(1, "维修管理--已完成"),
|
||||
TASK_STATUS_REJECT(2, "维修管理--驳回退料"),
|
||||
TASK_STATUS_AUDIT_REJECT(3, "维修管理--修饰审核驳回"),
|
||||
TASK_STATUS_TO_EXAM(10, "修饰审核--待审核"),
|
||||
TASK_STATUS_REVIEW(11, "修饰审核--审核完成"),
|
||||
TASK_STATUS_NO_REVIEW(12, "修饰审核--审核不通过"),
|
||||
|
|
|
|||
|
|
@ -27,6 +27,12 @@ public class RepairTaskDetails extends BaseEntity {
|
|||
@ApiModelProperty(value = "任务ID")
|
||||
private Long taskId;
|
||||
|
||||
/**
|
||||
* 新任务ID
|
||||
*/
|
||||
@ApiModelProperty(value = "新任务ID")
|
||||
private Long newTaskId;
|
||||
|
||||
/**
|
||||
* 前任务ID
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -215,10 +215,10 @@ public interface RepairMapper {
|
|||
|
||||
/**
|
||||
* 新增维修任务明细
|
||||
* @param bean
|
||||
* @param repairTaskDetail
|
||||
* @return
|
||||
*/
|
||||
int insertRepaired(RepairDeviceVO bean);
|
||||
int insertRepaired(RepairTaskDetails repairTaskDetail);
|
||||
|
||||
/**
|
||||
* 查询维修任务明细
|
||||
|
|
@ -233,4 +233,11 @@ public interface RepairMapper {
|
|||
* @return
|
||||
*/
|
||||
List<RepairTaskDetails> getRepairDetailsById(RepairTaskDetails details);
|
||||
|
||||
/**
|
||||
* 修改维修任务明细
|
||||
* @param details
|
||||
* @return
|
||||
*/
|
||||
int updateStatus(RepairTaskDetails details);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import com.bonus.material.repair.domain.vo.ScrapAudit;
|
|||
import com.bonus.material.repair.mapper.RepairApplyDetailsMapper;
|
||||
import com.bonus.material.repair.mapper.RepairAuditDetailsMapper;
|
||||
import com.bonus.material.repair.mapper.RepairInputDetailsMapper;
|
||||
import com.bonus.material.repair.mapper.RepairMapper;
|
||||
import com.bonus.material.repair.service.IRepairAuditDetailsService;
|
||||
import com.bonus.material.scrap.domain.ScrapApplyDetails;
|
||||
import com.bonus.material.scrap.mapper.ScrapApplyDetailsMapper;
|
||||
|
|
@ -70,6 +71,9 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
|
|||
@Resource
|
||||
private TmTaskAgreementMapper taskAgreementMapper;
|
||||
|
||||
@Resource
|
||||
private RepairMapper repairMapper;
|
||||
|
||||
@Override
|
||||
public List<RepairPart> getPartRecord(RepairAuditDetails repairAuditDetails) {
|
||||
RepairAuditDetails bean = repairAuditDetailsMapper.getRepairId(repairAuditDetails);
|
||||
|
|
@ -489,6 +493,7 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
|
|||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int outerAudit(@NotNull List<RepairAuditDetails> repairAuditDetails) {
|
||||
final List<Long> taskIds = repairAuditDetails.stream()
|
||||
.filter(Objects::nonNull)
|
||||
|
|
@ -506,59 +511,120 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
|
|||
|
||||
// 1:通过 2:驳回 0:未处理
|
||||
final String status = repairAuditDetails.get(0).getStatus();
|
||||
if ("1".equals(status)) {
|
||||
for (final RepairAuditDetails repairAuditDetail : repairAuditDetails) {
|
||||
// 删除repair_input_details 维修入库明细?
|
||||
repairInputDetailsMapper.deleteRepairInputDetailsByTaskId(repairAuditDetail.getTaskId());
|
||||
// 查询协议ID
|
||||
Long agreementId = taskAgreementMapper.selectAgreementIdByTaskId(repairAuditDetail.getTaskId());
|
||||
// 查询维修审核明细
|
||||
final List<RepairAuditDetails> repairAuditDetailList = repairAuditDetailsMapper.selectRepairAuditDetailsByTaskIds(Collections.singletonList(repairAuditDetail.getTaskId()));
|
||||
// 批量插入维修入库明细
|
||||
List<ScrapApplyDetails> scrapApplyDetails = new ArrayList<>();
|
||||
batchInsertRepairInputDetails(scrapApplyDetails, repairAuditDetailList, agreementId);
|
||||
// 更新任务状态
|
||||
taskMapper.updateTaskStatus(String.valueOf(repairAuditDetail.getTaskId()), RepairTaskStatusEnum.TASK_STATUS_REVIEW.getStatus());
|
||||
}
|
||||
} else if ("2".equals(status)) {
|
||||
for (RepairAuditDetails auditDetails : repairAuditDetails) {
|
||||
// 处理 -- 修饰审核任务状态
|
||||
taskMapper.updateTaskStatus(String.valueOf(auditDetails.getTaskId()), RepairTaskStatusEnum.TASK_STATUS_NO_REVIEW.getStatus());
|
||||
// 处理 -- 原维修任务单的状态(提交修饰审核前拆分的任务)
|
||||
TmTask preTmTaskInfo = taskMapper.selectTmTaskByTaskId(auditDetails.getTaskId());
|
||||
if (Objects.nonNull(preTmTaskInfo) && Objects.nonNull(preTmTaskInfo.getPreTaskId())) {
|
||||
taskMapper.updateTaskStatus(String.valueOf(preTmTaskInfo.getPreTaskId()), RepairTaskStatusEnum.TASK_STATUS_PROCESSING.getStatus());
|
||||
try {
|
||||
if ("1".equals(status)) {
|
||||
for (final RepairAuditDetails repairAuditDetail : repairAuditDetails) {
|
||||
// 删除repair_input_details 维修入库明细?
|
||||
repairInputDetailsMapper.deleteRepairInputDetailsByTaskId(repairAuditDetail.getTaskId());
|
||||
// 查询协议ID
|
||||
Long agreementId = taskAgreementMapper.selectAgreementIdByTaskId(repairAuditDetail.getTaskId());
|
||||
// 查询维修审核明细
|
||||
final List<RepairAuditDetails> repairAuditDetailList = repairAuditDetailsMapper.selectRepairAuditDetailsByTaskIds(Collections.singletonList(repairAuditDetail.getTaskId()));
|
||||
// 批量插入维修入库明细
|
||||
List<ScrapApplyDetails> scrapApplyDetails = new ArrayList<>();
|
||||
batchInsertRepairInputDetails(scrapApplyDetails, repairAuditDetailList, agreementId);
|
||||
// 更新任务状态
|
||||
taskMapper.updateTaskStatus(String.valueOf(repairAuditDetail.getTaskId()), RepairTaskStatusEnum.TASK_STATUS_REVIEW.getStatus());
|
||||
}
|
||||
// 根据taskId查询维修审核明细
|
||||
final List<RepairAuditDetails> repairAuditDetailsByTaskId = repairAuditDetailsMapper.selectRepairAuditDetailsByTaskId(auditDetails.getTaskId());
|
||||
if (!CollectionUtils.isEmpty(repairAuditDetailsByTaskId)) {
|
||||
for (RepairAuditDetails repairAuditDetail : repairAuditDetailsByTaskId) {
|
||||
if ("1".equals(repairAuditDetail.getStatus()) || "2".equals(repairAuditDetail.getStatus())) {
|
||||
continue;
|
||||
} else if ("2".equals(status)) {
|
||||
for (RepairAuditDetails auditDetails : repairAuditDetails) {
|
||||
RepairTask task = new RepairTask();
|
||||
task.setTaskId(auditDetails.getTaskId());
|
||||
Long agreementId = repairMapper.getAgreementId(task);
|
||||
// 插入任务表
|
||||
Long newTaskId = insertWxTt(SecurityUtils.getUsername());
|
||||
// 插入协议任务表
|
||||
insertTta(newTaskId, agreementId);
|
||||
// 处理 -- 修饰审核任务状态
|
||||
taskMapper.updateTaskStatus(String.valueOf(auditDetails.getTaskId()), RepairTaskStatusEnum.TASK_STATUS_NO_REVIEW.getStatus());
|
||||
// 处理 -- 原维修任务单的状态(提交修饰审核前拆分的任务)
|
||||
TmTask preTmTaskInfo = taskMapper.selectTmTaskByTaskId(auditDetails.getTaskId());
|
||||
List<RepairTaskDetails> detailsList = repairApplyDetailsMapper.getRepairDetailsWhichNotSent(preTmTaskInfo.getPreTaskId());
|
||||
Long backId = null;
|
||||
if (!CollectionUtils.isEmpty(detailsList)) {
|
||||
backId = detailsList.get(0).getBackId();
|
||||
}
|
||||
/*if (Objects.nonNull(preTmTaskInfo) && Objects.nonNull(preTmTaskInfo.getPreTaskId())) {
|
||||
taskMapper.updateTaskStatus(String.valueOf(preTmTaskInfo.getPreTaskId()), RepairTaskStatusEnum.TASK_STATUS_PROCESSING.getStatus());
|
||||
}*/
|
||||
// 根据taskId查询维修审核明细
|
||||
final List<RepairAuditDetails> repairAuditDetailsByTaskId = repairAuditDetailsMapper.selectRepairAuditDetailsByTaskId(auditDetails.getTaskId());
|
||||
if (!CollectionUtils.isEmpty(repairAuditDetailsByTaskId)) {
|
||||
for (RepairAuditDetails repairAuditDetail : repairAuditDetailsByTaskId) {
|
||||
/*if ("1".equals(repairAuditDetail.getStatus()) || "2".equals(repairAuditDetail.getStatus())) {
|
||||
continue;
|
||||
}
|
||||
// 根据查询详情获取的维修ID,更新scrap_apply_details维修数量
|
||||
repairApplyDetailsMapper.updateRepairApplyDetailsAfterReject(
|
||||
ObjectUtils.defaultIfNull(repairAuditDetail.getRepairedNum(),0).longValue(),
|
||||
ObjectUtils.defaultIfNull(repairAuditDetail.getScrapNum(),0).longValue(), repairAuditDetail.getRepairId());
|
||||
repairApplyDetailsMapper.updateStatus(repairAuditDetail.getRepairId(), RepairTaskStatusEnum.TASK_STATUS_PROCESSING.getStatus());*/
|
||||
RepairTaskDetails repairTaskDetails = new RepairTaskDetails();
|
||||
repairTaskDetails.setNewTaskId(newTaskId);
|
||||
repairTaskDetails.setMaId(repairAuditDetail.getMaId() == null ? null : repairAuditDetail.getMaId().toString());
|
||||
repairTaskDetails.setTypeId(repairAuditDetail.getTypeId().toString());
|
||||
repairTaskDetails.setRepairNum(repairAuditDetail.getRepairNum());
|
||||
repairTaskDetails.setCreateBy(SecurityUtils.getUsername());
|
||||
repairTaskDetails.setBackId(backId == null ? null : backId);
|
||||
repairMapper.insertRepaired(repairTaskDetails);
|
||||
}
|
||||
// 根据查询详情获取的维修ID,更新scrap_apply_details维修数量
|
||||
repairApplyDetailsMapper.updateRepairApplyDetailsAfterReject(
|
||||
ObjectUtils.defaultIfNull(repairAuditDetail.getRepairedNum(),0).longValue(),
|
||||
ObjectUtils.defaultIfNull(repairAuditDetail.getScrapNum(),0).longValue(), repairAuditDetail.getRepairId());
|
||||
repairApplyDetailsMapper.updateStatus(repairAuditDetail.getRepairId(), RepairTaskStatusEnum.TASK_STATUS_PROCESSING.getStatus());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
final List<Long> ids = repairAuditDetailsByQuery.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.map(RepairAuditDetails::getId)
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toList());
|
||||
Long auditBy = SecurityUtils.getUserId();
|
||||
return repairAuditDetailsMapper.updateRepairAuditDetailsBatch(ids, String.valueOf(status), auditBy);
|
||||
} catch (final Exception e) {
|
||||
throw new ServiceException("错误信息描述");
|
||||
try {
|
||||
final List<Long> ids = repairAuditDetailsByQuery.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.map(RepairAuditDetails::getId)
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toList());
|
||||
Long auditBy = SecurityUtils.getUserId();
|
||||
return repairAuditDetailsMapper.updateRepairAuditDetailsBatch(ids, String.valueOf(status), auditBy);
|
||||
} catch (final Exception e) {
|
||||
throw new ServiceException("错误信息描述");
|
||||
}
|
||||
} catch (ServiceException e) {
|
||||
log.error("修改维修审核状态失败", e);
|
||||
throw new ServiceException("修饰审核失败,请联系管理员");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增维修任务
|
||||
* @param createBy
|
||||
* @return
|
||||
*/
|
||||
private Long insertWxTt(String createBy) {
|
||||
Long newTask = null;
|
||||
int thisMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId());
|
||||
// 生成维修单号
|
||||
String code = genderNewWxTaskCode(thisMonthMaxOrder);
|
||||
TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId(), RepairTaskStatusEnum.TASK_STATUS_AUDIT_REJECT.getStatus(),
|
||||
null,thisMonthMaxOrder + 1, code);
|
||||
tmTask.setCreateTime(DateUtils.getNowDate());
|
||||
tmTask.setCreateBy(createBy);
|
||||
// 插入任务
|
||||
int taskId = taskMapper.insertTmTask(tmTask);
|
||||
// 如果插入成功且返回的 taskId 大于 0
|
||||
if (taskId > 0 && tmTask.getTaskId() > 0) {
|
||||
newTask = tmTask.getTaskId();
|
||||
}
|
||||
return newTask;
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成维修单号
|
||||
* @param thisMonthMaxOrder
|
||||
* @return
|
||||
*/
|
||||
private String genderNewWxTaskCode(int thisMonthMaxOrder) {
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
Date nowDate = DateUtils.getNowDate();
|
||||
String format = dateFormat.format(nowDate);
|
||||
String result = format.replace("-", "");
|
||||
return MaterialConstants.REPAIR_TASK_TYPE_LABEL + result + String.format("-%03d", thisMonthMaxOrder + 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量修改修试审核详细
|
||||
*
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ import com.bonus.material.task.mapper.TmTaskAgreementMapper;
|
|||
import com.bonus.material.task.mapper.TmTaskMapper;
|
||||
import com.bonus.system.api.domain.SysUser;
|
||||
import com.bonus.system.api.model.LoginUser;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.hibernate.validator.internal.util.StringHelper;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -49,6 +50,7 @@ import java.util.stream.Collectors;
|
|||
*/
|
||||
@Service("RepairService")
|
||||
@Validated
|
||||
@Slf4j
|
||||
public class RepairServiceImpl implements RepairService {
|
||||
|
||||
@Resource
|
||||
|
|
@ -921,58 +923,130 @@ public class RepairServiceImpl implements RepairService {
|
|||
public AjaxResult endRepairTask(@NotNull List<RepairTask> taskList) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
|
||||
// 1.查询选择任务是否还有未完成维修的数据
|
||||
for (RepairTask task : taskList) {
|
||||
if (0 == repairMapper.getUnFinish(task)) {
|
||||
repairMapper.updateSingleTaskStatus(task, loginUser.getUserid(), RepairTaskStatusEnum.TASK_STATUS_COMPLETE.getStatus());
|
||||
} else {
|
||||
throw new ServiceException("任务" + task.getTaskId() + "还有未完成维修的数据,请先完成维修");
|
||||
}
|
||||
}
|
||||
|
||||
// 3.业务逻辑处理
|
||||
for (RepairTask task : taskList) {
|
||||
// 查询维修任务的详情表
|
||||
Long oldWxTaskId = task.getTaskId();
|
||||
List<RepairTaskDetails> detailsList = repairApplyDetailsMapper.getRepairDetailsWhichNotSent(oldWxTaskId);
|
||||
BigDecimal thisRepairedNum = detailsList.stream().map(RepairTaskDetails::getRepairedNum).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
BigDecimal thisScrapNum = detailsList.stream().map(RepairTaskDetails::getScrapNum).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
if (!CollectionUtils.isEmpty(detailsList) && 0 < (thisRepairedNum.add(thisScrapNum)).compareTo(BigDecimal.ZERO)) {
|
||||
task.setCreateBy(loginUser.getUserid());
|
||||
Long agreementId = repairMapper.getAgreementId(task);
|
||||
// 新增tm_task表数据、修饰审核任务、状态是待审核
|
||||
task.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR_AUDIT.getTaskTypeId());
|
||||
task.setTaskStatus(RepairTaskStatusEnum.TASK_STATUS_TO_EXAM.getStatus());
|
||||
int thisMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_REPAIR_AUDIT.getTaskTypeId());
|
||||
// 生成维修单号
|
||||
String code = genderWsTaskCode(thisMonthMaxOrder);
|
||||
task.setRepairCode(code);
|
||||
task.setMonthOrder(thisMonthMaxOrder + 1);
|
||||
// 插入之前的维修任务id标记前置任务
|
||||
task.setPreTaskId(task.getTaskId());
|
||||
// 注意:此处将会生成新的 taskId (审核入库用的)
|
||||
repairMapper.addTask(task);
|
||||
// 新增协议任务表tm_task_agreement--关联修饰任务与协议
|
||||
task.setAgreementId(agreementId);
|
||||
repairMapper.createAgreementTask(task);
|
||||
|
||||
// 新增审计记录
|
||||
for (RepairTaskDetails details : detailsList) {
|
||||
RepairApplyDetails repairApplyDetails = createRepairDetailsCope(details);
|
||||
repairApplyDetailsMapper.updateRepairApplyDetails(repairApplyDetails);
|
||||
details.setCreateBy(String.valueOf(loginUser.getUserid()));
|
||||
details.setTaskId(task.getTaskId());
|
||||
details.setRepairNum(details.getRepairNum());
|
||||
details.setRepairedNum(details.getRepairedNum());
|
||||
details.setScrapNum(details.getScrapNum());
|
||||
// 先根据id查询审核表中是否存在数据,存在则不用重复插入
|
||||
if (CollectionUtils.isEmpty(repairMapper.getAuditDetailsById(details))) {
|
||||
repairMapper.addAuditDetails(details);
|
||||
try {
|
||||
// 1.查询选择任务是否还有未完成维修的数据
|
||||
for (RepairTask task : taskList) {
|
||||
// 查询选择的任务中是否存在未维修的单子,进行不能提交审核提醒
|
||||
List<RepairTaskDetails> detailsList = repairApplyDetailsMapper.getRepairDetailsWhichNotSent(task.getTaskId());
|
||||
if (!CollectionUtils.isEmpty(detailsList)) {
|
||||
BigDecimal repairedNum = BigDecimal.ZERO;
|
||||
BigDecimal scrapNum = BigDecimal.ZERO;
|
||||
String taskCode = "";
|
||||
for (RepairTaskDetails repairTaskDetails : detailsList) {
|
||||
repairedNum = repairedNum.add(repairTaskDetails.getRepairedNum());
|
||||
scrapNum = scrapNum.add(repairTaskDetails.getScrapNum());
|
||||
taskCode = repairTaskDetails.getTaskCode();
|
||||
}
|
||||
if (repairedNum.add(scrapNum).compareTo(BigDecimal.ZERO) == 0) {
|
||||
return AjaxResult.error("维修单号" + taskCode + "还未进行维修,请先维修后再提交审核!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 3.业务逻辑处理
|
||||
for (RepairTask task : taskList) {
|
||||
Long agreementId = null;
|
||||
// 查询维修任务的详情表
|
||||
Long oldWxTaskId = task.getTaskId();
|
||||
List<RepairTaskDetails> detailsList = repairApplyDetailsMapper.getRepairDetailsWhichNotSent(oldWxTaskId);
|
||||
repairMapper.updateSingleTaskStatus(task, loginUser.getUserid(), RepairTaskStatusEnum.TASK_STATUS_COMPLETE.getStatus());
|
||||
// 维修拆分标志
|
||||
boolean isWxFlag = false;
|
||||
// 维修拆分数据集合
|
||||
List<RepairTaskDetails> repairTaskDetails = new ArrayList<>();
|
||||
if (!CollectionUtils.isEmpty(detailsList)) {
|
||||
task.setCreateBy(loginUser.getUserid());
|
||||
agreementId = repairMapper.getAgreementId(task);
|
||||
// 新增tm_task表数据、修饰审核任务、状态是待审核
|
||||
task.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR_AUDIT.getTaskTypeId());
|
||||
task.setTaskStatus(RepairTaskStatusEnum.TASK_STATUS_TO_EXAM.getStatus());
|
||||
int thisMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_REPAIR_AUDIT.getTaskTypeId());
|
||||
// 生成维修单号
|
||||
String code = genderWsTaskCode(thisMonthMaxOrder);
|
||||
task.setRepairCode(code);
|
||||
task.setMonthOrder(thisMonthMaxOrder + 1);
|
||||
// 插入之前的维修任务id标记前置任务
|
||||
task.setPreTaskId(task.getTaskId());
|
||||
// 注意:此处将会生成新的 taskId (审核入库用的)
|
||||
repairMapper.addTask(task);
|
||||
// 新增协议任务表tm_task_agreement--关联修饰任务与协议
|
||||
task.setAgreementId(agreementId);
|
||||
repairMapper.createAgreementTask(task);
|
||||
// 新增审计记录
|
||||
for (RepairTaskDetails details : detailsList) {
|
||||
if (StringUtils.isNotBlank(details.getMaId())) {
|
||||
if ("0".equals(details.getStatus())) {
|
||||
isWxFlag = true;
|
||||
details.setLevel((StringUtils.isNotBlank(details.getLevel())) ? String.valueOf(Integer.parseInt(details.getLevel()) + 1) : "1");
|
||||
details.setParentId(details.getId());
|
||||
repairTaskDetails.add(details);
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
BigDecimal repairNum = details.getRepairNum();
|
||||
BigDecimal repairedNum = details.getRepairedNum();
|
||||
BigDecimal scrapNum = details.getScrapNum();
|
||||
if (repairedNum.add(scrapNum).compareTo(repairNum) < 0) {
|
||||
isWxFlag = true;
|
||||
RepairTaskDetails taskDetails = new RepairTaskDetails();
|
||||
taskDetails.setRepairNum(repairNum.subtract(repairedNum).subtract(scrapNum));
|
||||
taskDetails.setTypeId(details.getTypeId());
|
||||
taskDetails.setLevel((StringUtils.isNotBlank(details.getLevel())) ? String.valueOf(Integer.parseInt(details.getLevel()) + 1) : "1");
|
||||
taskDetails.setParentId(details.getId());
|
||||
taskDetails.setBackId(details.getBackId());
|
||||
repairTaskDetails.add(taskDetails);
|
||||
}
|
||||
}
|
||||
details.setCreateBy(String.valueOf(loginUser.getUserid()));
|
||||
details.setTaskId(task.getTaskId());
|
||||
details.setRepairNum(details.getRepairedNum()
|
||||
.add(details.getScrapNum()));
|
||||
// 将待修状态改为已维修
|
||||
int result = repairMapper.updateStatus(details);
|
||||
if (result <= 0) {
|
||||
throw new ServiceException("待修状态修改失败");
|
||||
}
|
||||
// 先根据id查询审核表中是否存在数据,存在则不用重复插入
|
||||
if (CollectionUtils.isEmpty(repairMapper.getAuditDetailsById(details))) {
|
||||
// 如果合格数和报废数都为0,则未进行维修,不插入审核表
|
||||
if (details.getRepairedNum().compareTo(BigDecimal.ZERO) == 0 &&
|
||||
details.getScrapNum().compareTo(BigDecimal.ZERO) == 0) {
|
||||
continue;
|
||||
}
|
||||
result = repairMapper.addAuditDetails(details);
|
||||
if (result <= 0) {
|
||||
throw new ServiceException("审核任务插入失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 进行维修拆分
|
||||
if (isWxFlag) {
|
||||
// 插入任务表
|
||||
Long newTaskId = insertTt(SecurityUtils.getUsername());
|
||||
// 插入协议任务表
|
||||
int res = insertTta(newTaskId, agreementId);
|
||||
if (res <= 0) {
|
||||
throw new ServiceException("协议任务表插入失败");
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(repairTaskDetails)) {
|
||||
for (RepairTaskDetails repairTaskDetail : repairTaskDetails) {
|
||||
repairTaskDetail.setTaskId(newTaskId);
|
||||
repairTaskDetail.setCreateBy(SecurityUtils.getUsername());
|
||||
repairTaskDetail.setStatus("0");
|
||||
repairTaskDetail.setNewTaskId(newTaskId);
|
||||
repairMapper.insertRepaired(repairTaskDetail);
|
||||
}
|
||||
} else {
|
||||
throw new ServiceException("维修拆分数据组装错误");
|
||||
}
|
||||
}
|
||||
}
|
||||
return AjaxResult.success("提交审核成功");
|
||||
} catch (ServiceException e) {
|
||||
log.error("执行异常", e);
|
||||
return AjaxResult.error("数据处理异常,请联系管理员");
|
||||
}
|
||||
return AjaxResult.success("执行完毕");
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -141,7 +141,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
tt.code as taskCode,
|
||||
rad.back_id as backId,
|
||||
rad.status as status,
|
||||
rad.level as level
|
||||
rad.level as level,
|
||||
tt.code as taskCode
|
||||
from repair_apply_details rad
|
||||
left join tm_task tt on rad.task_id = tt.task_id
|
||||
where rad.task_id = #{taskId}
|
||||
|
|
|
|||
|
|
@ -254,7 +254,8 @@
|
|||
bui.unit_name AS backUnit,
|
||||
bpi.pro_name AS backPro,
|
||||
bai.CODE AS backCode,
|
||||
GROUP_CONCAT(DISTINCT mt2.type_name) as type
|
||||
GROUP_CONCAT(DISTINCT mt2.type_name) as type,
|
||||
rd.level as level
|
||||
FROM
|
||||
repair_apply_details rd
|
||||
LEFT JOIN ma_type mt on rd.type_id = mt.type_id
|
||||
|
|
@ -637,23 +638,18 @@
|
|||
|
||||
<select id="getAuditDetailsById" resultType="com.bonus.material.repair.domain.RepairTaskDetails">
|
||||
SELECT
|
||||
rad.id,
|
||||
rad.ma_id AS maId,
|
||||
rad.type_id AS typeId,
|
||||
sum(rad.repair_num) AS repairNum,
|
||||
sum(rad.repaired_num) AS repairedNum,
|
||||
sum(rad.scrap_num) AS scrapNum,
|
||||
rad.company_id AS companyId
|
||||
rad.id,
|
||||
rad.ma_id AS maId,
|
||||
rad.type_id AS typeId,
|
||||
rad.repair_num AS repairNum,
|
||||
rad.repaired_num AS repairedNum,
|
||||
rad.scrap_num AS scrapNum,
|
||||
rad.company_id AS companyId
|
||||
FROM
|
||||
repair_audit_details rad
|
||||
repair_audit_details rad
|
||||
WHERE
|
||||
rad.`status` != '2'
|
||||
AND rad.back_id = #{backId} AND rad.type_id = #{typeId}
|
||||
<if test="maId != null">
|
||||
AND rad.ma_id = #{maId}
|
||||
</if>
|
||||
GROUP BY
|
||||
rad.ma_id, rad.type_id, rad.company_id
|
||||
rad.repair_id = #{id}
|
||||
AND rad.`status` != '2'
|
||||
</select>
|
||||
|
||||
<select id="getRepairTaskDetails" resultType="com.bonus.material.repair.domain.RepairTask">
|
||||
|
|
@ -724,4 +720,14 @@
|
|||
part_id = #{partId}
|
||||
and creator = #{createBy}
|
||||
</update>
|
||||
<update id="updateStatus">
|
||||
update
|
||||
repair_apply_details
|
||||
set
|
||||
status = '1',
|
||||
update_by = #{createBy},
|
||||
update_time = now()
|
||||
where
|
||||
id = #{id}
|
||||
</update>
|
||||
</mapper>
|
||||
|
|
|
|||
Loading…
Reference in New Issue