问题修改
This commit is contained in:
parent
0d9eba2cee
commit
cb48e3d994
@ -1,5 +1,8 @@
|
|||||||
package com.chanko.yunxi.mes.module.heli.controller.admin.materialplan.vo;
|
package com.chanko.yunxi.mes.module.heli.controller.admin.materialplan.vo;
|
||||||
|
|
||||||
|
import com.chanko.yunxi.mes.module.heli.controller.admin.materialplandetail.vo.MaterialPlanDetailRespVO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplandetail.MaterialPlanDetailDO;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -84,5 +87,7 @@ public class MaterialPlanRespVO {
|
|||||||
@Schema(description = "制单日期", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "制单日期", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@ExcelProperty("制单日期")
|
@ExcelProperty("制单日期")
|
||||||
private LocalDateTime matPlanDate;
|
private LocalDateTime matPlanDate;
|
||||||
|
@Schema(description = "需求计划明细")
|
||||||
|
private List<MaterialPlanBoomDO> detailList;
|
||||||
|
|
||||||
}
|
}
|
@ -102,7 +102,7 @@ public class ProcessDesignRespVO {
|
|||||||
@Schema(description = "延期原因", example = "28809")
|
@Schema(description = "延期原因", example = "28809")
|
||||||
private String delayReason;
|
private String delayReason;
|
||||||
@Schema(description = "毛坯最新进度")
|
@Schema(description = "毛坯最新进度")
|
||||||
private BigDecimal progressBlank;
|
private String progressBlank;
|
||||||
|
|
||||||
@Schema(description = "2D结束日期")
|
@Schema(description = "2D结束日期")
|
||||||
private LocalDateTime twoDimDate;
|
private LocalDateTime twoDimDate;
|
||||||
@ -112,7 +112,7 @@ public class ProcessDesignRespVO {
|
|||||||
private String twoDimOwnerName;
|
private String twoDimOwnerName;
|
||||||
|
|
||||||
@Schema(description = "2D最新进度")
|
@Schema(description = "2D最新进度")
|
||||||
private BigDecimal progress2d;
|
private String progress2d;
|
||||||
|
|
||||||
@Schema(description = "3D结束日期")
|
@Schema(description = "3D结束日期")
|
||||||
private LocalDateTime threeDimDate;
|
private LocalDateTime threeDimDate;
|
||||||
@ -122,7 +122,7 @@ public class ProcessDesignRespVO {
|
|||||||
private String threeDimOwnerName;
|
private String threeDimOwnerName;
|
||||||
|
|
||||||
@Schema(description = "3D最新进度")
|
@Schema(description = "3D最新进度")
|
||||||
private BigDecimal progress3d;
|
private String progress3d;
|
||||||
|
|
||||||
@Schema(description = "子项目名称")
|
@Schema(description = "子项目名称")
|
||||||
private String projectSubName;
|
private String projectSubName;
|
||||||
|
@ -109,5 +109,7 @@ public class TaskDispatchDetailTotalVO {
|
|||||||
@Schema(description = "派工类型 生产任务|装配任务 PRODUCTION|ASSEMBLE")
|
@Schema(description = "派工类型 生产任务|装配任务 PRODUCTION|ASSEMBLE")
|
||||||
private String dispatchTypes;
|
private String dispatchTypes;
|
||||||
|
|
||||||
|
@Schema(description = "报工状态")
|
||||||
|
private Integer reportStatus;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -62,5 +62,7 @@ public class TaskDispatchSaveReqVO {
|
|||||||
|
|
||||||
@Schema(description = "操作意见")
|
@Schema(description = "操作意见")
|
||||||
private String activeOpinion;
|
private String activeOpinion;
|
||||||
|
@Schema(description = "报工状态")
|
||||||
|
private Integer reportStatus;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplan;
|
package com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplan;
|
||||||
|
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@ -111,4 +113,6 @@ public class MaterialPlanDO extends BaseDO {
|
|||||||
* 制单日期
|
* 制单日期
|
||||||
*/
|
*/
|
||||||
private Date matPlanDate;
|
private Date matPlanDate;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private List<MaterialPlanBoomDO> detailList;
|
||||||
}
|
}
|
@ -60,6 +60,7 @@ public class ProcessDesignDO extends BaseDO {
|
|||||||
private Date delayTime;
|
private Date delayTime;
|
||||||
|
|
||||||
private String delayReason;
|
private String delayReason;
|
||||||
|
@TableField("is_over_process")
|
||||||
private Integer isOverProcess;
|
private Integer isOverProcess;
|
||||||
/**
|
/**
|
||||||
* 子项目id
|
* 子项目id
|
||||||
@ -113,7 +114,7 @@ public class ProcessDesignDO extends BaseDO {
|
|||||||
private String blankOwnerName;
|
private String blankOwnerName;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private BigDecimal progressBlank;
|
private String progressBlank;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private LocalDateTime twoDimDate;
|
private LocalDateTime twoDimDate;
|
||||||
@ -123,7 +124,7 @@ public class ProcessDesignDO extends BaseDO {
|
|||||||
private String twoDimOwnerName;
|
private String twoDimOwnerName;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private BigDecimal progress2d;
|
private String progress2d;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private LocalDateTime threeDimDate;
|
private LocalDateTime threeDimDate;
|
||||||
@ -133,7 +134,7 @@ public class ProcessDesignDO extends BaseDO {
|
|||||||
private String threeDimOwnerName;
|
private String threeDimOwnerName;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private BigDecimal progress3d;
|
private String progress3d;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private boolean isOver;
|
private boolean isOver;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
|
@ -227,4 +227,5 @@ public class TaskDispatchDetailDO extends BaseDO {
|
|||||||
private BigDecimal matWeight;
|
private BigDecimal matWeight;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String nickname;
|
private String nickname;
|
||||||
|
private Integer reportStatus;
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ public interface ProcessDesignMapper extends BaseMapperX<ProcessDesignDO> {
|
|||||||
.select("b.blank_date as blankDate","b.start_blank_date as startBlankDate", "b.two_dim_date as twoDimDate","b.start_two_dim_date as startTwoDimDate", "b.three_dim_date as threeDimDate", "b.start_three_dim_date as startThreeDimDate")
|
.select("b.blank_date as blankDate","b.start_blank_date as startBlankDate", "b.two_dim_date as twoDimDate","b.start_two_dim_date as startTwoDimDate", "b.three_dim_date as threeDimDate", "b.start_three_dim_date as startThreeDimDate")
|
||||||
.select("u3.nickname as blankOwnerName", "u4.nickname as twoDimOwnerName", "u5.nickname as threeDimOwnerName")
|
.select("u3.nickname as blankOwnerName", "u4.nickname as twoDimOwnerName", "u5.nickname as threeDimOwnerName")
|
||||||
.select("c.name as projectSubName", "b.project_sub_code as projectSubCode")
|
.select("c.name as projectSubName", "b.project_sub_code as projectSubCode")
|
||||||
.select("z.progress,z.blueprint_link as blueprintLink ")
|
.select("z.progress,z.blueprint_link as blueprintLink")
|
||||||
.leftJoin(PlanDO.class, "a", PlanDO::getId, ProcessDesignDO::getPlanId)
|
.leftJoin(PlanDO.class, "a", PlanDO::getId, ProcessDesignDO::getPlanId)
|
||||||
.leftJoin("project_plan_sub b on b.project_plan_id = t.plan_id and b.project_sub_id = t.project_sub_id")
|
.leftJoin("project_plan_sub b on b.project_plan_id = t.plan_id and b.project_sub_id = t.project_sub_id")
|
||||||
.leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, ProcessDesignDO::getProjectSubId)
|
.leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, ProcessDesignDO::getProjectSubId)
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.chanko.yunxi.mes.module.heli.service.bgmasterline;
|
package com.chanko.yunxi.mes.module.heli.service.bgmasterline;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.pgmaster.PgMasterDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.pgmaster.PgMasterDO;
|
||||||
@ -86,6 +87,19 @@ public class BgMasterLineServiceImpl implements BgMasterLineService {
|
|||||||
wrapper.eq(TaskDispatchDetailDO::getId,pgMasterLineDO.getDispatchDetailId());
|
wrapper.eq(TaskDispatchDetailDO::getId,pgMasterLineDO.getDispatchDetailId());
|
||||||
wrapper.set(TaskDispatchDetailDO::getTestYn,"Y");
|
wrapper.set(TaskDispatchDetailDO::getTestYn,"Y");
|
||||||
taskDispatchDetailMapper.update(wrapper);
|
taskDispatchDetailMapper.update(wrapper);
|
||||||
|
TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(pgMasterLineDO.getDispatchDetailId());
|
||||||
|
if (ObjectUtil.isNotEmpty(taskDispatchDetailDO)){
|
||||||
|
LambdaQueryWrapper<TaskDispatchDetailDO> wrapper1 = new LambdaQueryWrapper<>();
|
||||||
|
wrapper1.eq(TaskDispatchDetailDO::getDispatchId, taskDispatchDetailDO.getDispatchId());
|
||||||
|
wrapper1.eq(TaskDispatchDetailDO::getSort, taskDispatchDetailDO.getSort()+1);
|
||||||
|
wrapper1.eq(TaskDispatchDetailDO::getDeleted, 0);
|
||||||
|
TaskDispatchDetailDO nextTaskDispatchDetailDO = taskDispatchDetailMapper.selectOne(wrapper1);
|
||||||
|
if (ObjectUtil.isNotEmpty(nextTaskDispatchDetailDO)){
|
||||||
|
taskDispatchDetailDO.setReportStatus(1);
|
||||||
|
taskDispatchDetailMapper.updateById(taskDispatchDetailDO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
//不相等时只更新当前报工状态
|
//不相等时只更新当前报工状态
|
||||||
pgMasterLineDO.setActive("END");
|
pgMasterLineDO.setActive("END");
|
||||||
|
@ -337,7 +337,18 @@ public class MaterialPlanServiceImpl implements MaterialPlanService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<MaterialPlanDO> getBeiKuPage(MaterialPlanPageReqVO pageReqVO) {
|
public PageResult<MaterialPlanDO> getBeiKuPage(MaterialPlanPageReqVO pageReqVO) {
|
||||||
return materialPlanMapper.getBeiKuPage(pageReqVO);
|
PageResult<MaterialPlanDO> beiKuPage = materialPlanMapper.getBeiKuPage(pageReqVO);
|
||||||
|
List<MaterialPlanDO> list = beiKuPage.getList();
|
||||||
|
list.forEach(item ->
|
||||||
|
{
|
||||||
|
LambdaQueryWrapper<MaterialPlanBoomDO> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(MaterialPlanBoomDO::getProjectMaterialPlanId, item.getId());
|
||||||
|
queryWrapper.eq(MaterialPlanBoomDO::getDeleted,0);
|
||||||
|
item.setDetailList(materialPlanBoomMapper.selectList(queryWrapper));
|
||||||
|
}
|
||||||
|
);
|
||||||
|
beiKuPage.setList( list);
|
||||||
|
return beiKuPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package com.chanko.yunxi.mes.module.heli.service.pgmaster;
|
package com.chanko.yunxi.mes.module.heli.service.pgmaster;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskDispatchDetailPageReqVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskDispatchDetailPageReqVO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.bgmasterline.BgMasterLineDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.bgmasterline.BgMasterLineDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO;
|
||||||
@ -10,6 +12,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.zjpgmaster.ZjPgMasterLine
|
|||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.bgmasterline.BgMasterLineMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.bgmasterline.BgMasterLineMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.pgmaster.PgMasterLineMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.pgmaster.PgMasterLineMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomMapper;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetailMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.enums.TaskDispatchTypeEnum;
|
import com.chanko.yunxi.mes.module.heli.enums.TaskDispatchTypeEnum;
|
||||||
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
|
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -54,6 +57,8 @@ public class PgMasterServiceImpl implements PgMasterService {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private SerialNumberService serialNumberService;
|
private SerialNumberService serialNumberService;
|
||||||
|
@Resource
|
||||||
|
private TaskDispatchDetailMapper taskDispatchDetailMapper;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -173,6 +178,18 @@ public class PgMasterServiceImpl implements PgMasterService {
|
|||||||
PgMasterLineDO pgMasterLineDO = pgMasterLineMapper.selectById(id);
|
PgMasterLineDO pgMasterLineDO = pgMasterLineMapper.selectById(id);
|
||||||
pgMasterLineDO.setDispatchStatus(3);
|
pgMasterLineDO.setDispatchStatus(3);
|
||||||
int a = pgMasterLineMapper.updateById(pgMasterLineDO);
|
int a = pgMasterLineMapper.updateById(pgMasterLineDO);
|
||||||
|
TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(pgMasterLineDO.getDispatchDetailId());
|
||||||
|
if (ObjectUtil.isNotEmpty(taskDispatchDetailDO)){
|
||||||
|
LambdaQueryWrapper<TaskDispatchDetailDO> wrapper1 = new LambdaQueryWrapper<>();
|
||||||
|
wrapper1.eq(TaskDispatchDetailDO::getDispatchId, taskDispatchDetailDO.getDispatchId());
|
||||||
|
wrapper1.eq(TaskDispatchDetailDO::getSort, taskDispatchDetailDO.getSort()+1);
|
||||||
|
wrapper1.eq(TaskDispatchDetailDO::getDeleted, 0);
|
||||||
|
TaskDispatchDetailDO nextTaskDispatchDetailDO = taskDispatchDetailMapper.selectOne(wrapper1);
|
||||||
|
if (ObjectUtil.isNotEmpty(nextTaskDispatchDetailDO)){
|
||||||
|
taskDispatchDetailDO.setReportStatus(1);
|
||||||
|
taskDispatchDetailMapper.updateById(taskDispatchDetailDO);
|
||||||
|
}
|
||||||
|
}
|
||||||
// 返回
|
// 返回
|
||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
@ -271,18 +271,52 @@ public class ProcessDesignServiceImpl implements ProcessDesignService {
|
|||||||
if(ProcessDesignTypeEnum.BLUEPRINT_WORKBLANK.name().equals(processDesign.getProcessDesignType())){
|
if(ProcessDesignTypeEnum.BLUEPRINT_WORKBLANK.name().equals(processDesign.getProcessDesignType())){
|
||||||
processDesignDO.setBlankDate(processDesign.getBlankDate())
|
processDesignDO.setBlankDate(processDesign.getBlankDate())
|
||||||
.setStartBlankDate(processDesign.getStartBlankDate())
|
.setStartBlankDate(processDesign.getStartBlankDate())
|
||||||
.setBlankOwnerName(processDesign.getBlankOwnerName())
|
.setBlankOwnerName(processDesign.getBlankOwnerName());
|
||||||
.setProgressBlank(processDesign.getProgress());
|
LambdaQueryWrapper<ProcessDesignProgressDO> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(ProcessDesignProgressDO::getProcessDesignId, processDesign.getId());
|
||||||
|
wrapper.eq(ProcessDesignProgressDO::getDeleted,0);
|
||||||
|
if (processDesignProgressMapper.selectCount(wrapper)==0){
|
||||||
|
processDesignDO.setProgressBlank("未开始");
|
||||||
|
}else{
|
||||||
|
if (ObjectUtil.isEmpty(processDesign.getIsOverProcess())){
|
||||||
|
processDesignDO.setProgressBlank("进行中");
|
||||||
|
}else {
|
||||||
|
processDesignDO.setProgressBlank("已完成");
|
||||||
|
}
|
||||||
|
}
|
||||||
}else if(ProcessDesignTypeEnum.BLUEPRINT_3D.name().equals(processDesign.getProcessDesignType())){
|
}else if(ProcessDesignTypeEnum.BLUEPRINT_3D.name().equals(processDesign.getProcessDesignType())){
|
||||||
processDesignDO.setThreeDimDate(processDesign.getThreeDimDate())
|
processDesignDO.setThreeDimDate(processDesign.getThreeDimDate())
|
||||||
.setStartThreeDimDate(processDesign.getStartThreeDimDate())
|
.setStartThreeDimDate(processDesign.getStartThreeDimDate())
|
||||||
.setThreeDimOwnerName(processDesign.getThreeDimOwnerName())
|
.setThreeDimOwnerName(processDesign.getThreeDimOwnerName());
|
||||||
.setProgress3d(processDesign.getProgress());
|
LambdaQueryWrapper<ProcessDesignProgressDO> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(ProcessDesignProgressDO::getProcessDesignId, processDesign.getId());
|
||||||
|
wrapper.eq(ProcessDesignProgressDO::getDeleted,0);
|
||||||
|
Long l = processDesignProgressMapper.selectCount(wrapper);
|
||||||
|
if (l==0){
|
||||||
|
processDesignDO.setProgress3d("未开始");
|
||||||
|
}else{
|
||||||
|
if (ObjectUtil.isEmpty(processDesign.getIsOverProcess())){
|
||||||
|
processDesignDO.setProgress3d("进行中");
|
||||||
|
}else{
|
||||||
|
processDesignDO.setProgress3d("已完成");
|
||||||
|
}
|
||||||
|
}
|
||||||
}else if(ProcessDesignTypeEnum.BLUEPRINT_2D.name().equals(processDesign.getProcessDesignType())){
|
}else if(ProcessDesignTypeEnum.BLUEPRINT_2D.name().equals(processDesign.getProcessDesignType())){
|
||||||
processDesignDO.setTwoDimDate(processDesign.getTwoDimDate())
|
processDesignDO.setTwoDimDate(processDesign.getTwoDimDate())
|
||||||
.setStartTwoDimDate(processDesign.getStartTwoDimDate())
|
.setStartTwoDimDate(processDesign.getStartTwoDimDate())
|
||||||
.setTwoDimOwnerName(processDesign.getTwoDimOwnerName())
|
.setTwoDimOwnerName(processDesign.getTwoDimOwnerName());
|
||||||
.setProgress2d(processDesign.getProgress());
|
LambdaQueryWrapper<ProcessDesignProgressDO> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(ProcessDesignProgressDO::getProcessDesignId, processDesign.getId());
|
||||||
|
wrapper.eq(ProcessDesignProgressDO::getDeleted,0);
|
||||||
|
if (processDesignProgressMapper.selectCount(wrapper)==0){
|
||||||
|
processDesignDO.setProgress2d("未开始");
|
||||||
|
}else{
|
||||||
|
if (ObjectUtil.isEmpty(processDesign.getIsOverProcess())){
|
||||||
|
processDesignDO.setProgress2d("进行中");
|
||||||
|
}else{
|
||||||
|
processDesignDO.setProgress2d("已完成");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -217,7 +217,11 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
|||||||
taskDispatchDetailDO.setBeforeAmount(taskDispatchDetailDO.getAmount());
|
taskDispatchDetailDO.setBeforeAmount(taskDispatchDetailDO.getAmount());
|
||||||
taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.SUBMITTED.getCode());
|
taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.SUBMITTED.getCode());
|
||||||
}
|
}
|
||||||
|
if (taskDispatchDetailDO.getSort()==1){
|
||||||
|
taskDispatchDetailDO.setReportStatus(1);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -785,6 +789,7 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
|||||||
ownerDO.setId(taskDispatchDetailOwnerDO.getId());
|
ownerDO.setId(taskDispatchDetailOwnerDO.getId());
|
||||||
ownerDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.COMPLETED.getCode());
|
ownerDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.COMPLETED.getCode());
|
||||||
taskDispatchDetailMapper.updateByOwner(ownerDO,null);
|
taskDispatchDetailMapper.updateByOwner(ownerDO,null);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//子项目装配是否完成
|
//子项目装配是否完成
|
||||||
@ -891,6 +896,18 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
|||||||
// planMapper.updateById(planDO);
|
// planMapper.updateById(planDO);
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
if (ObjectUtil.isNotEmpty(taskDispatchDetailDO.getTestYn())){
|
||||||
|
if ("1".equals(taskDispatchDetailDO.getTestYn())&&"PRODUCTION".equals(taskDispatchDO.getDispatchType())){
|
||||||
|
LambdaQueryWrapper<TaskDispatchDetailDO> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(TaskDispatchDetailDO::getDispatchId, taskDispatchDetailDO.getDispatchId());
|
||||||
|
wrapper.eq(TaskDispatchDetailDO::getSort, taskDispatchDetailDO.getSort()+1);
|
||||||
|
wrapper.eq(TaskDispatchDetailDO::getDeleted, 0);
|
||||||
|
TaskDispatchDetailDO nextTaskDispatchDetailDO = taskDispatchDetailMapper.selectOne(wrapper);
|
||||||
|
if (ObjectUtil.isNotEmpty(nextTaskDispatchDetailDO)){
|
||||||
|
taskDispatchDetailDO.setReportStatus(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
taskDispatchDetailMapper.updateById(taskDispatchDetailDO);
|
taskDispatchDetailMapper.updateById(taskDispatchDetailDO);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -97,9 +97,9 @@
|
|||||||
<el-button link type="primary" @click="operation('queren', scope.row.id)" v-if="scope.row.isPurYard==1">
|
<el-button link type="primary" @click="operation('queren', scope.row.id)" v-if="scope.row.isPurYard==1">
|
||||||
确认
|
确认
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button link type="primary" @click="operation('bucong', scope.row.id)" v-if="scope.row.isPurYard==1">
|
<!-- <el-button link type="primary" @click="operation('bucong', scope.row.id)" v-if="scope.row.isPurYard==1">-->
|
||||||
库存补充
|
<!-- 库存补充-->
|
||||||
</el-button>
|
<!-- </el-button>-->
|
||||||
<el-button link type="primary" @click="operation('caigou', scope.row.id)" v-if="scope.row.isPurYard==1">
|
<el-button link type="primary" @click="operation('caigou', scope.row.id)" v-if="scope.row.isPurYard==1">
|
||||||
采购
|
采购
|
||||||
</el-button>
|
</el-button>
|
||||||
|
@ -87,11 +87,11 @@
|
|||||||
<el-table-column fixed label="项目名称" align="center" prop="projectName" min-width="180" />
|
<el-table-column fixed label="项目名称" align="center" prop="projectName" min-width="180" />
|
||||||
<el-table-column fixed label="子项目名称" align="center" prop="projectSubName" min-width="180" />
|
<el-table-column fixed label="子项目名称" align="center" prop="projectSubName" min-width="180" />
|
||||||
<el-table-column label="毛坯负责人" align="center" prop="blankOwnerName" width="120"/>
|
<el-table-column label="毛坯负责人" align="center" prop="blankOwnerName" width="120"/>
|
||||||
<el-table-column label="毛坯最新进度" align="center" prop="progressBlank" min-width="140" >
|
<el-table-column label="毛坯最新进度" align="center" prop="progressBlank" min-width="140" />
|
||||||
<template #default="scope">
|
<!-- <template #default="scope">-->
|
||||||
{{!scope.row.progressBlank ? '' : (parseFloat(scope.row.progressBlank) + '%')}}
|
<!-- {{!scope.row.progressBlank ? '' : (parseFloat(scope.row.progressBlank) + '%')}}-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
</el-table-column>
|
<!-- </el-table-column>-->
|
||||||
<el-table-column label="毛坯计划截止日期" align="center" prop="blankDate" :formatter="dateFormatter2" min-width="180"/>
|
<el-table-column label="毛坯计划截止日期" align="center" prop="blankDate" :formatter="dateFormatter2" min-width="180"/>
|
||||||
<el-table-column label="毛坯是否延期" align="center" prop="blankDeferred" min-width="140">
|
<el-table-column label="毛坯是否延期" align="center" prop="blankDeferred" min-width="140">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
@ -100,11 +100,11 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="3D负责人" align="center" prop="threeDimOwnerName" min-width="120"/>
|
<el-table-column label="3D负责人" align="center" prop="threeDimOwnerName" min-width="120"/>
|
||||||
<el-table-column label="3D最新进度" align="center" prop="progress3d" min-width="140" >
|
<el-table-column label="3D最新进度" align="center" prop="progress3d" min-width="140" />
|
||||||
<template #default="scope">
|
<!-- <template #default="scope">-->
|
||||||
{{!scope.row.progress3d ? '' : (parseFloat(scope.row.progress3d) + '%')}}
|
<!-- {{!scope.row.progress3d ? '' : (parseFloat(scope.row.progress3d) + '%')}}-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
</el-table-column>
|
<!-- </el-table-column>-->
|
||||||
<el-table-column label="3D计划截止日期" align="center" prop="threeDimDate" :formatter="dateFormatter2" width="180"/>
|
<el-table-column label="3D计划截止日期" align="center" prop="threeDimDate" :formatter="dateFormatter2" width="180"/>
|
||||||
<el-table-column label="3D是否延期" align="center" prop="3dDeferred" min-width="140">
|
<el-table-column label="3D是否延期" align="center" prop="3dDeferred" min-width="140">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
@ -113,11 +113,11 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="2D负责人" align="center" prop="twoDimOwnerName" min-width="120"/>
|
<el-table-column label="2D负责人" align="center" prop="twoDimOwnerName" min-width="120"/>
|
||||||
<el-table-column label="2D最新进度" align="center" prop="progress2d" min-width="140" >
|
<el-table-column label="2D最新进度" align="center" prop="progress2d" min-width="140"/> >
|
||||||
<template #default="scope">
|
<!-- <template #default="scope">-->
|
||||||
{{!scope.row.progress2d ? '' : (parseFloat(scope.row.progress2d) + '%')}}
|
<!-- {{!scope.row.progress2d ? '' : (parseFloat(scope.row.progress2d) + '%')}}-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
</el-table-column>
|
<!-- </el-table-column>-->
|
||||||
<el-table-column label="2D计划截止日期" align="center" prop="twoDimDate" :formatter="dateFormatter2" min-width="180"/>
|
<el-table-column label="2D计划截止日期" align="center" prop="twoDimDate" :formatter="dateFormatter2" min-width="180"/>
|
||||||
<el-table-column label="2D是否延期" align="center" prop="2dDeferred" min-width="140">
|
<el-table-column label="2D是否延期" align="center" prop="2dDeferred" min-width="140">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
|
@ -122,7 +122,7 @@ label="单据日期" align="center" prop="createTime" :formatter="dateFormatter"
|
|||||||
<dict-tag :type="DICT_TYPE.HELI_PURCHASE_ORDER_STATUS" :value="scope.row.status" />
|
<dict-tag :type="DICT_TYPE.HELI_PURCHASE_ORDER_STATUS" :value="scope.row.status" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="right" fixed="right" min-width="220">
|
<el-table-column label="操作" align="right" fixed="right" min-width="250">
|
||||||
<template #header>
|
<template #header>
|
||||||
<span style="margin-right: 30%">操作</span>
|
<span style="margin-right: 30%">操作</span>
|
||||||
</template>
|
</template>
|
||||||
|
@ -29,8 +29,9 @@
|
|||||||
<el-card class="hl-card">
|
<el-card class="hl-card">
|
||||||
<!-- 列表 -->
|
<!-- 列表 -->
|
||||||
<ContentWrap>
|
<ContentWrap>
|
||||||
<el-table ref="multipleTable" v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"
|
<el-table ref="multipleTable" v-loading="loading" :data="list" :stripe="true"
|
||||||
class="hl-table" @selection-change="handleSelectionChange" @row-click="clickRow" selection :row-key="getRowKeys">
|
class="hl-table" @selection-change="handleSelectionChange" @row-click="clickRow" selection :row-key="getRowKeys" @cell-mouse-enter="handleMouseEnter"
|
||||||
|
@cell-mouse-leave="handleMouseLeave">
|
||||||
<el-table-column type="selection" width="40" />
|
<el-table-column type="selection" width="40" />
|
||||||
<el-table-column label="物料需求计划单号" align="center" prop="projectMaterialPlanNo" width="200" />
|
<el-table-column label="物料需求计划单号" align="center" prop="projectMaterialPlanNo" width="200" />
|
||||||
<el-table-column label="单据日期" align="center" prop="matPlanDate" :formatter="dateFormatter" min-width="120px">
|
<el-table-column label="单据日期" align="center" prop="matPlanDate" :formatter="dateFormatter" min-width="120px">
|
||||||
@ -51,6 +52,31 @@
|
|||||||
<!-- <el-table-column label="备注" align="center" prop="description" />-->
|
<!-- <el-table-column label="备注" align="center" prop="description" />-->
|
||||||
|
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 物料明细提示框 -->
|
||||||
|
<el-tooltip
|
||||||
|
ref="materialTooltip"
|
||||||
|
:disabled="!activeRow || !activeRow.materialItems || activeRow.materialItems.length === 0"
|
||||||
|
:content="materialTooltipContent"
|
||||||
|
placement="top-start"
|
||||||
|
effect="light"
|
||||||
|
popper-class="material-detail-tooltip"
|
||||||
|
:virtual-ref="tooltipRef"
|
||||||
|
virtual-triggering
|
||||||
|
:offset="10"
|
||||||
|
:visible="tooltipVisible"
|
||||||
|
>
|
||||||
|
<template #content>
|
||||||
|
<div v-if="activeRow && activeRow.materialItems">
|
||||||
|
<div v-for="(item, index) in activeRow.materialItems" :key="index" class="material-item">
|
||||||
|
<span class="material-name">{{ item.matName }}</span>
|
||||||
|
<span class="material-quantity">{{ item.boomAmount }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-tooltip>
|
||||||
|
|
||||||
<!-- 分页 -->
|
<!-- 分页 -->
|
||||||
<Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize"
|
<Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize"
|
||||||
@pagination="getList" />
|
@pagination="getList" />
|
||||||
@ -77,7 +103,19 @@ const { t } = useI18n() // 国际化
|
|||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const dialogVisible = ref(false) // 弹窗的是否展示
|
const dialogVisible = ref(false) // 弹窗的是否展示
|
||||||
const dialogTitle = ref('') // 弹窗的标题
|
const dialogTitle = ref('') // 弹窗的标题
|
||||||
|
const activeRow = ref(null) // 当前悬停的行数据
|
||||||
|
const tooltipRef = ref({
|
||||||
|
getBoundingClientRect: () => ({
|
||||||
|
width: 0,
|
||||||
|
height: 0,
|
||||||
|
top: 0,
|
||||||
|
bottom: 0,
|
||||||
|
left: 0,
|
||||||
|
right: 0
|
||||||
|
}),
|
||||||
|
contextElement: null
|
||||||
|
})
|
||||||
|
const tooltipVisible = ref(false)
|
||||||
const loading = ref(true) // 列表的加载中
|
const loading = ref(true) // 列表的加载中
|
||||||
const list = ref([]) // 列表的数据
|
const list = ref([]) // 列表的数据
|
||||||
const total = ref(0) // 列表的总页数
|
const total = ref(0) // 列表的总页数
|
||||||
@ -91,18 +129,62 @@ const queryParams = reactive({
|
|||||||
|
|
||||||
})
|
})
|
||||||
const queryFormRef = ref() // 搜索的表单
|
const queryFormRef = ref() // 搜索的表单
|
||||||
|
const materialTooltipRef = ref(null) // 对应模板中的 <MaterialTooltip ref="materialTooltip" />
|
||||||
/** 查询列表 */
|
/** 查询列表 */
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
try {
|
try {
|
||||||
const data = await materialPlanApi.getBeiKuPage(queryParams)
|
const data = await materialPlanApi.getBeiKuPage(queryParams)
|
||||||
list.value = data.list
|
// list.value = data.list
|
||||||
|
console.log(data.list)
|
||||||
|
list.value = data.list.map(item => ({
|
||||||
|
...item,
|
||||||
|
// 确保物料明细存在
|
||||||
|
materialItems: item.detailList || []
|
||||||
|
}));
|
||||||
total.value = data.total
|
total.value = data.total
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const materialTooltipContent = computed(() => {
|
||||||
|
const { materialItems } = activeRow.value || {}
|
||||||
|
if (!materialItems) return ''
|
||||||
|
return materialItems.map(item => `${item.matName} x ${item.boomAmount}`).join('\n')
|
||||||
|
})
|
||||||
|
// 鼠标进入行
|
||||||
|
const handleMouseEnter=(row, column, cell, event)=> {
|
||||||
|
activeRow.value = row
|
||||||
|
|
||||||
|
// 获取当前单元格位置
|
||||||
|
const rect = cell.getBoundingClientRect()
|
||||||
|
tooltipVisible.value = true
|
||||||
|
// 更新虚拟引用位置
|
||||||
|
tooltipRef.value = {
|
||||||
|
getBoundingClientRect: () => ({
|
||||||
|
width: 0,
|
||||||
|
height: 0,
|
||||||
|
top: rect.top,
|
||||||
|
bottom: rect.bottom,
|
||||||
|
left: rect.left,
|
||||||
|
right: rect.right
|
||||||
|
}),
|
||||||
|
contextElement: cell
|
||||||
|
}
|
||||||
|
|
||||||
|
// 强制更新工具提示位置
|
||||||
|
nextTick(() => {
|
||||||
|
if (materialTooltipRef.value) {
|
||||||
|
materialTooltipRef.value.updatePopper()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 鼠标离开行
|
||||||
|
const handleMouseLeave=()=> {
|
||||||
|
tooltipVisible.value = false
|
||||||
|
activeRow.value = null;
|
||||||
|
}
|
||||||
|
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
const handleQuery = () => {
|
const handleQuery = () => {
|
||||||
@ -160,3 +242,83 @@ const open = async () => {
|
|||||||
}
|
}
|
||||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
||||||
</script>
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
/* 隐藏的触发元素 */
|
||||||
|
.hidden-trigger {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
opacity: 0;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
/* 物料明细提示框样式 */
|
||||||
|
.material-detail-tooltip {
|
||||||
|
max-width: 300px !important;
|
||||||
|
padding: 12px !important;
|
||||||
|
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
|
||||||
|
border: 1px solid #ebeef5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.material-detail-tooltip .material-item {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 6px 0;
|
||||||
|
border-bottom: 1px dashed #eee;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.material-detail-tooltip .material-item:last-child {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.material-detail-tooltip .material-name {
|
||||||
|
flex: 3;
|
||||||
|
text-align: left;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
.material-detail-tooltip .material-quantity {
|
||||||
|
flex: 1;
|
||||||
|
text-align: right;
|
||||||
|
color: #f56c6c;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.material-detail-tooltip {
|
||||||
|
/* 增加整体宽度 */
|
||||||
|
min-width: 280px; /* 最小宽度 */
|
||||||
|
max-width: 400px; /* 最大宽度 */
|
||||||
|
width: auto !important; /* 宽度自适应 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.material-detail-tooltip .material-item {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 6px 0;
|
||||||
|
border-bottom: 1px dashed #eee;
|
||||||
|
font-size: 13px;
|
||||||
|
|
||||||
|
/* 增加内容区域宽度 */
|
||||||
|
width: 100%; /* 占满整个容器 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 物料名称部分 */
|
||||||
|
.material-detail-tooltip .material-name {
|
||||||
|
flex: 1; /* 占据剩余空间 */
|
||||||
|
min-width: 150px; /* 最小宽度 */
|
||||||
|
margin-right: 15px; /* 增加右侧间距 */
|
||||||
|
word-break: break-word; /* 允许单词换行 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 物料数量部分 */
|
||||||
|
.material-detail-tooltip .material-quantity {
|
||||||
|
flex-shrink: 0; /* 防止被压缩 */
|
||||||
|
width: 60px; /* 固定宽度 */
|
||||||
|
text-align: right; /* 右对齐 */
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
@ -6,7 +6,7 @@ import CustomNavbar from "./components/CustomNavbar.vue";
|
|||||||
import CategoryPanel from "./components/CategoryPanel.vue";
|
import CategoryPanel from "./components/CategoryPanel.vue";
|
||||||
import footRight from "./components/footRight.vue";
|
import footRight from "./components/footRight.vue";
|
||||||
import PageSkeleton from "./components/PageSkeleton.vue";
|
import PageSkeleton from "./components/PageSkeleton.vue";
|
||||||
import { getHomeCategoryAPI, getUnreadMessage } from "@/services/home";
|
import {countReview, getHomeCategoryAPI, getUnreadMessage} from "@/services/home";
|
||||||
// 获取前台分类数据
|
// 获取前台分类数据
|
||||||
const categoryList = ref([
|
const categoryList = ref([
|
||||||
{
|
{
|
||||||
@ -107,10 +107,18 @@ const getHomeCategory = async () => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
const unReadCount = await getUnreadMessage();
|
const unReadCount = await getUnreadMessage();
|
||||||
|
const count = await countReview();
|
||||||
// 把未读数放到消息通知项
|
// 把未读数放到消息通知项
|
||||||
const msgItem = categoryList.value.find(
|
const cgdsp = categoryList.value.find(
|
||||||
(e) => e.path === "messageNotification"
|
(e) => e.path === "cgdsp"
|
||||||
);
|
);
|
||||||
|
const msgItem = categoryList.value.find(
|
||||||
|
(e) => e.path === "messageNotification"
|
||||||
|
);
|
||||||
|
if (cgdsp){
|
||||||
|
cgdsp.unReadCount = count;
|
||||||
|
cgdsp.auth=true
|
||||||
|
}
|
||||||
if (msgItem) {
|
if (msgItem) {
|
||||||
msgItem.unReadCount = unReadCount;
|
msgItem.unReadCount = unReadCount;
|
||||||
msgItem.auth=true
|
msgItem.auth=true
|
||||||
|
@ -279,7 +279,9 @@ const handleScan = () => {
|
|||||||
>预计生产日期:{{ item.startTime }} ~ {{ item.endTime }}</view
|
>预计生产日期:{{ item.startTime }} ~ {{ item.endTime }}</view
|
||||||
>
|
>
|
||||||
</view>
|
</view>
|
||||||
<view class="statusText">{{ statusText }}</view>
|
|
||||||
|
<!-- <view class="statusText">{{ statusText }}</view>-->
|
||||||
|
<view :class="item.procedureStatus == 1 && item.reportStatus == 1 &&props.orderState == '0,1'? 'statusText1' : 'statusText'">{{ statusText }}</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 底部提示文字 -->
|
<!-- 底部提示文字 -->
|
||||||
<view
|
<view
|
||||||
@ -389,6 +391,18 @@ const handleScan = () => {
|
|||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.statusText1 {
|
||||||
|
position: absolute;
|
||||||
|
right: 30rpx;
|
||||||
|
top: 100rpx;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
padding: 10rpx 30rpx;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
background: linear-gradient(149deg, #4CAF50 4%, #388E3C 98%);
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
&:last-child {
|
&:last-child {
|
||||||
padding-bottom: 40rpx;
|
padding-bottom: 40rpx;
|
||||||
}
|
}
|
||||||
|
@ -24,3 +24,10 @@ export const getUnreadMessage = () => {
|
|||||||
url: '/heli/bdgzsomthing/unreadMessage',
|
url: '/heli/bdgzsomthing/unreadMessage',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const countReview = () => {
|
||||||
|
return http<CategoryItem[]>({
|
||||||
|
method: 'GET',
|
||||||
|
url: '/heli/purchase-order-make/countReview',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user