From bcfef4b969fa98b1dee1657c294ed9b2f7d293e7 Mon Sep 17 00:00:00 2001 From: qiuhongwu Date: Thu, 29 Feb 2024 09:24:24 +0800 Subject: [PATCH 001/252] =?UTF-8?q?=E5=B7=A5=E8=89=BA=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=20=E5=85=A8=E9=83=A8=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E9=A1=B5=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/heli/hlvuestyle/equipSelect.vue | 5 ++-- .../src/views/heli/processdesign/2d.vue | 28 ++++++++--------- .../src/views/heli/processdesign/3d.vue | 26 ++++++++-------- .../src/views/heli/processdesign/bom.vue | 30 +++++++++---------- .../src/views/heli/processdesign/index.vue | 24 +++++++-------- .../src/views/heli/processdesign/overview.vue | 30 +++++++++---------- .../views/heli/processdesign/workblank.vue | 28 ++++++++--------- 7 files changed, 86 insertions(+), 85 deletions(-) diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/hlvuestyle/equipSelect.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/hlvuestyle/equipSelect.vue index 4f9f3f7e..f1d703a5 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/hlvuestyle/equipSelect.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/hlvuestyle/equipSelect.vue @@ -46,7 +46,7 @@ const gitlist = async () => { let foundInitialUserInList = false for (const eqyip of eqyipList.value) { if (eqyip.id === initialUser.id) { - valueName.value =initialUser.name + // valueName.value =initialUser.name foundInitialUserInList = true break } @@ -54,7 +54,7 @@ const gitlist = async () => { // 如果初始用户不在列表中,则将其添加到列表开头 if (!foundInitialUserInList && !eqyipSelectList.value.length) { eqyipList.value.unshift(initialUser) - valueName.value = initialUser.name + // valueName.value = initialUser.name } // loading.value = false } @@ -95,6 +95,7 @@ const onVisibleChange = (isVisible: boolean) => { queryParams.name = undefined eqyipList.value = [] eqyipSelectList.value = [] + } } diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/processdesign/2d.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/processdesign/2d.vue index bd25b245..8944d704 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/processdesign/2d.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/processdesign/2d.vue @@ -34,7 +34,7 @@ - + 搜索 @@ -47,9 +47,9 @@ - - - + + + - - - - - - + + + + + + - + - - + + - + From 9c1453ce6477864f1166f0e0a4dede40a814f0c5 Mon Sep 17 00:00:00 2001 From: zengchenxi Date: Thu, 7 Mar 2024 13:48:22 +0800 Subject: [PATCH 101/252] =?UTF-8?q?=E3=80=90=E9=9C=80=E6=B1=82=E3=80=91?= =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=8A=A5=E5=B7=A5=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../taskreport/vo/TaskReportPageReqVO.java | 27 ++++- .../admin/taskreport/vo/TaskReportRespVO.java | 46 +++++++- .../taskreport/vo/TaskReportSaveReqVO.java | 106 +++++++++--------- .../dataobject/taskreport/TaskReportDO.java | 52 +++++++-- .../mysql/taskreport/TaskReportMapper.java | 51 ++++++--- .../taskdispatch/TaskDispatchServiceImpl.java | 2 + .../src/views/heli/taskdispatch/assemble.vue | 2 +- .../src/views/heli/taskdispatch/index.vue | 2 +- .../views/heli/taskreport/TaskReportForm.vue | 65 ++--------- .../src/views/heli/taskreport/index.vue | 14 +-- sql/v1.5.0/1.structure.sql | 1 + 11 files changed, 224 insertions(+), 144 deletions(-) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskreport/vo/TaskReportPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskreport/vo/TaskReportPageReqVO.java index 541ea8d8..a0056f44 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskreport/vo/TaskReportPageReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskreport/vo/TaskReportPageReqVO.java @@ -1,10 +1,13 @@ package com.chanko.yunxi.mes.module.heli.controller.admin.taskreport.vo; -import lombok.*; -import java.util.*; -import io.swagger.v3.oas.annotations.media.Schema; import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; import java.time.LocalDateTime; import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -46,4 +49,20 @@ public class TaskReportPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; -} \ No newline at end of file + @Schema(description = "报工工时") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private BigDecimal[] workTime; + + @Schema(description = "项目编号") + private String projectCode; + + @Schema(description = "项目名称") + private String projectName; + + @Schema(description = "子项目名称") + private String projectSubName; + + @Schema(description = "零件名称") + private String materialName; + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskreport/vo/TaskReportRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskreport/vo/TaskReportRespVO.java index ce917d9a..29170bf3 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskreport/vo/TaskReportRespVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskreport/vo/TaskReportRespVO.java @@ -1,7 +1,10 @@ package com.chanko.yunxi.mes.module.heli.controller.admin.taskreport.vo; +import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; + +import java.math.BigDecimal; import java.util.*; import java.util.*; import org.springframework.format.annotation.DateTimeFormat; @@ -56,4 +59,45 @@ public class TaskReportRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; -} \ No newline at end of file + @Schema(description = "修改时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("修改时间") + private LocalDateTime updateTime; + + @Schema(description = "报工工时", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("报工工时") + private BigDecimal workTime; + + @Schema(description = "项目名称") + private String projectName; + + @Schema(description = "项目编码") + private String projectCode; + + @Schema(description = "子项目名称") + private String projectSubName; + + @Schema(description = "子项目编码") + private String projectSubCode; + + @Schema(description = "派工单号") + private String dispatchCode; + + @Schema(description = "零件名称") + private String materialName; + + @Schema(description = "规格型号") + private String spec; + + @Schema(description = "报工人") + private String ownerName; + + @Schema(description = "报工工序") + private String procedureName; + + @Schema(description = "更新人名称") + private String updaterName; + + @Schema(description = "单位") + private String unit; + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskreport/vo/TaskReportSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskreport/vo/TaskReportSaveReqVO.java index d68a7332..491fa20b 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskreport/vo/TaskReportSaveReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskreport/vo/TaskReportSaveReqVO.java @@ -1,50 +1,56 @@ -package com.chanko.yunxi.mes.module.heli.controller.admin.taskreport.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import javax.validation.constraints.*; -import java.util.*; -import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDateTime; - -@Schema(description = "管理后台 - 任务报工新增/修改 Request VO") -@Data -public class TaskReportSaveReqVO { - - @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "7295") - private Long id; - - @Schema(description = "派工单任务明细id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23399") - @NotNull(message = "派工单任务明细id不能为空") - private Long dispatchDetailId; - - @Schema(description = "负责人", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "负责人不能为空") - private Long owner; - - @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "数量不能为空") - private Integer amount; - - @Schema(description = "开始时间", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "开始时间不能为空") - private LocalDateTime startTime; - - @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "结束时间不能为空") - private LocalDateTime endTime; - - @Schema(description = "报工时间", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "报工时间不能为空") - private LocalDateTime reportTime; - - @Schema(description = "是否已报工 0 默认否 1 是", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "是否已报工 0 默认否 1 是不能为空") - private Integer hasReport; - - @Schema(description = "状态,1表示正常,2表示禁用", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") - @NotNull(message = "状态,1表示正常,2表示禁用不能为空") - private Integer status; - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.heli.controller.admin.taskreport.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.math.BigDecimal; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 任务报工新增/修改 Request VO") +@Data +public class TaskReportSaveReqVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "7295") + private Long id; + + @Schema(description = "派工单任务明细id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23399") + @NotNull(message = "派工单任务明细id不能为空") + private Long dispatchDetailId; + + @Schema(description = "负责人", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "负责人不能为空") + private Long owner; + + @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "数量不能为空") + private Integer amount; + + @Schema(description = "开始时间", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "开始时间不能为空") + private LocalDateTime startTime; + + @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "结束时间不能为空") + private LocalDateTime endTime; + + @Schema(description = "报工时间", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "报工时间不能为空") + private LocalDateTime reportTime; + + @Schema(description = "是否已报工 0 默认否 1 是", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "是否已报工 0 默认否 1 是不能为空") + private Integer hasReport; + + @Schema(description = "状态,1表示正常,2表示禁用", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotNull(message = "状态,1表示正常,2表示禁用不能为空") + private Integer status; + + @Schema(description = "报工工时", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "报工工时不能为空") + private BigDecimal workTime; + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskreport/TaskReportDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskreport/TaskReportDO.java index 45fc26ab..3ddf6ee2 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskreport/TaskReportDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskreport/TaskReportDO.java @@ -1,14 +1,14 @@ package com.chanko.yunxi.mes.module.heli.dal.dataobject.taskreport; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; import lombok.*; -import java.util.*; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; + +import java.math.BigDecimal; import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.*; -import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; /** * 任务报工 DO @@ -64,5 +64,41 @@ public class TaskReportDO extends BaseDO { * 状态,1表示正常,2表示禁用 */ private Integer status; + /** + * 报工工时 + */ + private BigDecimal workTime; + + @TableField(exist = false) + private String projectName; + + @TableField(exist = false) + private String projectCode; + + @TableField(exist = false) + private String projectSubName; + + @TableField(exist = false) + private String projectSubCode; + + @TableField(exist = false) + private String dispatchCode; + + @TableField(exist = false) + private String materialName; + + @TableField(exist = false) + private String spec; + + @TableField(exist = false) + private String ownerName; + + @TableField(exist = false) + private String procedureName; + + @TableField(exist = false) + private String updaterName; -} \ No newline at end of file + @TableField(exist = false) + private String unit; +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskreport/TaskReportMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskreport/TaskReportMapper.java index 2a63f127..e5ceb58a 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskreport/TaskReportMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskreport/TaskReportMapper.java @@ -1,13 +1,19 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.taskreport; -import java.util.*; - import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -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.controller.admin.taskreport.vo.TaskReportPageReqVO; +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.projectorder.ProjectOrderDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDO; +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.system.dal.dataobject.user.AdminUserDO; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; -import com.chanko.yunxi.mes.module.heli.controller.admin.taskreport.vo.*; +import org.springframework.util.StringUtils; /** * 任务报工 Mapper @@ -18,17 +24,30 @@ import com.chanko.yunxi.mes.module.heli.controller.admin.taskreport.vo.*; public interface TaskReportMapper extends BaseMapperX { default PageResult selectPage(TaskReportPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(TaskReportDO::getDispatchDetailId, reqVO.getDispatchDetailId()) - .eqIfPresent(TaskReportDO::getOwner, reqVO.getOwner()) - .eqIfPresent(TaskReportDO::getAmount, reqVO.getAmount()) - .betweenIfPresent(TaskReportDO::getStartTime, reqVO.getStartTime()) - .betweenIfPresent(TaskReportDO::getEndTime, reqVO.getEndTime()) - .betweenIfPresent(TaskReportDO::getReportTime, reqVO.getReportTime()) - .eqIfPresent(TaskReportDO::getHasReport, reqVO.getHasReport()) - .eqIfPresent(TaskReportDO::getStatus, reqVO.getStatus()) - .betweenIfPresent(TaskReportDO::getCreateTime, reqVO.getCreateTime()) - .orderByDesc(TaskReportDO::getId)); + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(TaskReportDO.class) + .select("d.code as projectCode", "d.project_name as projectName", "c.name as projectSubName") + .select("z.code as dispatchCode") + .select("f.material_name as materialName", "f.spec", "f.unit") + .select("y.name as procedureName") + .select("u1.nickname as ownerName", "u2.nickname as updaterName") + .leftJoin(TaskDispatchDetailDO.class, "x", TaskDispatchDetailDO::getId, TaskReportDO::getDispatchDetailId) + .leftJoin(ProcedureDO.class, "y", ProcedureDO::getId, TaskDispatchDetailDO::getProcedureId) + .leftJoin(TaskDispatchDO.class, "z", TaskDispatchDO::getId, TaskDispatchDetailDO::getDispatchId) + .leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, TaskDispatchDO::getProjectSubId) + .leftJoin(ProjectOrderDO.class, "d", ProjectOrderDO::getId, ProjectOrderSubDO::getProjectOrderId) + .leftJoin(ProcessBomDetailDO.class, "f", ProcessBomDetailDO::getId, TaskDispatchDO::getBomDetailId) + .leftJoin(AdminUserDO.class, "u1", AdminUserDO::getId, TaskReportDO::getOwner) + .leftJoin(AdminUserDO.class, "u2", AdminUserDO::getId, TaskReportDO::getUpdater) + .orderByDesc(TaskReportDO::getId) + .disableSubLogicDel(); + + query.like(!StringUtils.isEmpty(reqVO.getProjectCode()), ProjectOrderDO::getCode, reqVO.getProjectCode()) + .like(!StringUtils.isEmpty(reqVO.getProjectName()), ProjectOrderDO::getProjectName, reqVO.getProjectName()) + .like(!StringUtils.isEmpty(reqVO.getProjectSubName()), ProjectOrderSubDO::getName, reqVO.getProjectSubName()) + .like(!StringUtils.isEmpty(reqVO.getMaterialName()), ProcessBomDetailDO::getMaterialName, reqVO.getMaterialName()); + + return selectPage(reqVO, query); } -} \ No newline at end of file +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java index 60af8239..1fb8b126 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java @@ -11,6 +11,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatch import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatchdetail.TaskDispatchDetailMapper; import com.chanko.yunxi.mes.module.heli.enums.TaskDispatchProcedureStatusEnum; +import com.chanko.yunxi.mes.module.heli.enums.TaskDispatchStatusEnum; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -77,6 +78,7 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { } }); } + updateObj.setDispatchStatus(TaskDispatchStatusEnum.valueOf(updateReqVO.getActive()).getCode()); taskDispatchMapper.updateById(updateObj); // 更新子表 diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/assemble.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/assemble.vue index 666e086a..587ed934 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/assemble.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/assemble.vue @@ -90,7 +90,7 @@ /> - + - + - - + + - - - - - - - - - - - - - - - - - - - {{ dict.label }} - - - - - - 请选择字典生成 - + + @@ -356,14 +1355,15 @@ table { margin-left: 10px; } #lineTd { - background: #fff url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPjxsaW5lIHgxPSIwIiB5MT0iMCIgeDI9IjEwMCUiIHkyPSIxMDAlIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjEiLz48L3N2Zz4=) no-repeat 100% center; - + background: #fff + url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPjxsaW5lIHgxPSIwIiB5MT0iMCIgeDI9IjEwMCUiIHkyPSIxMDAlIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjEiLz48L3N2Zz4=) + no-repeat 100% center; } .hr-dotted { - border: 0; - border-top: 1px dotted #a2a9b6; - border-left: 1px dotted #a2a9b6; - } + border: 0; + border-top: 1px dotted #a2a9b6; + border-left: 1px dotted #a2a9b6; +} /* A4的大小:21cm*29.7cm(width:794px;)。 单位换算:1 inch = 2.54 cm 1mm = 96 px 1 cm = 37.79528 px*/ diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detail.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detail.vue index a3dc8e98..b6c5431f 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detail.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detail.vue @@ -397,8 +397,7 @@ 保 存 提 交 取消提交 - 打印发货单 - 打印发货单 + 打印发货单 @@ -617,8 +616,8 @@ const handleSelectedequip = (currentIndex: number, newValue: any) => { formData.value.taskDispatchDetails[currentIndex].deviceModel = newValue?.id } const ProductProcessPrintRef = ref() // 打印弹框 -const printHandle = () => { - ProductProcessPrintRef.value.open() +const printHandle = (id) => { + ProductProcessPrintRef.value.open(id) } onMounted(() => { From 83cafa780af621194ffca8cff022582beb594a03 Mon Sep 17 00:00:00 2001 From: qiuhongwu Date: Sun, 10 Mar 2024 17:25:53 +0800 Subject: [PATCH 109/252] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=20=E6=B4=BE=E5=B7=A5=E5=8D=95=E5=8F=8A?= =?UTF-8?q?=E6=8A=A5=E5=B7=A5=E8=AE=B0=E5=BD=95=E9=A1=B5=E9=9D=A2=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/heli/taskdispatch/assemble.vue | 8 +- .../src/views/heli/taskdispatch/index.vue | 149 ++++-------------- .../src/views/heli/taskreport/index.vue | 13 +- 3 files changed, 48 insertions(+), 122 deletions(-) diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/assemble.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/assemble.vue index 587ed934..4baa745c 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/assemble.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/assemble.vue @@ -1,9 +1,9 @@ - - + + - + @@ -412,7 +412,9 @@ const downloadAttachment = async (name, url) => { onMounted(() => { dialogTitle.value = t('action.' + active.value) - + if ('detail' == active.value) { + detailDisabled.value = true + } queryData(currentId.value) }) diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/inspectionreport/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/inspectionreport/index.vue index b4f903be..01d84763 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/inspectionreport/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/inspectionreport/index.vue @@ -1,86 +1,90 @@ \ No newline at end of file diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/unqualifiednotification/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/unqualifiednotification/index.vue new file mode 100644 index 00000000..4004d6a1 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/unqualifiednotification/index.vue @@ -0,0 +1,320 @@ + + + diff --git a/sql/v1.5.0/1.structure.sql b/sql/v1.5.0/1.structure.sql index 706747ba..f82dad30 100644 --- a/sql/v1.5.0/1.structure.sql +++ b/sql/v1.5.0/1.structure.sql @@ -35,6 +35,7 @@ CREATE TABLE `pro_unqualified_notification` ( `remark` VARCHAR ( 512 ) NOT NULL COMMENT '情况描述', `auditor` BIGINT ( 11 ) COMMENT '审核人', `audit_opinion` CHAR ( 1 ) COMMENT '审核意见', + `audit_time` DATETIME COMMENT '审核时间', `status` TINYINT ( 1 ) NOT NULL DEFAULT '1' COMMENT '状态,1表示正常,2表示禁用', `creator` VARCHAR ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', From a6e8cba4747f56209b051a92ef267043a799f126 Mon Sep 17 00:00:00 2001 From: zengchenxi Date: Tue, 12 Mar 2024 15:14:27 +0800 Subject: [PATCH 120/252] =?UTF-8?q?=E3=80=90=E9=9C=80=E6=B1=82=E3=80=91?= =?UTF-8?q?=E5=88=9D=E6=AD=A5=E5=AE=8C=E6=88=90=E5=93=81=E8=B4=A8=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E9=80=9A=E7=9F=A5=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/heli/enums/BusinesTypeEnum.java | 3 + .../yunxi/mes/module/heli/enums/CodeEnum.java | 3 + .../heli/enums/TaskDispatchTypeEnum.java | 28 ++ .../UnqualifiedNotificationStatusEnum.java | 24 ++ .../UnqualifiedNotificationController.java | 15 + .../vo/UnqualifiedNotificationSaveReqVO.java | 141 ++++---- .../UnqualifiedNotificationDO.java | 28 +- .../UnqualifiedNotificationMapper.java | 1 + .../taskdispatch/TaskDispatchServiceImpl.java | 20 +- .../UnqualifiedNotificationService.java | 111 +++---- .../UnqualifiedNotificationServiceImpl.java | 189 ++++++----- .../api/heli/unqualifiednotification/index.ts | 4 + .../UnqualifiedNotificationForm.vue | 181 ---------- .../heli/unqualifiednotification/detail.vue | 309 ++++++++++++++++++ .../heli/unqualifiednotification/index.vue | 16 +- 15 files changed, 681 insertions(+), 392 deletions(-) create mode 100644 mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/TaskDispatchTypeEnum.java create mode 100644 mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/UnqualifiedNotificationStatusEnum.java delete mode 100644 mes-ui/mes-ui-admin-vue3/src/views/heli/unqualifiednotification/UnqualifiedNotificationForm.vue create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/heli/unqualifiednotification/detail.vue diff --git a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/BusinesTypeEnum.java b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/BusinesTypeEnum.java index bc3967b9..dba52646 100644 --- a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/BusinesTypeEnum.java +++ b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/BusinesTypeEnum.java @@ -15,7 +15,10 @@ public enum BusinesTypeEnum { DELIVER_ORDER("发货订单"), PROCESS_BOM("工艺BOM"), TASK_DISPATCH("派工单"), + TASK_DISPATCH_PRODUCTION("生产任务派工单"), + TASK_DISPATCH_ASSEMBLE("装配任务派工单"), INSPECTION_REPORT("检测报告"), + UNQUALIFIED_NOTIFICATION("品质异常通知单"), ; private String description; diff --git a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/CodeEnum.java b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/CodeEnum.java index 8d8c3a7a..ebc26db2 100644 --- a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/CodeEnum.java +++ b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/CodeEnum.java @@ -46,6 +46,9 @@ public enum CodeEnum { PROJECT_PLAN("生产计划", "PP",3, "yyyyMM"), MATERIAL_PLAN("物料需求计划", "PR",4, "yyyyMMdd"), PURCHASE_ORDER("采购订单", "PO",4, "yyyyMMdd"), + TASK_DISPATCH_PRODUCTION("生产任务派工单", "PTD", 3, "yyyyMMdd"), + TASK_DISPATCH_ASSEMBLE("装配任务派工单", "ATD", 3, "yyyyMMdd"), + UNQUALIFIED_NOTIFICATION("品质异常通知单", "RN", 4, "yyyyMMdd") ; diff --git a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/TaskDispatchTypeEnum.java b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/TaskDispatchTypeEnum.java new file mode 100644 index 00000000..e13d0011 --- /dev/null +++ b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/TaskDispatchTypeEnum.java @@ -0,0 +1,28 @@ +package com.chanko.yunxi.mes.module.heli.enums; + +import lombok.Getter; + +import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.TASK_DISPATCH_ASSEMBLE; +import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.TASK_DISPATCH_PRODUCTION; + +/** + * 派工单类型枚举 + * @author chenxi + * @date 2024-03-12 02:28 + */ +@Getter +public enum TaskDispatchTypeEnum { + + PRODUCTION(BusinesTypeEnum.TASK_DISPATCH_PRODUCTION, TASK_DISPATCH_PRODUCTION, "生产任务"), + ASSEMBLE(BusinesTypeEnum.TASK_DISPATCH_ASSEMBLE, TASK_DISPATCH_ASSEMBLE, "装配任务"); + + private BusinesTypeEnum businesTypeEnum; + private CodeEnum codeEnum; + private String description; + + TaskDispatchTypeEnum(BusinesTypeEnum businesTypeEnum, CodeEnum codeEnum, String description) { + this.businesTypeEnum = businesTypeEnum; + this.codeEnum = codeEnum; + this.description = description; + } +} diff --git a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/UnqualifiedNotificationStatusEnum.java b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/UnqualifiedNotificationStatusEnum.java new file mode 100644 index 00000000..eb8bcab7 --- /dev/null +++ b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/UnqualifiedNotificationStatusEnum.java @@ -0,0 +1,24 @@ +package com.chanko.yunxi.mes.module.heli.enums; + +import lombok.Getter; + +/** + * 派工单状态枚举 + * @author chenxi + * @date 2024-02-26 11:25 + */ +@Getter +public enum UnqualifiedNotificationStatusEnum { + + SAVE(1, "已保存"), + SUBMIT(2, "已送审"), + AUDIT(3, "已审核"); + + private int code; + private String description; + + UnqualifiedNotificationStatusEnum(int code, String description) { + this.code = code; + this.description = description; + } +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/unqualifiednotification/UnqualifiedNotificationController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/unqualifiednotification/UnqualifiedNotificationController.java index 00fae657..12ab27ea 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/unqualifiednotification/UnqualifiedNotificationController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/unqualifiednotification/UnqualifiedNotificationController.java @@ -6,15 +6,19 @@ import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; +import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum; +import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskDispatchSaveReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.unqualifiednotification.vo.UnqualifiedNotificationPageReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.unqualifiednotification.vo.UnqualifiedNotificationRespVO; import com.chanko.yunxi.mes.module.heli.controller.admin.unqualifiednotification.vo.UnqualifiedNotificationSaveReqVO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.unqualifiednotification.UnqualifiedNotificationDO; +import com.chanko.yunxi.mes.module.heli.enums.BusinesTypeEnum; import com.chanko.yunxi.mes.module.heli.service.unqualifiednotification.UnqualifiedNotificationService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -22,6 +26,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; +import java.time.LocalDateTime; import java.util.List; import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; @@ -51,6 +56,16 @@ public class UnqualifiedNotificationController { return success(true); } + @PostMapping("/operate") + @Operation(summary = "操作更新品质异常通知单") + @PreAuthorize("@ss.hasPermission('heli:unqualified-notification:update')") + @OperateLog(enable = false) + @Transactional(rollbackFor = Exception.class) + public CommonResult operate(@Valid @RequestBody UnqualifiedNotificationSaveReqVO operateReqVO) { + unqualifiedNotificationService.operate(operateReqVO); + return success(operateReqVO.getId()); + } + @DeleteMapping("/delete") @Operation(summary = "删除品质异常通知单审核") @Parameter(name = "id", description = "编号", required = true) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/unqualifiednotification/vo/UnqualifiedNotificationSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/unqualifiednotification/vo/UnqualifiedNotificationSaveReqVO.java index 374eed1c..18131b66 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/unqualifiednotification/vo/UnqualifiedNotificationSaveReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/unqualifiednotification/vo/UnqualifiedNotificationSaveReqVO.java @@ -1,69 +1,72 @@ -package com.chanko.yunxi.mes.module.heli.controller.admin.unqualifiednotification.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import javax.validation.constraints.*; -import java.util.*; -import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDateTime; - -@Schema(description = "管理后台 - 品质异常通知单审核新增/修改 Request VO") -@Data -public class UnqualifiedNotificationSaveReqVO { - - @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "11880") - private Long id; - - @Schema(description = "编号,唯一") - private String code; - - @Schema(description = "质检类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") - @NotEmpty(message = "质检类型不能为空") - private String type; - - @Schema(description = "单据状态 已保存|已送审|已审核 1|2|3", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "单据状态 已保存|已送审|已审核 1|2|3不能为空") - private Integer notificationStatus; - - @Schema(description = "项目订单id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26682") - @NotNull(message = "项目订单id不能为空") - private Long projectId; - - @Schema(description = "子项目id", requiredMode = Schema.RequiredMode.REQUIRED, example = "28456") - @NotNull(message = "子项目id不能为空") - private Long projectSubId; - - @Schema(description = "bom明细id", example = "21454") - private Long bomDetailId; - - @Schema(description = "工序id", requiredMode = Schema.RequiredMode.REQUIRED, example = "14739") - @NotNull(message = "工序id不能为空") - private Long procedureId; - - @Schema(description = "异常数量", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "异常数量不能为空") - private Integer amount; - - @Schema(description = "责任人", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "责任人不能为空") - private Long owner; - - @Schema(description = "情况描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "随便") - @NotEmpty(message = "情况描述不能为空") - private String remark; - - @Schema(description = "审核人") - private Long auditor; - - @Schema(description = "审核意见") - private String auditOpinion; - - @Schema(description = "状态,1表示正常,2表示禁用", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "状态,1表示正常,2表示禁用不能为空") - private Integer status; - - @Schema(description = "审核时间") - private LocalDateTime auditTime; - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.heli.controller.admin.unqualifiednotification.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 品质异常通知单审核新增/修改 Request VO") +@Data +public class UnqualifiedNotificationSaveReqVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "11880") + private Long id; + + @Schema(description = "编号,唯一") + private String code; + + @Schema(description = "质检类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotEmpty(message = "质检类型不能为空") + private String type; + + @Schema(description = "单据状态 已保存|已送审|已审核 1|2|3", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "单据状态 已保存|已送审|已审核 1|2|3不能为空") + private Integer notificationStatus; + + @Schema(description = "项目订单id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26682") + @NotNull(message = "项目订单id不能为空") + private Long projectId; + + @Schema(description = "子项目id", requiredMode = Schema.RequiredMode.REQUIRED, example = "28456") + @NotNull(message = "子项目id不能为空") + private Long projectSubId; + + @Schema(description = "bom明细id", example = "21454") + private Long bomDetailId; + + @Schema(description = "工序id", requiredMode = Schema.RequiredMode.REQUIRED, example = "14739") + @NotNull(message = "工序id不能为空") + private Long procedureId; + + @Schema(description = "异常数量", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "异常数量不能为空") + private Integer amount; + + @Schema(description = "责任人", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "责任人不能为空") + private Long owner; + + @Schema(description = "情况描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "随便") + @NotEmpty(message = "情况描述不能为空") + private String remark; + + @Schema(description = "审核人") + private Long auditor; + + @Schema(description = "审核意见") + private String auditOpinion; + + @Schema(description = "状态,1表示正常,2表示禁用", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态,1表示正常,2表示禁用不能为空") + private Integer status; + + @Schema(description = "审核时间") + private LocalDateTime auditTime; + + @Schema(description = "操作") + private String active; + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/unqualifiednotification/UnqualifiedNotificationDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/unqualifiednotification/UnqualifiedNotificationDO.java index 246bb4ce..624e8785 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/unqualifiednotification/UnqualifiedNotificationDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/unqualifiednotification/UnqualifiedNotificationDO.java @@ -5,7 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; -import io.swagger.v3.oas.annotations.media.Schema; +import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum; +import com.chanko.yunxi.mes.module.heli.enums.UnqualifiedNotificationStatusEnum; import lombok.*; import java.time.LocalDateTime; @@ -138,5 +139,30 @@ public class UnqualifiedNotificationDO extends BaseDO { @TableField(exist = false) private String creatorName; + public boolean canSave(){ + return UnqualifiedNotificationStatusEnum.SAVE.getCode() == this.notificationStatus.intValue(); + } + + public boolean canSubmit(){ + return UnqualifiedNotificationStatusEnum.SAVE.getCode() == this.notificationStatus.intValue(); + } + + public boolean canAudit(){ + return UnqualifiedNotificationStatusEnum.SUBMIT.getCode() == this.notificationStatus.intValue(); + } + + + public boolean canOperate(OperateTypeEnum operateTypeEnum) { + switch (operateTypeEnum){ + case SAVE: + return canSave(); + case SUBMIT: + return canSubmit(); + case AUDIT: + return canAudit(); + default: + return false; + } + } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/unqualifiednotification/UnqualifiedNotificationMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/unqualifiednotification/UnqualifiedNotificationMapper.java index 1da15584..5c796c41 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/unqualifiednotification/UnqualifiedNotificationMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/unqualifiednotification/UnqualifiedNotificationMapper.java @@ -71,6 +71,7 @@ public interface UnqualifiedNotificationMapper extends BaseMapperX getUnqualifiedNotificationPage(UnqualifiedNotificationPageReqVO pageReqVO); - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.heli.service.unqualifiednotification; + +import java.util.*; +import javax.validation.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.unqualifiednotification.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.unqualifiednotification.UnqualifiedNotificationDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; + +/** + * 品质异常通知单审核 Service 接口 + * + * @author 管理员 + */ +public interface UnqualifiedNotificationService { + + /** + * 创建品质异常通知单审核 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createUnqualifiedNotification(@Valid UnqualifiedNotificationSaveReqVO createReqVO); + + /** + * 更新品质异常通知单审核 + * + * @param updateReqVO 更新信息 + */ + void updateUnqualifiedNotification(@Valid UnqualifiedNotificationSaveReqVO updateReqVO); + + /** + * 删除品质异常通知单审核 + * + * @param id 编号 + */ + void deleteUnqualifiedNotification(Long id); + + /** + * 获得品质异常通知单审核 + * + * @param id 编号 + * @return 品质异常通知单审核 + */ + UnqualifiedNotificationDO getUnqualifiedNotification(Long id); + + /** + * 获得品质异常通知单审核分页 + * + * @param pageReqVO 分页查询 + * @return 品质异常通知单审核分页 + */ + PageResult getUnqualifiedNotificationPage(UnqualifiedNotificationPageReqVO pageReqVO); + + void operate(UnqualifiedNotificationSaveReqVO operateReqVO); +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/unqualifiednotification/UnqualifiedNotificationServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/unqualifiednotification/UnqualifiedNotificationServiceImpl.java index e940296c..b1b7c1ee 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/unqualifiednotification/UnqualifiedNotificationServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/unqualifiednotification/UnqualifiedNotificationServiceImpl.java @@ -1,74 +1,115 @@ -package com.chanko.yunxi.mes.module.heli.service.unqualifiednotification; - -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.transaction.annotation.Transactional; - -import java.util.*; -import com.chanko.yunxi.mes.module.heli.controller.admin.unqualifiednotification.vo.*; -import com.chanko.yunxi.mes.module.heli.dal.dataobject.unqualifiednotification.UnqualifiedNotificationDO; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.common.pojo.PageParam; -import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; - -import com.chanko.yunxi.mes.module.heli.dal.mysql.unqualifiednotification.UnqualifiedNotificationMapper; - -import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; - -/** - * 品质异常通知单审核 Service 实现类 - * - * @author 管理员 - */ -@Service -@Validated -public class UnqualifiedNotificationServiceImpl implements UnqualifiedNotificationService { - - @Resource - private UnqualifiedNotificationMapper unqualifiedNotificationMapper; - - @Override - public Long createUnqualifiedNotification(UnqualifiedNotificationSaveReqVO createReqVO) { - // 插入 - UnqualifiedNotificationDO unqualifiedNotification = BeanUtils.toBean(createReqVO, UnqualifiedNotificationDO.class); - unqualifiedNotificationMapper.insert(unqualifiedNotification); - // 返回 - return unqualifiedNotification.getId(); - } - - @Override - public void updateUnqualifiedNotification(UnqualifiedNotificationSaveReqVO updateReqVO) { - // 校验存在 - validateUnqualifiedNotificationExists(updateReqVO.getId()); - // 更新 - UnqualifiedNotificationDO updateObj = BeanUtils.toBean(updateReqVO, UnqualifiedNotificationDO.class); - unqualifiedNotificationMapper.updateById(updateObj); - } - - @Override - public void deleteUnqualifiedNotification(Long id) { - // 校验存在 - validateUnqualifiedNotificationExists(id); - // 删除 - unqualifiedNotificationMapper.deleteById(id); - } - - private void validateUnqualifiedNotificationExists(Long id) { - if (unqualifiedNotificationMapper.selectById(id) == null) { - throw exception(UNQUALIFIED_NOTIFICATION_NOT_EXISTS); - } - } - - @Override - public UnqualifiedNotificationDO getUnqualifiedNotification(Long id) { - return unqualifiedNotificationMapper.selectById(id); - } - - @Override - public PageResult getUnqualifiedNotificationPage(UnqualifiedNotificationPageReqVO pageReqVO) { - return unqualifiedNotificationMapper.selectPage(pageReqVO); - } - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.heli.service.unqualifiednotification; + +import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum; +import com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; +import com.chanko.yunxi.mes.module.heli.enums.BusinesTypeEnum; +import com.chanko.yunxi.mes.module.heli.enums.CodeEnum; +import com.chanko.yunxi.mes.module.heli.enums.TaskDispatchStatusEnum; +import com.chanko.yunxi.mes.module.heli.enums.UnqualifiedNotificationStatusEnum; +import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.util.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.unqualifiednotification.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.unqualifiednotification.UnqualifiedNotificationDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; + +import com.chanko.yunxi.mes.module.heli.dal.mysql.unqualifiednotification.UnqualifiedNotificationMapper; + +import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; + +/** + * 品质异常通知单审核 Service 实现类 + * + * @author 管理员 + */ +@Service +@Validated +public class UnqualifiedNotificationServiceImpl implements UnqualifiedNotificationService { + + @Resource + private UnqualifiedNotificationMapper unqualifiedNotificationMapper; + @Resource + private SerialNumberService serialNumberService; + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createUnqualifiedNotification(UnqualifiedNotificationSaveReqVO createReqVO) { + // 插入 + UnqualifiedNotificationDO unqualifiedNotification = BeanUtils.toBean(createReqVO, UnqualifiedNotificationDO.class); + SerialNumberDO serialNumberDO = serialNumberService.getSerialNumber(BusinesTypeEnum.UNQUALIFIED_NOTIFICATION.name(), new SimpleDateFormat("yyyyMMdd").format(new Date())); + serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1); + unqualifiedNotification.setCode(CodeEnum.UNQUALIFIED_NOTIFICATION.getCode(serialNumberDO.getSerialNumber().toString())); + unqualifiedNotification.setNotificationStatus(UnqualifiedNotificationStatusEnum.valueOf(createReqVO.getActive()).getCode()); + + unqualifiedNotificationMapper.insert(unqualifiedNotification); + + // 回写序列记录 + serialNumberService.updateSerialNumber(serialNumberDO); + // 返回 + return unqualifiedNotification.getId(); + } + + @Override + public void updateUnqualifiedNotification(UnqualifiedNotificationSaveReqVO updateReqVO) { + // 校验存在 + validateUnqualifiedNotificationExists(updateReqVO.getId()); + // 更新 + UnqualifiedNotificationDO updateObj = BeanUtils.toBean(updateReqVO, UnqualifiedNotificationDO.class); + + OperateTypeEnum operateTypeEnum = OperateTypeEnum.valueOf(updateReqVO.getActive()); + if(!updateObj.canOperate(operateTypeEnum)){ + throw exception(INVALID_OPERATE); + } + + if(operateTypeEnum == OperateTypeEnum.AUDIT){ + updateObj.setAuditor(SecurityFrameworkUtils.getLoginUserId()).setAuditTime(LocalDateTime.now()); + } + + updateObj.setNotificationStatus(UnqualifiedNotificationStatusEnum.valueOf(updateReqVO.getActive()).getCode()); + unqualifiedNotificationMapper.updateById(updateObj); + } + + @Override + public void deleteUnqualifiedNotification(Long id) { + // 校验存在 + validateUnqualifiedNotificationExists(id); + // 删除 + unqualifiedNotificationMapper.deleteById(id); + } + + private void validateUnqualifiedNotificationExists(Long id) { + if (unqualifiedNotificationMapper.selectById(id) == null) { + throw exception(UNQUALIFIED_NOTIFICATION_NOT_EXISTS); + } + } + + @Override + public UnqualifiedNotificationDO getUnqualifiedNotification(Long id) { + return unqualifiedNotificationMapper.selectById(id); + } + + @Override + public PageResult getUnqualifiedNotificationPage(UnqualifiedNotificationPageReqVO pageReqVO) { + return unqualifiedNotificationMapper.selectPage(pageReqVO); + } + + @Override + public void operate(UnqualifiedNotificationSaveReqVO operateReqVO) { + if(operateReqVO.getId() == null){ + createUnqualifiedNotification(operateReqVO); + }else{ + updateUnqualifiedNotification(operateReqVO); + } + } + +} diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/unqualifiednotification/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/unqualifiednotification/index.ts index e5e7016b..57e84f17 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/unqualifiednotification/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/unqualifiednotification/index.ts @@ -47,3 +47,7 @@ export const deleteUnqualifiedNotification = async (id: number) => { export const exportUnqualifiedNotification = async (params) => { return await request.download({ url: `/heli/unqualified-notification/export-excel`, params }) } + +export async function operateUnqualifiedNotification(data: UnqualifiedNotificationVO) { + return await request.post({ url: `/heli/unqualified-notification/operate`, data }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/unqualifiednotification/UnqualifiedNotificationForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/unqualifiednotification/UnqualifiedNotificationForm.vue deleted file mode 100644 index cf03646c..00000000 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/unqualifiednotification/UnqualifiedNotificationForm.vue +++ /dev/null @@ -1,181 +0,0 @@ - - \ No newline at end of file diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/unqualifiednotification/detail.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/unqualifiednotification/detail.vue new file mode 100644 index 00000000..515c51b7 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/unqualifiednotification/detail.vue @@ -0,0 +1,309 @@ + + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/unqualifiednotification/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/unqualifiednotification/index.vue index 4004d6a1..d210e5ac 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/unqualifiednotification/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/unqualifiednotification/index.vue @@ -1,7 +1,7 @@