近期更新

This commit is contained in:
z 2025-10-09 22:20:22 +08:00
parent 05383c2355
commit 3e02d89015
17 changed files with 93 additions and 16 deletions

View File

@ -86,5 +86,7 @@ public class PlanTaskRespVO {
@Schema(description = "bom编号") @Schema(description = "bom编号")
@ExcelProperty("bom编号") @ExcelProperty("bom编号")
private String bomCode; private String bomCode;
private Integer refreshStatus;
} }

View File

@ -79,5 +79,7 @@ public class PlanTaskDO extends BaseDO {
private String bomCode; private String bomCode;
@TableField(exist = false) @TableField(exist = false)
private Long projectSubNum; private Long projectSubNum;
@TableField(exist = false)
private Integer refreshStatus;
} }

View File

@ -9,6 +9,8 @@ import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum;
import com.chanko.yunxi.mes.module.heli.enums.ProcessBomStatusEnum; import com.chanko.yunxi.mes.module.heli.enums.ProcessBomStatusEnum;
import lombok.*; import lombok.*;
import java.time.LocalDateTime;
/** /**
* 工艺bom DO * 工艺bom DO
* *
@ -67,6 +69,10 @@ public class ProcessBomDO extends BaseDO {
* 审核人 * 审核人
*/ */
private Long shenheUser; private Long shenheUser;
/**
* 审核时间
*/
private LocalDateTime shenheTime;
/** /**
* 编辑状态 0.初始状态 1.被修改了 * 编辑状态 0.初始状态 1.被修改了

View File

@ -260,14 +260,21 @@ public interface MaterialPlanBoomMapper extends BaseMapperX<MaterialPlanBoomDO>
if (Objects.nonNull(pageReqVO.getMplanStatus())) { if (Objects.nonNull(pageReqVO.getMplanStatus())) {
// 根据 mplanStatus 的值动态设置排序字段 // 根据 mplanStatus 的值动态设置排序字段
if (pageReqVO.getMplanStatus() == 1) { if (pageReqVO.getMplanStatus() == 0){
query.orderByAsc(MaterialPlanDO::getProjectName);
query.orderByAsc(ProcessBomDetailDO::getBlueprintNo);
}else if (pageReqVO.getMplanStatus() == 1 || pageReqVO.getMplanStatus() == 2) {
query.orderByDesc(MaterialPlanBoomDO::getPurchaseNo); query.orderByDesc(MaterialPlanBoomDO::getPurchaseNo);
query.orderByAsc(ProcessBomDetailDO::getBlueprintNo);
} else { } else {
query.orderByAsc(MaterialPlanBoomDO::getCreateTime); query.orderByAsc(MaterialPlanBoomDO::getCreateTime);
} }
} }else {
query.orderByDesc(MaterialPlanDO::getProjectMaterialPlanNo);
query.orderByAsc(ProcessBomDetailDO::getBlueprintNo);
}
PageResult<MaterialPlanBoomDO> pageResult = selectPage(pageReqVO, query); PageResult<MaterialPlanBoomDO> pageResult = selectPage(pageReqVO, query);
return pageResult; return pageResult;
} }

View File

@ -43,7 +43,7 @@ public interface PlanTaskMapper extends BaseMapperX<PlanTaskDO> {
.leftJoin(CustomerDO.class, "e", CustomerDO::getId, ProjectOrderDO::getCustomerId) .leftJoin(CustomerDO.class, "e", CustomerDO::getId, ProjectOrderDO::getCustomerId)
.leftJoin(ProcessBomDO.class, "pb", ProcessBomDO::getId, PlanTaskDO::getProcessBomId) .leftJoin(ProcessBomDO.class, "pb", ProcessBomDO::getId, PlanTaskDO::getProcessBomId)
.disableSubLogicDel() .disableSubLogicDel()
.orderByDesc(PlanTaskDO::getCreateTime); .orderByDesc(ProcessBomDO::getShenheTime);
query.like(!StringUtils.isEmpty(reqVO.getTaskNo()), PlanTaskDO::getTaskNo, reqVO.getTaskNo()) query.like(!StringUtils.isEmpty(reqVO.getTaskNo()), PlanTaskDO::getTaskNo, reqVO.getTaskNo())
.like(!StringUtils.isEmpty(reqVO.getProjectCode()), "p.code", reqVO.getProjectCode()) .like(!StringUtils.isEmpty(reqVO.getProjectCode()), "p.code", reqVO.getProjectCode())
.like(!StringUtils.isEmpty(reqVO.getCustomerName()), "e.name", reqVO.getCustomerName()) .like(!StringUtils.isEmpty(reqVO.getCustomerName()), "e.name", reqVO.getCustomerName())

View File

@ -1,5 +1,6 @@
package com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermakedetail; package com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermakedetail;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
@ -24,6 +25,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermakedetail.P
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.supplier.SupplierDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.supplier.SupplierDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskreport.TaskReportDO;
import com.chanko.yunxi.mes.module.heli.service.purchaseordermakedetail.PurchaseOrderMakeDetailService; import com.chanko.yunxi.mes.module.heli.service.purchaseordermakedetail.PurchaseOrderMakeDetailService;
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper;
@ -201,6 +203,15 @@ public interface PurchaseOrderMakeDetailMapper extends BaseMapperX<PurchaseOrder
.like(ObjectUtil.isNotEmpty(pageReqVO.getBlueprintNo()), ProcessBomDetailDO::getBlueprintNo, pageReqVO.getBlueprintNo()) .like(ObjectUtil.isNotEmpty(pageReqVO.getBlueprintNo()), ProcessBomDetailDO::getBlueprintNo, pageReqVO.getBlueprintNo())
.like(ObjectUtil.isNotEmpty(pageReqVO.getProcedureName()), ProcedureDO::getName, pageReqVO.getProcedureName()) .like(ObjectUtil.isNotEmpty(pageReqVO.getProcedureName()), ProcedureDO::getName, pageReqVO.getProcedureName())
.eq(ObjectUtil.isNotEmpty(pageReqVO.getReceivingStatus()), "COALESCE(no.receiving_status, 1) ", pageReqVO.getReceivingStatus()) .like(ObjectUtil.isNotEmpty(pageReqVO.getSupplierName()), SupplierDO::getBrief, pageReqVO.getSupplierName()); .eq(ObjectUtil.isNotEmpty(pageReqVO.getReceivingStatus()), "COALESCE(no.receiving_status, 1) ", pageReqVO.getReceivingStatus()) .like(ObjectUtil.isNotEmpty(pageReqVO.getSupplierName()), SupplierDO::getBrief, pageReqVO.getSupplierName());
if (pageReqVO.getCreateTime() != null) {
LocalDateTime endDateTime = pageReqVO.getCreateTime()[1];
// 重置时间为 23:59:59
LocalDateTime endOfDay = endDateTime
.withHour(23)
.withMinute(59)
.withSecond(59);
query.between(PurchaseOrderMakeDetailDO::getCreateTime, pageReqVO.getCreateTime()[0], endOfDay);
}
return selectPage(pageReqVO, query); return selectPage(pageReqVO, query);
} }
} }

View File

@ -1,5 +1,6 @@
package com.chanko.yunxi.mes.module.heli.service.plantask; package com.chanko.yunxi.mes.module.heli.service.plantask;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.chanko.yunxi.mes.framework.common.enums.BomEditStatusEnum; import com.chanko.yunxi.mes.framework.common.enums.BomEditStatusEnum;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.bdgzsomthing.bdgzsomthingDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.bdgzsomthing.bdgzsomthingDO;
@ -126,7 +127,27 @@ public class PlanTaskServiceImpl implements PlanTaskService {
@Override @Override
public PageResult<PlanTaskDO> getPlanTaskPage(PlanTaskPageReqVO pageReqVO) { public PageResult<PlanTaskDO> getPlanTaskPage(PlanTaskPageReqVO pageReqVO) {
return planTaskMapper.selectPage(pageReqVO); PageResult<PlanTaskDO> pageResult = planTaskMapper.selectPage(pageReqVO);
for (PlanTaskDO planTaskDO : pageResult.getList()) {
if(planTaskDO.getProcessBomId()==null){
// 无bomid时需要刷新
planTaskDO.setRefreshStatus(1);
}else{
ProcessBomDO processBomDO = processBomMapper.selectById(planTaskDO.getProcessBomId());
// 生产任务版本号与bom版本号不同需要刷新
if (ObjectUtil.isNotEmpty(processBomDO)&&ObjectUtil.isNotEmpty(planTaskDO)){
if(!planTaskDO.getBomVersion().equals(processBomDO.getVersion())){
planTaskDO.setRefreshStatus(1); }
else{
planTaskDO.setRefreshStatus(0);
}
}else {
planTaskDO.setRefreshStatus(0);
}
}
}
return pageResult;
} }
@Override @Override

View File

@ -797,6 +797,7 @@ public class ProcessBomServiceImpl implements ProcessBomService {
if(shenheDOS.size()==0) { if(shenheDOS.size()==0) {
updateObj.setBomStatus(7); updateObj.setBomStatus(7);
updateObj.setShenheTime(LocalDateTime.now());
// for (ProcessBomDetailDO processBomDetail : processBomDetails) { // for (ProcessBomDetailDO processBomDetail : processBomDetails) {
// processBomDetail.setBomEditStatus(BomEditStatusEnum.DEFAULT.getStatus()); // processBomDetail.setBomEditStatus(BomEditStatusEnum.DEFAULT.getStatus());
// } // }
@ -1188,6 +1189,7 @@ public class ProcessBomServiceImpl implements ProcessBomService {
} }
} }
if(operateReqVO.getActive().equals("AUDIT")||operateReqVO.getActive().equals("CANCEL_SUBMIT")){ if(operateReqVO.getActive().equals("AUDIT")||operateReqVO.getActive().equals("CANCEL_SUBMIT")){
bdgzsomthingDO abc= new bdgzsomthingDO(); bdgzsomthingDO abc= new bdgzsomthingDO();

View File

@ -80,7 +80,8 @@
<!-- <el-table-column label="客户简称" align="center" prop="brief" min-width="180" fixed />--> <!-- <el-table-column label="客户简称" align="center" prop="brief" min-width="180" fixed />-->
<el-table-column label="项目名称" align="center" prop="projectName" min-width="180" fixed /> <el-table-column label="项目名称" align="center" prop="projectName" min-width="180" fixed />
<el-table-column label="子项目名称" align="center" prop="projectSubName" min-width="180" /> <el-table-column label="子项目名称" align="center" prop="projectSubName" min-width="180" />
<!-- <el-table-column label="泡沫" align="center" prop="isFoams">--> <el-table-column label="零件号" align="center" prop="blueprintNo" min-width="120" />
<!-- <el-table-column label="泡沫" align="center" prop="isFoams">-->
<!-- <template #default="{ row }">--> <!-- <template #default="{ row }">-->
<!-- <el-checkbox v-model="row.isFoams" @change="handleOutsourcingChange(row)" disabled/>--> <!-- <el-checkbox v-model="row.isFoams" @change="handleOutsourcingChange(row)" disabled/>-->
<!-- </template>--> <!-- </template>-->
@ -110,7 +111,6 @@
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="零件号" align="center" prop="blueprintNo" min-width="120" />
<el-table-column label="需求数量" align="center" prop="boomAmount" min-width="120" /> <el-table-column label="需求数量" align="center" prop="boomAmount" min-width="120" />
<el-table-column label="单位" align="center" prop="unit" min-width="120"> <el-table-column label="单位" align="center" prop="unit" min-width="120">
<template #default="scope"> <template #default="scope">

View File

@ -52,6 +52,16 @@
:label="dict.label" :value="dict.value" /> :label="dict.label" :value="dict.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="送审日期" prop="createTime">
<el-date-picker
v-model="queryParams.createTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
class="!w-280px"
/>
</el-form-item>
<el-form-item style="margin-left:15px"> <el-form-item style="margin-left:15px">
<el-button @click="handleQuery" type="primary"> <el-button @click="handleQuery" type="primary">
<Icon icon="ep:search" class="mr-5px" /> 搜索 <Icon icon="ep:search" class="mr-5px" /> 搜索
@ -129,6 +139,7 @@ import Form from "./Form.vue"
import {dateFormatter1} from "@/utils/formatTime"; import {dateFormatter1} from "@/utils/formatTime";
import {ref} from "vue"; import {ref} from "vue";
import {ElTable, ElTableColumn} from "element-plus"; import {ElTable, ElTableColumn} from "element-plus";
import dayjs from "dayjs";
defineOptions({ name: 'PartPurchaseCheck' }) defineOptions({ name: 'PartPurchaseCheck' })
const router = useRouter() const router = useRouter()
const message = useMessage() // const message = useMessage() //
@ -360,10 +371,16 @@ const handleDelete = async (id: number) => {
} catch { } } catch { }
} }
const setDefaultDate = () => {
queryParams.createTime = [
dayjs().startOf('day').format('YYYY-MM-DD HH:mm:ss'),
dayjs().endOf('day').format('YYYY-MM-DD HH:mm:ss')
]
}
const userInit = ref() const userInit = ref()
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
// setDefaultDate()
// //
getList() getList()
}) })

View File

@ -200,7 +200,7 @@ const queryParams = reactive({
businessLine: undefined, businessLine: undefined,
property: undefined, property: undefined,
projectOwner: undefined, projectOwner: undefined,
status: undefined status: 1
}) })
const queryFormRef = ref() // const queryFormRef = ref() //
const exportLoading = ref(false) // const exportLoading = ref(false) //

View File

@ -45,7 +45,7 @@
<!-- 列表 --> <!-- 列表 -->
<ContentWrap> <ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" class="hl-table"> <el-table v-loading="loading" :data="list" :show-overflow-tooltip="true" class="hl-table" :row-class-name="tableRowClassName">
<el-table-column type="index" width="80px" fixed label="序号" align="center" /> <el-table-column type="index" width="80px" fixed label="序号" align="center" />
<el-table-column label="生产任务单号" align="center" prop="taskNo" width="170px" fixed > <el-table-column label="生产任务单号" align="center" prop="taskNo" width="170px" fixed >
<template #default="scope"> <template #default="scope">
@ -122,12 +122,14 @@ const queryParams = reactive({
projectCode: undefined, projectCode: undefined,
projectSubCode: undefined, projectSubCode: undefined,
projectSubName: undefined, projectSubName: undefined,
status: undefined, status: 1,
createTime: [] createTime: []
}) })
const queryFormRef = ref() // const queryFormRef = ref() //
const exportLoading = ref(false) // const exportLoading = ref(false) //
const tableRowClassName = ({ row }) => {
return row.refreshStatus==1 ? 'selected-row' : '';
}
/** 查询列表 */ /** 查询列表 */
const getList = async () => { const getList = async () => {
loading.value = true loading.value = true
@ -202,3 +204,9 @@ window.addEventListener('beforeunload', () => {
routeParamsCache.set(routeValue.value, plainParams); routeParamsCache.set(routeValue.value, plainParams);
}); });
</script> </script>
<style>
.selected-row {
background-color: #ffe6cc !important;
}
</style>

View File

@ -223,7 +223,7 @@ const queryParams = reactive({
pageSize: 10, pageSize: 10,
code: undefined, code: undefined,
orderStatus: undefined, orderStatus: undefined,
deliveryStatus: undefined, deliveryStatus: 1,
businessDeptId: undefined, businessDeptId: undefined,
customerName: undefined, customerName: undefined,
projectName: undefined, projectName: undefined,

View File

@ -73,7 +73,7 @@ const onPrint = () => {
.code-line { .code-line {
font-size: 14px; font-size: 14px;
margin-bottom: 1.4mm; margin-bottom: 1.4mm;
margin-left: 0.4mm; margin-left: 0.4mm;R
} }
.code-line span { .code-line span {
display: inline-block; display: inline-block;

View File

@ -205,7 +205,7 @@ const queryParams = reactive({
projectCode: undefined, projectCode: undefined,
projectSubCode: undefined, projectSubCode: undefined,
customerName: undefined, customerName: undefined,
dispatchStatus: undefined, dispatchStatus: 1,
remark: undefined, remark: undefined,
status: undefined, status: undefined,
createTime: [], createTime: [],

View File

@ -1605,6 +1605,7 @@ const onAddItem = () => {
postId: 2, postId: 2,
reportProcess:0, reportProcess:0,
matPlanProcess:"N", matPlanProcess:"N",
startTime:new Date()
} }
// //
// Object.keys(procedureList.value).forEach((key) => { // Object.keys(procedureList.value).forEach((key) => {

View File

@ -136,7 +136,7 @@ const queryParams = reactive({
projectCode: undefined, projectCode: undefined,
projectSubCode: undefined, projectSubCode: undefined,
customerName: undefined, customerName: undefined,
dispatchStatus: undefined, dispatchStatus: 0,
remark: undefined, remark: undefined,
status: undefined, status: undefined,
createTime: [], createTime: [],