修改提交
This commit is contained in:
parent
d003a4a9aa
commit
df4bc39ad9
@ -56,7 +56,9 @@ public class TaskReportRespVO {
|
||||
@Schema(description = "报工人")
|
||||
@ExcelProperty("报工人")
|
||||
private String ownerName;
|
||||
|
||||
@Schema(description = "原因说明")
|
||||
@ExcelProperty("原因说明")
|
||||
private String remark;
|
||||
@Schema(description = "报工工序")
|
||||
@ExcelProperty("报工工序")
|
||||
private String procedureName;
|
||||
|
@ -52,5 +52,7 @@ public class TaskReportSaveReqVO {
|
||||
@Schema(description = "报工工时", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "报工工时不能为空")
|
||||
private BigDecimal workTime;
|
||||
|
||||
@Schema(description = "原因说明", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "原因说明不能为空")
|
||||
private String remark;
|
||||
}
|
||||
|
@ -81,6 +81,7 @@ public class TaskDispatchDetailDO extends BaseDO {
|
||||
private LocalDateTime endTime;
|
||||
private Long dispatchType;
|
||||
private String postId;
|
||||
private String isOutsourcing;
|
||||
/**
|
||||
* 工序状态 默认 已提交 已完成 0 1 2
|
||||
*/
|
||||
|
@ -69,6 +69,8 @@ public class TaskReportDO extends BaseDO {
|
||||
*/
|
||||
private BigDecimal workTime;
|
||||
|
||||
private String workType;
|
||||
private String remark;
|
||||
@TableField(exist = false)
|
||||
private String projectName;
|
||||
|
||||
|
@ -163,7 +163,7 @@ public interface TaskDispatchMapper extends BaseMapperX<TaskDispatchDO> {
|
||||
query.selectAll(TaskDispatchDO.class)
|
||||
.select("z.name as materialName", "z.procedure_type as materialType", "SUM(COALESCE(d.work_time, 0)) as amount")
|
||||
.select("p.grade_cost as shiJiMoney","u1.nickname as ownerName","p.name as name")
|
||||
.select(" ROUND(SUM(COALESCE(d.work_time, 0)) * p.grade_cost, 2) as zanGuMoney")
|
||||
.select(" ROUND(SUM(CASE WHEN d.work_type = 1 THEN COALESCE(d.work_time, 0) * p.grade_cost ELSE COALESCE(d.work_time, 0) END), 2) as zanGuMoney")
|
||||
.leftJoin(TaskDispatchDetailDO.class, "x", TaskDispatchDetailDO::getDispatchId,TaskDispatchDO::getId)
|
||||
.leftJoin(ProcedureDO.class, "z", ProcedureDO::getId, TaskDispatchDetailDO::getProcedureId)
|
||||
.leftJoin(TaskReportDO.class, "d", TaskReportDO::getDispatchDetailId,TaskDispatchDetailDO::getId)
|
||||
|
@ -37,6 +37,8 @@ import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService
|
||||
import com.chanko.yunxi.mes.module.heli.service.zjpgmaster.ZjPgMasterService;
|
||||
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
||||
import com.chanko.yunxi.mes.module.system.service.user.AdminUserService;
|
||||
import io.minio.messages.Item;
|
||||
import org.checkerframework.checker.units.qual.N;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.StringUtils;
|
||||
@ -501,6 +503,11 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
||||
}else{
|
||||
lastReportDO.setOwner(taskDispatchDetailDO.getOwner());
|
||||
}
|
||||
if ("Y".equals(taskDispatchDetailDO.getIsOutsourcing())){
|
||||
lastReportDO.setWorkType("2");
|
||||
}else {
|
||||
lastReportDO.setWorkType("1");
|
||||
}
|
||||
//更新生产计划单
|
||||
if (planDO.getStatus() != 2 && planDO.getStatus()!=3){
|
||||
planDO.setStatus(2);
|
||||
@ -513,6 +520,11 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
||||
taskReportMapper.updateById(lastReportDO);
|
||||
break;
|
||||
case SUBMIT:
|
||||
if ("Y".equals(taskDispatchDetailDO.getIsOutsourcing())){
|
||||
lastReportDO.setWorkType("2");
|
||||
}else {
|
||||
lastReportDO.setWorkType("1");
|
||||
}
|
||||
lastReportDO.setAmount(operateReqVO.getAmount())
|
||||
.setWorkTime(operateReqVO.getWorkTime())
|
||||
.setReportTime(now)
|
||||
@ -685,7 +697,18 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
||||
}
|
||||
|
||||
private void createTaskDispatchDetailList(Long dispatchId, List<TaskDispatchDetailDO> list) {
|
||||
list.forEach(o -> o.setDispatchId(dispatchId));
|
||||
// list.forEach(o -> o.setDispatchId(dispatchId));
|
||||
list = list.stream()
|
||||
.peek(item -> {
|
||||
item.setDispatchId(dispatchId);
|
||||
if ("true".equals(item.getIsOutsourcing())) {
|
||||
// 外协处理逻辑
|
||||
item.setIsOutsourcing("Y");
|
||||
}else {
|
||||
item.setIsOutsourcing("N");
|
||||
}
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
// 分组更新与插入
|
||||
List<TaskDispatchDetailDO> updateList = list.stream().filter(o -> o.getId() != null).collect(Collectors.toList());
|
||||
List<TaskDispatchDetailDO> insertList = list.stream().filter(o -> o.getId() == null).collect(Collectors.toList());
|
||||
|
@ -10,6 +10,7 @@ export interface TaskReportVO {
|
||||
reportTime: Date
|
||||
hasReport: number
|
||||
status: number
|
||||
remark:string
|
||||
}
|
||||
|
||||
// 查询任务报工分页
|
||||
|
@ -190,7 +190,9 @@ class="!w-260px" v-model="formData.createTime" type="date" value-format="x"
|
||||
<el-checkbox label="刻字" size="large" border />
|
||||
<el-checkbox label="电焊" size="large" border />
|
||||
<el-checkbox label="钻孔" size="large" border />
|
||||
<el-checkbox label="装配" size="large" border />
|
||||
<!-- <el-checkbox label="装配" size="large" border />-->
|
||||
<el-checkbox label="编程" size="large" border />
|
||||
<el-checkbox label="开粗" size="large" border />
|
||||
</el-checkbox-group>
|
||||
<!-- <el-button class="hl-addbutton" type="primary" size="large" @click="onAddItem">新增</el-button> -->
|
||||
</el-col>
|
||||
@ -201,7 +203,12 @@ class="!w-260px" v-model="formData.createTime" type="date" value-format="x"
|
||||
v-loading="subFormLoading" label-width="0">
|
||||
<el-table :data="formData.taskDispatchDetails" height="250" >
|
||||
|
||||
<el-table-column fixed label="顺序号" align="center" prop="sort" width="145px" >
|
||||
<el-table-column fixed label="是否外协" align="center" width="100">
|
||||
<template #default="{ row }">
|
||||
<el-checkbox v-model="row.isOutsourcing" @change="handleOutsourcingChange(row)" :disabled="detailDisabled||row.beginProduce != 0 || row.procedureStatus != 0"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed label="顺序号" align="center" prop="sort" width="120px" >
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.sort`" :rules="subFormRules.sort" class="mb-0px!">
|
||||
<el-input-number
|
||||
@ -241,7 +248,7 @@ class="!w-260px" v-model="formData.createTime" type="date" value-format="x"
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed label="派工类型" align="center" prop="dispatchType" width="145px">
|
||||
<template #header> <span class="hl-table_header">*</span>派工类型</template>
|
||||
<template #header>派工类型</template>
|
||||
<template #default="{ row }">
|
||||
<el-radio-group size="small" :disabled="detailDisabled||row.beginProduce != 0 || row.procedureStatus != 0" v-model="row.dispatchType" @change="()=>dispatchTypeHasChange(row)">
|
||||
<el-radio-button :label="1">人员</el-radio-button>
|
||||
@ -256,7 +263,7 @@ class="!w-260px" v-model="formData.createTime" type="date" value-format="x"
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="负责人" align="center" prop="owner" width="135px">
|
||||
<template #header> <span class="hl-table_header">*</span>负责人</template>
|
||||
<template #header>负责人</template>
|
||||
<template #default="{ row , $index}">
|
||||
<el-form-item :prop="`${$index}.owner`" class="mb-0px!">
|
||||
<el-select :disabled="detailDisabled||row.beginProduce != 0 || row.procedureStatus != 0" clearable filterable v-if="row.dispatchType==1 " v-model="row.owner" placeholder="请选择负责人" style="max-width: 110px">
|
||||
@ -292,9 +299,9 @@ v-model="row.owner" :disabled="detailDisabled || row.procedureStatus != 0"
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="预计开始日期" min-width="170px">
|
||||
<template #header> <span class="hl-table_header">*</span>预计开始日期</template>
|
||||
<template #header> 预计开始日期</template>
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.startTime`" :rules="subFormRules.startTime" class="mb-0px!">
|
||||
<el-form-item :prop="`${$index}.startTime`" class="mb-0px!">
|
||||
<el-date-picker
|
||||
:disabled="detailDisabled " v-model="row.startTime"
|
||||
type="date" value-format="x" placeholder="选择预计开始日期" @change="changePrepTime('START',$index,row)" />
|
||||
@ -302,9 +309,9 @@ v-model="row.owner" :disabled="detailDisabled || row.procedureStatus != 0"
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="预计结束日期" min-width="170px">
|
||||
<template #header> <span class="hl-table_header">*</span>预计结束日期</template>
|
||||
<template #header>预计结束日期</template>
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.endTime`" :rules="subFormRules.endTime" class="mb-0px!">
|
||||
<el-form-item :prop="`${$index}.endTime`" class="mb-0px!">
|
||||
<el-date-picker
|
||||
:disabled=" detailDisabled" v-model="row.endTime"
|
||||
type="date" value-format="x" placeholder="选择预计结束日期" @change="changePrepTime('END',$index,row)"/>
|
||||
@ -312,9 +319,9 @@ v-model="row.owner" :disabled="detailDisabled || row.procedureStatus != 0"
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="预计工时" align="center" prop="workTime" width="145px">
|
||||
<template #header> <span class="hl-table_header">*</span>预计工时</template>
|
||||
<template #header> 预计工时</template>
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.workTime`" :rules="subFormRules.workTime" class="mb-0px!">
|
||||
<el-form-item :prop="`${$index}.workTime`" class="mb-0px!">
|
||||
<el-input-number
|
||||
min="0" :precision="2" class="!w-240px"
|
||||
:disabled="detailDisabled " v-model="row.workTime"
|
||||
@ -323,9 +330,9 @@ min="0" :precision="2" class="!w-240px"
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="派工数量" align="center" prop="amount" width="145px">
|
||||
<template #header> <span class="hl-table_header">*</span>派工数量</template>
|
||||
<template #header>派工数量</template>
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.amount`" :rules="subFormRules.amount" class="mb-0px!">
|
||||
<el-form-item :prop="`${$index}.amount`" class="mb-0px!">
|
||||
<el-input-number
|
||||
min="0" :max="formData.amount" :precision="0" class="!w-240px"
|
||||
:disabled="detailDisabled" v-model="row.amount"
|
||||
@ -343,12 +350,12 @@ v-model="row.deviceModel"
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工序要点" prop="summary" min-width="130px">
|
||||
<el-table-column label="备注" prop="summary" min-width="130px">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.summary`" class="mb-0px!">
|
||||
<el-input
|
||||
:disabled="detailDisabled ||row.beginProduce != 0 || row.procedureStatus != 0" v-model="row.summary"
|
||||
placeholder="请输入工序要点" />
|
||||
placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -1193,6 +1200,11 @@ const queryData = async (id?: number) => {
|
||||
checkList.value = [];
|
||||
if(formData.value.taskDispatchDetails!=null){
|
||||
formData.value.taskDispatchDetails.forEach(item=>{
|
||||
if ("Y"==item.isOutsourcing){
|
||||
item.isOutsourcing=true
|
||||
}else{
|
||||
item.isOutsourcing=false
|
||||
}
|
||||
procedureList.value.forEach(items =>{
|
||||
if(items.id == item.procedureId){
|
||||
checkList.value.push(items.name)
|
||||
@ -1268,6 +1280,18 @@ const submitForm = async (operate) => {
|
||||
}
|
||||
var ownerIsNull = false;
|
||||
for(var i = 0 ; i < formData.value.taskDispatchDetails.length ; i++){
|
||||
if( formData.value.taskDispatchDetails[i].startTime == undefined || formData.value.taskDispatchDetails[i].startTime == null ||formData.value.taskDispatchDetails[i].startTime == ''){
|
||||
message.error("第"+(i+1)+'行预计开始日期为空,请确认')
|
||||
return
|
||||
}
|
||||
if( formData.value.taskDispatchDetails[i].endTime == undefined || formData.value.taskDispatchDetails[i].endTime == null ||formData.value.taskDispatchDetails[i].endTime == ''){
|
||||
message.error("第"+(i+1)+'行预计结束日期为空,请确认')
|
||||
return
|
||||
}
|
||||
if( formData.value.taskDispatchDetails[i].amount == undefined || formData.value.taskDispatchDetails[i].amount == null ||formData.value.taskDispatchDetails[i].amount == ''){
|
||||
message.error("第"+(i+1)+'行派工数量为空,请确认')
|
||||
return
|
||||
}
|
||||
if(formData.value.taskDispatchDetails[i].dispatchType ==2){
|
||||
if( formData.value.taskDispatchDetails[i].postId == undefined || formData.value.taskDispatchDetails[i].postId == null ||formData.value.taskDispatchDetails[i].postId == ''){
|
||||
message.error('请选择岗位!')
|
||||
@ -1461,6 +1485,9 @@ const onDeleteItem = async (row,index) => {
|
||||
let id = row.id
|
||||
if (id) await TaskDispatchApi.deleteTaskDispatchDetail(id)
|
||||
message.success(t('common.delSuccess'))
|
||||
}
|
||||
const handleOutsourcingChange= async (row: any) => {
|
||||
|
||||
}
|
||||
const handleSelectedProcedure = async (row: any) => {
|
||||
console.log(row);
|
||||
|
@ -13,6 +13,9 @@
|
||||
<el-form-item label="报工数量" prop="amount">
|
||||
<el-input v-model="formData.amount" placeholder="请输入报工数量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="原因说明" prop="remark">
|
||||
<el-input v-model="formData.remark" placeholder="请输入原因说明" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
|
||||
@ -42,10 +45,12 @@ const formData = ref({
|
||||
hasReport: undefined,
|
||||
status: undefined,
|
||||
workTime: undefined,
|
||||
remark:undefined,
|
||||
})
|
||||
const formRules = reactive({
|
||||
amount: [{ required: true, message: '报工数量不能为空', trigger: 'blur' }],
|
||||
workTime: [{ required: true, message: '报工工时不能为空', trigger: 'blur' }],
|
||||
remark: [{ required: true, message: '原因说明不能为空', trigger: 'blur' }],
|
||||
})
|
||||
const formRef = ref() // 表单 Ref
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user