定损问题修改
This commit is contained in:
parent
9c4fb81dfa
commit
e1c9e6a30c
|
|
@ -78,6 +78,15 @@ public class LossAssessmentController extends BaseController {
|
||||||
return service.batchLossAssessmentApply(list);
|
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
|
* @return
|
||||||
*/
|
*/
|
||||||
List<RepairPartDetails> getDetailsListApp(RepairPartDetails bean);
|
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
|
* @return
|
||||||
*/
|
*/
|
||||||
List<RepairPartDetails> getDetailsListApp(RepairPartDetails bean);
|
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);
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
|
||||||
BigDecimal typeCostSum = tempList.stream().map(RepairDeviceVO::getTotalCost).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)
|
vo.setRepairDeviceList(tempList)
|
||||||
.setIds(ids).setTypeRepairNum(repairNumSum).setTypeRepairedNum(repairedNumSum)
|
.setIds(ids).setTypeRepairNum(repairNumSum).setTypeRepairedNum(repairedNumSum)
|
||||||
.setTypeScrapNum(scrapNumSum).setTaskId(tempList.get(0).getTaskId())
|
.setTypeScrapNum(scrapNumSum).setTaskId(tempList.get(0).getTaskId())
|
||||||
.setCode(tempList.get(0).getCode()).setTypeName(tempList.get(0).getTypeName())
|
.setCode(tempList.get(0).getCode()).setTypeName(tempList.get(0).getTypeName())
|
||||||
.setTypeId(tempList.get(0).getTypeId()).setType(tempList.get(0).getType())
|
.setTypeId(tempList.get(0).getTypeId()).setType(tempList.get(0).getType())
|
||||||
.setUnitName(tempList.get(0).getUnitName()).setManageType(tempList.get(0).getManageType())
|
.setUnitName(tempList.get(0).getUnitName()).setManageType(tempList.get(0).getManageType())
|
||||||
.setTypeCost(typeCostSum);
|
.setTypeCost(typeCostSum)
|
||||||
|
.setStatus(allStatusOne ? "1" : "0");
|
||||||
repairDeviceSummaryVoList.add(vo);
|
repairDeviceSummaryVoList.add(vo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -214,23 +217,25 @@ public class LossAssessmentServiceImpl implements LossAssessmentService {
|
||||||
try {
|
try {
|
||||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
for (RepairTask task : taskList) {
|
for (RepairTask task : taskList) {
|
||||||
//1、查询任务下的定损数据,是否还有未完成的数据
|
// //1、查询任务下的定损数据,是否还有未完成的数据
|
||||||
List<RepairTaskDetails> detailsList = mapper.getRepairDetailsWhichNotSent(task.getTaskId());
|
List<RepairTaskDetails> detailsList = mapper.getRepairDetailsWhichNotSent(task.getTaskId());
|
||||||
if (!CollectionUtils.isEmpty(detailsList)) {
|
// if (!CollectionUtils.isEmpty(detailsList)) {
|
||||||
BigDecimal repairedNum = BigDecimal.ZERO;
|
// BigDecimal repairedNum = BigDecimal.ZERO;
|
||||||
BigDecimal scrapNum = BigDecimal.ZERO;
|
// BigDecimal scrapNum = BigDecimal.ZERO;
|
||||||
String taskCode = "";
|
// String taskCode = "";
|
||||||
for (RepairTaskDetails repairTaskDetails : detailsList) {
|
// for (RepairTaskDetails repairTaskDetails : detailsList) {
|
||||||
repairedNum = repairedNum.add(repairTaskDetails.getRepairedNum());
|
// repairedNum = repairedNum.add(repairTaskDetails.getRepairedNum());
|
||||||
scrapNum = scrapNum.add(repairTaskDetails.getScrapNum());
|
// scrapNum = scrapNum.add(repairTaskDetails.getScrapNum());
|
||||||
taskCode = repairTaskDetails.getTaskCode();
|
// taskCode = repairTaskDetails.getTaskCode();
|
||||||
}
|
// }
|
||||||
if (repairedNum.add(scrapNum).compareTo(BigDecimal.ZERO) == 0) {
|
// if (repairedNum.add(scrapNum).compareTo(BigDecimal.ZERO) == 0) {
|
||||||
return AjaxResult.error("单号" + taskCode + "还未进行定损,请先定损后再提交!");
|
// return AjaxResult.error("单号" + taskCode + "还未进行定损,请先定损后再提交!");
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
//2、修改任务状态
|
//2、修改任务状态
|
||||||
mapper.updateSingleTaskStatus(task, loginUser.getUserid(), RepairTaskStatusEnum.TASK_LOSS_ASSESSMENT_COMPLETE.getStatus());
|
mapper.updateSingleTaskStatus(task, loginUser.getUserid(), RepairTaskStatusEnum.TASK_LOSS_ASSESSMENT_COMPLETE.getStatus());
|
||||||
|
//将数据status状态都置为1
|
||||||
|
mapper.updateStatus(task.getTaskId());
|
||||||
//3、重新生成维修数据
|
//3、重新生成维修数据
|
||||||
for (RepairTaskDetails repairTaskDetails : detailsList){
|
for (RepairTaskDetails repairTaskDetails : detailsList){
|
||||||
repairTaskDetails.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
repairTaskDetails.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||||
|
|
@ -322,6 +327,35 @@ public class LossAssessmentServiceImpl implements LossAssessmentService {
|
||||||
return mapper.getDetailsListApp(bean);
|
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) {
|
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) {
|
if ((bean.getRepairNum().subtract(innerRepairNum).subtract(outerRepairNum).subtract(scrapNum).compareTo(BigDecimal.valueOf(0)) ) == 0) {
|
||||||
|
|
|
||||||
|
|
@ -174,7 +174,7 @@
|
||||||
<update id="updateStatusByRepairScrapNum">
|
<update id="updateStatusByRepairScrapNum">
|
||||||
update
|
update
|
||||||
repair_apply_details
|
repair_apply_details
|
||||||
set status = IF((ifnull(repaired_num, 0) + ifnull(scrap_num, 0) >= repair_num), 1, 0)
|
set status = 1
|
||||||
where id = #{id}
|
where id = #{id}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
|
@ -192,6 +192,17 @@
|
||||||
update_time = NOW()
|
update_time = NOW()
|
||||||
where task_id = #{taskId}
|
where task_id = #{taskId}
|
||||||
</update>
|
</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 id="getLossAssessmentList" resultType="com.bonus.material.repair.domain.RepairTask">
|
||||||
SELECT
|
SELECT
|
||||||
|
|
@ -209,7 +220,12 @@
|
||||||
rd.level as level,
|
rd.level as level,
|
||||||
SUM(rd.repair_num) as repairNum,
|
SUM(rd.repair_num) as repairNum,
|
||||||
bai.back_person as backPerson,
|
bai.back_person as backPerson,
|
||||||
rd.`status`
|
CASE tt.task_status
|
||||||
|
WHEN 0 THEN
|
||||||
|
0
|
||||||
|
ELSE
|
||||||
|
1
|
||||||
|
END `status`
|
||||||
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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue