diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/projectorder/vo/ProjectOrderRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/projectorder/vo/ProjectOrderRespVO.java index d808d2d6..f0f01981 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/projectorder/vo/ProjectOrderRespVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/projectorder/vo/ProjectOrderRespVO.java @@ -176,4 +176,7 @@ public class ProjectOrderRespVO { @Schema(description = "变更的字段列表") private Set alterFieldNames; + @Schema(description = "创建人名称") + private String creatorName; + } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/projectorder/ProjectOrderDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/projectorder/ProjectOrderDO.java index 675bef61..d8e3599e 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/projectorder/ProjectOrderDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/projectorder/ProjectOrderDO.java @@ -196,6 +196,21 @@ public class ProjectOrderDO extends BaseDO { @TableField(exist = false) private String businessManName; + @TableField(exist = false) + private String creatorName; + + @TableField(exist = false) + private String auditName; + + @TableField(exist = false) + private Long auditTime; + + @TableField(exist = false) + private String approveName; + + @TableField(exist = false) + private Long approveTime; + /** * 变更的字段列表 * */ diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/projectorder/ProjectOrderSubDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/projectorder/ProjectOrderSubDO.java index 6e5325b2..2eced4e7 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/projectorder/ProjectOrderSubDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/projectorder/ProjectOrderSubDO.java @@ -72,4 +72,9 @@ public class ProjectOrderSubDO extends BaseDO { @TableField(exist = false) private Set alterFieldNames; + /** + * 材质 + */ + @TableField(exist = false) + private String compositionName; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderMapper.java index a7ed8141..c608230b 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderMapper.java @@ -3,6 +3,7 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.ProjectOrderPageReqVO; +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.projectorder.ProjectOrderDO; import com.chanko.yunxi.mes.module.system.dal.dataobject.dept.DeptDO; @@ -42,4 +43,17 @@ public interface ProjectOrderMapper extends BaseMapperX { return selectPage(reqVO, query); } + default ProjectOrderDO selectById(Long id) { + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(ProjectOrderDO.class) + .select("u.nickname as businessManName", "d.name as businessDeptName", "u1.nickname as creatorName") + .leftJoin(AdminUserDO.class, "u", AdminUserDO::getId, ProjectOrderDO::getBusinessMan) + .leftJoin(AdminUserDO.class, "u1", AdminUserDO::getId, ProjectOrderDO::getCreator) + .leftJoin(DeptDO.class, "d", DeptDO::getId, ProjectOrderDO::getBusinessDeptId) + .eq(ProjectOrderDO::getId, id) + .last("LIMIT 1") + .disableSubLogicDel(); + return selectOne(query); + } + } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderSubMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderSubMapper.java index 3ccd8cc5..2e23093f 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderSubMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderSubMapper.java @@ -6,7 +6,9 @@ import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.common.pojo.PageParam; import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.composition.CompositionDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectordersub.ProjectOrderSubDO; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; /** @@ -18,7 +20,13 @@ import org.apache.ibatis.annotations.Mapper; public interface ProjectOrderSubMapper extends BaseMapperX { default List selectListByProjectOrderId(Long projectOrderId) { - return selectList(ProjectOrderSubDO::getProjectOrderId, projectOrderId); + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(ProjectOrderSubDO.class) + .select("b.name as compositionName") + .leftJoin(CompositionDO.class, "b", CompositionDO::getId, ProjectOrderSubDO::getCompositionId) + .disableSubLogicDel() + .eq(ProjectOrderSubDO::getProjectOrderId, projectOrderId); + return selectList(query); } default int deleteByProjectOrderId(Long projectOrderId) { diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/projectorder/ProjectOrderServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/projectorder/ProjectOrderServiceImpl.java index f5a9f0db..f075850e 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/projectorder/ProjectOrderServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/projectorder/ProjectOrderServiceImpl.java @@ -219,6 +219,8 @@ public class ProjectOrderServiceImpl implements ProjectOrderService { // do nothing log.error("generate alterFieldNames error, id: {}, exception: {}", id, e.getMessage(), e); } + // 查询操作日志获取审核/批准 + return projectOrderDO; } diff --git a/mes-module-system/mes-module-system-biz/src/main/java/com/chanko/yunxi/mes/module/system/controller/admin/logger/vo/operatelog/OperateLogPageReqVO.java b/mes-module-system/mes-module-system-biz/src/main/java/com/chanko/yunxi/mes/module/system/controller/admin/logger/vo/operatelog/OperateLogPageReqVO.java index 72b66589..d39de5fa 100644 --- a/mes-module-system/mes-module-system-biz/src/main/java/com/chanko/yunxi/mes/module/system/controller/admin/logger/vo/operatelog/OperateLogPageReqVO.java +++ b/mes-module-system/mes-module-system-biz/src/main/java/com/chanko/yunxi/mes/module/system/controller/admin/logger/vo/operatelog/OperateLogPageReqVO.java @@ -6,6 +6,7 @@ import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; +import java.util.List; import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -28,6 +29,9 @@ public class OperateLogPageReqVO extends PageParam { @Schema(description = "操作分类,参见 OperateLogTypeEnum 枚举类", example = "1") private Integer type; + @Schema(description = "操作分类列表", example = "1") + private List typeList; + @Schema(description = "操作状态", example = "true") private Boolean success; diff --git a/mes-module-system/mes-module-system-biz/src/main/java/com/chanko/yunxi/mes/module/system/dal/mysql/logger/OperateLogMapper.java b/mes-module-system/mes-module-system-biz/src/main/java/com/chanko/yunxi/mes/module/system/dal/mysql/logger/OperateLogMapper.java index 5032f611..cc2d99d7 100644 --- a/mes-module-system/mes-module-system-biz/src/main/java/com/chanko/yunxi/mes/module/system/dal/mysql/logger/OperateLogMapper.java +++ b/mes-module-system/mes-module-system-biz/src/main/java/com/chanko/yunxi/mes/module/system/dal/mysql/logger/OperateLogMapper.java @@ -20,7 +20,9 @@ public interface OperateLogMapper extends BaseMapperX { .likeIfPresent(OperateLogDO::getModule, reqVO.getModule()) .inIfPresent(OperateLogDO::getUserId, userIds) .eqIfPresent(OperateLogDO::getType, reqVO.getType()) - .betweenIfPresent(OperateLogDO::getStartTime, reqVO.getStartTime()); + .betweenIfPresent(OperateLogDO::getStartTime, reqVO.getStartTime()) + .inIfPresent(OperateLogDO::getType, reqVO.getTypeList()) + ; if (Boolean.TRUE.equals(reqVO.getSuccess())) { query.eq(OperateLogDO::getResultCode, GlobalErrorCodeConstants.SUCCESS.getCode()); } else if (Boolean.FALSE.equals(reqVO.getSuccess())) { diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/projectorder/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/projectorder/index.vue index 59aaf93a..3cb62508 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/projectorder/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/projectorder/index.vue @@ -95,7 +95,9 @@ - 搜索 + 搜索 重置 - + - + @@ -255,6 +268,8 @@ /> + + +
+ ${printNode.innerHTML} +
`) + doc.close() + // 浏览器打印页面打开渲染 + setTimeout(() => { + newIframe.contentWindow.focus() + newIframe.contentWindow.print() + document.body.removeChild(newIframe) // 移除打印内框架,下次打印下次再挂载 + dialogVisible.value = false + }, 100) +} +const outopen = () => { + dialogVisible.value = false +} +const queryParams: any = ref({ + code: undefined +}) +const isSelected = ref([1, 3]) + +const formData = ref({ + id: undefined, + code: undefined, + orderStatus: 4, + deliveryStatus: 1, + businessDeptId: undefined, + customerId: undefined, + mouldName: undefined, + businessLine: undefined, + blueprintNo: undefined, + hasPrice: 1, + price: undefined, + currency: '1', + projectStartTime: undefined, + projectEndTime: undefined, + isUrgency: 0, + property: 1, + referenceTechnology: undefined, + hasAlter: 0, + lastAlterTime: undefined, + qualityRequirement: undefined, + remark: undefined, + hasContract: 0, + hasTechnologyProtocol: 0, + hasBlueprint: 0, + blueprintRemark: undefined, + status: 1, + businessMan: undefined, + createTime: new Date(), + projectOrderSubs: [], + attachments: [], + operateLogs: [], + contractNo: undefined, + active: '', + activeOpinion: '', + isSnapshot: 0, + snapshotId: undefined, + snapshotCode: undefined, + orderTime: new Date(), + snapshotOrderTime: undefined, + alterFieldNames: [], + customer: {} +}) +/** 打开弹窗 */ +const open = async (id?: number) => { + dialogVisible.value = true + resetForm() + formData.value = await ProjectOrderApi.getProjectOrder(id) + // 子项列表 + formData.value.projectOrderSubs = await ProjectOrderApi.getProjectOrderSubListByProjectOrderId(id) + formData.value.customer = await getCustomer(formData.value.customerId) +} +defineExpose({ open }) // 提供 open 方法,用于打开弹窗 + +/** 重置表单 */ +const resetForm = () => { + formData.value = { + id: undefined, + code: undefined, + orderStatus: 4, + deliveryStatus: 1, + businessDeptId: undefined, + customerId: undefined, + mouldName: undefined, + businessLine: undefined, + blueprintNo: undefined, + hasPrice: 1, + price: undefined, + currency: '1', + projectStartTime: undefined, + projectEndTime: undefined, + isUrgency: 0, + property: 1, + referenceTechnology: undefined, + hasAlter: 0, + lastAlterTime: undefined, + qualityRequirement: undefined, + remark: undefined, + hasContract: 0, + hasTechnologyProtocol: 0, + hasBlueprint: 0, + blueprintRemark: undefined, + status: 1, + businessMan: undefined, + createTime: new Date(), + projectOrderSubs: [], + attachments: [], + operateLogs: [], + contractNo: undefined, + active: '', + activeOpinion: '', + isSnapshot: 0, + snapshotId: undefined, + snapshotCode: undefined, + orderTime: new Date(), + snapshotOrderTime: undefined, + alterFieldNames: [], + customer: {} + } +} + + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/storage/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/storage/index.vue index be35a3b3..a28544c7 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/storage/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/storage/index.vue @@ -108,7 +108,7 @@ - +