定损问题修改
This commit is contained in:
parent
9c4fb81dfa
commit
e1c9e6a30c
|
|
@ -78,6 +78,15 @@ public class LossAssessmentController extends BaseController {
|
|||
return service.batchLossAssessmentApply(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 定损取消,推至维修
|
||||
*/
|
||||
@ApiOperation(value = "定损取消,推至维修")
|
||||
@PostMapping("/gotoRepair")
|
||||
public AjaxResult gotoRepair(@RequestBody RepairDeviceVO bean) {
|
||||
return service.gotoRepair(bean);
|
||||
}
|
||||
|
||||
/**
|
||||
* 提交任务到维修
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -161,4 +161,18 @@ public interface LossAssessmentMapper {
|
|||
* @return
|
||||
*/
|
||||
List<RepairPartDetails> getDetailsListApp(RepairPartDetails bean);
|
||||
|
||||
/**
|
||||
* 定损完成--直通
|
||||
* @param taskId
|
||||
* @return
|
||||
*/
|
||||
int updateIsDs(Long taskId);
|
||||
|
||||
/**
|
||||
* 修改状态
|
||||
* @param taskId
|
||||
* @return
|
||||
*/
|
||||
int updateStatus(Long taskId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,4 +59,11 @@ public interface LossAssessmentService {
|
|||
* @return
|
||||
*/
|
||||
List<RepairPartDetails> getDetailsListApp(RepairPartDetails bean);
|
||||
|
||||
/**
|
||||
* 定损取消,推至维修
|
||||
* @param bean
|
||||
* @return
|
||||
*/
|
||||
AjaxResult gotoRepair(RepairDeviceVO bean);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -102,13 +102,16 @@ public class LossAssessmentServiceImpl implements LossAssessmentService {
|
|||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
|
||||
BigDecimal typeCostSum = tempList.stream().map(RepairDeviceVO::getTotalCost).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
// 新增status判断逻辑
|
||||
boolean allStatusOne = tempList.stream().allMatch(device -> device.getStatus() != null && !"".equals(device.getStatus()) && "1".equals(device.getStatus()));
|
||||
vo.setRepairDeviceList(tempList)
|
||||
.setIds(ids).setTypeRepairNum(repairNumSum).setTypeRepairedNum(repairedNumSum)
|
||||
.setTypeScrapNum(scrapNumSum).setTaskId(tempList.get(0).getTaskId())
|
||||
.setCode(tempList.get(0).getCode()).setTypeName(tempList.get(0).getTypeName())
|
||||
.setTypeId(tempList.get(0).getTypeId()).setType(tempList.get(0).getType())
|
||||
.setUnitName(tempList.get(0).getUnitName()).setManageType(tempList.get(0).getManageType())
|
||||
.setTypeCost(typeCostSum);
|
||||
.setTypeCost(typeCostSum)
|
||||
.setStatus(allStatusOne ? "1" : "0");
|
||||
repairDeviceSummaryVoList.add(vo);
|
||||
}
|
||||
}
|
||||
|
|
@ -214,23 +217,25 @@ public class LossAssessmentServiceImpl implements LossAssessmentService {
|
|||
try {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
for (RepairTask task : taskList) {
|
||||
//1、查询任务下的定损数据,是否还有未完成的数据
|
||||
// //1、查询任务下的定损数据,是否还有未完成的数据
|
||||
List<RepairTaskDetails> detailsList = mapper.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 + "还未进行定损,请先定损后再提交!");
|
||||
}
|
||||
}
|
||||
// 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 + "还未进行定损,请先定损后再提交!");
|
||||
// }
|
||||
// }
|
||||
//2、修改任务状态
|
||||
mapper.updateSingleTaskStatus(task, loginUser.getUserid(), RepairTaskStatusEnum.TASK_LOSS_ASSESSMENT_COMPLETE.getStatus());
|
||||
//将数据status状态都置为1
|
||||
mapper.updateStatus(task.getTaskId());
|
||||
//3、重新生成维修数据
|
||||
for (RepairTaskDetails repairTaskDetails : detailsList){
|
||||
repairTaskDetails.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
|
|
@ -322,6 +327,35 @@ public class LossAssessmentServiceImpl implements LossAssessmentService {
|
|||
return mapper.getDetailsListApp(bean);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public AjaxResult gotoRepair(RepairDeviceVO bean) {
|
||||
try {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (bean.getTaskId()!=null){
|
||||
List<RepairTaskDetails> detailsList = mapper.getRepairDetailsWhichNotSent(bean.getTaskId());
|
||||
//2、修改任务状态
|
||||
RepairTask task = new RepairTask();
|
||||
task.setTaskId(bean.getTaskId());
|
||||
mapper.updateSingleTaskStatus(task, loginUser.getUserid(), RepairTaskStatusEnum.TASK_LOSS_ASSESSMENT_COMPLETE.getStatus());
|
||||
//将数据status状态都置为1
|
||||
mapper.updateStatus(task.getTaskId());
|
||||
//3、重新生成维修数据
|
||||
for (RepairTaskDetails repairTaskDetails : detailsList){
|
||||
repairTaskDetails.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
mapper.insertRad(repairTaskDetails);
|
||||
}
|
||||
return AjaxResult.success("提交完成");
|
||||
} else {
|
||||
throw new ServiceException("任务id为空");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("定损直通维修", e.getMessage());
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
return AjaxResult.error("执行失败,请重试");
|
||||
}
|
||||
}
|
||||
|
||||
private void splitRepairDetailsToMultiple(RepairDeviceVO bean, BigDecimal innerRepairNum, BigDecimal outerRepairNum, BigDecimal scrapNum, LoginUser loginUser) {
|
||||
//本次修完了
|
||||
if ((bean.getRepairNum().subtract(innerRepairNum).subtract(outerRepairNum).subtract(scrapNum).compareTo(BigDecimal.valueOf(0)) ) == 0) {
|
||||
|
|
|
|||
|
|
@ -174,7 +174,7 @@
|
|||
<update id="updateStatusByRepairScrapNum">
|
||||
update
|
||||
repair_apply_details
|
||||
set status = IF((ifnull(repaired_num, 0) + ifnull(scrap_num, 0) >= repair_num), 1, 0)
|
||||
set status = 1
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
|
|
@ -192,6 +192,17 @@
|
|||
update_time = NOW()
|
||||
where task_id = #{taskId}
|
||||
</update>
|
||||
<update id="updateIsDs">
|
||||
update repair_apply_details
|
||||
set is_ds = 0
|
||||
where task_id = #{taskId}
|
||||
</update>
|
||||
<update id="updateStatus">
|
||||
update repair_apply_details
|
||||
set status = 1
|
||||
where task_id = #{taskId}
|
||||
and is_ds = 1
|
||||
</update>
|
||||
|
||||
<select id="getLossAssessmentList" resultType="com.bonus.material.repair.domain.RepairTask">
|
||||
SELECT
|
||||
|
|
@ -209,7 +220,12 @@
|
|||
rd.level as level,
|
||||
SUM(rd.repair_num) as repairNum,
|
||||
bai.back_person as backPerson,
|
||||
rd.`status`
|
||||
CASE tt.task_status
|
||||
WHEN 0 THEN
|
||||
0
|
||||
ELSE
|
||||
1
|
||||
END `status`
|
||||
FROM
|
||||
repair_apply_details rd
|
||||
LEFT JOIN ma_type mt on rd.type_id = mt.type_id
|
||||
|
|
|
|||
Loading…
Reference in New Issue