装配报工、生产报工、异常排序

This commit is contained in:
Ledo 2025-01-18 12:02:34 +08:00
parent 4b96bdad5e
commit b1cb96d392
5 changed files with 28 additions and 45 deletions

View File

@ -168,7 +168,9 @@ public interface TaskDispatchDetailMapper extends BaseMapperX<TaskDispatchDetail
query.orderByDesc(TaskDispatchDetailDO::getDispatchId,TaskDispatchDetailDO::getSort); query.orderByDesc(TaskDispatchDetailDO::getDispatchId,TaskDispatchDetailDO::getSort);
}else { }else {
//未完工升序 //未完工升序
query.orderByAsc(TaskDispatchDetailDO::getDispatchId,TaskDispatchDetailDO::getSort)
query.eq(TaskDispatchDO::getDispatchStatus,2)
.orderByAsc(TaskDispatchDetailDO::getDispatchId,TaskDispatchDetailDO::getSort)
; ;
} }
if (CollUtil.isNotEmpty(postIds)) { if (CollUtil.isNotEmpty(postIds)) {

View File

@ -5,6 +5,7 @@ import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
import com.chanko.yunxi.mes.module.heli.controller.admin.unqualifiednotification.vo.UnqualifiedNotificationPageReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.unqualifiednotification.vo.UnqualifiedNotificationPageReqVO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.composition.CompositionDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.composition.CompositionDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plan.PlanDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plansub.PlanSubDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plansub.PlanSubDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.procedure.ProcedureDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.procedure.ProcedureDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO;
@ -35,6 +36,7 @@ public interface UnqualifiedNotificationMapper extends BaseMapperX<UnqualifiedNo
.select("u1.nickname as ownerName", "u2.nickname as creatorName", "u3.nickname as auditorName") .select("u1.nickname as ownerName", "u2.nickname as creatorName", "u3.nickname as auditorName")
.select("h.name as procedureName") .select("h.name as procedureName")
.leftJoin(PlanSubDO.class, "b", PlanSubDO::getProjectSubId, UnqualifiedNotificationDO::getProjectSubId) .leftJoin(PlanSubDO.class, "b", PlanSubDO::getProjectSubId, UnqualifiedNotificationDO::getProjectSubId)
.leftJoin(PlanDO.class,"p",PlanDO::getId,PlanSubDO::getProjectPlanId)
.leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, UnqualifiedNotificationDO::getProjectSubId) .leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, UnqualifiedNotificationDO::getProjectSubId)
.leftJoin(ProjectOrderDO.class, "d", ProjectOrderDO::getId, UnqualifiedNotificationDO::getProjectId) .leftJoin(ProjectOrderDO.class, "d", ProjectOrderDO::getId, UnqualifiedNotificationDO::getProjectId)
.leftJoin(CustomerDO.class, "e", CustomerDO::getId, ProjectOrderDO::getCustomerId) .leftJoin(CustomerDO.class, "e", CustomerDO::getId, ProjectOrderDO::getCustomerId)
@ -45,7 +47,8 @@ public interface UnqualifiedNotificationMapper extends BaseMapperX<UnqualifiedNo
.leftJoin(AdminUserDO.class, "u2", AdminUserDO::getId, UnqualifiedNotificationDO::getCreator) .leftJoin(AdminUserDO.class, "u2", AdminUserDO::getId, UnqualifiedNotificationDO::getCreator)
.leftJoin(AdminUserDO.class, "u3", AdminUserDO::getId, UnqualifiedNotificationDO::getAuditor) .leftJoin(AdminUserDO.class, "u3", AdminUserDO::getId, UnqualifiedNotificationDO::getAuditor)
.disableSubLogicDel() .disableSubLogicDel()
.orderByDesc(UnqualifiedNotificationDO::getId); .eq(PlanDO::getStatus,2)
.orderByDesc(PlanDO::getId);
query.like(!StringUtils.isEmpty(reqVO.getCode()), UnqualifiedNotificationDO::getCode, reqVO.getCode()) query.like(!StringUtils.isEmpty(reqVO.getCode()), UnqualifiedNotificationDO::getCode, reqVO.getCode())
.eq(!StringUtils.isEmpty(reqVO.getType()), UnqualifiedNotificationDO::getType, reqVO.getType()) .eq(!StringUtils.isEmpty(reqVO.getType()), UnqualifiedNotificationDO::getType, reqVO.getType())

