生产/装配修改,订单跟踪开发完成,盘库修改
This commit is contained in:
parent
fcde306cdd
commit
a82995448c
@ -138,4 +138,5 @@ public interface ErrorCodeConstants {
|
|||||||
ErrorCode SALE_ORDER_COST_DETAIL_NOT_EXISTS = new ErrorCode(1_011_001, "项目订单成本汇算明细不存在");
|
ErrorCode SALE_ORDER_COST_DETAIL_NOT_EXISTS = new ErrorCode(1_011_001, "项目订单成本汇算明细不存在");
|
||||||
/************责任人管理***********/
|
/************责任人管理***********/
|
||||||
ErrorCode OWNER_NOT_EXISTS = new ErrorCode(1_013_001, "人员配置主数据维护错误,请确认!");
|
ErrorCode OWNER_NOT_EXISTS = new ErrorCode(1_013_001, "人员配置主数据维护错误,请确认!");
|
||||||
|
ErrorCode TRACK_NOT_EXISTS = new ErrorCode(1_013_002, "生产进度跟踪不存在");
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,8 @@ import io.swagger.v3.oas.annotations.Operation;
|
|||||||
import javax.validation.constraints.*;
|
import javax.validation.constraints.*;
|
||||||
import javax.validation.*;
|
import javax.validation.*;
|
||||||
import javax.servlet.http.*;
|
import javax.servlet.http.*;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -70,7 +72,10 @@ public class StorageCheckController {
|
|||||||
double money = Double.parseDouble(item.getMoney().toString());
|
double money = Double.parseDouble(item.getMoney().toString());
|
||||||
|
|
||||||
if (money != 0) {
|
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 {
|
} else {
|
||||||
// 处理除数为零的情况,例如设置一个默认值或返回一个错误
|
// 处理除数为零的情况,例如设置一个默认值或返回一个错误
|
||||||
item.setOnemoney("0"); // 或者根据业务逻辑设置一个合适的值
|
item.setOnemoney("0"); // 或者根据业务逻辑设置一个合适的值
|
||||||
|
@ -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<Long> createTrack(@Valid @RequestBody TrackSaveReqVO createReqVO) {
|
||||||
|
return success(trackService.createTrack(createReqVO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/update")
|
||||||
|
@Operation(summary = "更新生产进度跟踪")
|
||||||
|
@PreAuthorize("@ss.hasPermission('heli:track:update')")
|
||||||
|
public CommonResult<Boolean> 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<Boolean> 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<TrackRespVO> 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<PageResult<TrackRespVO>> getTrackPage(@Valid TrackPageReqVO pageReqVO) {
|
||||||
|
PageResult<TrackDO> 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<TrackDO> list = trackService.getTrackPage(pageReqVO).getList();
|
||||||
|
// 导出 Excel
|
||||||
|
ExcelUtils.write(response, "生产进度跟踪.xls", "数据", TrackRespVO.class,
|
||||||
|
BeanUtils.toBean(list, TrackRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -48,6 +48,11 @@ public class TaskDispatchDetailDO extends BaseDO {
|
|||||||
* 派工数量
|
* 派工数量
|
||||||
*/
|
*/
|
||||||
private Integer amount;
|
private Integer amount;
|
||||||
|
/**
|
||||||
|
* 派工数量
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private Integer beforeAmount;
|
||||||
/**
|
/**
|
||||||
* 工序要点
|
* 工序要点
|
||||||
*/
|
*/
|
||||||
@ -65,6 +70,8 @@ public class TaskDispatchDetailDO extends BaseDO {
|
|||||||
*/
|
*/
|
||||||
@TableField(fill = FieldFill.UPDATE)
|
@TableField(fill = FieldFill.UPDATE)
|
||||||
private Long deviceModel;
|
private Long deviceModel;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private Long bomDetailId;
|
||||||
/**
|
/**
|
||||||
* 预计开始日期
|
* 预计开始日期
|
||||||
*/
|
*/
|
||||||
@ -115,7 +122,8 @@ public class TaskDispatchDetailDO extends BaseDO {
|
|||||||
private Integer beforeProcedureStatus;
|
private Integer beforeProcedureStatus;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private Integer planType;
|
private Integer planType;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String planCode;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String procdureName;
|
private String procdureName;
|
||||||
|
|
||||||
@ -142,4 +150,6 @@ public class TaskDispatchDetailDO extends BaseDO {
|
|||||||
private Integer isReport;
|
private Integer isReport;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private Integer numAmount;
|
private Integer numAmount;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private Long beginProduce;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -15,6 +15,8 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -55,5 +57,15 @@ public interface TaskReportMapper extends BaseMapperX<TaskReportDO> {
|
|||||||
return selectPage(reqVO, query);
|
return selectPage(reqVO, query);
|
||||||
}
|
}
|
||||||
public int deleteByDispatchDetailIds(List<Long> dispatchDetailIds);
|
public int deleteByDispatchDetailIds(List<Long> dispatchDetailIds);
|
||||||
|
default TaskReportDO getReprotSum(Long dispatchDetailId){
|
||||||
|
MPJLambdaWrapper<TaskReportDO> 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<TaskReportDO> query1 = new MPJLambdaWrapper<>();
|
||||||
|
query1.eq(TaskReportDO::getDispatchDetailId,dispatchDetailId);
|
||||||
|
return selectCount(query1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -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<TrackDO> {
|
||||||
|
|
||||||
|
default PageResult<TaskDispatchDetailDO> selectPage(TrackPageReqVO reqVO, TaskDispatchDetailMapper taskDispatchDetailMapper) {
|
||||||
|
TaskDispatchDetailPageReqVO dispatchDetailPageReqVO = new TaskDispatchDetailPageReqVO();
|
||||||
|
dispatchDetailPageReqVO.setPageSize(reqVO.getPageSize()).setPageNo(reqVO.getPageNo());
|
||||||
|
MPJLambdaWrapper<TaskDispatchDetailDO> 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);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -136,7 +136,11 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
|||||||
// 明细工序状态更新
|
// 明细工序状态更新
|
||||||
if(operateTypeEnum == OperateTypeEnum.SUBMIT){
|
if(operateTypeEnum == OperateTypeEnum.SUBMIT){
|
||||||
updateReqVO.getTaskDispatchDetails().forEach(taskDispatchDetailDO -> {
|
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());
|
taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.SUBMITTED.getCode());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -146,8 +150,12 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
|||||||
throw exception(new ErrorCode(1_000_099,"计划已完成,不允许取消提交"));
|
throw exception(new ErrorCode(1_000_099,"计划已完成,不允许取消提交"));
|
||||||
}
|
}
|
||||||
updateReqVO.getTaskDispatchDetails().forEach(taskDispatchDetailDO -> {
|
updateReqVO.getTaskDispatchDetails().forEach(taskDispatchDetailDO -> {
|
||||||
|
//2025-01-17 取消提交 - 如果已报工完成的工序,报工状态还是已完成
|
||||||
|
if (taskDispatchDetailDO.getProcedureStatus() != 2){
|
||||||
taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.DEFAULT.getCode());
|
taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.DEFAULT.getCode());
|
||||||
});
|
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
updateObj.setDispatchStatus(TaskDispatchStatusEnum.valueOf(updateReqVO.getActive()).getCode());
|
updateObj.setDispatchStatus(TaskDispatchStatusEnum.valueOf(updateReqVO.getActive()).getCode());
|
||||||
taskDispatchMapper.updateById(updateObj);
|
taskDispatchMapper.updateById(updateObj);
|
||||||
@ -307,6 +315,13 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
|||||||
@Override
|
@Override
|
||||||
public List<TaskDispatchDetailDO> getTaskDispatchDetailListByDispatchId(Long dispatchId) {
|
public List<TaskDispatchDetailDO> getTaskDispatchDetailListByDispatchId(Long dispatchId) {
|
||||||
List<TaskDispatchDetailDO> taskDispatchDetailDOS = taskDispatchDetailMapper.selectListByDispatchId(dispatchId);
|
List<TaskDispatchDetailDO> taskDispatchDetailDOS = taskDispatchDetailMapper.selectListByDispatchId(dispatchId);
|
||||||
|
for (TaskDispatchDetailDO taskDispatchDetailDO : taskDispatchDetailDOS) {
|
||||||
|
taskDispatchDetailDO.setBeginProduce(taskReportMapper.hasReport(taskDispatchDetailDO.getId())) ;
|
||||||
|
if (taskDispatchDetailDO.getAmount()!=null){
|
||||||
|
|
||||||
|
taskDispatchDetailDO.setBeforeAmount(taskDispatchDetailDO.getAmount());
|
||||||
|
}
|
||||||
|
}
|
||||||
return taskDispatchDetailDOS;
|
return taskDispatchDetailDOS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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<TrackDO> getTrackPage(TrackPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
}
|
@ -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<TrackDO> getTrackPage(TrackPageReqVO pageReqVO) {
|
||||||
|
PageResult<TaskDispatchDetailDO> taskDispatchDetailDOPageResult = trackMapper.selectPage(pageReqVO, taskDispatchDetailMapper);
|
||||||
|
PageResult<TrackDO> pageResult = new PageResult<>();
|
||||||
|
pageResult.setTotalPages(taskDispatchDetailDOPageResult.getTotalPages());
|
||||||
|
pageResult.setTotal(taskDispatchDetailDOPageResult.getTotal());
|
||||||
|
List<TaskDispatchDetailDO> list = taskDispatchDetailDOPageResult.getList();
|
||||||
|
List<TrackDO> 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
<?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.track.TrackMapper">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
|
||||||
|
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
|
||||||
|
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
|
||||||
|
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
||||||
|
-->
|
||||||
|
|
||||||
|
</mapper>
|
@ -1,7 +1,7 @@
|
|||||||
# 开发环境
|
# 开发环境
|
||||||
NODE_ENV=development
|
NODE_ENV=development
|
||||||
|
|
||||||
VITE_DEV=false
|
VITE_DEV=true
|
||||||
|
|
||||||
# 请求路径https://star.hz-hl.com/admin-api http://192.168.1.87:8080
|
# 请求路径https://star.hz-hl.com/admin-api http://192.168.1.87:8080
|
||||||
VITE_BASE_URL='https://nxhs.cjyx.cc'
|
VITE_BASE_URL='https://nxhs.cjyx.cc'
|
||||||
|
@ -4,14 +4,14 @@ NODE_ENV=production
|
|||||||
VITE_DEV=false
|
VITE_DEV=false
|
||||||
|
|
||||||
# 请求路径https://star.hz-hl.com/admin-api http://192.168.1.87:8080
|
# 请求路径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
|
# 上传路径 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=
|
VITE_API_BASEPATH=
|
||||||
|
52
mes-ui/mes-ui-admin-vue3/src/api/heli/track/index.ts
Normal file
52
mes-ui/mes-ui-admin-vue3/src/api/heli/track/index.ts
Normal file
@ -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 })
|
||||||
|
}
|
170
mes-ui/mes-ui-admin-vue3/src/views/heli/plantrack/TrackForm.vue
Normal file
170
mes-ui/mes-ui-admin-vue3/src/views/heli/plantrack/TrackForm.vue
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
<template>
|
||||||
|
<Dialog :title="dialogTitle" v-model="dialogVisible">
|
||||||
|
<el-form
|
||||||
|
ref="formRef"
|
||||||
|
:model="formData"
|
||||||
|
:rules="formRules"
|
||||||
|
label-width="100px"
|
||||||
|
v-loading="formLoading"
|
||||||
|
>
|
||||||
|
<el-form-item label="项目编号" prop="projectCode">
|
||||||
|
<el-input v-model="formData.projectCode" placeholder="请输入项目编号" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="项目id" prop="projectId">
|
||||||
|
<el-input v-model="formData.projectId" placeholder="请输入项目id" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="生产计划单号" prop="planCode">
|
||||||
|
<el-input v-model="formData.planCode" placeholder="请输入生产计划单号" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="生产计划id" prop="planId">
|
||||||
|
<el-input v-model="formData.planId" placeholder="请输入生产计划id" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="生产状态" prop="planStatus">
|
||||||
|
<el-radio-group v-model="formData.planStatus">
|
||||||
|
<el-radio label="1">请选择字典生成</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="子项目编号" prop="projectOrderSubCode">
|
||||||
|
<el-input v-model="formData.projectOrderSubCode" placeholder="请输入子项目编号" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="子项目id" prop="projectOrderSubId">
|
||||||
|
<el-input v-model="formData.projectOrderSubId" placeholder="请输入子项目id" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="子项目名称" prop="projectOrderSubName">
|
||||||
|
<el-input v-model="formData.projectOrderSubName" placeholder="请输入子项目名称" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="零件id" prop="bomDetailId">
|
||||||
|
<el-input v-model="formData.bomDetailId" placeholder="请输入零件id" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="零件名称" prop="bomDetailName">
|
||||||
|
<el-input v-model="formData.bomDetailName" placeholder="请输入零件名称" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="工序名称" prop="processName">
|
||||||
|
<el-input v-model="formData.processName" placeholder="请输入工序名称" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="工序id" prop="processId">
|
||||||
|
<el-input v-model="formData.processId" placeholder="请输入工序id" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="总派工数量" prop="dispatchAmount">
|
||||||
|
<el-input v-model="formData.dispatchAmount" placeholder="请输入总派工数量" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="总报工时间" prop="reportAllHour">
|
||||||
|
<el-input v-model="formData.reportAllHour" placeholder="请输入总报工时间" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="总预计工时" prop="reportPreviewHour">
|
||||||
|
<el-input v-model="formData.reportPreviewHour" placeholder="请输入总预计工时" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="总报工数量" prop="reportAmount">
|
||||||
|
<el-input v-model="formData.reportAmount" placeholder="请输入总报工数量" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="完成状态" prop="isover">
|
||||||
|
<el-input v-model="formData.isover" placeholder="请输入完成状态" />
|
||||||
|
</el-form-item>
|
||||||
|
</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 TrackApi from '@/api/heli/track'
|
||||||
|
|
||||||
|
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({
|
||||||
|
projectCode: undefined,
|
||||||
|
projectId: undefined,
|
||||||
|
id: undefined,
|
||||||
|
planCode: undefined,
|
||||||
|
planId: undefined,
|
||||||
|
planStatus: undefined,
|
||||||
|
projectOrderSubCode: undefined,
|
||||||
|
projectOrderSubId: undefined,
|
||||||
|
projectOrderSubName: undefined,
|
||||||
|
bomDetailId: undefined,
|
||||||
|
bomDetailName: undefined,
|
||||||
|
processName: undefined,
|
||||||
|
processId: undefined,
|
||||||
|
dispatchAmount: undefined,
|
||||||
|
reportAllHour: undefined,
|
||||||
|
reportPreviewHour: undefined,
|
||||||
|
reportAmount: undefined,
|
||||||
|
isover: undefined
|
||||||
|
})
|
||||||
|
const formRules = reactive({
|
||||||
|
})
|
||||||
|
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 TrackApi.getTrack(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 TrackApi.TrackVO
|
||||||
|
if (formType.value === 'create') {
|
||||||
|
await TrackApi.createTrack(data)
|
||||||
|
message.success(t('common.createSuccess'))
|
||||||
|
} else {
|
||||||
|
await TrackApi.updateTrack(data)
|
||||||
|
message.success(t('common.updateSuccess'))
|
||||||
|
}
|
||||||
|
dialogVisible.value = false
|
||||||
|
// 发送操作成功的事件
|
||||||
|
emit('success')
|
||||||
|
} finally {
|
||||||
|
formLoading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 重置表单 */
|
||||||
|
const resetForm = () => {
|
||||||
|
formData.value = {
|
||||||
|
projectCode: undefined,
|
||||||
|
projectId: undefined,
|
||||||
|
id: undefined,
|
||||||
|
planCode: undefined,
|
||||||
|
planId: undefined,
|
||||||
|
planStatus: undefined,
|
||||||
|
projectOrderSubCode: undefined,
|
||||||
|
projectOrderSubId: undefined,
|
||||||
|
projectOrderSubName: undefined,
|
||||||
|
bomDetailId: undefined,
|
||||||
|
bomDetailName: undefined,
|
||||||
|
processName: undefined,
|
||||||
|
processId: undefined,
|
||||||
|
dispatchAmount: undefined,
|
||||||
|
reportAllHour: undefined,
|
||||||
|
reportPreviewHour: undefined,
|
||||||
|
reportAmount: undefined,
|
||||||
|
isover: undefined
|
||||||
|
}
|
||||||
|
formRef.value?.resetFields()
|
||||||
|
}
|
||||||
|
</script>
|
225
mes-ui/mes-ui-admin-vue3/src/views/heli/plantrack/index.vue
Normal file
225
mes-ui/mes-ui-admin-vue3/src/views/heli/plantrack/index.vue
Normal file
@ -0,0 +1,225 @@
|
|||||||
|
<template>
|
||||||
|
<ContentWrap>
|
||||||
|
<!-- 搜索工作栏 -->
|
||||||
|
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="120px">
|
||||||
|
<el-form-item label="项目编号" prop="projectCode">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.projectCode"
|
||||||
|
placeholder="请输入项目编号"
|
||||||
|
clearable
|
||||||
|
@keyup.enter="handleQuery"
|
||||||
|
class="!w-240px"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="生产计划单号" prop="planCode">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.planCode"
|
||||||
|
placeholder="请输入生产计划单号"
|
||||||
|
clearable
|
||||||
|
@keyup.enter="handleQuery"
|
||||||
|
class="!w-240px"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="子项目编号" prop="projectOrderSubCode">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.projectOrderSubCode"
|
||||||
|
placeholder="请输入子项目编号"
|
||||||
|
clearable
|
||||||
|
@keyup.enter="handleQuery"
|
||||||
|
class="!w-240px"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="子项目名称" prop="projectOrderSubName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.projectOrderSubName"
|
||||||
|
placeholder="请输入子项目名称"
|
||||||
|
clearable
|
||||||
|
@keyup.enter="handleQuery"
|
||||||
|
class="!w-240px"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="零件名称" prop="bomDetailName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.bomDetailName"
|
||||||
|
placeholder="请输入零件名称"
|
||||||
|
clearable
|
||||||
|
@keyup.enter="handleQuery"
|
||||||
|
class="!w-240px"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="任务负责人" prop="owner">
|
||||||
|
<UserSelect v-model="queryParams.owner" @update:new-value="handleSelectedUser1" class="!w-265px"/>
|
||||||
|
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 查 询</el-button>
|
||||||
|
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重 置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</ContentWrap>
|
||||||
|
|
||||||
|
<!-- 列表 -->
|
||||||
|
<ContentWrap>
|
||||||
|
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
|
||||||
|
<el-table-column type="index" min-width="60" fixed label="序号" align="center" />
|
||||||
|
<el-table-column label="项目编号" align="center" prop="projectCode" width="180"/>
|
||||||
|
<el-table-column label="项目名称" align="center" prop="projectName" width="120"/>
|
||||||
|
<el-table-column label="生产计划单号" align="center" prop="planCode" />
|
||||||
|
<el-table-column label="生产状态" align="center" prop="planStatus" width="110">
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :type="DICT_TYPE.HELI_PROJECT_PLAN_STATUS" :value="scope.row.planStatus" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="子项目编号" align="center" prop="projectOrderSubCode" />
|
||||||
|
<el-table-column label="子项目名称" align="center" prop="projectOrderSubName" width="120"/>
|
||||||
|
<el-table-column label="零件名称" align="center" prop="bomDetailName" width="120"/>
|
||||||
|
<el-table-column label="工序名称" align="center" prop="processName" width="110"/>
|
||||||
|
<el-table-column label="总派工数量" align="center" prop="dispatchAmount" width="120"/>
|
||||||
|
<el-table-column label="总报工时间" align="center" prop="reportAllHour" width="120"/>
|
||||||
|
<el-table-column label="总预计工时" align="center" prop="reportPreviewHour" width="120"/>
|
||||||
|
<el-table-column label="总报工数量" align="center" prop="reportAmount" width="120" />
|
||||||
|
<el-table-column label="完成标志" align="center" prop="isover" width="110">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-tag v-if="scope.row.isover==2">完成</el-tag>
|
||||||
|
<el-tag v-else class="ml-2" type="danger">未完成</el-tag>
|
||||||
|
<!-- <dict-tag :type="DICT_TYPE.HELI_YINGFU_MONEY" :value="scope.row.isover" /> -->
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- <el-table-column label="操作" align="center">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
@click="openForm('update', scope.row.id)"
|
||||||
|
v-hasPermi="['heli:track:update']"
|
||||||
|
>
|
||||||
|
编辑
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
type="danger"
|
||||||
|
@click="handleDelete(scope.row.id)"
|
||||||
|
v-hasPermi="['heli:track:delete']"
|
||||||
|
>
|
||||||
|
删除
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column> -->
|
||||||
|
</el-table>
|
||||||
|
<!-- 分页 -->
|
||||||
|
<Pagination
|
||||||
|
:total="total"
|
||||||
|
v-model:page="queryParams.pageNo"
|
||||||
|
v-model:limit="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
</ContentWrap>
|
||||||
|
|
||||||
|
<!-- 表单弹窗:添加/修改 -->
|
||||||
|
<TrackForm ref="formRef" @success="getList" />
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import download from '@/utils/download'
|
||||||
|
import * as TrackApi from '@/api/heli/track'
|
||||||
|
import TrackForm from './TrackForm.vue'
|
||||||
|
import { DICT_TYPE } from '@/utils/dict'
|
||||||
|
import UserSelect from '@/views/heli/hlvuestyle/userSelect.vue'
|
||||||
|
defineOptions({ name: 'Track' })
|
||||||
|
|
||||||
|
const message = useMessage() // 消息弹窗
|
||||||
|
const { t } = useI18n() // 国际化
|
||||||
|
|
||||||
|
const loading = ref(true) // 列表的加载中
|
||||||
|
const list = ref([]) // 列表的数据
|
||||||
|
const total = ref(0) // 列表的总页数
|
||||||
|
const queryParams = reactive({
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
projectCode: undefined,
|
||||||
|
projectId: undefined,
|
||||||
|
planCode: undefined,
|
||||||
|
planId: undefined,
|
||||||
|
planStatus: undefined,
|
||||||
|
projectOrderSubCode: undefined,
|
||||||
|
projectOrderSubId: undefined,
|
||||||
|
projectOrderSubName: undefined,
|
||||||
|
bomDetailId: undefined,
|
||||||
|
bomDetailName: undefined,
|
||||||
|
processName: undefined,
|
||||||
|
processId: undefined,
|
||||||
|
dispatchAmount: undefined,
|
||||||
|
reportAllHour: undefined,
|
||||||
|
reportPreviewHour: undefined,
|
||||||
|
reportAmount: undefined,
|
||||||
|
isover: undefined,
|
||||||
|
owner:undefined,
|
||||||
|
})
|
||||||
|
const queryFormRef = ref() // 搜索的表单
|
||||||
|
const exportLoading = ref(false) // 导出的加载中
|
||||||
|
|
||||||
|
/** 查询列表 */
|
||||||
|
const getList = async () => {
|
||||||
|
loading.value = true
|
||||||
|
try {
|
||||||
|
const data = await TrackApi.getTrackPage(queryParams)
|
||||||
|
list.value = data.list
|
||||||
|
total.value = data.total
|
||||||
|
} finally {
|
||||||
|
loading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const handleSelectedUser1 = (newValue: any) => {
|
||||||
|
queryParams.owner = newValue?.id
|
||||||
|
}
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
const handleQuery = () => {
|
||||||
|
queryParams.pageNo = 1
|
||||||
|
getList()
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
const resetQuery = () => {
|
||||||
|
queryFormRef.value.resetFields()
|
||||||
|
handleQuery()
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 添加/修改操作 */
|
||||||
|
const formRef = ref()
|
||||||
|
const openForm = (type: string, id?: number) => {
|
||||||
|
formRef.value.open(type, id)
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
const handleDelete = async (id: number) => {
|
||||||
|
try {
|
||||||
|
// 删除的二次确认
|
||||||
|
await message.delConfirm()
|
||||||
|
// 发起删除
|
||||||
|
await TrackApi.deleteTrack(id)
|
||||||
|
message.success(t('common.delSuccess'))
|
||||||
|
// 刷新列表
|
||||||
|
await getList()
|
||||||
|
} catch {}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
const handleExport = async () => {
|
||||||
|
try {
|
||||||
|
// 导出的二次确认
|
||||||
|
await message.exportConfirm()
|
||||||
|
// 发起导出
|
||||||
|
exportLoading.value = true
|
||||||
|
const data = await TrackApi.exportTrack(queryParams)
|
||||||
|
download.excel(data, '生产进度跟踪.xls')
|
||||||
|
} catch {
|
||||||
|
} finally {
|
||||||
|
exportLoading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 初始化 **/
|
||||||
|
onMounted(() => {
|
||||||
|
getList()
|
||||||
|
})
|
||||||
|
</script>
|
@ -374,10 +374,10 @@ link type="primary" size="small" :disabled="ctrView || ctrDelete"
|
|||||||
</span>
|
</span>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<span class="dialog-footer">
|
<span class="dialog-footer">
|
||||||
<el-button @click="centerDialogVisible = false">取消</el-button>
|
|
||||||
<el-button type="primary" @click="deleteStorage()">
|
<el-button type="primary" @click="deleteStorage()">
|
||||||
确认
|
确认
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button @click="centerDialogVisible = false">取消</el-button>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
@ -374,10 +374,10 @@ link type="primary" size="small" :disabled="ctrView || ctrDelete"
|
|||||||
</span>
|
</span>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<span class="dialog-footer">
|
<span class="dialog-footer">
|
||||||
<el-button @click="centerDialogVisible = false">取消</el-button>
|
|
||||||
<el-button type="primary" @click="deleteStorage()">
|
<el-button type="primary" @click="deleteStorage()">
|
||||||
确认
|
确认
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button @click="centerDialogVisible = false">取消</el-button>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
@ -140,15 +140,15 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column prop="money" min-width="120" align="center">
|
<el-table-column prop="money" min-width="120" align="center" >
|
||||||
<template #header> <span class="hl-table_header">*</span>金额</template>
|
<template #header> <span class="hl-table_header">*</span>金额</template>
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-form-item :prop="`${scope.$index}.money`" :rules="subFormRules.money" class="mb-0px!">
|
<el-form-item :prop="`${scope.$index}.money`" :rules="subFormRules.money" class="mb-0px!" >
|
||||||
<el-input v-model="scope.row.money" />
|
<el-input v-model="scope.row.money" :disabled="ctrView || ctrSave" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="onemoney" label="单价" min-width="120" align="center" />
|
<el-table-column prop="onemoney" label="单价" min-width="120" align="center"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -273,10 +273,10 @@ ref="matUploadRef" :file-list="matUploadFiles" multiple :action="uploadUrl" :hea
|
|||||||
</span>
|
</span>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<span class="dialog-footer">
|
<span class="dialog-footer">
|
||||||
<el-button @click="centerDialogVisible = false">取消</el-button>
|
<el-button type="primary" @click="sureToSubmit()">
|
||||||
<el-button type="primary" @click="sureToSubmit()">
|
|
||||||
确认
|
确认
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button @click="centerDialogVisible = false">取消</el-button>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@ -286,10 +286,10 @@ ref="matUploadRef" :file-list="matUploadFiles" multiple :action="uploadUrl" :hea
|
|||||||
</span>
|
</span>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<span class="dialog-footer">
|
<span class="dialog-footer">
|
||||||
<el-button @click="deleteDialogVisible = false">取消</el-button>
|
<el-button type="primary" @click="sureToDelete()">
|
||||||
<el-button type="primary" @click="sureToDelete()">
|
|
||||||
确认
|
确认
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button @click="deleteDialogVisible = false">取消</el-button>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@ -417,13 +417,7 @@ const handleStatus = async (num) => {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
formData.value.keeper = useUserStore().getUser.id
|
formData.value.keeper = useUserStore().getUser.id
|
||||||
//保存表单数据
|
centerDialogVisible.value = true;
|
||||||
await saveFormData()
|
|
||||||
await CheckApi.updateStorageCheckStatus(formData.value.id)
|
|
||||||
await initStatus(formData.value.status)
|
|
||||||
if (sumbefore.value == 0) {
|
|
||||||
reload()
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
deleteDialogVisible.value = true;
|
deleteDialogVisible.value = true;
|
||||||
}
|
}
|
||||||
@ -624,15 +618,13 @@ const saveFormData = async () => {
|
|||||||
}
|
}
|
||||||
const sureToSubmit = async() =>{
|
const sureToSubmit = async() =>{
|
||||||
centerDialogVisible.value = false;
|
centerDialogVisible.value = false;
|
||||||
//保存表单数据
|
//保存表单数据
|
||||||
await saveFormData()
|
await saveFormData()
|
||||||
|
await CheckApi.updateStorageCheckStatus(formData.value.id)
|
||||||
await initStatus(formData.value.status)
|
await initStatus(formData.value.status)
|
||||||
|
if (sumbefore.value == 0) {
|
||||||
// 成功后刷新
|
reload()
|
||||||
if (sumbefore.value == 0) {
|
}
|
||||||
reload()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const submitForm = async () => {
|
const submitForm = async () => {
|
||||||
@ -665,7 +657,15 @@ const submitForm = async () => {
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
centerDialogVisible.value = true;
|
//保存表单数据
|
||||||
|
await saveFormData()
|
||||||
|
|
||||||
|
await initStatus(formData.value.status)
|
||||||
|
|
||||||
|
// 成功后刷新
|
||||||
|
if (sumbefore.value == 0) {
|
||||||
|
reload()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var matCount = 1
|
var matCount = 1
|
||||||
|
@ -260,7 +260,7 @@ ref="subFormRef" :model="formData.taskDispatchDetails" :rules="subFormRules"
|
|||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<el-form-item :prop="`${$index}.procedureId`" :rules="subFormRules.procedureId" class="mb-0px!">
|
<el-form-item :prop="`${$index}.procedureId`" :rules="subFormRules.procedureId" class="mb-0px!">
|
||||||
<ProcedureSelect
|
<ProcedureSelect
|
||||||
:disabled="detailDisabled || row.procedureStatus != 0"
|
:disabled="detailDisabled || row.beginProduce != 0 || row.procedureStatus != 0"
|
||||||
v-model="row.procedureId"
|
v-model="row.procedureId"
|
||||||
@update:new-value="(val) => { handleSelectedProcedure(row, val); }" />
|
@update:new-value="(val) => { handleSelectedProcedure(row, val); }" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -276,7 +276,7 @@ ref="subFormRef" :model="formData.taskDispatchDetails" :rules="subFormRules"
|
|||||||
<el-form-item :prop="`${$index}.sort`" :rules="subFormRules.sort" class="mb-0px!">
|
<el-form-item :prop="`${$index}.sort`" :rules="subFormRules.sort" class="mb-0px!">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
min="0" :precision="0" class="!w-240px"
|
min="0" :precision="0" class="!w-240px"
|
||||||
:disabled="detailDisabled || row.procedureStatus != 0" v-model="row.sort"
|
:disabled="detailDisabled || row.beginProduce != 0 || row.procedureStatus != 0" v-model="row.sort"
|
||||||
placeholder="请输入顺序号" />
|
placeholder="请输入顺序号" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
@ -288,7 +288,7 @@ min="0" :precision="0" class="!w-240px"
|
|||||||
<!-- <UserSelect-->
|
<!-- <UserSelect-->
|
||||||
<!--v-model="row.owner" :disabled="detailDisabled || row.procedureStatus != 0"-->
|
<!--v-model="row.owner" :disabled="detailDisabled || row.procedureStatus != 0"-->
|
||||||
<!-- @update:new-value="handleSelectedUser($index, $event)" />-->
|
<!-- @update:new-value="handleSelectedUser($index, $event)" />-->
|
||||||
<el-select v-model="row.owner" :disabled="detailDisabled || row.procedureStatus != 0" @update:new-value="handleSelectedUser($index, $event)">
|
<el-select v-model="row.owner" :disabled="detailDisabled || row.beginProduce != 0 || row.procedureStatus != 0" @update:new-value="handleSelectedUser($index, $event)">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in userInit" :key="dict.id"
|
v-for="dict in userInit" :key="dict.id"
|
||||||
:label="dict.username+' '+dict.nickname" :value="dict.id" />
|
:label="dict.username+' '+dict.nickname" :value="dict.id" />
|
||||||
@ -301,7 +301,7 @@ v-for="dict in userInit" :key="dict.id"
|
|||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<el-form-item :prop="`${$index}.startTime`" :rules="subFormRules.startTime" class="mb-0px!">
|
<el-form-item :prop="`${$index}.startTime`" :rules="subFormRules.startTime" class="mb-0px!">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
:disabled="detailDisabled || row.procedureStatus != 0" v-model="row.startTime"
|
:disabled="detailDisabled || row.beginProduce != 0 || row.procedureStatus != 0" v-model="row.startTime"
|
||||||
type="date" value-format="x" placeholder="选择预计开始日期" />
|
type="date" value-format="x" placeholder="选择预计开始日期" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
@ -311,7 +311,7 @@ v-for="dict in userInit" :key="dict.id"
|
|||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<el-form-item :prop="`${$index}.endTime`" :rules="subFormRules.endTime" class="mb-0px!">
|
<el-form-item :prop="`${$index}.endTime`" :rules="subFormRules.endTime" class="mb-0px!">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
:disabled="detailDisabled || row.procedureStatus != 0" v-model="row.endTime"
|
:disabled="detailDisabled || row.beginProduce != 0 || row.procedureStatus != 0" v-model="row.endTime"
|
||||||
type="date" value-format="x" placeholder="选择预计结束日期" />
|
type="date" value-format="x" placeholder="选择预计结束日期" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
@ -322,7 +322,7 @@ v-for="dict in userInit" :key="dict.id"
|
|||||||
<el-form-item :prop="`${$index}.workTime`" :rules="subFormRules.workTime" class="mb-0px!">
|
<el-form-item :prop="`${$index}.workTime`" :rules="subFormRules.workTime" class="mb-0px!">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
min="0" :precision="2" class="!w-240px"
|
min="0" :precision="2" class="!w-240px"
|
||||||
:disabled="detailDisabled || row.procedureStatus != 0" v-model="row.workTime"
|
:disabled="detailDisabled|| row.beginProduce != 0 || row.procedureStatus != 0" v-model="row.workTime"
|
||||||
placeholder="请输入预计工时" />
|
placeholder="请输入预计工时" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
@ -333,7 +333,7 @@ min="0" :precision="2" class="!w-240px"
|
|||||||
<el-form-item :prop="`${$index}.amount`" :rules="subFormRules.amount" class="mb-0px!">
|
<el-form-item :prop="`${$index}.amount`" :rules="subFormRules.amount" class="mb-0px!">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
min="0" :max="formData.amount" :precision="0" class="!w-240px"
|
min="0" :max="formData.amount" :precision="0" class="!w-240px"
|
||||||
:disabled="detailDisabled || row.procedureStatus != 0" v-model="row.amount"
|
:disabled="detailDisabled" v-model="row.amount"
|
||||||
placeholder="请输入派工数量" />
|
placeholder="请输入派工数量" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
@ -344,7 +344,7 @@ min="0" :precision="2" class="!w-240px"
|
|||||||
<EquipmentSelect
|
<EquipmentSelect
|
||||||
v-model="row.deviceModel"
|
v-model="row.deviceModel"
|
||||||
@update:new-value="handleSelectedequip($index, $event)"
|
@update:new-value="handleSelectedequip($index, $event)"
|
||||||
:disabled="detailDisabled || row.procedureStatus != 0" />
|
:disabled="detailDisabled || row.beginProduce != 0 || row.procedureStatus != 0" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -352,7 +352,7 @@ min="0" :precision="2" class="!w-240px"
|
|||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<el-form-item :prop="`${$index}.summary`" class="mb-0px!">
|
<el-form-item :prop="`${$index}.summary`" class="mb-0px!">
|
||||||
<el-input
|
<el-input
|
||||||
:disabled="detailDisabled || row.procedureStatus != 0" v-model="row.summary"
|
:disabled="detailDisabled || row.beginProduce != 0 || row.procedureStatus != 0" v-model="row.summary"
|
||||||
placeholder="请输入工序要点" />
|
placeholder="请输入工序要点" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
@ -454,10 +454,10 @@ v-if="formData.dispatchStatus == 2" @click="printHandle(formData.id)" :disabled=
|
|||||||
</span>
|
</span>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<span class="dialog-footer">
|
<span class="dialog-footer">
|
||||||
<el-button @click="centerDialogVisible = false">取消</el-button>
|
|
||||||
<el-button type="primary" @click="sureToCancle()">
|
<el-button type="primary" @click="sureToCancle()">
|
||||||
确认
|
确认
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button @click="centerDialogVisible = false">取消</el-button>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@ -880,6 +880,7 @@ const submitForm = async (operate) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
isSureCancle.value = false
|
||||||
// 提交明细不能为空
|
// 提交明细不能为空
|
||||||
if (operate == 'SUBMIT') {
|
if (operate == 'SUBMIT') {
|
||||||
if (!formData.value.taskDispatchDetails || formData.value.taskDispatchDetails.length == 0) {
|
if (!formData.value.taskDispatchDetails || formData.value.taskDispatchDetails.length == 0) {
|
||||||
|
@ -243,7 +243,7 @@ class="!w-260px" v-model="formData.createTime" type="date" value-format="x"
|
|||||||
<el-table-column fixed label="派工类型" align="center" prop="dispatchType" width="145px">
|
<el-table-column fixed label="派工类型" align="center" prop="dispatchType" width="145px">
|
||||||
<template #header> <span class="hl-table_header">*</span>派工类型</template>
|
<template #header> <span class="hl-table_header">*</span>派工类型</template>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-radio-group size="small" :disabled="detailDisabled || row.procedureStatus != 0" v-model="row.dispatchType" @change="()=>dispatchTypeHasChange(row)">
|
<el-radio-group size="small" :disabled="detailDisabled||row.beginProduce != 0 || row.procedureStatus != 0" v-model="row.dispatchType" @change="()=>dispatchTypeHasChange(row)">
|
||||||
<el-radio-button :label="1">人员</el-radio-button>
|
<el-radio-button :label="1">人员</el-radio-button>
|
||||||
<el-radio-button :label="2">岗位</el-radio-button>
|
<el-radio-button :label="2">岗位</el-radio-button>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
@ -259,7 +259,7 @@ class="!w-260px" v-model="formData.createTime" type="date" value-format="x"
|
|||||||
<template #header> <span class="hl-table_header">*</span>负责人</template>
|
<template #header> <span class="hl-table_header">*</span>负责人</template>
|
||||||
<template #default="{ row , $index}">
|
<template #default="{ row , $index}">
|
||||||
<el-form-item :prop="`${$index}.owner`" class="mb-0px!">
|
<el-form-item :prop="`${$index}.owner`" class="mb-0px!">
|
||||||
<el-select :disabled="detailDisabled || row.procedureStatus != 0" clearable filterable v-if="row.dispatchType==1 " v-model="row.owner" placeholder="请选择负责人" style="max-width: 110px">
|
<el-select :disabled="detailDisabled||row.beginProduce != 0 || row.procedureStatus != 0" clearable filterable v-if="row.dispatchType==1 " v-model="row.owner" placeholder="请选择负责人" style="max-width: 110px">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in ownerList1"
|
v-for="item in ownerList1"
|
||||||
:key="item.index"
|
:key="item.index"
|
||||||
@ -267,7 +267,7 @@ class="!w-260px" v-model="formData.createTime" type="date" value-format="x"
|
|||||||
:value="item.id"
|
:value="item.id"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-select :disabled="detailDisabled || row.procedureStatus != 0" clearable filterable v-if="row.dispatchType==2 && (row.owner != '' && row.owner != null )" v-model="row.owner" placeholder="请选择岗位" style="max-width: 110px">
|
<el-select :disabled="detailDisabled ||row.beginProduce != 0|| row.procedureStatus != 0" clearable filterable v-if="row.dispatchType==2 && (row.owner != '' && row.owner != null )" v-model="row.owner" placeholder="请选择岗位" style="max-width: 110px">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in ownerList1"
|
v-for="item in ownerList1"
|
||||||
:key="item.index"
|
:key="item.index"
|
||||||
@ -275,7 +275,7 @@ class="!w-260px" v-model="formData.createTime" type="date" value-format="x"
|
|||||||
:value="item.id"
|
:value="item.id"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-select :disabled="detailDisabled || row.procedureStatus != 0" clearable filterable v-if="row.dispatchType==2 && (row.owner == '' || row.owner == null)" v-model="row.postId" placeholder="请选择岗位" style="width: 110px">
|
<el-select :disabled="detailDisabled||row.beginProduce != 0 || row.procedureStatus != 0" clearable filterable v-if="row.dispatchType==2 && (row.owner == '' || row.owner == null)" v-model="row.postId" placeholder="请选择岗位" style="width: 110px">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in ownerList2"
|
v-for="item in ownerList2"
|
||||||
:key="item.index"
|
:key="item.index"
|
||||||
@ -317,7 +317,7 @@ v-model="row.owner" :disabled="detailDisabled || row.procedureStatus != 0"
|
|||||||
<el-form-item :prop="`${$index}.workTime`" :rules="subFormRules.workTime" class="mb-0px!">
|
<el-form-item :prop="`${$index}.workTime`" :rules="subFormRules.workTime" class="mb-0px!">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
min="0" :precision="2" class="!w-240px"
|
min="0" :precision="2" class="!w-240px"
|
||||||
:disabled="detailDisabled || row.procedureStatus != 0" v-model="row.workTime"
|
:disabled="detailDisabled || row.beginProduce != 0 || row.procedureStatus != 0" v-model="row.workTime"
|
||||||
placeholder="请输入预计工时" />
|
placeholder="请输入预计工时" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
@ -328,7 +328,7 @@ min="0" :precision="2" class="!w-240px"
|
|||||||
<el-form-item :prop="`${$index}.amount`" :rules="subFormRules.amount" class="mb-0px!">
|
<el-form-item :prop="`${$index}.amount`" :rules="subFormRules.amount" class="mb-0px!">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
min="0" :max="formData.amount" :precision="0" class="!w-240px"
|
min="0" :max="formData.amount" :precision="0" class="!w-240px"
|
||||||
:disabled="detailDisabled || row.procedureStatus != 0" v-model="row.amount"
|
:disabled="detailDisabled" v-model="row.amount"
|
||||||
placeholder="请输入派工数量" />
|
placeholder="请输入派工数量" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
@ -339,7 +339,7 @@ min="0" :max="formData.amount" :precision="0" class="!w-240px"
|
|||||||
<EquipmentSelect
|
<EquipmentSelect
|
||||||
v-model="row.deviceModel"
|
v-model="row.deviceModel"
|
||||||
@update:new-value="handleSelectedequip($index, $event)"
|
@update:new-value="handleSelectedequip($index, $event)"
|
||||||
:disabled="detailDisabled || row.procedureStatus != 0" />
|
:disabled="detailDisabled ||row.beginProduce != 0 || row.procedureStatus != 0" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -347,7 +347,7 @@ v-model="row.deviceModel"
|
|||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<el-form-item :prop="`${$index}.summary`" class="mb-0px!">
|
<el-form-item :prop="`${$index}.summary`" class="mb-0px!">
|
||||||
<el-input
|
<el-input
|
||||||
:disabled="detailDisabled || row.procedureStatus != 0" v-model="row.summary"
|
:disabled="detailDisabled ||row.beginProduce != 0 || row.procedureStatus != 0" v-model="row.summary"
|
||||||
placeholder="请输入工序要点" />
|
placeholder="请输入工序要点" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
@ -1008,7 +1008,7 @@ const queryData = async (id?: number) => {
|
|||||||
ownerList1.value = await getOwnerListThis ();
|
ownerList1.value = await getOwnerListThis ();
|
||||||
ownerList2.value = await getOwnerPostListThis ();
|
ownerList2.value = await getOwnerPostListThis ();
|
||||||
formData.value.bomCode = 'BOM-' + formData.value.projectSubCode
|
formData.value.bomCode = 'BOM-' + formData.value.projectSubCode
|
||||||
if (formData.value.dispatchStatus == 2) {
|
if (formData.value.dispatchStatus == 2 ) {
|
||||||
detailDisabled.value = true
|
detailDisabled.value = true
|
||||||
}else{
|
}else{
|
||||||
detailDisabled.value = false
|
detailDisabled.value = false
|
||||||
@ -1058,6 +1058,7 @@ const submitForm = async (operate) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
isSureCancle.value = false
|
||||||
if(operate == 'SUBMIT'||operate == 'SAVE'){
|
if(operate == 'SUBMIT'||operate == 'SAVE'){
|
||||||
if (!formData.value.taskDispatchDetails || formData.value.taskDispatchDetails.length == 0) {
|
if (!formData.value.taskDispatchDetails || formData.value.taskDispatchDetails.length == 0) {
|
||||||
message.error('派工明细不能为空')
|
message.error('派工明细不能为空')
|
||||||
@ -1085,6 +1086,7 @@ const submitForm = async (operate) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
const data = formData.value as unknown as TaskDispatchApi.TaskDispatchVO
|
const data = formData.value as unknown as TaskDispatchApi.TaskDispatchVO
|
||||||
|
console.log(data);
|
||||||
let dataId = await TaskDispatchApi.operateTaskDispatch(data)
|
let dataId = await TaskDispatchApi.operateTaskDispatch(data)
|
||||||
message.success(t('common.operationSuccess'))
|
message.success(t('common.operationSuccess'))
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user