Compare commits
No commits in common. "e1f3685791f65f65f1ee5f29b79266fda41987eb" and "605dbfd5ca8bf89ece51fe61293db7047b0e38e2" have entirely different histories.
e1f3685791
...
605dbfd5ca
1
.gitignore
vendored
1
.gitignore
vendored
@ -26,4 +26,3 @@ node_modules/
|
|||||||
hs_err_pid*
|
hs_err_pid*
|
||||||
replay_pid*
|
replay_pid*
|
||||||
target
|
target
|
||||||
/.flattened-pom.xml
|
|
||||||
|
|||||||
@ -164,6 +164,5 @@ public interface ErrorCodeConstants {
|
|||||||
ErrorCode TRACK_NOT_EXISTS = new ErrorCode(1_013_002, "生产进度跟踪不存在");
|
ErrorCode TRACK_NOT_EXISTS = new ErrorCode(1_013_002, "生产进度跟踪不存在");
|
||||||
ErrorCode MAT_REQ_NOT_EXISTS = new ErrorCode(1_013_003, "领料单不存在");
|
ErrorCode MAT_REQ_NOT_EXISTS = new ErrorCode(1_013_003, "领料单不存在");
|
||||||
ErrorCode MAT_REQ_DETAIL_NOT_EXISTS = new ErrorCode(1_013_004, "领料单明细不存在");
|
ErrorCode MAT_REQ_DETAIL_NOT_EXISTS = new ErrorCode(1_013_004, "领料单明细不存在");
|
||||||
ErrorCode TASK_IN_REPORT_NOT_EXISTS = new ErrorCode(1_013_005 , "下料报工不存在");
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,95 +0,0 @@
|
|||||||
package com.chanko.yunxi.mes.module.heli.controller.admin.taskinreport;
|
|
||||||
|
|
||||||
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.taskinreport.vo.*;
|
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskinreport.TaskInReportDO;
|
|
||||||
import com.chanko.yunxi.mes.module.heli.service.taskinreport.TaskInReportService;
|
|
||||||
|
|
||||||
@Tag(name = "管理后台 - 下料报工")
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("/heli/task-in-report")
|
|
||||||
@Validated
|
|
||||||
public class TaskInReportController {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private TaskInReportService taskInReportService;
|
|
||||||
|
|
||||||
@PostMapping("/create")
|
|
||||||
@Operation(summary = "创建下料报工")
|
|
||||||
@PreAuthorize("@ss.hasPermission('heli:task-in-report:create')")
|
|
||||||
public CommonResult<Long> createTaskInReport(@Valid @RequestBody TaskInReportSaveReqVO createReqVO) {
|
|
||||||
return success(taskInReportService.createTaskInReport(createReqVO));
|
|
||||||
}
|
|
||||||
|
|
||||||
@PutMapping("/update")
|
|
||||||
@Operation(summary = "更新下料报工")
|
|
||||||
@PreAuthorize("@ss.hasPermission('heli:task-in-report:update')")
|
|
||||||
public CommonResult<Boolean> updateTaskInReport(@Valid @RequestBody TaskInReportSaveReqVO updateReqVO) {
|
|
||||||
taskInReportService.updateTaskInReport(updateReqVO);
|
|
||||||
return success(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@DeleteMapping("/delete")
|
|
||||||
@Operation(summary = "删除下料报工")
|
|
||||||
@Parameter(name = "id", description = "编号", required = true)
|
|
||||||
@PreAuthorize("@ss.hasPermission('heli:task-in-report:delete')")
|
|
||||||
public CommonResult<Boolean> deleteTaskInReport(@RequestParam("id") Long id) {
|
|
||||||
taskInReportService.deleteTaskInReport(id);
|
|
||||||
return success(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/get")
|
|
||||||
@Operation(summary = "获得下料报工")
|
|
||||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
|
||||||
@PreAuthorize("@ss.hasPermission('heli:task-in-report:query')")
|
|
||||||
public CommonResult<TaskInReportRespVO> getTaskInReport(@RequestParam("id") Long id) {
|
|
||||||
TaskInReportDO taskInReport = taskInReportService.getTaskInReport(id);
|
|
||||||
return success(BeanUtils.toBean(taskInReport, TaskInReportRespVO.class));
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/page")
|
|
||||||
@Operation(summary = "获得下料报工分页")
|
|
||||||
@PreAuthorize("@ss.hasPermission('heli:task-in-report:query')")
|
|
||||||
public CommonResult<PageResult<TaskInReportRespVO>> getTaskInReportPage(@Valid TaskInReportPageReqVO pageReqVO) {
|
|
||||||
PageResult<TaskInReportDO> pageResult = taskInReportService.getTaskInReportPage(pageReqVO);
|
|
||||||
return success(BeanUtils.toBean(pageResult, TaskInReportRespVO.class));
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/export-excel")
|
|
||||||
@Operation(summary = "导出下料报工 Excel")
|
|
||||||
@PreAuthorize("@ss.hasPermission('heli:task-in-report:export')")
|
|
||||||
@OperateLog(type = EXPORT)
|
|
||||||
public void exportTaskInReportExcel(@Valid TaskInReportPageReqVO pageReqVO,
|
|
||||||
HttpServletResponse response) throws IOException {
|
|
||||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
||||||
List<TaskInReportDO> list = taskInReportService.getTaskInReportPage(pageReqVO).getList();
|
|
||||||
// 导出 Excel
|
|
||||||
ExcelUtils.write(response, "下料报工.xls", "数据", TaskInReportRespVO.class,
|
|
||||||
BeanUtils.toBean(list, TaskInReportRespVO.class));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,58 +0,0 @@
|
|||||||
package com.chanko.yunxi.mes.module.heli.controller.admin.taskinreport.vo;
|
|
||||||
|
|
||||||
import lombok.*;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 下料报工分页 Request VO")
|
|
||||||
@Data
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@ToString(callSuper = true)
|
|
||||||
public class TaskInReportPageReqVO extends PageParam {
|
|
||||||
|
|
||||||
@Schema(description = "报工人")
|
|
||||||
private String ownerName;
|
|
||||||
|
|
||||||
@Schema(description = "项目编号")
|
|
||||||
private String projectCode;
|
|
||||||
|
|
||||||
@Schema(description = "项目名称")
|
|
||||||
private String projectName;
|
|
||||||
|
|
||||||
@Schema(description = "子项目名称")
|
|
||||||
private String projectSubName;
|
|
||||||
|
|
||||||
@Schema(description = "零件名称")
|
|
||||||
private String materialName;
|
|
||||||
|
|
||||||
@Schema(description = "报工日期")
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
private LocalDateTime[] reportTime;
|
|
||||||
|
|
||||||
@Schema(description = "派工单任务明细id", example = "23399")
|
|
||||||
private Long dispatchDetailId;
|
|
||||||
|
|
||||||
@Schema(description = "负责人")
|
|
||||||
private Long owner;
|
|
||||||
|
|
||||||
@Schema(description = "开始时间")
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
private LocalDateTime[] startTime;
|
|
||||||
|
|
||||||
@Schema(description = "结束时间")
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
|
||||||
private LocalDateTime[] endTime;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,130 +0,0 @@
|
|||||||
package com.chanko.yunxi.mes.module.heli.controller.admin.taskinreport.vo;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.*;
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.*;
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import com.alibaba.excel.annotation.*;
|
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 下料报工 Response VO")
|
|
||||||
@Data
|
|
||||||
@ExcelIgnoreUnannotated
|
|
||||||
public class TaskInReportRespVO {
|
|
||||||
|
|
||||||
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "12397")
|
|
||||||
@ExcelProperty("自增字段,唯一")
|
|
||||||
private Long id;
|
|
||||||
|
|
||||||
@Schema(description = "派工单任务明细id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6501")
|
|
||||||
@ExcelProperty("派工单任务明细id")
|
|
||||||
private Long dispatchDetailId;
|
|
||||||
|
|
||||||
@Schema(description = "负责人", requiredMode = Schema.RequiredMode.REQUIRED)
|
|
||||||
@ExcelProperty("负责人")
|
|
||||||
private Long owner;
|
|
||||||
|
|
||||||
@Schema(description = "数量")
|
|
||||||
@ExcelProperty("数量")
|
|
||||||
private Integer amount;
|
|
||||||
|
|
||||||
@Schema(description = "报工日期")
|
|
||||||
@ExcelProperty("报工日期")
|
|
||||||
private LocalDateTime reportTime;
|
|
||||||
|
|
||||||
@Schema(description = "长度(半径)")
|
|
||||||
@ExcelProperty("长度(半径)")
|
|
||||||
private BigDecimal length;
|
|
||||||
|
|
||||||
@Schema(description = "是否已报工 0 默认否 1 是", requiredMode = Schema.RequiredMode.REQUIRED)
|
|
||||||
@ExcelProperty("是否已报工 0 默认否 1 是")
|
|
||||||
private Boolean hasReport;
|
|
||||||
|
|
||||||
@Schema(description = "状态,1表示正常,2表示禁用", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
|
||||||
@ExcelProperty("状态,1表示正常,2表示禁用")
|
|
||||||
private Boolean status;
|
|
||||||
|
|
||||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
|
||||||
@ExcelProperty("创建时间")
|
|
||||||
private LocalDateTime createTime;
|
|
||||||
|
|
||||||
@Schema(description = "报工类型(1、工时 2、价格)", example = "2")
|
|
||||||
@ExcelProperty("报工类型(1、工时 2、价格)")
|
|
||||||
private String workType;
|
|
||||||
|
|
||||||
@Schema(description = "原因说明", example = "随便")
|
|
||||||
@ExcelProperty("原因说明")
|
|
||||||
private String remark;
|
|
||||||
|
|
||||||
@Schema(description = "宽度")
|
|
||||||
@ExcelProperty("宽度")
|
|
||||||
private BigDecimal widht;
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
@ExcelProperty("高度")
|
|
||||||
private BigDecimal hight;
|
|
||||||
|
|
||||||
@Schema(description = "密度")
|
|
||||||
@ExcelProperty("密度")
|
|
||||||
private BigDecimal density;
|
|
||||||
|
|
||||||
@Schema(description = "重量")
|
|
||||||
@ExcelProperty("重量")
|
|
||||||
private BigDecimal weight;
|
|
||||||
|
|
||||||
@Schema(description = "单价", example = "15935")
|
|
||||||
@ExcelProperty("单价")
|
|
||||||
private BigDecimal price;
|
|
||||||
|
|
||||||
@Schema(description = "总价", example = "11053")
|
|
||||||
@ExcelProperty("总价")
|
|
||||||
private BigDecimal reportPrice;
|
|
||||||
|
|
||||||
@Schema(description = "下料类型(1、块料 2、棒料 3、方料)", example = "2")
|
|
||||||
@ExcelProperty("下料类型(1、块料 2、棒料 3、方料)")
|
|
||||||
private String matType;
|
|
||||||
|
|
||||||
@Schema(description = "计算工时id", example = "1190")
|
|
||||||
@ExcelProperty("计算工时id")
|
|
||||||
private Long formalId;
|
|
||||||
|
|
||||||
@Schema(description = "计算公式")
|
|
||||||
@ExcelProperty("计算公式")
|
|
||||||
private String calFormal;
|
|
||||||
|
|
||||||
@Schema(description = "报工人", example = "莉莉")
|
|
||||||
@ExcelProperty("报工人")
|
|
||||||
private String ownerName;
|
|
||||||
@Schema(description = "更新人", example = "张丹")
|
|
||||||
@ExcelProperty("更新人")
|
|
||||||
private String updaterName;
|
|
||||||
@Schema(description = "报工状态", example = "1、未报工 2、已报工 3、报工完成 ")
|
|
||||||
@ExcelProperty("报工状态")
|
|
||||||
private String reportProcess;
|
|
||||||
|
|
||||||
@Schema(description = "物料名称", example = "块料")
|
|
||||||
@ExcelProperty("物料名称")
|
|
||||||
private String materialName;
|
|
||||||
|
|
||||||
@Schema(description = "项目编号", example = "ZD")
|
|
||||||
@ExcelProperty("项目编号")
|
|
||||||
private String projectCode;
|
|
||||||
|
|
||||||
@Schema(description = "项目名称")
|
|
||||||
@ExcelProperty("项目名称")
|
|
||||||
private String projectName;
|
|
||||||
@Schema(description = "子项目名称")
|
|
||||||
@ExcelProperty("子项目名称")
|
|
||||||
private String projectSubName;
|
|
||||||
@Schema(description = "更新时间")
|
|
||||||
@ExcelProperty("更新时间")
|
|
||||||
private LocalDateTime updateTime;
|
|
||||||
|
|
||||||
@Schema(description = "工序名称")
|
|
||||||
private String procedureName;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,77 +0,0 @@
|
|||||||
package com.chanko.yunxi.mes.module.heli.controller.admin.taskinreport.vo;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.*;
|
|
||||||
import java.util.*;
|
|
||||||
import javax.validation.constraints.*;
|
|
||||||
import java.util.*;
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 下料报工新增/修改 Request VO")
|
|
||||||
@Data
|
|
||||||
public class TaskInReportSaveReqVO {
|
|
||||||
|
|
||||||
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "12397")
|
|
||||||
private Long id;
|
|
||||||
|
|
||||||
@Schema(description = "派工单任务明细id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6501")
|
|
||||||
@NotNull(message = "派工单任务明细id不能为空")
|
|
||||||
private Long dispatchDetailId;
|
|
||||||
|
|
||||||
@Schema(description = "负责人", requiredMode = Schema.RequiredMode.REQUIRED)
|
|
||||||
@NotNull(message = "负责人不能为空")
|
|
||||||
private Long owner;
|
|
||||||
|
|
||||||
@Schema(description = "数量")
|
|
||||||
private Integer amount;
|
|
||||||
|
|
||||||
@Schema(description = "报工日期")
|
|
||||||
private LocalDateTime reportTime;
|
|
||||||
|
|
||||||
@Schema(description = "长度(半径)")
|
|
||||||
private BigDecimal length;
|
|
||||||
|
|
||||||
@Schema(description = "是否已报工 0 默认否 1 是", requiredMode = Schema.RequiredMode.REQUIRED)
|
|
||||||
@NotNull(message = "是否已报工 0 默认否 1 是不能为空")
|
|
||||||
private Boolean hasReport;
|
|
||||||
|
|
||||||
@Schema(description = "状态,1表示正常,2表示禁用", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
|
||||||
@NotNull(message = "状态,1表示正常,2表示禁用不能为空")
|
|
||||||
private Boolean status;
|
|
||||||
|
|
||||||
@Schema(description = "报工类型(1、工时 2、价格)", example = "2")
|
|
||||||
private String workType;
|
|
||||||
|
|
||||||
@Schema(description = "原因说明", example = "随便")
|
|
||||||
private String remark;
|
|
||||||
|
|
||||||
@Schema(description = "宽度")
|
|
||||||
private BigDecimal widht;
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private BigDecimal hight;
|
|
||||||
|
|
||||||
@Schema(description = "密度")
|
|
||||||
private BigDecimal density;
|
|
||||||
|
|
||||||
@Schema(description = "重量")
|
|
||||||
private BigDecimal weight;
|
|
||||||
|
|
||||||
@Schema(description = "单价", example = "15935")
|
|
||||||
private BigDecimal price;
|
|
||||||
|
|
||||||
@Schema(description = "总价", example = "11053")
|
|
||||||
private BigDecimal reportPrice;
|
|
||||||
|
|
||||||
@Schema(description = "下料类型(1、块料 2、棒料 3、方料)", example = "2")
|
|
||||||
private String matType;
|
|
||||||
|
|
||||||
@Schema(description = "计算工时id", example = "1190")
|
|
||||||
private Long formalId;
|
|
||||||
|
|
||||||
@Schema(description = "计算公式")
|
|
||||||
private String calFormal;
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,139 +0,0 @@
|
|||||||
package com.chanko.yunxi.mes.module.heli.dal.dataobject.taskinreport;
|
|
||||||
|
|
||||||
import lombok.*;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 下料报工 DO
|
|
||||||
*
|
|
||||||
* @author 管理员
|
|
||||||
*/
|
|
||||||
@TableName("pro_task_in_report")
|
|
||||||
@KeySequence("pro_task_in_report_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
|
||||||
@Data
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@ToString(callSuper = true)
|
|
||||||
@Builder
|
|
||||||
@NoArgsConstructor
|
|
||||||
@AllArgsConstructor
|
|
||||||
public class TaskInReportDO extends BaseDO {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 自增字段,唯一
|
|
||||||
*/
|
|
||||||
@TableId
|
|
||||||
private Long id;
|
|
||||||
/**
|
|
||||||
* 派工单任务明细id
|
|
||||||
*/
|
|
||||||
private Long dispatchDetailId;
|
|
||||||
/**
|
|
||||||
* 负责人
|
|
||||||
*/
|
|
||||||
private Long owner;
|
|
||||||
/**
|
|
||||||
* 数量
|
|
||||||
*/
|
|
||||||
private Integer amount;
|
|
||||||
/**
|
|
||||||
* 报工日期
|
|
||||||
*/
|
|
||||||
private LocalDateTime reportTime;
|
|
||||||
/**
|
|
||||||
* 长度(半径)
|
|
||||||
*/
|
|
||||||
private BigDecimal length;
|
|
||||||
/**
|
|
||||||
* 是否已报工 0 默认否 1 是
|
|
||||||
*/
|
|
||||||
private Boolean hasReport;
|
|
||||||
/**
|
|
||||||
* 状态,1表示正常,2表示禁用
|
|
||||||
*/
|
|
||||||
private Boolean status;
|
|
||||||
/**
|
|
||||||
* 报工类型(1、工时 2、价格)
|
|
||||||
*/
|
|
||||||
private String workType;
|
|
||||||
/**
|
|
||||||
* 原因说明
|
|
||||||
*/
|
|
||||||
private String remark;
|
|
||||||
/**
|
|
||||||
* 宽度
|
|
||||||
*/
|
|
||||||
private BigDecimal widht;
|
|
||||||
/**
|
|
||||||
* 高度
|
|
||||||
*/
|
|
||||||
private BigDecimal hight;
|
|
||||||
/**
|
|
||||||
* 密度
|
|
||||||
*/
|
|
||||||
private BigDecimal density;
|
|
||||||
/**
|
|
||||||
* 重量
|
|
||||||
*/
|
|
||||||
private BigDecimal weight;
|
|
||||||
/**
|
|
||||||
* 单价
|
|
||||||
*/
|
|
||||||
private BigDecimal price;
|
|
||||||
/**
|
|
||||||
* 总价
|
|
||||||
*/
|
|
||||||
private BigDecimal reportPrice;
|
|
||||||
/**
|
|
||||||
* 下料类型(1、块料 2、棒料 3、方料)
|
|
||||||
*/
|
|
||||||
private String matType;
|
|
||||||
/**
|
|
||||||
* 计算工时id
|
|
||||||
*/
|
|
||||||
private Long formalId;
|
|
||||||
/**
|
|
||||||
* 计算公式
|
|
||||||
*/
|
|
||||||
private String calFormal;
|
|
||||||
|
|
||||||
|
|
||||||
@TableField(exist = false)
|
|
||||||
private String ownerName;
|
|
||||||
|
|
||||||
@TableField(exist = false)
|
|
||||||
private String updaterName;
|
|
||||||
|
|
||||||
@TableField(exist = false)
|
|
||||||
private String reportProcess;
|
|
||||||
|
|
||||||
@TableField(exist = false)
|
|
||||||
private String materialName;
|
|
||||||
|
|
||||||
@TableField(exist = false)
|
|
||||||
private String projectCode;
|
|
||||||
|
|
||||||
@TableField(exist = false)
|
|
||||||
private String projectName;
|
|
||||||
|
|
||||||
@TableField(exist = false)
|
|
||||||
private String projectSubName;
|
|
||||||
|
|
||||||
@TableField(exist = false)
|
|
||||||
private String procedureName;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,69 +0,0 @@
|
|||||||
package com.chanko.yunxi.mes.module.heli.dal.mysql.taskinreport;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
|
||||||
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
|
|
||||||
import com.chanko.yunxi.mes.module.heli.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.taskinreport.TaskInReportDO;
|
|
||||||
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.taskinreport.vo.*;
|
|
||||||
import org.springframework.util.StringUtils;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 下料报工 Mapper
|
|
||||||
*
|
|
||||||
* @author 管理员
|
|
||||||
*/
|
|
||||||
@Mapper
|
|
||||||
public interface TaskInReportMapper extends BaseMapperX<TaskInReportDO> {
|
|
||||||
|
|
||||||
|
|
||||||
default PageResult<TaskInReportDO> selectPage(TaskInReportPageReqVO reqVO) {
|
|
||||||
MPJLambdaWrapper<TaskInReportDO> query = new MPJLambdaWrapper<>();
|
|
||||||
query.selectAll(TaskInReportDO.class)
|
|
||||||
.select("x.in_report_process as reportProcess")
|
|
||||||
.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, TaskInReportDO::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, TaskInReportDO::getOwner)
|
|
||||||
.leftJoin(AdminUserDO.class, "u2", AdminUserDO::getId, TaskInReportDO::getUpdater)
|
|
||||||
.orderByDesc(TaskInReportDO::getId)
|
|
||||||
.disableSubLogicDel();
|
|
||||||
|
|
||||||
query.eq(reqVO.getOwner() != null, TaskInReportDO::getOwner, reqVO.getOwner())
|
|
||||||
.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())
|
|
||||||
.like(!StringUtils.isEmpty(reqVO.getOwnerName()), AdminUserDO::getNickname, reqVO.getOwnerName())
|
|
||||||
.eq(!StringUtils.isEmpty(reqVO.getDispatchDetailId()), TaskInReportDO::getDispatchDetailId, reqVO.getDispatchDetailId());
|
|
||||||
if (reqVO.getEndTime() != null) {
|
|
||||||
LocalDateTime endDateTime = reqVO.getEndTime()[1];
|
|
||||||
// 重置时间为 23:59:59
|
|
||||||
LocalDateTime endOfDay = endDateTime
|
|
||||||
.withHour(23)
|
|
||||||
.withMinute(59)
|
|
||||||
.withSecond(59);
|
|
||||||
query.between(TaskReportDO::getReportTime, reqVO.getEndTime()[0], endOfDay);
|
|
||||||
}
|
|
||||||
return selectPage(reqVO, query);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,55 +0,0 @@
|
|||||||
package com.chanko.yunxi.mes.module.heli.service.taskinreport;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import javax.validation.*;
|
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.taskinreport.vo.*;
|
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskinreport.TaskInReportDO;
|
|
||||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
|
||||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 下料报工 Service 接口
|
|
||||||
*
|
|
||||||
* @author 管理员
|
|
||||||
*/
|
|
||||||
public interface TaskInReportService {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建下料报工
|
|
||||||
*
|
|
||||||
* @param createReqVO 创建信息
|
|
||||||
* @return 编号
|
|
||||||
*/
|
|
||||||
Long createTaskInReport(@Valid TaskInReportSaveReqVO createReqVO);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新下料报工
|
|
||||||
*
|
|
||||||
* @param updateReqVO 更新信息
|
|
||||||
*/
|
|
||||||
void updateTaskInReport(@Valid TaskInReportSaveReqVO updateReqVO);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除下料报工
|
|
||||||
*
|
|
||||||
* @param id 编号
|
|
||||||
*/
|
|
||||||
void deleteTaskInReport(Long id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获得下料报工
|
|
||||||
*
|
|
||||||
* @param id 编号
|
|
||||||
* @return 下料报工
|
|
||||||
*/
|
|
||||||
TaskInReportDO getTaskInReport(Long id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获得下料报工分页
|
|
||||||
*
|
|
||||||
* @param pageReqVO 分页查询
|
|
||||||
* @return 下料报工分页
|
|
||||||
*/
|
|
||||||
PageResult<TaskInReportDO> getTaskInReportPage(TaskInReportPageReqVO pageReqVO);
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,71 +0,0 @@
|
|||||||
package com.chanko.yunxi.mes.module.heli.service.taskinreport;
|
|
||||||
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
|
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.taskinreport.vo.*;
|
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskinreport.TaskInReportDO;
|
|
||||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
|
||||||
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
|
||||||
|
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.taskinreport.TaskInReportMapper;
|
|
||||||
|
|
||||||
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 TaskInReportServiceImpl implements TaskInReportService {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private TaskInReportMapper taskInReportMapper;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Long createTaskInReport(TaskInReportSaveReqVO createReqVO) {
|
|
||||||
// 插入
|
|
||||||
TaskInReportDO taskInReport = BeanUtils.toBean(createReqVO, TaskInReportDO.class);
|
|
||||||
taskInReportMapper.insert(taskInReport);
|
|
||||||
// 返回
|
|
||||||
return taskInReport.getId();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateTaskInReport(TaskInReportSaveReqVO updateReqVO) {
|
|
||||||
// 校验存在
|
|
||||||
validateTaskInReportExists(updateReqVO.getId());
|
|
||||||
// 更新
|
|
||||||
TaskInReportDO updateObj = BeanUtils.toBean(updateReqVO, TaskInReportDO.class);
|
|
||||||
taskInReportMapper.updateById(updateObj);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void deleteTaskInReport(Long id) {
|
|
||||||
// 校验存在
|
|
||||||
validateTaskInReportExists(id);
|
|
||||||
// 删除
|
|
||||||
taskInReportMapper.deleteById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void validateTaskInReportExists(Long id) {
|
|
||||||
if (taskInReportMapper.selectById(id) == null) {
|
|
||||||
throw exception(TASK_IN_REPORT_NOT_EXISTS);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TaskInReportDO getTaskInReport(Long id) {
|
|
||||||
return taskInReportMapper.selectById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PageResult<TaskInReportDO> getTaskInReportPage(TaskInReportPageReqVO pageReqVO) {
|
|
||||||
return taskInReportMapper.selectPage(pageReqVO);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,36 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
||||||
<mapper namespace="com.chanko.yunxi.mes.module.heli.dal.mysql.taskinreport.TaskInReportMapper">
|
|
||||||
|
|
||||||
<!--
|
|
||||||
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
|
|
||||||
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
|
|
||||||
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
|
|
||||||
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<select id="selectByPage" resultType="TaskInReportDO">
|
|
||||||
SELECT
|
|
||||||
b.*,
|
|
||||||
owner_user.nickname own_name,
|
|
||||||
updater_user.nickname updater_name,
|
|
||||||
w.in_report_process AS report_process,
|
|
||||||
e.name ,
|
|
||||||
c.material_name as material_name,
|
|
||||||
a.code ,
|
|
||||||
a.project_name as project_name,
|
|
||||||
a1.`name` as project_sub_name
|
|
||||||
FROM pro_task_in_report b
|
|
||||||
LEFT JOIN system_users owner_user ON owner_user.id = b.owner
|
|
||||||
LEFT JOIN system_users updater_user ON updater_user.id = b.updater
|
|
||||||
LEFT JOIN pro_task_dispatch_detail w ON w.id = b.dispatch_detail_id AND w.deleted = '0'
|
|
||||||
LEFT JOIN pro_task_dispatch d on d.id = w.dispatch_id and d.deleted = '0'
|
|
||||||
LEFT JOIN base_procedure e on e.id = w.procedure_id and e.deleted = '0'
|
|
||||||
LEFT JOIN pro_process_bom_detail c on c.id = d.bom_detail_id and c.deleted = '0'
|
|
||||||
LEFT JOIN project_sale_order_sub a1 on a1.id = d.project_sub_id and a1.deleted = '0'
|
|
||||||
LEFT JOIN project_sale_order a on a.id= a1.project_order_id and a.deleted = '0'
|
|
||||||
where b.deleted = '0'
|
|
||||||
order by b.id desc
|
|
||||||
</select>
|
|
||||||
|
|
||||||
</mapper>
|
|
||||||
@ -5,16 +5,3 @@ import { floatToFixed2 } from '@/utils'
|
|||||||
export const fenToYuanFormat = (_, __, cellValue: any, ___) => {
|
export const fenToYuanFormat = (_, __, cellValue: any, ___) => {
|
||||||
return `¥${floatToFixed2(cellValue)}`
|
return `¥${floatToFixed2(cellValue)}`
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 数字格式化为两位小数 */
|
|
||||||
const formatNumber = (row: any, column: any, cellValue: any) => {
|
|
||||||
if (cellValue === null || cellValue === undefined) {
|
|
||||||
return '-'
|
|
||||||
}
|
|
||||||
// 确保是数字类型后再格式化
|
|
||||||
const num = Number(cellValue)
|
|
||||||
if (isNaN(num)) {
|
|
||||||
return cellValue
|
|
||||||
}
|
|
||||||
return num.toFixed(2)
|
|
||||||
}
|
|
||||||
|
|||||||
@ -1,263 +0,0 @@
|
|||||||
<template>
|
|
||||||
|
|
||||||
|
|
||||||
<Dialog :title="dialogTitle" v-model="dialogVisible">
|
|
||||||
<el-form
|
|
||||||
ref="formRef"
|
|
||||||
:model="formData"
|
|
||||||
:rules="formRules"
|
|
||||||
label-width="140px"
|
|
||||||
v-loading="formLoading"
|
|
||||||
class="custom-table"
|
|
||||||
>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="物料类型" prop="matType">
|
|
||||||
<el-select v-model="formData.matType" class="!w-260px" disabled/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="密度" prop="density">
|
|
||||||
<el-input-number v-model="formData.density" min="0" :precision="2" class="!w-260px"
|
|
||||||
disabled
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="单价" prop="price">
|
|
||||||
<el-input-number v-model="formData.price" min="0" :precision="2" class="!w-260px"
|
|
||||||
disabled
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="长(直径)(mm)" prop="length">
|
|
||||||
<el-input-number v-model="formData.length" min="0" :precision="2"
|
|
||||||
placeholder="请输入密度"
|
|
||||||
@change="handleDimensionChange"
|
|
||||||
class="!w-260px"/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="高度(mm)" prop="hight">
|
|
||||||
<el-input-number v-model="formData.hight" min="0" :precision="2"
|
|
||||||
placeholder="请输入高度"
|
|
||||||
@change="handleDimensionChange"
|
|
||||||
class="!w-260px"/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="宽度(mm)" prop="widht">
|
|
||||||
<el-input-number v-model="formData.widht" min="0" :precision="2"
|
|
||||||
placeholder="请输入单价"
|
|
||||||
@change="handleDimensionChange"
|
|
||||||
class="!w-260px"/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<!-- 第三行 -->
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="重量(Kg)" prop="weight">
|
|
||||||
<el-input-number v-model="formData.weight" min="0" :precision="2"
|
|
||||||
@change="handleReportPriceChange"
|
|
||||||
placeholder="请输入重量" class="!w-260px"/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="总价" prop="reportPrice">
|
|
||||||
<el-input-number v-model="formData.reportPrice" min="0" :precision="2"
|
|
||||||
class="!w-260px"/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="计算公式" prop="calFormal">
|
|
||||||
<el-input type="textarea" :rows="3" v-model="formData.calFormal"
|
|
||||||
placeholder="请输入计算公式"/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="备注" prop="remark">
|
|
||||||
<el-input type="textarea" :rows="3" placeholder="请输入备注"
|
|
||||||
v-model="formData.remark"/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</el-form>
|
|
||||||
<template #footer>
|
|
||||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
|
|
||||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
|
||||||
</template>
|
|
||||||
</Dialog>
|
|
||||||
</template>
|
|
||||||
<script setup lang="ts">
|
|
||||||
import * as TaskInReportApi from '@/api/heli/taskinreport'
|
|
||||||
|
|
||||||
const {t} = useI18n() // 国际化
|
|
||||||
const message = useMessage() // 消息弹窗
|
|
||||||
|
|
||||||
const dialogVisible = ref(false) // 弹窗的是否展示
|
|
||||||
const dialogTitle = ref('') // 弹窗的标题
|
|
||||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
|
||||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
|
||||||
const formData = ref({
|
|
||||||
id: undefined,
|
|
||||||
dispatchDetailId: undefined,
|
|
||||||
owner: undefined,
|
|
||||||
amount: undefined,
|
|
||||||
reportTime: undefined,
|
|
||||||
length: undefined,
|
|
||||||
hasReport: undefined,
|
|
||||||
status: undefined,
|
|
||||||
workType: undefined,
|
|
||||||
remark: undefined,
|
|
||||||
widht: undefined as number | undefined,
|
|
||||||
hight: undefined as number | undefined,
|
|
||||||
density: undefined as number | undefined,
|
|
||||||
weight: undefined as number | undefined,
|
|
||||||
price: undefined as number | undefined,
|
|
||||||
reportPrice: undefined as number | undefined,
|
|
||||||
matType: undefined,
|
|
||||||
formalId: undefined,
|
|
||||||
calFormal: undefined,
|
|
||||||
})
|
|
||||||
const formRules = reactive({
|
|
||||||
length: [{required: true, message: '长(直径)不能为空', trigger: 'blur'}],
|
|
||||||
hight: [{required: true, message: '高度不能为空', trigger: 'blur'}],
|
|
||||||
widht: [{required: true, message: '宽度是不能为空', trigger: 'blur'}],
|
|
||||||
weight: [{required: true, message: '重量不能为空', trigger: 'blur'}],
|
|
||||||
reportPrice: [{required: true, message: '总价不能为空', trigger: 'blur'}],
|
|
||||||
})
|
|
||||||
const formRef = ref() // 表单 Ref
|
|
||||||
|
|
||||||
/** 打开弹窗 */
|
|
||||||
const open = async (type: string, id?: number) => {
|
|
||||||
dialogVisible.value = true
|
|
||||||
dialogTitle.value = t('action.' + type)
|
|
||||||
formType.value = type
|
|
||||||
resetForm()
|
|
||||||
// 修改时,设置数据
|
|
||||||
if (id) {
|
|
||||||
formLoading.value = true
|
|
||||||
try {
|
|
||||||
formData.value = await TaskInReportApi.getTaskInReport(id)
|
|
||||||
} finally {
|
|
||||||
formLoading.value = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
defineExpose({open}) // 提供 open 方法,用于打开弹窗
|
|
||||||
|
|
||||||
/** 提交表单 */
|
|
||||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
|
|
||||||
const submitForm = async () => {
|
|
||||||
// 校验表单
|
|
||||||
await formRef.value.validate()
|
|
||||||
// 提交请求
|
|
||||||
formLoading.value = true
|
|
||||||
try {
|
|
||||||
const data = formData.value as unknown as TaskInReportApi.TaskInReportVO
|
|
||||||
if (formType.value === 'create') {
|
|
||||||
await TaskInReportApi.createTaskInReport(data)
|
|
||||||
message.success(t('common.createSuccess'))
|
|
||||||
} else {
|
|
||||||
await TaskInReportApi.updateTaskInReport(data)
|
|
||||||
message.success(t('common.updateSuccess'))
|
|
||||||
}
|
|
||||||
dialogVisible.value = false
|
|
||||||
// 发送操作成功的事件
|
|
||||||
emit('success')
|
|
||||||
} finally {
|
|
||||||
formLoading.value = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const handleReportPriceChange = () => {
|
|
||||||
if (formData.value.weight) {
|
|
||||||
formData.value.reportPrice = Number((formData.value.weight * formData.value.price).toFixed(2));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
const handleDimensionChange = () => {
|
|
||||||
const validateNumericValue = (value) => {
|
|
||||||
return typeof value === 'number' && !isNaN(value) && isFinite(value) && value > 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
const calculateWeight = () => {
|
|
||||||
if (!validateNumericValue(formData.value.length) ||
|
|
||||||
!validateNumericValue(formData.value.hight) ||
|
|
||||||
!validateNumericValue(formData.value.density)) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
let totalWeight = 0;
|
|
||||||
if (formData.value.matType === "1" || formData.value.matType === "3") {
|
|
||||||
if (!validateNumericValue(formData.value.widht)) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
totalWeight = Number(
|
|
||||||
(formData.value.length * formData.value.widht * formData.value.hight * formData.value.density) /
|
|
||||||
1000000 * 100
|
|
||||||
).toFixed(2);
|
|
||||||
}
|
|
||||||
if (formData.value.matType === "2") {
|
|
||||||
totalWeight = Number(
|
|
||||||
(3.14 * Math.pow(formData.value.length / 2, 2) * formData.value.hight * formData.value.density) /
|
|
||||||
1000000
|
|
||||||
).toFixed(2);
|
|
||||||
}
|
|
||||||
return totalWeight;
|
|
||||||
};
|
|
||||||
|
|
||||||
formData.value.weight = calculateWeight();
|
|
||||||
|
|
||||||
if (validateNumericValue(formData.value.weight) && validateNumericValue(formData.value.price)) {
|
|
||||||
formData.value.reportPrice = Number(formData.value.weight * formData.value.price).toFixed(2);
|
|
||||||
} else {
|
|
||||||
formData.value.reportPrice = 0;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/** 重置表单 */
|
|
||||||
const resetForm = () => {
|
|
||||||
// 重置时标记为初始化状态,防止计算覆盖初始数据
|
|
||||||
formData.value = {
|
|
||||||
id: undefined,
|
|
||||||
dispatchDetailId: undefined,
|
|
||||||
owner: undefined,
|
|
||||||
amount: undefined,
|
|
||||||
reportTime: undefined,
|
|
||||||
length: undefined,
|
|
||||||
hasReport: undefined,
|
|
||||||
status: undefined,
|
|
||||||
workType: undefined,
|
|
||||||
remark: undefined,
|
|
||||||
widht: undefined,
|
|
||||||
hight: undefined,
|
|
||||||
density: undefined,
|
|
||||||
weight: undefined,
|
|
||||||
price: undefined,
|
|
||||||
reportPrice: undefined,
|
|
||||||
matType: undefined,
|
|
||||||
formalId: undefined,
|
|
||||||
calFormal: undefined,
|
|
||||||
}
|
|
||||||
formRef.value?.resetFields()
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
<style>
|
|
||||||
/* 全局修改 */
|
|
||||||
.el-form-item {
|
|
||||||
margin-bottom: 32px; /* 改为你想要的间距,比如 32px、40px */
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
Loading…
Reference in New Issue
Block a user