维修拆分及修饰审核

This commit is contained in:
mashuai 2025-02-28 15:04:40 +08:00
parent 11d3ac48c4
commit aaf3000c70
7 changed files with 272 additions and 111 deletions

View File

@ -14,6 +14,7 @@ public enum RepairTaskStatusEnum {
TASK_STATUS_PROCESSING(0, "维修管理--进行中"), TASK_STATUS_PROCESSING(0, "维修管理--进行中"),
TASK_STATUS_COMPLETE(1, "维修管理--已完成"), TASK_STATUS_COMPLETE(1, "维修管理--已完成"),
TASK_STATUS_REJECT(2, "维修管理--驳回退料"), TASK_STATUS_REJECT(2, "维修管理--驳回退料"),
TASK_STATUS_AUDIT_REJECT(3, "维修管理--修饰审核驳回"),
TASK_STATUS_TO_EXAM(10, "修饰审核--待审核"), TASK_STATUS_TO_EXAM(10, "修饰审核--待审核"),
TASK_STATUS_REVIEW(11, "修饰审核--审核完成"), TASK_STATUS_REVIEW(11, "修饰审核--审核完成"),
TASK_STATUS_NO_REVIEW(12, "修饰审核--审核不通过"), TASK_STATUS_NO_REVIEW(12, "修饰审核--审核不通过"),

View File

@ -27,6 +27,12 @@ public class RepairTaskDetails extends BaseEntity {
@ApiModelProperty(value = "任务ID") @ApiModelProperty(value = "任务ID")
private Long taskId; private Long taskId;
/**
* 新任务ID
*/
@ApiModelProperty(value = "新任务ID")
private Long newTaskId;
/** /**
* 前任务ID * 前任务ID
*/ */

View File

@ -215,10 +215,10 @@ public interface RepairMapper {
/** /**
* 新增维修任务明细 * 新增维修任务明细
* @param bean * @param repairTaskDetail
* @return * @return
*/ */
int insertRepaired(RepairDeviceVO bean); int insertRepaired(RepairTaskDetails repairTaskDetail);
/** /**
* 查询维修任务明细 * 查询维修任务明细
@ -233,4 +233,11 @@ public interface RepairMapper {
* @return * @return
*/ */
List<RepairTaskDetails> getRepairDetailsById(RepairTaskDetails details); List<RepairTaskDetails> getRepairDetailsById(RepairTaskDetails details);
/**
* 修改维修任务明细
* @param details
* @return
*/
int updateStatus(RepairTaskDetails details);
} }

View File

@ -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.RepairApplyDetailsMapper;
import com.bonus.material.repair.mapper.RepairAuditDetailsMapper; import com.bonus.material.repair.mapper.RepairAuditDetailsMapper;
import com.bonus.material.repair.mapper.RepairInputDetailsMapper; 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.repair.service.IRepairAuditDetailsService;
import com.bonus.material.scrap.domain.ScrapApplyDetails; import com.bonus.material.scrap.domain.ScrapApplyDetails;
import com.bonus.material.scrap.mapper.ScrapApplyDetailsMapper; import com.bonus.material.scrap.mapper.ScrapApplyDetailsMapper;
@ -70,6 +71,9 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
@Resource @Resource
private TmTaskAgreementMapper taskAgreementMapper; private TmTaskAgreementMapper taskAgreementMapper;
@Resource
private RepairMapper repairMapper;
@Override @Override
public List<RepairPart> getPartRecord(RepairAuditDetails repairAuditDetails) { public List<RepairPart> getPartRecord(RepairAuditDetails repairAuditDetails) {
RepairAuditDetails bean = repairAuditDetailsMapper.getRepairId(repairAuditDetails); RepairAuditDetails bean = repairAuditDetailsMapper.getRepairId(repairAuditDetails);
@ -489,6 +493,7 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
* @return 结果 * @return 结果
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class)
public int outerAudit(@NotNull List<RepairAuditDetails> repairAuditDetails) { public int outerAudit(@NotNull List<RepairAuditDetails> repairAuditDetails) {
final List<Long> taskIds = repairAuditDetails.stream() final List<Long> taskIds = repairAuditDetails.stream()
.filter(Objects::nonNull) .filter(Objects::nonNull)
@ -506,59 +511,120 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
// 1:通过 2:驳回 0:未处理 // 1:通过 2:驳回 0:未处理
final String status = repairAuditDetails.get(0).getStatus(); final String status = repairAuditDetails.get(0).getStatus();
if ("1".equals(status)) { try {
for (final RepairAuditDetails repairAuditDetail : repairAuditDetails) { if ("1".equals(status)) {
// 删除repair_input_details 维修入库明细 for (final RepairAuditDetails repairAuditDetail : repairAuditDetails) {
repairInputDetailsMapper.deleteRepairInputDetailsByTaskId(repairAuditDetail.getTaskId()); // 删除repair_input_details 维修入库明细
// 查询协议ID repairInputDetailsMapper.deleteRepairInputDetailsByTaskId(repairAuditDetail.getTaskId());
Long agreementId = taskAgreementMapper.selectAgreementIdByTaskId(repairAuditDetail.getTaskId()); // 查询协议ID
// 查询维修审核明细 Long agreementId = taskAgreementMapper.selectAgreementIdByTaskId(repairAuditDetail.getTaskId());
final List<RepairAuditDetails> repairAuditDetailList = repairAuditDetailsMapper.selectRepairAuditDetailsByTaskIds(Collections.singletonList(repairAuditDetail.getTaskId())); // 查询维修审核明细
// 批量插入维修入库明细 final List<RepairAuditDetails> repairAuditDetailList = repairAuditDetailsMapper.selectRepairAuditDetailsByTaskIds(Collections.singletonList(repairAuditDetail.getTaskId()));
List<ScrapApplyDetails> scrapApplyDetails = new ArrayList<>(); // 批量插入维修入库明细
batchInsertRepairInputDetails(scrapApplyDetails, repairAuditDetailList, agreementId); List<ScrapApplyDetails> scrapApplyDetails = new ArrayList<>();
// 更新任务状态 batchInsertRepairInputDetails(scrapApplyDetails, repairAuditDetailList, agreementId);
taskMapper.updateTaskStatus(String.valueOf(repairAuditDetail.getTaskId()), RepairTaskStatusEnum.TASK_STATUS_REVIEW.getStatus()); // 更新任务状态
} 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());
} }
// 根据taskId查询维修审核明细 } else if ("2".equals(status)) {
final List<RepairAuditDetails> repairAuditDetailsByTaskId = repairAuditDetailsMapper.selectRepairAuditDetailsByTaskId(auditDetails.getTaskId()); for (RepairAuditDetails auditDetails : repairAuditDetails) {
if (!CollectionUtils.isEmpty(repairAuditDetailsByTaskId)) { RepairTask task = new RepairTask();
for (RepairAuditDetails repairAuditDetail : repairAuditDetailsByTaskId) { task.setTaskId(auditDetails.getTaskId());
if ("1".equals(repairAuditDetail.getStatus()) || "2".equals(repairAuditDetail.getStatus())) { Long agreementId = repairMapper.getAgreementId(task);
continue; // 插入任务表
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 { try {
final List<Long> ids = repairAuditDetailsByQuery.stream() final List<Long> ids = repairAuditDetailsByQuery.stream()
.filter(Objects::nonNull) .filter(Objects::nonNull)
.map(RepairAuditDetails::getId) .map(RepairAuditDetails::getId)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toList()); .collect(Collectors.toList());
Long auditBy = SecurityUtils.getUserId(); Long auditBy = SecurityUtils.getUserId();
return repairAuditDetailsMapper.updateRepairAuditDetailsBatch(ids, String.valueOf(status), auditBy); return repairAuditDetailsMapper.updateRepairAuditDetailsBatch(ids, String.valueOf(status), auditBy);
} catch (final Exception e) { } catch (final Exception e) {
throw new ServiceException("错误信息描述"); 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);
}
/** /**
* 批量修改修试审核详细 * 批量修改修试审核详细
* *

View File

@ -28,6 +28,7 @@ import com.bonus.material.task.mapper.TmTaskAgreementMapper;
import com.bonus.material.task.mapper.TmTaskMapper; import com.bonus.material.task.mapper.TmTaskMapper;
import com.bonus.system.api.domain.SysUser; import com.bonus.system.api.domain.SysUser;
import com.bonus.system.api.model.LoginUser; import com.bonus.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.hibernate.validator.internal.util.StringHelper; import org.hibernate.validator.internal.util.StringHelper;
import org.springframework.dao.DataAccessException; import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -49,6 +50,7 @@ import java.util.stream.Collectors;
*/ */
@Service("RepairService") @Service("RepairService")
@Validated @Validated
@Slf4j
public class RepairServiceImpl implements RepairService { public class RepairServiceImpl implements RepairService {
@Resource @Resource
@ -921,58 +923,130 @@ public class RepairServiceImpl implements RepairService {
public AjaxResult endRepairTask(@NotNull List<RepairTask> taskList) { public AjaxResult endRepairTask(@NotNull List<RepairTask> taskList) {
LoginUser loginUser = SecurityUtils.getLoginUser(); LoginUser loginUser = SecurityUtils.getLoginUser();
// 1.查询选择任务是否还有未完成维修的数据 try {
for (RepairTask task : taskList) { // 1.查询选择任务是否还有未完成维修的数据
if (0 == repairMapper.getUnFinish(task)) { for (RepairTask task : taskList) {
repairMapper.updateSingleTaskStatus(task, loginUser.getUserid(), RepairTaskStatusEnum.TASK_STATUS_COMPLETE.getStatus()); // 查询选择的任务中是否存在未维修的单子进行不能提交审核提醒
} else { List<RepairTaskDetails> detailsList = repairApplyDetailsMapper.getRepairDetailsWhichNotSent(task.getTaskId());
throw new ServiceException("任务" + task.getTaskId() + "还有未完成维修的数据,请先完成维修"); if (!CollectionUtils.isEmpty(detailsList)) {
} BigDecimal repairedNum = BigDecimal.ZERO;
} BigDecimal scrapNum = BigDecimal.ZERO;
String taskCode = "";
// 3.业务逻辑处理 for (RepairTaskDetails repairTaskDetails : detailsList) {
for (RepairTask task : taskList) { repairedNum = repairedNum.add(repairTaskDetails.getRepairedNum());
// 查询维修任务的详情表 scrapNum = scrapNum.add(repairTaskDetails.getScrapNum());
Long oldWxTaskId = task.getTaskId(); taskCode = repairTaskDetails.getTaskCode();
List<RepairTaskDetails> detailsList = repairApplyDetailsMapper.getRepairDetailsWhichNotSent(oldWxTaskId); }
BigDecimal thisRepairedNum = detailsList.stream().map(RepairTaskDetails::getRepairedNum).reduce(BigDecimal.ZERO, BigDecimal::add); if (repairedNum.add(scrapNum).compareTo(BigDecimal.ZERO) == 0) {
BigDecimal thisScrapNum = detailsList.stream().map(RepairTaskDetails::getScrapNum).reduce(BigDecimal.ZERO, BigDecimal::add); return AjaxResult.error("维修单号" + taskCode + "还未进行维修,请先维修后再提交审核!");
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);
} }
} }
} }
// 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("执行完毕");
} }
/** /**

View File

@ -141,7 +141,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
tt.code as taskCode, tt.code as taskCode,
rad.back_id as backId, rad.back_id as backId,
rad.status as status, rad.status as status,
rad.level as level rad.level as level,
tt.code as taskCode
from repair_apply_details rad from repair_apply_details rad
left join tm_task tt on rad.task_id = tt.task_id left join tm_task tt on rad.task_id = tt.task_id
where rad.task_id = #{taskId} where rad.task_id = #{taskId}

View File

@ -254,7 +254,8 @@
bui.unit_name AS backUnit, bui.unit_name AS backUnit,
bpi.pro_name AS backPro, bpi.pro_name AS backPro,
bai.CODE AS backCode, 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 FROM
repair_apply_details rd repair_apply_details rd
LEFT JOIN ma_type mt on rd.type_id = mt.type_id 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 id="getAuditDetailsById" resultType="com.bonus.material.repair.domain.RepairTaskDetails">
SELECT SELECT
rad.id, rad.id,
rad.ma_id AS maId, rad.ma_id AS maId,
rad.type_id AS typeId, rad.type_id AS typeId,
sum(rad.repair_num) AS repairNum, rad.repair_num AS repairNum,
sum(rad.repaired_num) AS repairedNum, rad.repaired_num AS repairedNum,
sum(rad.scrap_num) AS scrapNum, rad.scrap_num AS scrapNum,
rad.company_id AS companyId rad.company_id AS companyId
FROM FROM
repair_audit_details rad repair_audit_details rad
WHERE WHERE
rad.`status` != '2' rad.repair_id = #{id}
AND rad.back_id = #{backId} AND rad.type_id = #{typeId} AND rad.`status` != '2'
<if test="maId != null">
AND rad.ma_id = #{maId}
</if>
GROUP BY
rad.ma_id, rad.type_id, rad.company_id
</select> </select>
<select id="getRepairTaskDetails" resultType="com.bonus.material.repair.domain.RepairTask"> <select id="getRepairTaskDetails" resultType="com.bonus.material.repair.domain.RepairTask">
@ -724,4 +720,14 @@
part_id = #{partId} part_id = #{partId}
and creator = #{createBy} and creator = #{createBy}
</update> </update>
<update id="updateStatus">
update
repair_apply_details
set
status = '1',
update_by = #{createBy},
update_time = now()
where
id = #{id}
</update>
</mapper> </mapper>