From a82995448c04f989199a25d9384c8603060cccb3 Mon Sep 17 00:00:00 2001 From: Ledo Date: Fri, 17 Jan 2025 01:23:11 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E4=BA=A7/=E8=A3=85=E9=85=8D=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=EF=BC=8C=E8=AE=A2=E5=8D=95=E8=B7=9F=E8=B8=AA=E5=BC=80?= =?UTF-8?q?=E5=8F=91=E5=AE=8C=E6=88=90=EF=BC=8C=E7=9B=98=E5=BA=93=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/heli/enums/ErrorCodeConstants.java | 1 + .../storagecheck/StorageCheckController.java | 7 +- .../admin/track/TrackController.java | 95 ++++++++ .../admin/track/vo/TrackPageReqVO.java | 66 +++++ .../admin/track/vo/TrackRespVO.java | 90 +++++++ .../admin/track/vo/TrackSaveReqVO.java | 67 ++++++ .../taskdispatch/TaskDispatchDetailDO.java | 12 +- .../heli/dal/dataobject/track/TrackDO.java | 100 ++++++++ .../mysql/taskreport/TaskReportMapper.java | 12 + .../heli/dal/mysql/track/TrackMapper.java | 85 +++++++ .../taskdispatch/TaskDispatchServiceImpl.java | 19 +- .../heli/service/track/TrackService.java | 55 +++++ .../heli/service/track/TrackServiceImpl.java | 136 +++++++++++ .../resources/mapper/track/TrackMapper.xml | 12 + mes-ui/mes-ui-admin-vue3/.env.dev | 2 +- mes-ui/mes-ui-admin-vue3/.env.pro | 6 +- .../src/api/heli/track/index.ts | 52 ++++ .../src/views/heli/plantrack/TrackForm.vue | 170 +++++++++++++ .../src/views/heli/plantrack/index.vue | 225 ++++++++++++++++++ .../src/views/heli/storage/StorageOut.vue | 2 +- .../src/views/heli/storage/StorageOutsp.vue | 2 +- .../views/heli/storagecheck/checkdetail.vue | 50 ++-- .../src/views/heli/taskdispatch/detail.vue | 21 +- .../views/heli/taskdispatch/detailDialog.vue | 20 +- 24 files changed, 1253 insertions(+), 54 deletions(-) create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/track/TrackController.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/track/vo/TrackPageReqVO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/track/vo/TrackRespVO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/track/vo/TrackSaveReqVO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/track/TrackDO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/track/TrackMapper.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/track/TrackService.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/track/TrackServiceImpl.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/track/TrackMapper.xml create mode 100644 mes-ui/mes-ui-admin-vue3/src/api/heli/track/index.ts create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/heli/plantrack/TrackForm.vue create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/heli/plantrack/index.vue diff --git a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java index 59901f3..d18bf60 100644 --- a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java +++ b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java @@ -138,4 +138,5 @@ public interface ErrorCodeConstants { ErrorCode SALE_ORDER_COST_DETAIL_NOT_EXISTS = new ErrorCode(1_011_001, "项目订单成本汇算明细不存在"); /************责任人管理***********/ ErrorCode OWNER_NOT_EXISTS = new ErrorCode(1_013_001, "人员配置主数据维护错误,请确认!"); + ErrorCode TRACK_NOT_EXISTS = new ErrorCode(1_013_002, "生产进度跟踪不存在"); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagecheck/StorageCheckController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagecheck/StorageCheckController.java index fef5ba3..795d371 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagecheck/StorageCheckController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagecheck/StorageCheckController.java @@ -19,6 +19,8 @@ import io.swagger.v3.oas.annotations.Operation; import javax.validation.constraints.*; import javax.validation.*; import javax.servlet.http.*; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.LocalDateTime; import java.util.*; import java.io.IOException; @@ -70,7 +72,10 @@ public class StorageCheckController { double money = Double.parseDouble(item.getMoney().toString()); if (money != 0) { - item.setOnemoney(String.valueOf(money /storageOkQty)); + BigDecimal moneyBD = new BigDecimal(money); + BigDecimal storageOkQtyBD = new BigDecimal(storageOkQty); + BigDecimal result = moneyBD.divide(storageOkQtyBD, 1, RoundingMode.HALF_UP); + item.setOnemoney(result.toString()); } else { // 处理除数为零的情况,例如设置一个默认值或返回一个错误 item.setOnemoney("0"); // 或者根据业务逻辑设置一个合适的值 diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/track/TrackController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/track/TrackController.java new file mode 100644 index 0000000..b960495 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/track/TrackController.java @@ -0,0 +1,95 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.track; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; +import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; + +import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; + +import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; +import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*; + +import com.chanko.yunxi.mes.module.heli.controller.admin.track.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.track.TrackDO; +import com.chanko.yunxi.mes.module.heli.service.track.TrackService; + +@Tag(name = "管理后台 - 生产进度跟踪") +@RestController +@RequestMapping("/heli/track") +@Validated +public class TrackController { + + @Resource + private TrackService trackService; + + @PostMapping("/create") + @Operation(summary = "创建生产进度跟踪") + @PreAuthorize("@ss.hasPermission('heli:track:create')") + public CommonResult createTrack(@Valid @RequestBody TrackSaveReqVO createReqVO) { + return success(trackService.createTrack(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新生产进度跟踪") + @PreAuthorize("@ss.hasPermission('heli:track:update')") + public CommonResult updateTrack(@Valid @RequestBody TrackSaveReqVO updateReqVO) { + trackService.updateTrack(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除生产进度跟踪") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('heli:track:delete')") + public CommonResult deleteTrack(@RequestParam("id") Long id) { + trackService.deleteTrack(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得生产进度跟踪") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('heli:track:query')") + public CommonResult getTrack(@RequestParam("id") Long id) { + TrackDO track = trackService.getTrack(id); + return success(BeanUtils.toBean(track, TrackRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得生产进度跟踪分页") + @PreAuthorize("@ss.hasPermission('heli:track:query')") + public CommonResult> getTrackPage(@Valid TrackPageReqVO pageReqVO) { + PageResult pageResult = trackService.getTrackPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, TrackRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出生产进度跟踪 Excel") + @PreAuthorize("@ss.hasPermission('heli:track:export')") + @OperateLog(type = EXPORT) + public void exportTrackExcel(@Valid TrackPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = trackService.getTrackPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "生产进度跟踪.xls", "数据", TrackRespVO.class, + BeanUtils.toBean(list, TrackRespVO.class)); + } + +} \ 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/controller/admin/track/vo/TrackPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/track/vo/TrackPageReqVO.java new file mode 100644 index 0000000..39c9941 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/track/vo/TrackPageReqVO.java @@ -0,0 +1,66 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.track.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; + +@Schema(description = "管理后台 - 生产进度跟踪分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class TrackPageReqVO extends PageParam { + + @Schema(description = "项目编号") + private String projectCode; + + @Schema(description = "项目id", example = "5244") + private Integer projectId; + + @Schema(description = "生产计划单号") + private String planCode; + + @Schema(description = "生产计划id", example = "30184") + private Integer planId; + + @Schema(description = "生产状态", example = "2") + private Integer planStatus; + + @Schema(description = "子项目编号") + private String projectOrderSubCode; + + @Schema(description = "子项目id", example = "28598") + private Integer projectOrderSubId; + + @Schema(description = "子项目名称", example = "李四") + private String projectOrderSubName; + + @Schema(description = "零件id", example = "26151") + private Integer bomDetailId; + + @Schema(description = "零件名称", example = "王五") + private String bomDetailName; + + @Schema(description = "工序名称", example = "赵六") + private String processName; + @Schema(description = "责任人", example = "赵六") + private Long owner; + @Schema(description = "工序id", example = "13795") + private Integer processId; + + @Schema(description = "总派工数量") + private Integer dispatchAmount; + + @Schema(description = "总报工时间") + private Integer reportAllHour; + + @Schema(description = "总预计工时") + private Integer reportPreviewHour; + + @Schema(description = "总报工数量") + private Integer reportAmount; + + @Schema(description = "完成状态") + private Integer isover; + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/track/vo/TrackRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/track/vo/TrackRespVO.java new file mode 100644 index 0000000..b225124 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/track/vo/TrackRespVO.java @@ -0,0 +1,90 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.track.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.math.BigDecimal; +import java.util.*; +import java.util.*; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 生产进度跟踪 Response VO") +@Data +@ExcelIgnoreUnannotated +public class TrackRespVO { + + @Schema(description = "项目编号") + @ExcelProperty("项目编号") + private String projectCode; + + @Schema(description = "项目id", example = "5244") + @ExcelProperty("项目id") + private Integer projectId; + @Schema(description = "项目名称", example = "5244") + @ExcelProperty("项目名称") + private String projectName; + @Schema(description = "id主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "15401") + @ExcelProperty("id主键") + private Long id; + + @Schema(description = "生产计划单号") + @ExcelProperty("生产计划单号") + private String planCode; + + @Schema(description = "生产计划id", example = "30184") + @ExcelProperty("生产计划id") + private Integer planId; + + @Schema(description = "生产状态", example = "2") + @ExcelProperty("生产状态") + private Integer planStatus; + + @Schema(description = "子项目编号") + @ExcelProperty("子项目编号") + private String projectOrderSubCode; + + @Schema(description = "子项目id", example = "28598") + @ExcelProperty("子项目id") + private Integer projectOrderSubId; + + @Schema(description = "子项目名称", example = "李四") + @ExcelProperty("子项目名称") + private String projectOrderSubName; + + @Schema(description = "零件id", example = "26151") + @ExcelProperty("零件id") + private Integer bomDetailId; + + @Schema(description = "零件名称", example = "王五") + @ExcelProperty("零件名称") + private String bomDetailName; + + @Schema(description = "工序名称", example = "赵六") + @ExcelProperty("工序名称") + private String processName; + + @Schema(description = "工序id", example = "13795") + @ExcelProperty("工序id") + private Integer processId; + + @Schema(description = "总派工数量") + @ExcelProperty("总派工数量") + private Integer dispatchAmount; + + @Schema(description = "总报工时间") + @ExcelProperty("总报工时间") + private BigDecimal reportAllHour; + + @Schema(description = "总预计工时") + @ExcelProperty("总预计工时") + private BigDecimal reportPreviewHour; + + @Schema(description = "总报工数量") + @ExcelProperty("总报工数量") + private Integer reportAmount; + + @Schema(description = "完成状态") + @ExcelProperty("完成状态") + private Integer isover; + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/track/vo/TrackSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/track/vo/TrackSaveReqVO.java new file mode 100644 index 0000000..0f23ccc --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/track/vo/TrackSaveReqVO.java @@ -0,0 +1,67 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.track.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; + +@Schema(description = "管理后台 - 生产进度跟踪新增/修改 Request VO") +@Data +public class TrackSaveReqVO { + + @Schema(description = "项目编号") + private String projectCode; + + @Schema(description = "项目id", example = "5244") + private Integer projectId; + + @Schema(description = "id主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "15401") + private Long id; + + @Schema(description = "生产计划单号") + private String planCode; + + @Schema(description = "生产计划id", example = "30184") + private Integer planId; + + @Schema(description = "生产状态", example = "2") + private Integer planStatus; + + @Schema(description = "子项目编号") + private String projectOrderSubCode; + + @Schema(description = "子项目id", example = "28598") + private Integer projectOrderSubId; + + @Schema(description = "子项目名称", example = "李四") + private String projectOrderSubName; + + @Schema(description = "零件id", example = "26151") + private Integer bomDetailId; + + @Schema(description = "零件名称", example = "王五") + private String bomDetailName; + + @Schema(description = "工序名称", example = "赵六") + private String processName; + + @Schema(description = "工序id", example = "13795") + private Integer processId; + + @Schema(description = "总派工数量") + private Integer dispatchAmount; + + @Schema(description = "总报工时间") + private Integer reportAllHour; + + @Schema(description = "总预计工时") + private Integer reportPreviewHour; + + @Schema(description = "总报工数量") + private Integer reportAmount; + + @Schema(description = "完成状态") + private Integer isover; + +} \ 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/dal/dataobject/taskdispatch/TaskDispatchDetailDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDetailDO.java index bd1d79d..d31856d 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDetailDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDetailDO.java @@ -48,6 +48,11 @@ public class TaskDispatchDetailDO extends BaseDO { * 派工数量 */ private Integer amount; + /** + * 派工数量 + */ + @TableField(exist = false) + private Integer beforeAmount; /** * 工序要点 */ @@ -65,6 +70,8 @@ public class TaskDispatchDetailDO extends BaseDO { */ @TableField(fill = FieldFill.UPDATE) private Long deviceModel; + @TableField(exist = false) + private Long bomDetailId; /** * 预计开始日期 */ @@ -115,7 +122,8 @@ public class TaskDispatchDetailDO extends BaseDO { private Integer beforeProcedureStatus; @TableField(exist = false) private Integer planType; - + @TableField(exist = false) + private String planCode; @TableField(exist = false) private String procdureName; @@ -142,4 +150,6 @@ public class TaskDispatchDetailDO extends BaseDO { private Integer isReport; @TableField(exist = false) private Integer numAmount; + @TableField(exist = false) + private Long beginProduce; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/track/TrackDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/track/TrackDO.java new file mode 100644 index 0000000..8288d38 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/track/TrackDO.java @@ -0,0 +1,100 @@ +package com.chanko.yunxi.mes.module.heli.dal.dataobject.track; + +import lombok.*; + +import java.math.BigDecimal; +import java.util.*; +import com.baomidou.mybatisplus.annotation.*; +import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; + +/** + * 生产进度跟踪 DO + * + * @author 管理员 + */ +@TableName("plan_track") +@KeySequence("plan_track_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TrackDO extends BaseDO { + + /** + * 项目编号 + */ + private String projectCode; + /** + * 项目id + */ + private Integer projectId; + private String projectName; + /** + * id主键 + */ + @TableId + private Long id; + /** + * 生产计划单号 + */ + private String planCode; + /** + * 生产计划id + */ + private Integer planId; + /** + * 生产状态 + */ + private Integer planStatus; + /** + * 子项目编号 + */ + private String projectOrderSubCode; + /** + * 子项目id + */ + private Integer projectOrderSubId; + /** + * 子项目名称 + */ + private String projectOrderSubName; + /** + * 零件id + */ + private Integer bomDetailId; + /** + * 零件名称 + */ + private String bomDetailName; + /** + * 工序名称 + */ + private String processName; + /** + * 工序id + */ + private Long processId; + /** + * 总派工数量 + */ + private Integer dispatchAmount; + /** + * 总报工时间 + */ + private BigDecimal reportAllHour; + /** + * 总预计工时 + */ + private BigDecimal reportPreviewHour; + /** + * 总报工数量 + */ + private Integer reportAmount; + /** + * 完成状态 + */ + private Integer isover; + +} 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 ac88916..7eb2e4f 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 @@ -15,6 +15,8 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; import org.springframework.util.StringUtils; +import java.math.BigDecimal; +import java.util.HashMap; import java.util.List; /** @@ -55,5 +57,15 @@ public interface TaskReportMapper extends BaseMapperX { return selectPage(reqVO, query); } public int deleteByDispatchDetailIds(List dispatchDetailIds); + default TaskReportDO getReprotSum(Long dispatchDetailId){ + MPJLambdaWrapper query1 = new MPJLambdaWrapper<>(); + query1.selectSum(TaskReportDO::getAmount,"amount").selectSum(TaskReportDO::getWorkTime,"workTime").eq(TaskReportDO::getDispatchDetailId,dispatchDetailId).groupBy(TaskDispatchDetailDO::getDispatchId); + return selectOne(query1); + } + default Long hasReport(Long dispatchDetailId){ + MPJLambdaWrapper query1 = new MPJLambdaWrapper<>(); + query1.eq(TaskReportDO::getDispatchDetailId,dispatchDetailId); + return selectCount(query1); + } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/track/TrackMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/track/TrackMapper.java new file mode 100644 index 0000000..bde4bbb --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/track/TrackMapper.java @@ -0,0 +1,85 @@ +package com.chanko.yunxi.mes.module.heli.dal.mysql.track; + +import java.util.*; + +import com.baomidou.mybatisplus.generator.IFill; +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.taskdispatch.vo.TaskDispatchDetailPageReqVO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; +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.procedure.ProcedureDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO; +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.heli.dal.dataobject.track.TrackDO; +import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetailMapper; +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.track.vo.*; + +/** + * 生产进度跟踪 Mapper + * + * @author 管理员 + */ +@Mapper +public interface TrackMapper extends BaseMapperX { + + default PageResult selectPage(TrackPageReqVO reqVO, TaskDispatchDetailMapper taskDispatchDetailMapper) { + TaskDispatchDetailPageReqVO dispatchDetailPageReqVO = new TaskDispatchDetailPageReqVO(); + dispatchDetailPageReqVO.setPageSize(reqVO.getPageSize()).setPageNo(reqVO.getPageNo()); + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.select(TaskDispatchDetailDO::getAmount) + .select(TaskDispatchDetailDO::getWorkTime) + .select(TaskDispatchDetailDO::getProcedureId) + .select(TaskDispatchDetailDO::getProcedureStatus) + .select("pod.code as projectCode,pod.project_name as projectName") + .select("pl.plan_no as planCode,pl.status as planType") + .select("tpd.bom_detail_id as bomDetailId") + .select("pos.name as projectSubName,ps.project_sub_code as projectSubCode") + .leftJoin(TaskDispatchDO.class,"tpd",TaskDispatchDO::getId,TaskDispatchDetailDO::getDispatchId) + .leftJoin(ProjectOrderSubDO.class,"pos",ProjectOrderSubDO::getId,TaskDispatchDO::getProjectSubId) + .leftJoin(ProjectOrderDO.class,"pod",ProjectOrderDO::getId,TaskDispatchDO::getProjectId) + .leftJoin(PlanDO.class,"pl",PlanDO::getId,TaskDispatchDO::getPlanId) + .leftJoin(PlanSubDO.class,"ps",PlanSubDO::getProjectSubId,TaskDispatchDO::getProjectSubId) + .leftJoin(TaskReportDO.class,"tr",TaskReportDO::getDispatchDetailId,TaskDispatchDetailDO::getId) + .leftJoin(AdminUserDO.class,"u",AdminUserDO::getId,TaskDispatchDetailDO::getOwner) + .leftJoin(ProcessBomDO.class,"pb",ProcessBomDO::getProjectSubId,TaskDispatchDO::getProjectSubId) + .ne(ProcessBomDO::getBomStatus,3) + .selectSum(TaskReportDO::getAmount,"totalReportAmount").selectSum(TaskReportDO::getWorkTime,"totalWorkTime") + .ne(ProjectOrderDO::getStatus,3) + .groupBy(TaskDispatchDetailDO::getId) + .getSelectDistinct(); + if (reqVO.getProjectCode()!=null&&!reqVO.getProjectCode().trim().equals("")){ + query.like(ProjectOrderDO::getCode,reqVO.getProjectCode()); + } + if (reqVO.getPlanCode()!=null && !reqVO.getPlanCode().trim().equals("")){ + query.like(PlanDO::getPlanNo,reqVO.getPlanCode()); + } + if (reqVO.getProjectOrderSubCode()!=null && !reqVO.getProjectOrderSubCode().trim().equals("")){ + query.like(PlanSubDO::getProjectSubCode,reqVO.getProjectOrderSubCode()); + } + if (reqVO.getProjectOrderSubName()!=null && !reqVO.getProjectOrderSubName().trim().equals("")){ + query.like(ProjectOrderSubDO::getName,reqVO.getProjectOrderSubName()); + } + if (reqVO.getBomDetailName()!=null && !reqVO.getBomDetailName().trim().equals("")){ + query .select("pbd.material_name as materialName") + .leftJoin(ProcessBomDetailDO.class,"pbd",ProcessBomDetailDO::getId,TaskDispatchDO::getBomDetailId) + .like(ProcessBomDetailDO::getMaterialName,reqVO.getBomDetailName()); + } + if (reqVO.getOwner()!=null){ + query.eq(AdminUserDO::getId,reqVO.getOwner()); + } + return taskDispatchDetailMapper.selectPage(dispatchDetailPageReqVO, query); + + } + +} 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 b5a706b..ff504d1 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 @@ -136,7 +136,11 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { // 明细工序状态更新 if(operateTypeEnum == OperateTypeEnum.SUBMIT){ 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.getBeforeAmount() != null && taskDispatchDetailDO.getAmount() == null) + ){ taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.SUBMITTED.getCode()); } }); @@ -146,8 +150,12 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { throw exception(new ErrorCode(1_000_099,"计划已完成,不允许取消提交")); } updateReqVO.getTaskDispatchDetails().forEach(taskDispatchDetailDO -> { + //2025-01-17 取消提交 - 如果已报工完成的工序,报工状态还是已完成 + if (taskDispatchDetailDO.getProcedureStatus() != 2){ taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.DEFAULT.getCode()); - }); + + } + }); } updateObj.setDispatchStatus(TaskDispatchStatusEnum.valueOf(updateReqVO.getActive()).getCode()); taskDispatchMapper.updateById(updateObj); @@ -307,6 +315,13 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { @Override public List getTaskDispatchDetailListByDispatchId(Long dispatchId) { List taskDispatchDetailDOS = taskDispatchDetailMapper.selectListByDispatchId(dispatchId); + for (TaskDispatchDetailDO taskDispatchDetailDO : taskDispatchDetailDOS) { + taskDispatchDetailDO.setBeginProduce(taskReportMapper.hasReport(taskDispatchDetailDO.getId())) ; + if (taskDispatchDetailDO.getAmount()!=null){ + + taskDispatchDetailDO.setBeforeAmount(taskDispatchDetailDO.getAmount()); + } + } return taskDispatchDetailDOS; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/track/TrackService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/track/TrackService.java new file mode 100644 index 0000000..6fb0b4f --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/track/TrackService.java @@ -0,0 +1,55 @@ +package com.chanko.yunxi.mes.module.heli.service.track; + +import java.util.*; +import javax.validation.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.track.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.track.TrackDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; + +/** + * 生产进度跟踪 Service 接口 + * + * @author 管理员 + */ +public interface TrackService { + + /** + * 创建生产进度跟踪 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createTrack(@Valid TrackSaveReqVO createReqVO); + + /** + * 更新生产进度跟踪 + * + * @param updateReqVO 更新信息 + */ + void updateTrack(@Valid TrackSaveReqVO updateReqVO); + + /** + * 删除生产进度跟踪 + * + * @param id 编号 + */ + void deleteTrack(Long id); + + /** + * 获得生产进度跟踪 + * + * @param id 编号 + * @return 生产进度跟踪 + */ + TrackDO getTrack(Long id); + + /** + * 获得生产进度跟踪分页 + * + * @param pageReqVO 分页查询 + * @return 生产进度跟踪分页 + */ + PageResult getTrackPage(TrackPageReqVO pageReqVO); + +} \ 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/track/TrackServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/track/TrackServiceImpl.java new file mode 100644 index 0000000..e2ce2fe --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/track/TrackServiceImpl.java @@ -0,0 +1,136 @@ +package com.chanko.yunxi.mes.module.heli.service.track; + +import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; +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.taskdispatch.TaskDispatchDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.mysql.material.MaterialMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.procedure.ProcedureMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetailMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.taskreport.TaskReportMapper; +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.track.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.track.TrackDO; +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.track.TrackMapper; + +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 TrackServiceImpl implements TrackService { + + @Resource + private TrackMapper trackMapper; + @Resource + private TaskDispatchDetailMapper taskDispatchDetailMapper; + @Resource + private ProcessBomDetailMapper processBomDetailDO; + @Resource + private MaterialMapper materialMapper; + @Resource + private ProcedureMapper procedureMapper; + @Override + public Long createTrack(TrackSaveReqVO createReqVO) { + // 插入 + TrackDO track = BeanUtils.toBean(createReqVO, TrackDO.class); + trackMapper.insert(track); + // 返回 + return track.getId(); + } + + @Override + public void updateTrack(TrackSaveReqVO updateReqVO) { + // 校验存在 + validateTrackExists(updateReqVO.getId()); + // 更新 + TrackDO updateObj = BeanUtils.toBean(updateReqVO, TrackDO.class); + trackMapper.updateById(updateObj); + } + + @Override + public void deleteTrack(Long id) { + // 校验存在 + validateTrackExists(id); + // 删除 + trackMapper.deleteById(id); + } + + private void validateTrackExists(Long id) { + if (trackMapper.selectById(id) == null) { + throw exception(TRACK_NOT_EXISTS); + } + } + + @Override + public TrackDO getTrack(Long id) { + return trackMapper.selectById(id); + } + + @Override + public PageResult getTrackPage(TrackPageReqVO pageReqVO) { + PageResult taskDispatchDetailDOPageResult = trackMapper.selectPage(pageReqVO, taskDispatchDetailMapper); + PageResult pageResult = new PageResult<>(); + pageResult.setTotalPages(taskDispatchDetailDOPageResult.getTotalPages()); + pageResult.setTotal(taskDispatchDetailDOPageResult.getTotal()); + List list = taskDispatchDetailDOPageResult.getList(); + List trackDOS = new ArrayList<>(); + pageResult.setList(trackDOS); + //如果零件名字为空就查一下零 + for (TaskDispatchDetailDO to : list) { + + TrackDO trackDO = new TrackDO(); + trackDOS.add(trackDO); + trackDO.setProjectCode(to.getProjectCode()) + .setProjectName(to.getProjectName()) + .setPlanCode(to.getPlanCode()) + .setPlanStatus(to.getPlanType()) + .setProjectOrderSubName(to.getProjectSubName()) + .setProjectOrderSubCode(to.getProjectSubCode()) + .setProcessId(to.getProcedureId()) + .setReportAmount(to.getTotalReportAmount()) + .setDispatchAmount(to.getAmount()) + .setReportPreviewHour(to.getWorkTime()) + .setReportAllHour(to.getTotalWorkTime()) + ; + if (to.getProcedureStatus() == 2){ + trackDO.setIsover(2); + }else { + trackDO.setIsover(1); + } + + //1.零件名字if (reqVO.getBomDetailName()!=null && !reqVO.getBomDetailName().trim().equals("")) + if (to.getBomDetailId()!=null && (pageReqVO.getBomDetailName() == null || pageReqVO.getBomDetailName().trim().equals(""))){ + ProcessBomDetailDO processBomDetailDO1 = processBomDetailDO.selectById(to.getBomDetailId()); + + if(processBomDetailDO1!=null&&processBomDetailDO1.getMaterialName()!=null){ + trackDO.setBomDetailName(processBomDetailDO1.getMaterialName()); + } + } + if (to.getProcedureId()!=null){ + ProcedureDO procedureDO = procedureMapper.selectById(to.getProcedureId()); + if (procedureDO!=null){ + trackDO.setProcessName(procedureDO.getName()); + } + } + } + + return pageResult; + } + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/track/TrackMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/track/TrackMapper.xml new file mode 100644 index 0000000..e84050d --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/track/TrackMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/mes-ui/mes-ui-admin-vue3/.env.dev b/mes-ui/mes-ui-admin-vue3/.env.dev index 3e3884c..053d513 100644 --- a/mes-ui/mes-ui-admin-vue3/.env.dev +++ b/mes-ui/mes-ui-admin-vue3/.env.dev @@ -1,7 +1,7 @@ # 开发环境 NODE_ENV=development -VITE_DEV=false +VITE_DEV=true # 请求路径https://star.hz-hl.com/admin-api http://192.168.1.87:8080 VITE_BASE_URL='https://nxhs.cjyx.cc' diff --git a/mes-ui/mes-ui-admin-vue3/.env.pro b/mes-ui/mes-ui-admin-vue3/.env.pro index a06e49a..5fe320c 100644 --- a/mes-ui/mes-ui-admin-vue3/.env.pro +++ b/mes-ui/mes-ui-admin-vue3/.env.pro @@ -4,14 +4,14 @@ NODE_ENV=production VITE_DEV=false # 请求路径https://star.hz-hl.com/admin-api http://192.168.1.87:8080 -VITE_BASE_URL='https://star.hz-hl.com' +VITE_BASE_URL='https://nxhs.cjyx.cc' # 上传路径 http://218.75.46.166:8080 -VITE_UPLOAD_URL='https://star.hz-hl.com/admin-api/infra/file/upload' +VITE_UPLOAD_URL='https://nxhs.cjyx.cc/admin-api/infra/file/upload' # 上传路径 -VITE_UPLOAD_BATCH_URL='https://star.hz-hl.com/admin-api/infra/file/uploadBatch' +VITE_UPLOAD_BATCH_URL='https://nxhs.cjyx.cc/admin-api/infra/file/uploadBatch' # 接口前缀 VITE_API_BASEPATH= diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/track/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/track/index.ts new file mode 100644 index 0000000..816ad17 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/track/index.ts @@ -0,0 +1,52 @@ +import request from '@/config/axios' + +export interface TrackVO { + projectCode: string + projectId: number + id: number + planCode: string + planId: number + planStatus: number + projectOrderSubCode: string + projectOrderSubId: number + projectOrderSubName: string + bomDetailId: number + bomDetailName: string + processName: string + processId: number + dispatchAmount: number + reportAllHour: number + reportPreviewHour: number + reportAmount: number + isover: number +} + +// 查询生产进度跟踪分页 +export const getTrackPage = async (params) => { + return await request.get({ url: `/heli/track/page`, params }) +} + +// 查询生产进度跟踪详情 +export const getTrack = async (id: number) => { + return await request.get({ url: `/heli/track/get?id=` + id }) +} + +// 新增生产进度跟踪 +export const createTrack = async (data: TrackVO) => { + return await request.post({ url: `/heli/track/create`, data }) +} + +// 修改生产进度跟踪 +export const updateTrack = async (data: TrackVO) => { + return await request.put({ url: `/heli/track/update`, data }) +} + +// 删除生产进度跟踪 +export const deleteTrack = async (id: number) => { + return await request.delete({ url: `/heli/track/delete?id=` + id }) +} + +// 导出生产进度跟踪 Excel +export const exportTrack = async (params) => { + return await request.download({ url: `/heli/track/export-excel`, params }) +} \ No newline at end of file diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/plantrack/TrackForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/plantrack/TrackForm.vue new file mode 100644 index 0000000..99d9f84 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/plantrack/TrackForm.vue @@ -0,0 +1,170 @@ + + \ No newline at end of file diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/plantrack/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/plantrack/index.vue new file mode 100644 index 0000000..501524d --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/plantrack/index.vue @@ -0,0 +1,225 @@ + + + \ No newline at end of file diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/storage/StorageOut.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/storage/StorageOut.vue index 7175cc9..bca1c0d 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/storage/StorageOut.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/storage/StorageOut.vue @@ -374,10 +374,10 @@ link type="primary" size="small" :disabled="ctrView || ctrDelete" diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/storage/StorageOutsp.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/storage/StorageOutsp.vue index 7f4a533..2ff5a48 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/storage/StorageOutsp.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/storage/StorageOutsp.vue @@ -374,10 +374,10 @@ link type="primary" size="small" :disabled="ctrView || ctrDelete" diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/storagecheck/checkdetail.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/storagecheck/checkdetail.vue index 58f57cb..443b47b 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/storagecheck/checkdetail.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/storagecheck/checkdetail.vue @@ -140,15 +140,15 @@ - + - + @@ -273,10 +273,10 @@ ref="matUploadRef" :file-list="matUploadFiles" multiple :action="uploadUrl" :hea @@ -286,10 +286,10 @@ ref="matUploadRef" :file-list="matUploadFiles" multiple :action="uploadUrl" :hea @@ -417,13 +417,7 @@ const handleStatus = async (num) => { return } formData.value.keeper = useUserStore().getUser.id - //保存表单数据 - await saveFormData() - await CheckApi.updateStorageCheckStatus(formData.value.id) - await initStatus(formData.value.status) - if (sumbefore.value == 0) { - reload() - } + centerDialogVisible.value = true; } else { deleteDialogVisible.value = true; } @@ -624,15 +618,13 @@ const saveFormData = async () => { } const sureToSubmit = async() =>{ centerDialogVisible.value = false; - //保存表单数据 - await saveFormData() - - await initStatus(formData.value.status) - - // 成功后刷新 - if (sumbefore.value == 0) { - reload() - } + //保存表单数据 + await saveFormData() + await CheckApi.updateStorageCheckStatus(formData.value.id) + await initStatus(formData.value.status) + if (sumbefore.value == 0) { + reload() + } } const submitForm = async () => { @@ -665,7 +657,15 @@ const submitForm = async () => { } catch (e) { return } - centerDialogVisible.value = true; + //保存表单数据 + await saveFormData() + +await initStatus(formData.value.status) + +// 成功后刷新 +if (sumbefore.value == 0) { + reload() +} } var matCount = 1 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 62b855b..6b6917e 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 @@ -260,7 +260,7 @@ ref="subFormRef" :model="formData.taskDispatchDetails" :rules="subFormRules" @@ -288,7 +288,7 @@ min="0" :precision="0" class="!w-240px" - + @@ -301,7 +301,7 @@ v-for="dict in userInit" :key="dict.id" @@ -311,7 +311,7 @@ v-for="dict in userInit" :key="dict.id" @@ -322,7 +322,7 @@ v-for="dict in userInit" :key="dict.id" @@ -333,7 +333,7 @@ min="0" :precision="2" class="!w-240px" @@ -344,7 +344,7 @@ min="0" :precision="2" class="!w-240px" + :disabled="detailDisabled || row.beginProduce != 0 || row.procedureStatus != 0" /> @@ -352,7 +352,7 @@ min="0" :precision="2" class="!w-240px" @@ -454,10 +454,10 @@ v-if="formData.dispatchStatus == 2" @click="printHandle(formData.id)" :disabled= @@ -880,6 +880,7 @@ const submitForm = async (operate) => { } } } + isSureCancle.value = false // 提交明细不能为空 if (operate == 'SUBMIT') { if (!formData.value.taskDispatchDetails || formData.value.taskDispatchDetails.length == 0) { diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detailDialog.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detailDialog.vue index f574125..3776d37 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detailDialog.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detailDialog.vue @@ -243,7 +243,7 @@ class="!w-260px" v-model="formData.createTime" type="date" value-format="x" @@ -339,7 +339,7 @@ min="0" :max="formData.amount" :precision="0" class="!w-240px" + :disabled="detailDisabled ||row.beginProduce != 0 || row.procedureStatus != 0" /> @@ -347,7 +347,7 @@ v-model="row.deviceModel" @@ -1008,7 +1008,7 @@ const queryData = async (id?: number) => { ownerList1.value = await getOwnerListThis (); ownerList2.value = await getOwnerPostListThis (); formData.value.bomCode = 'BOM-' + formData.value.projectSubCode - if (formData.value.dispatchStatus == 2) { + if (formData.value.dispatchStatus == 2 ) { detailDisabled.value = true }else{ detailDisabled.value = false @@ -1058,6 +1058,7 @@ const submitForm = async (operate) => { } } } + isSureCancle.value = false if(operate == 'SUBMIT'||operate == 'SAVE'){ if (!formData.value.taskDispatchDetails || formData.value.taskDispatchDetails.length == 0) { message.error('派工明细不能为空') @@ -1085,6 +1086,7 @@ const submitForm = async (operate) => { } } const data = formData.value as unknown as TaskDispatchApi.TaskDispatchVO + console.log(data); let dataId = await TaskDispatchApi.operateTaskDispatch(data) message.success(t('common.operationSuccess'))