View File

@ -136,7 +136,7 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
// 明细工序状态更新 // 明细工序状态更新
if(operateTypeEnum == OperateTypeEnum.SUBMIT){ if(operateTypeEnum == OperateTypeEnum.SUBMIT){
updateReqVO.getTaskDispatchDetails().forEach(taskDispatchDetailDO -> { updateReqVO.getTaskDispatchDetails().forEach(taskDispatchDetailDO -> {
if(taskDispatchDetailDO.getProcedureStatus().intValue() == 0 || if(taskDispatchDetailDO.getProcedureStatus().intValue() == 0||
(taskDispatchDetailDO.getBeforeAmount()!=null && taskDispatchDetailDO.getAmount()!=null && taskDispatchDetailDO.getAmount() != taskDispatchDetailDO.getBeforeAmount()) (taskDispatchDetailDO.getBeforeAmount()!=null && taskDispatchDetailDO.getAmount()!=null && taskDispatchDetailDO.getAmount() != taskDispatchDetailDO.getBeforeAmount())
|| (taskDispatchDetailDO.getBeforeAmount() == null && taskDispatchDetailDO.getAmount() != null) || (taskDispatchDetailDO.getBeforeAmount() == null && taskDispatchDetailDO.getAmount() != null)
|| (taskDispatchDetailDO.getBeforeAmount() != null && taskDispatchDetailDO.getAmount() == null) || (taskDispatchDetailDO.getBeforeAmount() != null && taskDispatchDetailDO.getAmount() == null)
@ -160,7 +160,10 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
updateObj.setDispatchStatus(TaskDispatchStatusEnum.valueOf(updateReqVO.getActive()).getCode()); updateObj.setDispatchStatus(TaskDispatchStatusEnum.valueOf(updateReqVO.getActive()).getCode());
taskDispatchMapper.updateById(updateObj); taskDispatchMapper.updateById(updateObj);
// 更新子表 // 更新子表
updateTaskDispatchDetailList(updateReqVO.getId(), updateReqVO.getTaskDispatchDetails()); if(operateTypeEnum != OperateTypeEnum.CANCEL_SUBMIT){
updateTaskDispatchDetailList(updateReqVO.getId(), updateReqVO.getTaskDispatchDetails());
}
} }
@Override @Override
@ -357,31 +360,6 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
postIds.add(fpUserDetailDO.getPostId()); postIds.add(fpUserDetailDO.getPostId());
} }
PageResult<TaskDispatchDetailDO> taskDispatchDetailDOPageResult = taskDispatchDetailMapper.selectPageWx(pageReqVO, postIds); PageResult<TaskDispatchDetailDO> taskDispatchDetailDOPageResult = taskDispatchDetailMapper.selectPageWx(pageReqVO, postIds);
// List<TaskDispatchDetailDO> list = taskDispatchDetailDOPageResult.getList();
// List<TaskDispatchDetailDO> afterList = new ArrayList<>();
// if (CollUtil.isNotEmpty(list)){
// Map<String, List<TaskDispatchDetailDO>> collect ;
// if(pageReqVO.getProcedureStatusList().size()==1 && pageReqVO.getProcedureStatusList().get(0)==2){
// collect = list.stream()
// .collect(Collectors.groupingBy(
// TaskDispatchDetailDO::getDispatchCode,
// () -> new TreeMap<>(Comparator.reverseOrder()),
// Collectors.toList()
// ));
//
// }else {
// collect = list.stream()
// .collect(Collectors.groupingBy(
// TaskDispatchDetailDO::getDispatchCode,
// TreeMap::new,
// Collectors.toList()
// ));
// }
// collect.forEach((code,list2)->{
// afterList.addAll(list2);
// });
// }
// taskDispatchDetailDOPageResult.setList(afterList);
return taskDispatchDetailDOPageResult; return taskDispatchDetailDOPageResult;
} }
@Override @Override

View File

@ -245,7 +245,7 @@ class="!w-260px" v-model="formData.createTime" type="date" value-format="x"
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">派工明细</span> <div class="hl-card-info-icona"></div><span class="hl-card-info-text">派工明细</span>
</template> </template>
<el-row> <el-row>
<el-col v-if="active != 'detail' || !detailDisabled"> <el-col v-if=" (formData.dispatchStatus != 2 && active != 'detail') || !detailDisabled">
<el-button class="hl-addbutton" type="primary" size="large" @click="onAddItem">新增</el-button> <el-button class="hl-addbutton" type="primary" size="large" @click="onAddItem">新增</el-button>
</el-col> </el-col>
<el-col> <el-col>
@ -260,7 +260,7 @@ ref="subFormRef" :model="formData.taskDispatchDetails" :rules="subFormRules"
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.procedureId`" :rules="subFormRules.procedureId" class="mb-0px!"> <el-form-item :prop="`${$index}.procedureId`" :rules="subFormRules.procedureId" class="mb-0px!">
<ProcedureSelect <ProcedureSelect
:disabled="detailDisabled || row.beginProduce != 0 || row.procedureStatus != 0" :disabled="detailDisabled || row.procedureStatus != 0"
v-model="row.procedureId" v-model="row.procedureId"
@update:new-value="(val) => { handleSelectedProcedure(row, val); }" /> @update:new-value="(val) => { handleSelectedProcedure(row, val); }" />
</el-form-item> </el-form-item>
@ -276,7 +276,7 @@ ref="subFormRef" :model="formData.taskDispatchDetails" :rules="subFormRules"
<el-form-item :prop="`${$index}.sort`" :rules="subFormRules.sort" class="mb-0px!"> <el-form-item :prop="`${$index}.sort`" :rules="subFormRules.sort" class="mb-0px!">
<el-input-number <el-input-number
min="0" :precision="0" class="!w-240px" min="0" :precision="0" class="!w-240px"
:disabled="detailDisabled || row.beginProduce != 0 || row.procedureStatus != 0" v-model="row.sort" :disabled="detailDisabled || (row.beginProduce != 0 && row.procedureStatus != 0)" v-model="row.sort"
placeholder="请输入顺序号" /> placeholder="请输入顺序号" />
</el-form-item> </el-form-item>
</template> </template>
@ -288,7 +288,7 @@ min="0" :precision="0" class="!w-240px"
<!-- <UserSelect--> <!-- <UserSelect-->
<!--v-model="row.owner" :disabled="detailDisabled || row.procedureStatus != 0"--> <!--v-model="row.owner" :disabled="detailDisabled || row.procedureStatus != 0"-->
<!-- @update:new-value="handleSelectedUser($index, $event)" />--> <!-- @update:new-value="handleSelectedUser($index, $event)" />-->
<el-select v-model="row.owner" :disabled="detailDisabled || row.beginProduce != 0 || row.procedureStatus != 0" @update:new-value="handleSelectedUser($index, $event)"> <el-select v-model="row.owner" :disabled="detailDisabled || (row.beginProduce != 0 && row.procedureStatus != 0)" @update:new-value="handleSelectedUser($index, $event)">
<el-option <el-option
v-for="dict in userInit" :key="dict.id" v-for="dict in userInit" :key="dict.id"
:label="dict.username+' '+dict.nickname" :value="dict.id" /> :label="dict.username+' '+dict.nickname" :value="dict.id" />
@ -301,7 +301,7 @@ v-for="dict in userInit" :key="dict.id"
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.startTime`" :rules="subFormRules.startTime" class="mb-0px!"> <el-form-item :prop="`${$index}.startTime`" :rules="subFormRules.startTime" class="mb-0px!">
<el-date-picker <el-date-picker
:disabled="detailDisabled || row.beginProduce != 0 || row.procedureStatus != 0" v-model="row.startTime" :disabled="detailDisabled " v-model="row.startTime"
type="date" value-format="x" placeholder="选择预计开始日期" /> type="date" value-format="x" placeholder="选择预计开始日期" />
</el-form-item> </el-form-item>
</template> </template>
@ -311,7 +311,7 @@ v-for="dict in userInit" :key="dict.id"
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.endTime`" :rules="subFormRules.endTime" class="mb-0px!"> <el-form-item :prop="`${$index}.endTime`" :rules="subFormRules.endTime" class="mb-0px!">
<el-date-picker <el-date-picker
:disabled="detailDisabled || row.beginProduce != 0 || row.procedureStatus != 0" v-model="row.endTime" :disabled="detailDisabled " v-model="row.endTime"
type="date" value-format="x" placeholder="选择预计结束日期" /> type="date" value-format="x" placeholder="选择预计结束日期" />
</el-form-item> </el-form-item>
</template> </template>
@ -322,7 +322,7 @@ v-for="dict in userInit" :key="dict.id"
<el-form-item :prop="`${$index}.workTime`" :rules="subFormRules.workTime" class="mb-0px!"> <el-form-item :prop="`${$index}.workTime`" :rules="subFormRules.workTime" class="mb-0px!">
<el-input-number <el-input-number
min="0" :precision="2" class="!w-240px" min="0" :precision="2" class="!w-240px"
:disabled="detailDisabled|| row.beginProduce != 0 || row.procedureStatus != 0" v-model="row.workTime" :disabled="detailDisabled" v-model="row.workTime"
placeholder="请输入预计工时" /> placeholder="请输入预计工时" />
</el-form-item> </el-form-item>
</template> </template>
@ -344,7 +344,7 @@ min="0" :precision="2" class="!w-240px"
<EquipmentSelect <EquipmentSelect
v-model="row.deviceModel" v-model="row.deviceModel"
@update:new-value="handleSelectedequip($index, $event)" @update:new-value="handleSelectedequip($index, $event)"
:disabled="detailDisabled || row.beginProduce != 0 || row.procedureStatus != 0" /> :disabled="detailDisabled || (row.beginProduce != 0 && row.procedureStatus != 0)" />
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
@ -352,7 +352,7 @@ min="0" :precision="2" class="!w-240px"
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.summary`" class="mb-0px!"> <el-form-item :prop="`${$index}.summary`" class="mb-0px!">
<el-input <el-input
:disabled="detailDisabled || row.beginProduce != 0 || row.procedureStatus != 0" v-model="row.summary" :disabled="detailDisabled ||(row.beginProduce != 0 && row.procedureStatus != 0)" v-model="row.summary"
placeholder="请输入工序要点" /> placeholder="请输入工序要点" />
</el-form-item> </el-form-item>
</template> </template>
@ -366,7 +366,7 @@ min="0" :precision="2" class="!w-240px"
<el-table-column fixed="right" label="操作" align="center" min-width="100"> <el-table-column fixed="right" label="操作" align="center" min-width="100">
<template #default="scope"> <template #default="scope">
<el-button <el-button
v-if="'detail' != active && scope.row.procedureStatus == 0" link type="danger" v-if="'detail' != active && (scope.row.beginProduce == 0 && scope.row.procedureStatus == 0)" link type="danger"
size="small" @click.prevent="onDeleteItem(scope.$index)"> size="small" @click.prevent="onDeleteItem(scope.$index)">
删除 删除
</el-button> </el-button>

View File

@ -296,7 +296,7 @@ v-model="row.owner" :disabled="detailDisabled || row.procedureStatus != 0"
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.startTime`" :rules="subFormRules.startTime" class="mb-0px!"> <el-form-item :prop="`${$index}.startTime`" :rules="subFormRules.startTime" class="mb-0px!">
<el-date-picker <el-date-picker
:disabled="detailDisabled || row.procedureStatus != 0" v-model="row.startTime" :disabled="detailDisabled " v-model="row.startTime"
type="date" value-format="x" placeholder="选择预计开始日期" /> type="date" value-format="x" placeholder="选择预计开始日期" />
</el-form-item> </el-form-item>
</template> </template>
@ -306,7 +306,7 @@ v-model="row.owner" :disabled="detailDisabled || row.procedureStatus != 0"
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.endTime`" :rules="subFormRules.endTime" class="mb-0px!"> <el-form-item :prop="`${$index}.endTime`" :rules="subFormRules.endTime" class="mb-0px!">
<el-date-picker <el-date-picker
:disabled="detailDisabled || row.procedureStatus != 0" v-model="row.endTime" :disabled=" detailDisabled" v-model="row.endTime"
type="date" value-format="x" placeholder="选择预计结束日期" /> type="date" value-format="x" placeholder="选择预计结束日期" />
</el-form-item> </el-form-item>
</template> </template>
@ -317,7 +317,7 @@ v-model="row.owner" :disabled="detailDisabled || row.procedureStatus != 0"
<el-form-item :prop="`${$index}.workTime`" :rules="subFormRules.workTime" class="mb-0px!"> <el-form-item :prop="`${$index}.workTime`" :rules="subFormRules.workTime" class="mb-0px!">
<el-input-number <el-input-number
min="0" :precision="2" class="!w-240px" min="0" :precision="2" class="!w-240px"
:disabled="detailDisabled || row.beginProduce != 0 || row.procedureStatus != 0" v-model="row.workTime" :disabled="detailDisabled " v-model="row.workTime"
placeholder="请输入预计工时" /> placeholder="请输入预计工时" />
</el-form-item> </el-form-item>
</template> </template>
@ -367,7 +367,7 @@ v-model="row.deviceModel"
<el-table-column fixed="right" label="操作" align="center" min-width="90"> <el-table-column fixed="right" label="操作" align="center" min-width="90">
<template #default="scope"> <template #default="scope">
<el-button <el-button
v-if="'detail' != active && scope.row.procedureStatus == 0" link type="danger" v-if="'detail' != active && (scope.row.beginProduce == 0 && scope.row.procedureStatus == 0)" link type="danger"
size="small" @click.prevent="onDeleteItem(scope.row,scope.$index)"> size="small" @click.prevent="onDeleteItem(scope.row,scope.$index)">
删除 删除
</el-button> </el-button>
@ -459,10 +459,10 @@ v-if="formData.dispatchStatus == 2" @click="printHandle(formData.id)" :disabled=
</span> </span>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button @click="centerDialogVisible = false">取消</el-button>
<el-button type="primary" @click="sureToCancle()"> <el-button type="primary" @click="sureToCancle()">
确认 确认
</el-button> </el-button>
<el-button @click="centerDialogVisible = false">取消</el-button>
</span> </span>
</template> </template>
</el-dialog> </el-dialog>
@ -1086,7 +1086,6 @@ const submitForm = async (operate) => {
} }
} }
const data = formData.value as unknown as TaskDispatchApi.TaskDispatchVO const data = formData.value as unknown as TaskDispatchApi.TaskDispatchVO
console.log(data);
let dataId = await TaskDispatchApi.operateTaskDispatch(data) let dataId = await TaskDispatchApi.operateTaskDispatch(data)
message.success(t('common.operationSuccess')) message.success(t('common.operationSuccess'))
@ -1146,6 +1145,7 @@ const onAddItem = () => {
summary: undefined, summary: undefined,
status: 1, status: 1,
procedureStatus: 0, procedureStatus: 0,
beginProduce:0,
dispatchId: undefined, dispatchId: undefined,
procedureCode:'' , procedureCode:'' ,
isReport:0 , isReport:0 ,