You need to sign in or sign up before continuing.
Commit 3839c385 authored by 张昊飞's avatar 张昊飞

保修单详情修改

parent 9b4e8403
...@@ -103,6 +103,17 @@ public class ErpRepairFormProjectDispatchController extends BaseController { ...@@ -103,6 +103,17 @@ public class ErpRepairFormProjectDispatchController extends BaseController {
return toAjax(iErpRepairFormProjectDispatchService.updateByBo(bo)); return toAjax(iErpRepairFormProjectDispatchService.updateByBo(bo));
} }
/**
* 修改报修单-报修项目-派工
*/
@SaCheckPermission("business:repairFormProjectDispatch:edit")
@Log(title = "报修单-报修项目-派工", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/batch")
public R<Void> edit(@Validated(EditGroup.class) @RequestBody List<ErpRepairFormProjectDispatchBo> bo) {
return toAjax(iErpRepairFormProjectDispatchService.updateBatchByBo(bo));
}
/** /**
* 删除报修单-报修项目-派工 * 删除报修单-报修项目-派工
* *
......
...@@ -47,6 +47,11 @@ public interface IErpRepairFormProjectDispatchService { ...@@ -47,6 +47,11 @@ public interface IErpRepairFormProjectDispatchService {
*/ */
Boolean updateByBo(ErpRepairFormProjectDispatchBo bo); Boolean updateByBo(ErpRepairFormProjectDispatchBo bo);
/**
* 修改报修单-报修项目-派工
*/
Boolean updateBatchByBo(List<ErpRepairFormProjectDispatchBo> boList);
/** /**
* 校验并批量删除报修单-报修项目-派工信息 * 校验并批量删除报修单-报修项目-派工信息
*/ */
......
package com.maintain.business.service.impl; package com.maintain.business.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.maintain.business.domain.ErpRepairFormProject; import com.maintain.business.domain.ErpRepairFormProject;
import com.maintain.business.domain.bo.ErpRepairFormProjectDispatchBatchBo; import com.maintain.business.domain.bo.ErpRepairFormProjectDispatchBatchBo;
import com.maintain.business.domain.vo.ErpUserVo; import com.maintain.business.domain.vo.ErpUserVo;
...@@ -158,12 +159,50 @@ public class ErpRepairFormProjectDispatchServiceImpl implements IErpRepairFormPr ...@@ -158,12 +159,50 @@ public class ErpRepairFormProjectDispatchServiceImpl implements IErpRepairFormPr
* 修改报修单-报修项目-派工 * 修改报修单-报修项目-派工
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(ErpRepairFormProjectDispatchBo bo) { public Boolean updateByBo(ErpRepairFormProjectDispatchBo bo) {
ErpRepairFormProjectDispatch projectDispatch = baseMapper.selectById(bo.getId()); ErpRepairFormProjectDispatch projectDispatch = baseMapper.selectById(bo.getId());
projectDispatch.setDispatchManHour(bo.getDispatchManHour()); projectDispatch.setDispatchManHour(bo.getDispatchManHour());
projectDispatch.setActualManHour(bo.getDispatchManHour().subtract(bo.getDeductManHour())); projectDispatch.setActualManHour(bo.getDispatchManHour().subtract(bo.getDeductManHour()));
projectDispatch.setDeductManHour(bo.getDeductManHour()); projectDispatch.setDeductManHour(bo.getDeductManHour());
return baseMapper.updateById(projectDispatch) > 0; boolean flag = baseMapper.updateById(projectDispatch) > 0;
List<ErpRepairFormProjectDispatch> formProjectDispatches = baseMapper.selectList(Wrappers.<ErpRepairFormProjectDispatch>lambdaQuery()
.eq(ErpRepairFormProjectDispatch::getRepairFormProjectId, projectDispatch.getRepairFormProjectId()));
//计算总工时
BigDecimal reduce = formProjectDispatches.stream().map(ErpRepairFormProjectDispatch::getActualManHour).reduce(BigDecimal.ZERO, BigDecimal::add);
ErpRepairFormProject project = new ErpRepairFormProject();
project.setId(projectDispatch.getRepairFormProjectId());
project.setActualTime(reduce);
projectMapper.updateById(project);
return flag;
}
@Override
public Boolean updateBatchByBo(List<ErpRepairFormProjectDispatchBo> boList) {
if (CollUtil.isEmpty(boList)){
return false;
}
List<ErpRepairFormProjectDispatch> dispatchList = boList.stream().map(bo -> {
ErpRepairFormProjectDispatch projectDispatch = new ErpRepairFormProjectDispatch();
projectDispatch.setId(bo.getId());
projectDispatch.setDispatchManHour(bo.getDispatchManHour());
projectDispatch.setActualManHour(bo.getDispatchManHour().subtract(bo.getDeductManHour()));
projectDispatch.setDeductManHour(bo.getDeductManHour());
return projectDispatch;
}).collect(Collectors.toList());
baseMapper.updateBatchById(dispatchList);
//计算总工时
BigDecimal reduce = dispatchList.stream().map(ErpRepairFormProjectDispatch::getActualManHour).reduce(BigDecimal.ZERO, BigDecimal::add);
ErpRepairFormProject project = new ErpRepairFormProject();
project.setId(boList.get(0).getRepairFormProjectId());
project.setActualTime(reduce);
projectMapper.updateById(project);
return true;
} }
/** /**
......
...@@ -44,6 +44,16 @@ export function updateRepairFormProjectDispatch(data) { ...@@ -44,6 +44,16 @@ export function updateRepairFormProjectDispatch(data) {
}) })
} }
// 批量修改报修单-报修项目-派工
export function updateRepairFormProjectDispatchBatch(data) {
return request({
url: '/business/repairFormProjectDispatch/batch',
method: 'put',
data: data
})
}
// 删除报修单-报修项目-派工 // 删除报修单-报修项目-派工
export function delRepairFormProjectDispatch(id) { export function delRepairFormProjectDispatch(id) {
return request({ return request({
......
...@@ -90,7 +90,8 @@ import { ...@@ -90,7 +90,8 @@ import {
delRepairFormProjectDispatch, delRepairFormProjectDispatch,
addRepairFormProjectDispatch, addRepairFormProjectDispatch,
updateRepairFormProjectDispatch, updateRepairFormProjectDispatch,
addRepairFormProjectDispatchP addRepairFormProjectDispatchP,
updateRepairFormProjectDispatchBatch
} from '@/api/business/repairFormProjectDispatch' } from '@/api/business/repairFormProjectDispatch'
import user from "../user/index" import user from "../user/index"
...@@ -205,7 +206,7 @@ export default { ...@@ -205,7 +206,7 @@ export default {
const totalDispatchManHour = this.repairFormProjectDispatchList.reduce((total, item) => { const totalDispatchManHour = this.repairFormProjectDispatchList.reduce((total, item) => {
return total + (Number(item.dispatchManHour) || 0); return total + (Number(item.dispatchManHour) || 0);
}, 0); }, 0);
return totalDispatchManHour !== Number(this.data.standardManHour); return totalDispatchManHour.toFixed(1) !== Number(this.data.standardManHour).toFixed(1);
} }
}, },
created() { created() {
...@@ -291,7 +292,7 @@ export default { ...@@ -291,7 +292,7 @@ export default {
const totalDispatchManHour = this.repairFormProjectDispatchList.reduce((total, item) => { const totalDispatchManHour = this.repairFormProjectDispatchList.reduce((total, item) => {
return total + (Number(item.dispatchManHour) || 0); return total + (Number(item.dispatchManHour) || 0);
}, 0); }, 0);
return totalDispatchManHour === Number(this.data.standardManHour); return totalDispatchManHour.toFixed(1) === Number(this.data.standardManHour).toFixed(1);
}, },
/** 分配工时变化处理 */ /** 分配工时变化处理 */
handleDispatchManHourChange(row) { handleDispatchManHourChange(row) {
...@@ -301,23 +302,34 @@ export default { ...@@ -301,23 +302,34 @@ export default {
}, 0); }, 0);
// 如果总分配工时不等于标准工时,显示提示 // 如果总分配工时不等于标准工时,显示提示
if (this.data.standardManHour && totalDispatchManHour !== Number(this.data.standardManHour)) { if (this.data.standardManHour && totalDispatchManHour.toFixed(1) !== Number(this.data.standardManHour).toFixed(1)) {
this.$message.warning(`总分配工时(${totalDispatchManHour})不等于项目标准工时(${this.data.standardManHour})`); this.$message.warning(`总分配工时(${totalDispatchManHour.toFixed(1)})不等于项目标准工时(${Number(this.data.standardManHour).toFixed(1)})`);
return false; return false;
} }
// 更新实际工时 // 更新实际工时
row.actualManHour = (Number(row.dispatchManHour) - Number(row.deductManHour)).toFixed(1); row.actualManHour = (Number(row.dispatchManHour) - Number(row.deductManHour)).toFixed(1);
// 提交更新 // 提交更新所有数据
this.submitForm(row); this.submitAllForm();
}, },
/** 提交按钮 */ /** 扣罚工时变化处理 */
submitForm(row) { submitForm(row) {
// 更新实际工时
row.actualManHour = (Number(row.dispatchManHour) - Number(row.deductManHour)).toFixed(1);
// 提交更新所有数据
this.submitAllForm();
},
/** 提交所有数据 */
submitAllForm() {
this.buttonLoading = true; this.buttonLoading = true;
updateRepairFormProjectDispatch(row).then(response => { // 使用批量更新接口提交所有行数据
updateRepairFormProjectDispatchBatch(this.repairFormProjectDispatchList).then(response => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList(); this.getList();
}).catch(error => {
console.error(error);
this.$modal.msgError("修改失败");
}).finally(() => { }).finally(() => {
this.buttonLoading = false; this.buttonLoading = false;
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment