零件进程管理
This commit is contained in:
parent
c60a522230
commit
605dbfd5ca
@ -1,5 +1,6 @@
|
||||
package com.chanko.yunxi.mes.module.heli.controller.admin.plansubdetail;
|
||||
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO;
|
||||
import com.chanko.yunxi.mes.module.heli.service.plansub.PlanSubService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
@ -159,4 +160,29 @@ public class PlanSubDetailController {
|
||||
public CommonResult<List<PlanSubDetailDO>> getList(@Valid PlanSubDetailPageReqVO pageReqVO) {
|
||||
return success( planSubDetailService.getList(pageReqVO));
|
||||
}
|
||||
@GetMapping("/getList1")
|
||||
@PreAuthorize("@ss.hasPermission('heli:plan-sub-detail:query')")
|
||||
public CommonResult<List<PlanSubDetailDO>> getList1(@Valid PlanSubDetailPageReqVO pageReqVO) {
|
||||
return success( planSubDetailService.getList1(pageReqVO));
|
||||
}
|
||||
@GetMapping("/getList2")
|
||||
@PreAuthorize("@ss.hasPermission('heli:plan-sub-detail:query')")
|
||||
public CommonResult<List<TaskDispatchDetailDO>> getList2(@Valid PlanSubDetailPageReqVO pageReqVO) {
|
||||
return success( planSubDetailService.getList2(pageReqVO));
|
||||
}
|
||||
@GetMapping("/getList3")
|
||||
@PreAuthorize("@ss.hasPermission('heli:plan-sub-detail:query')")
|
||||
public CommonResult<List<TaskDispatchDetailDO>> getList3(@Valid PlanSubDetailPageReqVO pageReqVO) {
|
||||
return success( planSubDetailService.getList3(pageReqVO));
|
||||
}
|
||||
@GetMapping("/getList4")
|
||||
@PreAuthorize("@ss.hasPermission('heli:plan-sub-detail:query')")
|
||||
public CommonResult<List<TaskDispatchDetailDO>> getList4(@Valid PlanSubDetailPageReqVO pageReqVO) {
|
||||
return success( planSubDetailService.getList4(pageReqVO));
|
||||
}
|
||||
@GetMapping("/getList5")
|
||||
@PreAuthorize("@ss.hasPermission('heli:plan-sub-detail:query')")
|
||||
public CommonResult<List<TaskDispatchDetailDO>> getList5(@Valid PlanSubDetailPageReqVO pageReqVO) {
|
||||
return success( planSubDetailService.getList5(pageReqVO));
|
||||
}
|
||||
}
|
||||
|
||||
@ -122,11 +122,13 @@ public class ProjectOrderController {
|
||||
}
|
||||
}
|
||||
}
|
||||
Set<String> nameSimSet = new HashSet<>();
|
||||
for (ProjectOrderSubDO projectOrderSub : operateReqVO.getProjectOrderSubs()) {
|
||||
String nameSim = projectOrderSub.getNameSim();
|
||||
if (!nameSimSet.add(nameSim)) {
|
||||
return CommonResult.error(400,"该项目下子项目简码不能重复,请确认!");
|
||||
if (ObjectUtil.isNotEmpty(operateReqVO.getProjectOrderSubs())){
|
||||
Set<String> nameSimSet = new HashSet<>();
|
||||
for (ProjectOrderSubDO projectOrderSub : operateReqVO.getProjectOrderSubs()) {
|
||||
String nameSim = projectOrderSub.getNameSim();
|
||||
if (!nameSimSet.add(nameSim)) {
|
||||
return CommonResult.error(400,"该项目下子项目简码不能重复,请确认!");
|
||||
}
|
||||
}
|
||||
}
|
||||
projectOrderService.operateProjectOrder(operateReqVO);
|
||||
@ -146,7 +148,7 @@ public class ProjectOrderController {
|
||||
orderYsService.createOrUpdate(operateReqVO);
|
||||
// 订单批准时创建或者更新生产计划数据
|
||||
crossOrderManager.generatePlan(operateReqVO.getId());
|
||||
// projectOrderService.createProjectOrderSnapshot(operateReqVO);
|
||||
// projectOrderService.createProjectOrderSnapshot(operateReqVO);
|
||||
break;
|
||||
case TERMINATE:
|
||||
orderYsService.delete(operateReqVO);
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
package com.chanko.yunxi.mes.module.heli.dal.dataobject.plansubdetail;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
@ -115,6 +117,14 @@ public class PlanSubDetailDO extends BaseDO {
|
||||
//生产进度
|
||||
@TableField(exist = false)
|
||||
private String productionSchedule;
|
||||
|
||||
|
||||
@TableField(exist = false)
|
||||
private String type;
|
||||
@TableField(exist = false)
|
||||
private BigDecimal workHours;
|
||||
@TableField(exist = false)
|
||||
private String percentage;
|
||||
@TableField(exist = false)
|
||||
private String PercentageFlag;
|
||||
@TableField(exist = false)
|
||||
private Date time;
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO;
|
||||
import io.swagger.v3.oas.models.security.SecurityScheme;
|
||||
import kotlin.jvm.internal.Lambda;
|
||||
import lombok.*;
|
||||
import org.apache.poi.hpsf.Date;
|
||||
|
||||
@ -261,4 +262,20 @@ public class TaskDispatchDetailDO extends BaseDO {
|
||||
private Integer receivingStatus;
|
||||
@TableField(exist = false)
|
||||
private Integer mplanStatus;
|
||||
@TableField(exist = false)
|
||||
private String partsProcurement;
|
||||
@TableField(exist = false)
|
||||
private String receiving;
|
||||
@TableField(exist = false)
|
||||
private String receivingFlag;
|
||||
@TableField(exist = false)
|
||||
private LocalDateTime receivingTime;
|
||||
@TableField(exist = false)
|
||||
private String percentage;
|
||||
@TableField(exist = false)
|
||||
private String report;
|
||||
@TableField(exist = false)
|
||||
private String reportFlag;
|
||||
@TableField(exist = false)
|
||||
private String finishedProduct;
|
||||
}
|
||||
|
||||
@ -316,10 +316,10 @@ public interface PlanSubMapper extends BaseMapperX<PlanSubDO> {
|
||||
query.eq(ProjectOrderSubDO::getDeleted,0);
|
||||
query.eq(CustomerDO::getDeleted,0);
|
||||
query.eq(PlanDO::getDeleted,0);
|
||||
query.eq(ObjectUtil.isNotEmpty(pageReqVO.getProjectCode()), ProjectOrderDO::getCode, pageReqVO.getProjectCode());
|
||||
query.eq(ObjectUtil.isNotEmpty(pageReqVO.getProjectName()), ProjectOrderDO::getProjectName, pageReqVO.getProjectName());
|
||||
query.eq(ObjectUtil.isNotEmpty(pageReqVO.getProjectSubName()), ProjectOrderSubDO::getName, pageReqVO.getProjectSubName());
|
||||
query.eq(ObjectUtil.isNotEmpty(pageReqVO.getCustomerName()), CustomerDO::getName, pageReqVO.getCustomerName());
|
||||
query.like(ObjectUtil.isNotEmpty(pageReqVO.getProjectCode()), ProjectOrderDO::getCode, pageReqVO.getProjectCode());
|
||||
query.like(ObjectUtil.isNotEmpty(pageReqVO.getProjectName()), ProjectOrderDO::getProjectName, pageReqVO.getProjectName());
|
||||
query.like(ObjectUtil.isNotEmpty(pageReqVO.getProjectSubName()), ProjectOrderSubDO::getName, pageReqVO.getProjectSubName());
|
||||
query.like(ObjectUtil.isNotEmpty(pageReqVO.getCustomerName()), CustomerDO::getName, pageReqVO.getCustomerName());
|
||||
query.orderByAsc(ProjectOrderDO::getCode);
|
||||
return selectPage(pageReqVO, query);
|
||||
}
|
||||
|
||||
@ -18,9 +18,11 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import org.apache.ibatis.annotations.Delete;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 工艺设计 Mapper
|
||||
@ -395,4 +397,11 @@ public interface ProcessDesignMapper extends BaseMapperX<ProcessDesignDO> {
|
||||
}
|
||||
@Delete("delete from pro_process_design where project_id = #{id}")
|
||||
void deleteOrderId(@Param("id") Long id);
|
||||
|
||||
@Select("SELECT pd.* FROM pro_process_design pd " +
|
||||
"INNER JOIN project_plan_sub_detail psd ON psd.project_sub_id = pd.project_sub_id " +
|
||||
"AND psd.sub_type = pd.process_design_type " +
|
||||
"WHERE pd.project_sub_id = #{projectSubId} " +
|
||||
"AND pd.process_design_type IN ('BLUEPRINT_3D', 'BLUEPRINT_2D', 'BLUEPRINT_WORKBLANK')")
|
||||
List<ProcessDesignDO> selectWithDetailExists(@Param("projectSubId") Long projectSubId);
|
||||
}
|
||||
|
||||
@ -904,7 +904,15 @@ public interface TaskDispatchDetailMapper extends BaseMapperX<TaskDispatchDetail
|
||||
MPJLambdaWrapper<TaskDispatchDetailDO> query = new MPJLambdaWrapper<>();
|
||||
query.selectAll(TaskDispatchDetailDO.class)
|
||||
.select("a.bom_detail_id as bomDetailId")
|
||||
.leftJoin(TaskDispatchDO.class,"a",TaskDispatchDO::getId,TaskDispatchDetailDO::getDispatchId);
|
||||
.select("b.material_name as materialName","c.name as projectSubName")
|
||||
.select("d.name as procedureName","u.nickname as ownerName")
|
||||
.leftJoin(TaskDispatchDO.class,"a",TaskDispatchDO::getId,TaskDispatchDetailDO::getDispatchId)
|
||||
.leftJoin(ProcessBomDetailDO.class,"b",ProcessBomDetailDO::getId,TaskDispatchDO::getBomDetailId)
|
||||
.leftJoin(ProjectOrderSubDO.class,"c",ProjectOrderSubDO::getId,TaskDispatchDO::getProjectSubId)
|
||||
.leftJoin(ProcedureDO.class,"d",ProcedureDO::getId,TaskDispatchDetailDO::getProcedureId)
|
||||
.leftJoin(AdminUserDO.class,"u",AdminUserDO::getId,TaskDispatchDetailDO::getOwner)
|
||||
.orderByAsc(ProcessBomDetailDO::getMaterialName)
|
||||
.orderByAsc(TaskDispatchDO::getCode);
|
||||
query.eq(TaskDispatchDO::getProjectSubId,projectSubId);
|
||||
query.eq(TaskDispatchDO::getDispatchType,"PRODUCTION");
|
||||
query.eq(ObjectUtil.isNotEmpty(checkYn),TaskDispatchDetailDO::getCheckYn,checkYn);
|
||||
@ -916,7 +924,13 @@ public interface TaskDispatchDetailMapper extends BaseMapperX<TaskDispatchDetail
|
||||
MPJLambdaWrapper<TaskDispatchDetailDO> query = new MPJLambdaWrapper<>();
|
||||
query.selectAll(TaskDispatchDetailDO.class)
|
||||
.select("a.bom_detail_id as bomDetailId")
|
||||
.leftJoin(TaskDispatchDO.class,"a",TaskDispatchDO::getId,TaskDispatchDetailDO::getDispatchId);
|
||||
.select("d.name as procedureName","c.name as projectSubName")
|
||||
.leftJoin(TaskDispatchDO.class,"a",TaskDispatchDO::getId,TaskDispatchDetailDO::getDispatchId)
|
||||
.leftJoin(ProjectOrderSubDO.class,"c",ProjectOrderSubDO::getId,TaskDispatchDO::getProjectSubId)
|
||||
.leftJoin(ProcedureDO.class,"d",ProcedureDO::getId,TaskDispatchDetailDO::getProcedureId)
|
||||
.groupBy(TaskDispatchDetailDO::getId)
|
||||
.orderByAsc(ProjectOrderSubDO::getName)
|
||||
.orderByAsc(ProcedureDO::getName);
|
||||
query.eq(TaskDispatchDO::getProjectSubId,projectSubId);
|
||||
query.eq(TaskDispatchDO::getDispatchType,"ASSEMBLE");
|
||||
return selectList(query);
|
||||
|
||||
@ -230,4 +230,13 @@ public interface TaskDispatchMapper extends BaseMapperX<TaskDispatchDO> {
|
||||
@Delete("delete from pro_task_dispatch where project_id=#{id}")
|
||||
void deleteOrderId(@Param("id") Long id);
|
||||
|
||||
default List<TaskDispatchDO> selectByIds(List<Long> ids){
|
||||
MPJLambdaWrapper<TaskDispatchDO> query = new MPJLambdaWrapper<>();
|
||||
query.selectAll(TaskDispatchDO.class)
|
||||
.select("a.craft_content as craftContent")
|
||||
.leftJoin(PlanDO.class, "a", PlanDO::getId, TaskDispatchDO::getPlanId)
|
||||
.in(TaskDispatchDO::getId, ids);
|
||||
return selectList(query);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -54,6 +54,7 @@ import org.checkerframework.checker.units.qual.C;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
@ -385,6 +386,7 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Boolean approval(Long id) {
|
||||
PurchaseOrderMakeDO orderMakeDO = purchaseOrderMakeMapper.selectById(id);
|
||||
if (orderMakeDO.getStatus() != 1) throw exception(new ErrorCode(400, "该单据状态非待审核,请刷新界面!"));
|
||||
@ -402,7 +404,7 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
||||
materialPlanBoom.setMplanStatus(2);
|
||||
materialPlanBoomMapper.updateById(materialPlanBoom);
|
||||
});
|
||||
List<PurchaseOrderMakeDetailDO> list = purchaseOrderMakeDetailMapper.selectList("project_purchase_order_make_id", id);
|
||||
List<PurchaseOrderMakeDetailDO> list = purchaseOrderMakeDetailMapper.selectList("purchase_order_id", id);
|
||||
List<Long> ids = list.stream().map(PurchaseOrderMakeDetailDO::getId).collect(Collectors.toList());
|
||||
if (ObjectUtil.isNotEmpty(ids)){
|
||||
LambdaUpdateWrapper<PurchaseOrderMakeDetailDO> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
@ -656,6 +658,15 @@ if (ObjectUtil.isNotEmpty(materialDO)){
|
||||
public Boolean approvals(List<PurchaseOrderMakeDetailDO> list) {
|
||||
if (ObjectUtil.isNotEmpty( list)){
|
||||
List<Long> ids = list.stream().map(PurchaseOrderMakeDetailDO::getId).collect(Collectors.toList());
|
||||
List<Long> orderIds = list.stream().map(PurchaseOrderMakeDetailDO::getPurchaseOrderId).collect(Collectors.toList());
|
||||
if (ObjectUtil.isNotEmpty(orderIds)){
|
||||
LambdaUpdateWrapper<PurchaseOrderMakeDO> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.in(PurchaseOrderMakeDO::getId, orderIds);
|
||||
updateWrapper.set(PurchaseOrderMakeDO::getStatus,2);
|
||||
updateWrapper.set(PurchaseOrderMakeDO::getAuditTime, LocalDateTime.now());
|
||||
updateWrapper.set(PurchaseOrderMakeDO::getAuditor, getLoginUser().getId());
|
||||
purchaseOrderMakeMapper.update(updateWrapper);
|
||||
}
|
||||
LambdaQueryWrapper<PurchaseOrderMakeDetailDO> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.in(PurchaseOrderMakeDetailDO::getId, ids);
|
||||
wrapper.ne(PurchaseOrderMakeDetailDO::getStatus,1);
|
||||
|
||||
@ -3,6 +3,7 @@ package com.chanko.yunxi.mes.module.heli.service.plan;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.smallbun.screw.core.util.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.chanko.yunxi.mes.framework.common.exception.ErrorCode;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
|
||||
@ -74,6 +75,7 @@ import java.util.stream.Collectors;
|
||||
import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.PROJECT_PLAN;
|
||||
import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.PROJECT_PLAN_TASK;
|
||||
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.OWNER_NOT_EXISTS;
|
||||
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.PLAN_NOT_EXISTS;
|
||||
|
||||
/**
|
||||
@ -436,18 +438,22 @@ public class PlanServiceImpl implements PlanService {
|
||||
LocalDateTime dateAsLocalDateTime = processDesignProgressDO.getEndTime().toInstant()
|
||||
.atZone(ZoneId.systemDefault())
|
||||
.toLocalDateTime();
|
||||
if (dateAsLocalDateTime.isAfter(processDesignDO.getCraftEndDate())) {
|
||||
if (ObjectUtil.isNotEmpty(planSubDO.getCraftEndDate())){
|
||||
if (dateAsLocalDateTime.isAfter(planSubDO.getCraftEndDate())) {
|
||||
planDO.setProcessFlag("1");
|
||||
} else {
|
||||
planDO.setProcessFlag("0");
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (now.isAfter(processDesignDO.getCraftEndDate())) {
|
||||
if (ObjectUtil.isNotEmpty(planSubDO.getCraftEndDate())){
|
||||
if (now.isAfter(planSubDO.getCraftEndDate())) {
|
||||
planDO.setProcessFlag("1");
|
||||
} else {
|
||||
planDO.setProcessFlag("0");
|
||||
}
|
||||
}
|
||||
Long l = processDesignProgressMapper.selectCount(new LambdaQueryWrapper<ProcessDesignProgressDO>().eq(ProcessDesignProgressDO::getProcessDesignId, processDesignDO.getId()));
|
||||
if (l > 0) {
|
||||
planDO.setProcessProgress("执行中");
|
||||
@ -482,7 +488,7 @@ public class PlanServiceImpl implements PlanService {
|
||||
List<PurchaseOrderMakeDetailDO> purchaseOrderMakeDetailDOS = queryPurchaseOrderMakeDetails(subDO);
|
||||
|
||||
// 判断所有采购订单是否都已完成
|
||||
boolean allCompleted = isAllPurchaseOrdersCompleted(purchaseOrderNoDetailDOS);
|
||||
boolean allCompleted = isAllPurchaseOrdersCompleted(purchaseOrderNoDetailDOS,detailDOS);
|
||||
|
||||
if (allCompleted) {
|
||||
subDO.setOutsourcingTasks(TASK_COMPLETED);
|
||||
@ -529,7 +535,7 @@ public class PlanServiceImpl implements PlanService {
|
||||
List<TaskDispatchDetailDO> dispatchDetailDOList = taskDispatchDetailMapper
|
||||
.outSourceTask(subDO.getProjectSubId(), "N","0");
|
||||
//2.查询过程检报工信息
|
||||
List<PgMasterLineDO> processInspectionReports = queryProcessInspectionReports(dispatchDetailDOS);
|
||||
List<PgMasterLineDO> processInspectionReports = queryProcessInspectionReports(dispatchDetailDOList);
|
||||
boolean isSameSizeAndNotEmpty = isSameSizeAndNotEmpty(dispatchDetailDOList, processInspectionReports);
|
||||
if (isSameSizeAndNotEmpty){
|
||||
subDO.setProcessInspection(TASK_COMPLETED);
|
||||
@ -570,16 +576,14 @@ public class PlanServiceImpl implements PlanService {
|
||||
if (CollectionUtils.isEmpty(taskReportDOS)) {
|
||||
if (CollectionUtils.isNotEmpty(dispatchDetailDOS)){
|
||||
subDO.setAssemblyTask(TASK_NOT_STARTED);
|
||||
return;
|
||||
}
|
||||
}else {
|
||||
BigDecimal dispatchAmount = calculateDispatchAmount(dispatchDetailDOS);
|
||||
BigDecimal reportedAmount = calculateReportedAmount(taskReportDOS);
|
||||
int percentage = calculatePercentage(reportedAmount, dispatchAmount);
|
||||
subDO.setAssemblyTask(String.format(TASK_STARTED_FORMAT, percentage));
|
||||
subDO.setAssemblyTaskFlag(TASK_FLAG_NORMAL);
|
||||
}
|
||||
|
||||
BigDecimal dispatchAmount = calculateDispatchAmount(dispatchDetailDOS);
|
||||
BigDecimal reportedAmount = calculateReportedAmount(taskReportDOS);
|
||||
int percentage = calculatePercentage(reportedAmount, dispatchAmount);
|
||||
|
||||
subDO.setAssemblyTask(String.format(TASK_STARTED_FORMAT, percentage));
|
||||
subDO.setAssemblyTaskFlag(TASK_FLAG_NORMAL);
|
||||
}
|
||||
/**
|
||||
* 处理进行中的任务状态
|
||||
@ -590,17 +594,17 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
if (CollectionUtils.isEmpty(taskReportDOS)) {
|
||||
if (CollectionUtils.isNotEmpty(dispatchDetailDOS)){
|
||||
subDO.setProcessingTask(TASK_NOT_STARTED);
|
||||
return;
|
||||
subDO.setProcessInspection(TASK_NOT_STARTED);
|
||||
}
|
||||
}else {
|
||||
BigDecimal dispatchAmount = calculateDispatchAmount(dispatchDetailDOS);
|
||||
BigDecimal reportedAmount = calculateAmount(taskReportDOS);
|
||||
int percentage = calculatePercentage(reportedAmount, dispatchAmount);
|
||||
subDO.setProcessInspection(String.format(TASK_STARTED_FORMAT, percentage));
|
||||
subDO.setProcessInspectionFlag(TASK_FLAG_NORMAL);
|
||||
}
|
||||
|
||||
BigDecimal dispatchAmount = calculateDispatchAmount(dispatchDetailDOS);
|
||||
BigDecimal reportedAmount = calculateAmount(taskReportDOS);
|
||||
int percentage = calculatePercentage(reportedAmount, dispatchAmount);
|
||||
|
||||
subDO.setProcessingTask(String.format(TASK_STARTED_FORMAT, percentage));
|
||||
subDO.setProcessingTaskFlag(TASK_FLAG_NORMAL);
|
||||
}
|
||||
/**
|
||||
* 判断两个集合大小相等且都不为空
|
||||
@ -680,16 +684,15 @@ public boolean isSameSizeAndNotEmpty(Collection<?> list1, Collection<?> list2)
|
||||
if (CollectionUtils.isEmpty(taskReportDOS)) {
|
||||
if (CollectionUtils.isNotEmpty(dispatchDetailDOS)){
|
||||
subDO.setProcessingTask(TASK_NOT_STARTED);
|
||||
return;
|
||||
}
|
||||
}else {
|
||||
BigDecimal dispatchAmount = calculateDispatchAmount(dispatchDetailDOS);
|
||||
BigDecimal reportedAmount = calculateReportedAmount(taskReportDOS);
|
||||
int percentage = calculatePercentage(reportedAmount, dispatchAmount);
|
||||
|
||||
subDO.setProcessingTask(String.format(TASK_STARTED_FORMAT, percentage));
|
||||
subDO.setProcessingTaskFlag(TASK_FLAG_NORMAL);
|
||||
}
|
||||
|
||||
BigDecimal dispatchAmount = calculateDispatchAmount(dispatchDetailDOS);
|
||||
BigDecimal reportedAmount = calculateReportedAmount(taskReportDOS);
|
||||
int percentage = calculatePercentage(reportedAmount, dispatchAmount);
|
||||
|
||||
subDO.setProcessingTask(String.format(TASK_STARTED_FORMAT, percentage));
|
||||
subDO.setProcessingTaskFlag(TASK_FLAG_NORMAL);
|
||||
}
|
||||
/**
|
||||
* 处理装配任务时间逻辑
|
||||
@ -830,13 +833,13 @@ private List<PurchaseOrderNoDetailDO> queryPurchaseOrderDetails(PlanSubDO subDO)
|
||||
}
|
||||
|
||||
// 判断所有采购订单是否完成
|
||||
private boolean isAllPurchaseOrdersCompleted(List<PurchaseOrderNoDetailDO> purchaseOrderNoDetailDOS) {
|
||||
private boolean isAllPurchaseOrdersCompleted(List<PurchaseOrderNoDetailDO> purchaseOrderNoDetailDOS,List<TaskDispatchDetailDO> taskDispatchDetailDOS) {
|
||||
if (CollectionUtils.isEmpty(purchaseOrderNoDetailDOS)) {
|
||||
return false;
|
||||
}
|
||||
return purchaseOrderNoDetailDOS.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.allMatch(item -> item.getReceivingStatus() == 3);
|
||||
.allMatch(item -> item.getReceivingStatus() == 3) && taskDispatchDetailDOS.size()==purchaseOrderNoDetailDOS.size();
|
||||
}
|
||||
|
||||
// 计算已收货的采购数量
|
||||
@ -910,11 +913,7 @@ private List<PurchaseOrderNoDetailDO> queryPurchaseOrderDetails(PlanSubDO subDO)
|
||||
* 查询已完成的工艺设计
|
||||
*/
|
||||
private List<ProcessDesignDO> getCompletedProcessDesigns(Long projectSubId) {
|
||||
LambdaQueryWrapper<ProcessDesignDO> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(ProcessDesignDO::getProjectSubId, projectSubId);
|
||||
queryWrapper.in(ProcessDesignDO::getProcessDesignType, "BLUEPRINT_3D","BLUEPRINT_2D","BLUEPRINT_WORKBLANK");
|
||||
queryWrapper.eq(ProcessDesignDO::getIsOverProcess, "1");
|
||||
return processDesignMapper.selectList(queryWrapper);
|
||||
return processDesignMapper.selectWithDetailExists(projectSubId);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -929,10 +928,15 @@ private List<PurchaseOrderNoDetailDO> queryPurchaseOrderDetails(PlanSubDO subDO)
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查是否有足够的已完成设计(>=3)
|
||||
* 检查设计是否完成
|
||||
*/
|
||||
private boolean hasEnoughCompletedDesigns(List<ProcessDesignDO> processDesigns) {
|
||||
return ObjectUtil.isNotEmpty(processDesigns) && processDesigns.size() >= 3;
|
||||
if (CollectionUtils.isEmpty(processDesigns)) {
|
||||
return false;
|
||||
}
|
||||
return processDesigns.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.allMatch(item -> item.getIsOverProcess() ==1);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -967,8 +971,8 @@ private List<PurchaseOrderNoDetailDO> queryPurchaseOrderDetails(PlanSubDO subDO)
|
||||
PlanSubDetailDO latestTwoDimPlan,
|
||||
LocalDateTime now) {
|
||||
if (ObjectUtil.isEmpty(processDesigns)) {
|
||||
subDO.setDesignTask("未开始");
|
||||
return;
|
||||
subDO.setDesignTask("");
|
||||
|
||||
}
|
||||
|
||||
List<Long> processDesignIds = processDesigns.stream()
|
||||
@ -978,31 +982,30 @@ private List<PurchaseOrderNoDetailDO> queryPurchaseOrderDetails(PlanSubDO subDO)
|
||||
// 获取工艺设计进度列表
|
||||
List<ProcessDesignProgressDO> progressList = getProcessDesignProgressList(processDesignIds);
|
||||
|
||||
if (ObjectUtil.isEmpty(progressList)) {
|
||||
if (ObjectUtil.isEmpty(progressList)&&ObjectUtil.isNotEmpty(latestTwoDimPlan)) {
|
||||
subDO.setDesignTask("未开始");
|
||||
return;
|
||||
}
|
||||
|
||||
if (ObjectUtil.isNotEmpty(progressList)) {
|
||||
// 计算总工时和当前工时
|
||||
BigDecimal totalWorkTime = calculateTotalWorkTime(progressList);
|
||||
BigDecimal currentTime = calculateCurrentTime(subDO);
|
||||
currentTime = currentTime.multiply(new BigDecimal("8"));
|
||||
currentTime = currentTime.multiply(new BigDecimal("8"));
|
||||
// 计算完成百分比
|
||||
Integer percentage = calculatePercentage( totalWorkTime,currentTime);
|
||||
Integer percentage = calculatePercentage(totalWorkTime, currentTime);
|
||||
|
||||
// 设置设计任务状态
|
||||
subDO.setDesignTask(String.format("已开始(%d%%)", percentage));
|
||||
subDO.setDesignTaskFlag("0");
|
||||
|
||||
}
|
||||
// 检查是否超期
|
||||
ProcessDesignProgressDO latestProgress = getLatestProgress(processDesignIds);
|
||||
if (ObjectUtil.isNotEmpty(latestProgress) &&
|
||||
if (
|
||||
ObjectUtil.isNotEmpty(latestTwoDimPlan) &&
|
||||
now.isAfter(latestTwoDimPlan.getTwoDimDate())) {
|
||||
subDO.setDesignTaskFlag("1");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取最新的工艺设计进度
|
||||
*/
|
||||
|
||||
@ -8,6 +8,7 @@ import com.chanko.yunxi.mes.module.heli.controller.admin.plansubdetail.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plansubdetail.PlanSubDetailDO;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO;
|
||||
|
||||
/**
|
||||
* 生产计划子项目设计时间明细 Service 接口
|
||||
@ -70,4 +71,14 @@ public interface PlanSubDetailService {
|
||||
CommonResult overlap(PlanSubDetailSaveReqVO updateReqVO);
|
||||
|
||||
List<PlanSubDetailDO> getList(PlanSubDetailPageReqVO pageReqVO);
|
||||
|
||||
List<PlanSubDetailDO> getList1(PlanSubDetailPageReqVO pageReqVO);
|
||||
|
||||
List<TaskDispatchDetailDO> getList2(PlanSubDetailPageReqVO pageReqVO);
|
||||
|
||||
List<TaskDispatchDetailDO> getList3(PlanSubDetailPageReqVO pageReqVO);
|
||||
|
||||
List<TaskDispatchDetailDO> getList4(PlanSubDetailPageReqVO pageReqVO);
|
||||
|
||||
List<TaskDispatchDetailDO> getList5(PlanSubDetailPageReqVO pageReqVO);
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1054,7 +1054,7 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
||||
// bdgzsomthingMapper.updateById(bdgzsomthingDO);
|
||||
// }
|
||||
// }
|
||||
if (taskDispatchDO.getDispatchType().equals("PRODUCTION") && taskDispatchDetailDO.getTestYn().equals("N")){
|
||||
if (taskDispatchDO.getDispatchType().equals("PRODUCTION") && taskDispatchDetailDO.getTestYn().equals("N")&&taskDispatchDetailDO.getCheckYn().equals("0")){
|
||||
pgMasterService.insertPgList(planDO.getId(),planDO.getProjectId(),taskDispatchDO.getBomDetailId(),taskDispatchDetailDO);
|
||||
}
|
||||
// if (taskDispatchDO.getDispatchType().equals("PRODUCTION") && isBomDetailProductionOver){
|
||||
|
||||
@ -44,10 +44,10 @@ public class TaskReportServiceImpl implements TaskReportService {
|
||||
public CommonResult<Boolean> updateTaskReport(TaskReportSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateTaskReportExists(updateReqVO.getId());
|
||||
TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(updateReqVO.getDispatchDetailId());
|
||||
if (ObjectUtil.isNotEmpty(taskDispatchDetailDO)){
|
||||
if (taskDispatchDetailDO.getProcedureStatus() == 2) return CommonResult.error(400,"该派工单已报工完成,不允许修改!");
|
||||
}
|
||||
// TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(updateReqVO.getDispatchDetailId());
|
||||
// if (ObjectUtil.isNotEmpty(taskDispatchDetailDO)){
|
||||
// if (taskDispatchDetailDO.getProcedureStatus() == 2) return CommonResult.error(400,"该派工单已报工完成,不允许修改!");
|
||||
// }
|
||||
// 更新
|
||||
TaskReportDO updateObj = BeanUtils.toBean(updateReqVO, TaskReportDO.class);
|
||||
taskReportMapper.updateById(updateObj);
|
||||
|
||||
@ -109,17 +109,17 @@ public class AdminAuthServiceImpl implements AdminAuthService {
|
||||
|
||||
// 使用账号密码,进行登录
|
||||
AdminUserDO user = authenticate(reqVO.getUsername(), reqVO.getPassword());
|
||||
String openId = getOpenid(reqVO.getCode());
|
||||
//判断如果openId为空时需要获取并更新openId
|
||||
if(user.getOpenId()==null){
|
||||
user.setOpenId(openId);
|
||||
//更新openID
|
||||
userMapper.updateById(user);
|
||||
}else if(!user.getOpenId().equals(openId)){
|
||||
user.setOpenId(openId);
|
||||
//更新openID
|
||||
userMapper.updateById(user);
|
||||
}
|
||||
// String openId = getOpenid(reqVO.getCode());
|
||||
// //判断如果openId为空时需要获取并更新openId
|
||||
// if(user.getOpenId()==null){
|
||||
// user.setOpenId(openId);
|
||||
// //更新openID
|
||||
// userMapper.updateById(user);
|
||||
// }else if(!user.getOpenId().equals(openId)){
|
||||
// user.setOpenId(openId);
|
||||
// //更新openID
|
||||
// userMapper.updateById(user);
|
||||
// }
|
||||
|
||||
|
||||
// 如果 socialType 非空,说明需要绑定社交用户
|
||||
|
||||
@ -82,3 +82,18 @@ export const overlap = async (data: PlanSubDetailVO) => {
|
||||
export const getList = async (params) => {
|
||||
return await request.get({ url: `/heli/plan-sub-detail/getList`, params })
|
||||
}
|
||||
export const getList1 = async (params) => {
|
||||
return await request.get({ url: `/heli/plan-sub-detail/getList1`, params })
|
||||
}
|
||||
export const getList2 = async (params) => {
|
||||
return await request.get({ url: `/heli/plan-sub-detail/getList2`, params })
|
||||
}
|
||||
export const getList3 = async (params) => {
|
||||
return await request.get({ url: `/heli/plan-sub-detail/getList3`, params })
|
||||
}
|
||||
export const getList4 = async (params) => {
|
||||
return await request.get({ url: `/heli/plan-sub-detail/getList4`, params })
|
||||
}
|
||||
export const getList5 = async (params) => {
|
||||
return await request.get({ url: `/heli/plan-sub-detail/getList5`, params })
|
||||
}
|
||||
|
||||
@ -7,20 +7,25 @@
|
||||
<template #header>
|
||||
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">子项目信息</span>
|
||||
<label style="display: inline-flex; align-items: center; margin-left: 40px;">
|
||||
<el-checkbox class="large-checkbox" v-model="formData.flag" style="order: 1;" />
|
||||
<el-checkbox class="large-checkbox" v-model="formData.flag" style="order: 1;" @change="change"/>
|
||||
<span style="order: 2; margin-left: 10px;">不显示已完成</span>
|
||||
</label>
|
||||
</template>
|
||||
</el-card>
|
||||
<ContentWrap>
|
||||
<el-table v-loading="loading" :data="list" :show-overflow-tooltip="true" class="hl-table" height="300" border :cell-class-name="cellClassName">
|
||||
<el-table v-loading="loading" :data="list" :show-overflow-tooltip="true" class="hl-table" height="250" border @row-click="rowClick" :cell-class-name="cellClassName5">
|
||||
<el-table-column type="index" width="100" fixed label="序号" align="center" />
|
||||
<el-table-column label="子项目名称" align="center" prop="projectSubName" />
|
||||
<el-table-column label="任务" align="center" prop="designTask" />
|
||||
<el-table-column label="预计开始时间" align="center" prop="outsourcingTasks" :formatter="dateFormatter2" />
|
||||
<el-table-column label="预计结束时间" align="center" prop="processingTask" :formatter="dateFormatter2" />
|
||||
<el-table-column label="工单状态" align="center" prop="processInspection" />
|
||||
<el-table-column label="生产进度" align="center" prop="assemblyTask" />
|
||||
<el-table-column label="任务" align="center" prop="subType" />
|
||||
<el-table-column label="预计开始时间" align="center" prop="startTwoDimDate" :formatter="dateFormatter2" />
|
||||
<el-table-column label="预计结束时间" align="center" prop="twoDimDate" :formatter="dateFormatter2" />
|
||||
<el-table-column label="工单状态" align="center" prop="status" />
|
||||
<el-table-column label="生产进度" align="center" prop="productionSchedule" >
|
||||
<template #default="scope">
|
||||
<el-progress :percentage="scope.row.productionSchedule" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
</ContentWrap>
|
||||
|
||||
@ -31,18 +36,85 @@
|
||||
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">工单信息</span>
|
||||
</template>
|
||||
</el-card>
|
||||
<ContentWrap v-if="type=='设计'">
|
||||
<el-table v-loading="loading" :data="list" :show-overflow-tooltip="true" class="hl-table" height="500" border :cell-class-name="cellClassName">
|
||||
<ContentWrap v-if="type=='sheji'">
|
||||
<el-table :data="list1" :show-overflow-tooltip="true" class="hl-table" height="500" border :cell-class-name="cellClassName">
|
||||
<el-table-column type="index" width="100" fixed label="序号" align="center" />
|
||||
<el-table-column label="子项目名称" align="center" prop="projectSubName" />
|
||||
<el-table-column label="任务" align="center" prop="designTask" />
|
||||
<el-table-column label="预计开始时间" align="center" prop="outsourcingTasks" />
|
||||
<el-table-column label="预计结束时间" align="center" prop="processingTask" />
|
||||
<el-table-column label="工单状态" align="center" prop="processInspection" />
|
||||
<el-table-column label="生产进度" align="center" prop="assemblyTask" />
|
||||
<el-table-column label="子项目名称" align="center" prop="name" />
|
||||
<el-table-column label="工艺设计" align="center" prop="type" />
|
||||
<el-table-column label="预计开始时间" align="center" prop="startTwoDimDate" :formatter="dateFormatter2"/>
|
||||
<el-table-column label="预计结束时间" align="center" prop="twoDimDate" :formatter="dateFormatter2"/>
|
||||
<el-table-column label="预计工时(H)" align="center" prop="designNum" />
|
||||
<el-table-column label="实际工时(H)" align="center" prop="workHours" />
|
||||
<el-table-column label="负责人" align="center" prop="twoDimOwnerName" />
|
||||
<el-table-column label="最后报工时间" align="center" prop="time" :formatter="dateFormatter2"/>
|
||||
<el-table-column label="完工" align="center" prop="percentage" />
|
||||
<el-table-column label="任务状态" align="center" prop="status" />
|
||||
</el-table>
|
||||
</ContentWrap>
|
||||
<ContentWrap v-if="type=='waixei'">
|
||||
<el-table :data="list2" :show-overflow-tooltip="true" class="hl-table" height="500" border :cell-class-name="cellClassName1">
|
||||
<el-table-column type="index" width="100" fixed label="序号" align="center" />
|
||||
<el-table-column label="子项目名称" align="center" prop="projectSubName" />
|
||||
<el-table-column label="零件名称" align="center" prop="materialName" />
|
||||
<el-table-column label="工序" align="center" prop="procedureName" />
|
||||
<el-table-column label="要求完成日期" align="center" prop="endTime" :formatter="dateFormatter2"/>
|
||||
<el-table-column label="负责人" align="center" prop="ownerName" />
|
||||
<el-table-column label="收货日期" align="center" prop="receivingTime" :formatter="dateFormatter2"/>
|
||||
<el-table-column label="零件采购" align="center" prop="partsProcurement" />
|
||||
<el-table-column label="派工单状态" align="center" prop="receiving" />
|
||||
</el-table>
|
||||
</ContentWrap>
|
||||
<ContentWrap v-if="type=='jiagong'">
|
||||
<el-table :data="list3" :show-overflow-tooltip="true" class="hl-table" height="500" border :cell-class-name="cellClassName2">
|
||||
<el-table-column type="index" width="100" fixed label="序号" align="center" />
|
||||
<el-table-column label="子项目名称" align="center" prop="projectSubName" />
|
||||
<el-table-column label="零件名称" align="center" prop="materialName" />
|
||||
<el-table-column label="工序" align="center" prop="procedureName" />
|
||||
<el-table-column label="预计开始时间" align="center" prop="startTime" :formatter="dateFormatter2"/>
|
||||
<el-table-column label="预计结束时间" align="center" prop="endTime" :formatter="dateFormatter2"/>
|
||||
<el-table-column label="负责人" align="center" prop="ownerName" />
|
||||
<el-table-column label="预计工时(天)" align="center" prop="workTime" />
|
||||
<el-table-column label="实际工时(天)" align="center" prop="workingHour" />
|
||||
<el-table-column label="报工进度(%)" align="center" prop="percentage" />
|
||||
<el-table-column label="派工单状态" align="center" prop="report" />
|
||||
<el-table-column label="是否过程检" align="center" prop="checkYn" >
|
||||
<template #default="scope">
|
||||
{{scope.row.checkYn=='0'?"是":"否"}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</ContentWrap>
|
||||
<ContentWrap v-if="type=='guochengjian'">
|
||||
<el-table :data="list4" :show-overflow-tooltip="true" class="hl-table" height="500" border :cell-class-name="cellClassName3">
|
||||
<el-table-column type="index" width="100" fixed label="序号" align="center" />
|
||||
<el-table-column label="子项目名称" align="center" prop="projectSubName" />
|
||||
<el-table-column label="零件名称" align="center" prop="materialName" />
|
||||
<el-table-column label="工序" align="center" prop="procedureName" />
|
||||
<el-table-column label="是否过程检" align="center" prop="checkYn" >
|
||||
<template #default="scope">
|
||||
{{scope.row.checkYn=='0'?"是":"否"}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="过程检状态" align="center" prop="report" />
|
||||
<el-table-column label="负责人" align="center" prop="ownerName" />
|
||||
|
||||
</el-table>
|
||||
</ContentWrap>
|
||||
<ContentWrap v-if="type=='zhuangpei'">
|
||||
<el-table :data="list5" :show-overflow-tooltip="true" class="hl-table" height="500" border :cell-class-name="cellClassName4">
|
||||
<el-table-column type="index" width="100" fixed label="序号" align="center" />
|
||||
<el-table-column label="子项目名称" align="center" prop="projectSubName" />
|
||||
<el-table-column label="工序" align="center" prop="procedureName" />
|
||||
<el-table-column label="预计开始时间" align="center" prop="startTime" :formatter="dateFormatter2"/>
|
||||
<el-table-column label="预计结束时间" align="center" prop="endTime" :formatter="dateFormatter2"/>
|
||||
<el-table-column label="负责人" align="center" prop="ownerName" />
|
||||
<el-table-column label="预计工时(天)" align="center" prop="workTime" />
|
||||
<el-table-column label="实际工时(天)" align="center" prop="workingHour" />
|
||||
<el-table-column label="报工进度(%)" align="center" prop="percentage" />
|
||||
<el-table-column label="派工单状态" align="center" prop="report" />
|
||||
<el-table-column label="成品检" align="center" prop="finishedProduct" />
|
||||
</el-table>
|
||||
</ContentWrap>
|
||||
<div class="text-center hl-footer">
|
||||
<el-button @click="() => router.back()" size="large">取 消</el-button>
|
||||
</div>
|
||||
@ -62,8 +134,13 @@ const { query } = useRoute()
|
||||
const router = useRouter()
|
||||
const reload = inject('reload')
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||
const list = ref([]) // 设计数据
|
||||
const type = ref('sheji')
|
||||
const list = ref([])
|
||||
const list1 = ref([]) // 设计数据
|
||||
const list2 = ref([]) // 外协数据
|
||||
const list3 = ref([]) // 加工数据
|
||||
const list4 = ref([]) // 过程检数据
|
||||
const list5 = ref([]) // 装配任务数据
|
||||
const type = ref('')
|
||||
const formData = reactive({
|
||||
id:undefined,
|
||||
projectSubId:undefined,
|
||||
@ -73,13 +150,97 @@ const formData = reactive({
|
||||
onMounted(async () => {
|
||||
console.log(query)
|
||||
formData.projectSubId = query.projectSubId
|
||||
})
|
||||
getList()
|
||||
const queryParams = reactive({
|
||||
projectSubId:formData.projectSubId
|
||||
})
|
||||
if (list.value){
|
||||
const hasDesignTask = list.value.some(item => item.subType === "设计任务");
|
||||
if (hasDesignTask){
|
||||
list1.value= await PlansubdetailApi.getList1(queryParams)
|
||||
type.value='sheji'
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
const change = (val) => {
|
||||
getList()
|
||||
}
|
||||
/** 处理某一行的点击 */
|
||||
const rowClick = async (row) => {
|
||||
console.log(row);
|
||||
const queryParams = reactive({
|
||||
projectSubId:formData.projectSubId,
|
||||
})
|
||||
type.value=''
|
||||
if (row.subType=='设计任务'){
|
||||
list1.value= await PlansubdetailApi.getList1(queryParams)
|
||||
if (list1.value.length>0){
|
||||
type.value='sheji'
|
||||
}
|
||||
}else if (row.subType=='外协任务'){
|
||||
list2.value= await PlansubdetailApi.getList2(queryParams)
|
||||
if (list2.value.length>0){
|
||||
type.value='waixei'
|
||||
}
|
||||
}else if (row.subType=='加工任务'){
|
||||
list3.value= await PlansubdetailApi.getList3(queryParams)
|
||||
if (list3.value.length>0){
|
||||
type.value='jiagong'
|
||||
}
|
||||
}else if (row.subType=='过程检任务'){
|
||||
list4.value= await PlansubdetailApi.getList4(queryParams)
|
||||
if (list4.value.length>0){
|
||||
type.value='guochengjian'
|
||||
}
|
||||
}else{
|
||||
list5.value= await PlansubdetailApi.getList5(queryParams)
|
||||
if (list5.value.length>0){
|
||||
type.value='zhuangpei'
|
||||
}
|
||||
}
|
||||
}
|
||||
const cellClassName = ({ row,column }) => {
|
||||
if (column.label === '任务状态' && row.statusFlag) {
|
||||
return row.statusFlag === '1' ? 'warning-row1' : row.statusFlag === '0' ?'warning-row2':"";
|
||||
}
|
||||
|
||||
}
|
||||
const cellClassName1 = ({ row,column }) => {
|
||||
if (column.label === '派工单状态' && row.receivingFlag) {
|
||||
return row.receivingFlag === '1' ? 'warning-row1' :"";
|
||||
}
|
||||
}
|
||||
const cellClassName2 = ({ row,column }) => {
|
||||
if (column.label === '派工单状态' && row.reportFlag) {
|
||||
return row.reportFlag === '1' ? 'warning-row1' :"";
|
||||
}
|
||||
}
|
||||
const cellClassName3 = ({ row,column }) => {
|
||||
if (column.label === '过程检状态' && row.reportFlag) {
|
||||
return row.reportFlag === '1' ? 'warning-row1' :"";
|
||||
}
|
||||
}
|
||||
const cellClassName4 = ({ row,column }) => {
|
||||
if (column.label === '派工单状态' && row.reportFlag) {
|
||||
return row.reportFlag === '1' ? 'warning-row1' :"";
|
||||
}
|
||||
}
|
||||
const cellClassName5 = ({ row,column }) => {
|
||||
if (column.label === '工单状态' && row.statusFlag) {
|
||||
return row.statusFlag === '1' ? 'warning-row1' : row.statusFlag === '0' ?'warning-row2':"";
|
||||
}
|
||||
|
||||
}
|
||||
/** 查询设计列表 */
|
||||
const getList = async () => {
|
||||
loading.value = true
|
||||
try {
|
||||
const data = await PlansubdetailApi.getPartProcess(formData)
|
||||
const queryParams = reactive({
|
||||
projectSubId:formData.projectSubId,
|
||||
flag:formData.flag==true?"0":"1"
|
||||
})
|
||||
const data = await PlansubdetailApi.getList(queryParams)
|
||||
list.value = data
|
||||
} finally {
|
||||
loading.value = false
|
||||
@ -94,6 +255,12 @@ const getList = async () => {
|
||||
border: solid 1px orange;
|
||||
outline: solid 1px orange;
|
||||
}
|
||||
.warning-row1 {
|
||||
background-color:#F08080 !important;
|
||||
}
|
||||
.warning-row2 {
|
||||
background-color: #1E90FF !important; /* 道奇蓝 */
|
||||
}
|
||||
.large-checkbox {
|
||||
transform: scale(1.5); /* 方法1:使用scale放大 */
|
||||
/* 或者 */
|
||||
|
||||
@ -73,9 +73,10 @@
|
||||
placeholder="工艺结束日期" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="工艺进度" prop="processProgress">
|
||||
<el-input class="!w-265px" placeholder="工艺进度" v-model="formData.processProgress" disabled />
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="工艺进度" prop="processProgress" >
|
||||
<el-input class=" !w-265px" :class="{ 'red-background': formData.processFlag == '1' }" placeholder="工艺进度" v-model="formData.processProgress" disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -155,11 +156,16 @@ const formData = ref({
|
||||
projectEndTime:undefined,
|
||||
projectProgress:undefined,
|
||||
craftEndDate:undefined,
|
||||
processProgress:undefined
|
||||
processProgress:undefined,
|
||||
processFlag:undefined
|
||||
})
|
||||
const queryFormRef = ref() // 搜索的表单
|
||||
/** 查询列表 */
|
||||
const getList = async () => {
|
||||
if ((queryParams.projectCode==null||queryParams.projectCode=='')&&(queryParams.projectSubName==null||queryParams.projectSubName=='')&&(queryParams.projectName==null ||queryParams.projectName=='')) {
|
||||
message.error("必须输入查询条件查询")
|
||||
return
|
||||
}
|
||||
loading.value = true
|
||||
try {
|
||||
const data = await PlanApi.getPartProcess(queryParams)
|
||||
@ -173,22 +179,19 @@ const getList = async () => {
|
||||
|
||||
const cellClassName = ({ row,column }) => {
|
||||
if (column.label === '设计任务' && row.designTaskFlag) {
|
||||
return row.designTaskFlag === '1' ? 'warning-row1' : 'warning-row2';
|
||||
return row.designTaskFlag === '1' ? 'warning-row1' :row.designTaskFlag === '0' ? 'warning-row2':"";
|
||||
}
|
||||
if (column.label === '外协任务' && row.outsourcingTasksFlag) {
|
||||
return row.outsourcingTasksFlag === '1' ? 'warning-row1' : 'warning-row2';
|
||||
return row.outsourcingTasksFlag === '1' ? 'warning-row1' :row.outsourcingTasksFlag === '0' ? 'warning-row2':"";
|
||||
}
|
||||
if (column.label === '加工任务' && row.processingTaskFlag) {
|
||||
return row.processingTaskFlag === '1' ? 'warning-row1' : 'warning-row2';
|
||||
return row.processingTaskFlag === '1' ? 'warning-row1' : row.processingTaskFlag === '0' ?'warning-row2':"";
|
||||
}
|
||||
if (column.label === '过程检任务' && row.processInspectionFlag) {
|
||||
return row.processInspectionFlag === '1' ? 'warning-row1' : 'warning-row2';
|
||||
return row.processInspectionFlag === '1' ? 'warning-row1' : row.processInspectionFlag === '0' ? 'warning-row2':"";
|
||||
}
|
||||
if (column.label === '装配任务' && row.assemblyTaskFlag) {
|
||||
console.log(row.assemblyTaskFlag)
|
||||
console.log(row.assemblyTaskFlag === '1')
|
||||
console.log(row.assemblyTaskFlag === '1' ? 'warning-row1' : 'warning-row2')
|
||||
return row.assemblyTaskFlag === '1' ? 'warning-row1' : 'warning-row2';
|
||||
return row.assemblyTaskFlag === '1' ? 'warning-row1' : row.assemblyTaskFlag === '0' ?'warning-row2':"";
|
||||
}
|
||||
// return '';
|
||||
}
|
||||
@ -196,7 +199,7 @@ const cellClassName = ({ row,column }) => {
|
||||
|
||||
const handleQuery = () => {
|
||||
queryParams.pageNo = 1
|
||||
getList()
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
@ -236,18 +239,16 @@ window.addEventListener('beforeunload', () => {
|
||||
routeParamsCache.set(routeValue.value, plainParams);
|
||||
});
|
||||
</script>
|
||||
<style >
|
||||
.el-dropdown-link {
|
||||
cursor: pointer;
|
||||
margin: 5px;
|
||||
color: var(--el-color-primary);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.warning-row1 {
|
||||
<style scoped>
|
||||
|
||||
:deep(.warning-row1) {
|
||||
background-color:#F08080 !important;
|
||||
}
|
||||
.warning-row2 {
|
||||
:deep(.warning-row2) {
|
||||
background-color: #1E90FF !important; /* 道奇蓝 */
|
||||
}
|
||||
|
||||
.red-background :deep(.el-input__wrapper) {
|
||||
background-color: #F08080 !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user