按要求修改
This commit is contained in:
parent
48adb5b70a
commit
4dadedc6a6
@ -99,5 +99,12 @@ public class InvoiceController {
|
|||||||
ExcelUtils.write(response, "财务发票.xls", "数据", InvoiceRespVO.class,
|
ExcelUtils.write(response, "财务发票.xls", "数据", InvoiceRespVO.class,
|
||||||
BeanUtils.toBean(list, InvoiceRespVO.class));
|
BeanUtils.toBean(list, InvoiceRespVO.class));
|
||||||
}
|
}
|
||||||
|
@GetMapping("/getOrderYsInvoice")
|
||||||
|
@Operation(summary = "根据订单获得财务发票")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||||
|
@PreAuthorize("@ss.hasPermission('heli:invoice:query')")
|
||||||
|
public CommonResult<List<InvoiceDO>> getOrderYsInvoice(@RequestParam("code") String code) {
|
||||||
|
List<InvoiceDO> invoice = invoiceService.getOrderYsInvoice(code);
|
||||||
|
return success(invoice);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,13 +17,13 @@ import java.time.LocalDateTime;
|
|||||||
public class OrderYsExportVO {
|
public class OrderYsExportVO {
|
||||||
|
|
||||||
@Schema(description = "项目编号,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "项目编号,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@ExcelProperty("项目编号")
|
// @ExcelProperty("项目编号")
|
||||||
private String code;
|
private String code;
|
||||||
|
|
||||||
@Schema(description = "项目名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
|
@Schema(description = "项目名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
|
||||||
@ExcelProperty("项目名称")
|
@ExcelProperty("项目名称")
|
||||||
private String projectName;
|
private String projectName;
|
||||||
@ExcelProperty(value = "生成日期", converter = TimestampToDateConvert.class)
|
// @ExcelProperty(value = "生成日期", converter = TimestampToDateConvert.class)
|
||||||
private LocalDateTime cgTime;
|
private LocalDateTime cgTime;
|
||||||
@Schema(description = "客户名称", example = "王五")
|
@Schema(description = "客户名称", example = "王五")
|
||||||
@ExcelProperty("客户名称")
|
@ExcelProperty("客户名称")
|
||||||
@ -38,8 +38,11 @@ public class OrderYsExportVO {
|
|||||||
@Schema(description = "已收金额")
|
@Schema(description = "已收金额")
|
||||||
@ExcelProperty("已收金额")
|
@ExcelProperty("已收金额")
|
||||||
private BigDecimal cgYishou;
|
private BigDecimal cgYishou;
|
||||||
@Schema(description = "是否回款完成")
|
@Schema(description = "已开票金额")
|
||||||
@ExcelProperty(value = "是否回款完成", converter = DictConvert.class)
|
@ExcelProperty("已开票金额")
|
||||||
|
private BigDecimal amount;
|
||||||
|
@Schema(description = "回款状态")
|
||||||
|
@ExcelProperty(value = "回款状态", converter = DictConvert.class)
|
||||||
@DictFormat("heli_yingfu_money")
|
@DictFormat("heli_yingfu_money")
|
||||||
private Integer cgTypee;
|
private Integer cgTypee;
|
||||||
@Schema(description = "备注")
|
@Schema(description = "备注")
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.chanko.yunxi.mes.module.heli.controller.admin.orderys.vo;
|
package com.chanko.yunxi.mes.module.heli.controller.admin.orderys.vo;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
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.*;
|
||||||
@ -44,11 +45,12 @@ public class OrderYsRespVO {
|
|||||||
@Schema(description = "应收金额")
|
@Schema(description = "应收金额")
|
||||||
@ExcelProperty("应收金额")
|
@ExcelProperty("应收金额")
|
||||||
private BigDecimal cgYs;
|
private BigDecimal cgYs;
|
||||||
|
|
||||||
@Schema(description = "已收金额")
|
@Schema(description = "已收金额")
|
||||||
@ExcelProperty("已收金额")
|
@ExcelProperty("已收金额")
|
||||||
private BigDecimal cgYishou;
|
private BigDecimal cgYishou;
|
||||||
|
@Schema(description = "已开票金额")
|
||||||
|
@ExcelProperty("已开票金额")
|
||||||
|
private BigDecimal amount;
|
||||||
@Schema(description = "是否回款完成")
|
@Schema(description = "是否回款完成")
|
||||||
@ExcelProperty("是否回款完成")
|
@ExcelProperty("是否回款完成")
|
||||||
private Integer cgTypee;
|
private Integer cgTypee;
|
||||||
@ -57,4 +59,14 @@ public class OrderYsRespVO {
|
|||||||
@ExcelProperty("备注")
|
@ExcelProperty("备注")
|
||||||
private String rem;
|
private String rem;
|
||||||
|
|
||||||
|
private BigDecimal shouFuKuanBiLi;
|
||||||
|
|
||||||
|
private BigDecimal twoFuKuanBiLi;
|
||||||
|
|
||||||
|
private BigDecimal threeFuKuanBiLi;
|
||||||
|
|
||||||
|
private BigDecimal fourFuKuanBiLi;
|
||||||
|
private BigDecimal fiveFuKuanBiLi;
|
||||||
|
private BigDecimal sixFuKuanBiLi;
|
||||||
|
|
||||||
}
|
}
|
@ -38,7 +38,7 @@ public class OrderYsDetailRespVO {
|
|||||||
|
|
||||||
@Schema(description = "回款类型", example = "2")
|
@Schema(description = "回款类型", example = "2")
|
||||||
@ExcelProperty("回款类型")
|
@ExcelProperty("回款类型")
|
||||||
private String cgType;
|
private Integer cgType;
|
||||||
|
|
||||||
@Schema(description = "应收id", example = "30630")
|
@Schema(description = "应收id", example = "30630")
|
||||||
@ExcelProperty("应收id")
|
@ExcelProperty("应收id")
|
||||||
|
@ -38,11 +38,11 @@ public class TaskReportRespVO {
|
|||||||
private String projectSubName;
|
private String projectSubName;
|
||||||
|
|
||||||
@Schema(description = "子项目编号")
|
@Schema(description = "子项目编号")
|
||||||
@ExcelProperty("子项目编号")
|
// @ExcelProperty("子项目编号")
|
||||||
private String projectSubCode;
|
private String projectSubCode;
|
||||||
|
|
||||||
@Schema(description = "派工单号")
|
@Schema(description = "派工单号")
|
||||||
@ExcelProperty("派工单号")
|
// @ExcelProperty("派工单号")
|
||||||
private String dispatchCode;
|
private String dispatchCode;
|
||||||
|
|
||||||
@Schema(description = "零件名称")
|
@Schema(description = "零件名称")
|
||||||
@ -50,7 +50,7 @@ public class TaskReportRespVO {
|
|||||||
private String materialName;
|
private String materialName;
|
||||||
|
|
||||||
@Schema(description = "规格型号")
|
@Schema(description = "规格型号")
|
||||||
@ExcelProperty("规格型号")
|
// @ExcelProperty("规格型号")
|
||||||
private String spec;
|
private String spec;
|
||||||
|
|
||||||
@Schema(description = "报工人")
|
@Schema(description = "报工人")
|
||||||
@ -70,11 +70,11 @@ public class TaskReportRespVO {
|
|||||||
private Integer amount;
|
private Integer amount;
|
||||||
|
|
||||||
@Schema(description = "开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@ExcelProperty("生产开始时间")
|
// @ExcelProperty("生产开始时间")
|
||||||
private LocalDateTime startTime;
|
private LocalDateTime startTime;
|
||||||
|
|
||||||
@Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@ExcelProperty("生产结束时间")
|
// @ExcelProperty("生产结束时间")
|
||||||
private LocalDateTime endTime;
|
private LocalDateTime endTime;
|
||||||
|
|
||||||
@Schema(description = "报工时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "报工时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ -66,5 +66,22 @@ public class OrderYsDO extends BaseDO {
|
|||||||
* 备注
|
* 备注
|
||||||
*/
|
*/
|
||||||
private String rem;
|
private String rem;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal amount;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal shouFuKuanBiLi;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal twoFuKuanBiLi;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal threeFuKuanBiLi;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal fourFuKuanBiLi;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal fiveFuKuanBiLi;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal sixFuKuanBiLi;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -62,4 +62,5 @@ public class PgMasterDO extends BaseDO {
|
|||||||
*/
|
*/
|
||||||
private LocalDateTime pgDatetime;
|
private LocalDateTime pgDatetime;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -2,12 +2,21 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.orderys;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
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.query.LambdaQueryWrapperX;
|
||||||
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
|
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.invoice.InvoiceDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.orderys.OrderYsDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.orderys.OrderYsDO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plan.PlanDO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO;
|
||||||
|
import com.chanko.yunxi.mes.module.system.dal.dataobject.dept.DeptDO;
|
||||||
|
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
||||||
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.orderys.vo.*;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.orderys.vo.*;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 应收记录 Mapper
|
* 应收记录 Mapper
|
||||||
@ -18,17 +27,40 @@ import com.chanko.yunxi.mes.module.heli.controller.admin.orderys.vo.*;
|
|||||||
public interface OrderYsMapper extends BaseMapperX<OrderYsDO> {
|
public interface OrderYsMapper extends BaseMapperX<OrderYsDO> {
|
||||||
|
|
||||||
default PageResult<OrderYsDO> selectPage(OrderYsPageReqVO reqVO) {
|
default PageResult<OrderYsDO> selectPage(OrderYsPageReqVO reqVO) {
|
||||||
return selectPage(reqVO, new LambdaQueryWrapperX<OrderYsDO>()
|
|
||||||
.betweenIfPresent(OrderYsDO::getCreateTime, reqVO.getCreateTime())
|
MPJLambdaWrapper<OrderYsDO> query = new MPJLambdaWrapper<>();
|
||||||
.eqIfPresent(OrderYsDO::getCode, reqVO.getCode())
|
query.selectAll(OrderYsDO.class)
|
||||||
.likeIfPresent(OrderYsDO::getProjectName, reqVO.getProjectName())
|
.select("sum(i.amount) as amount")
|
||||||
.betweenIfPresent(OrderYsDO::getCgTime, reqVO.getCgTime())
|
.leftJoin(
|
||||||
.likeIfPresent(OrderYsDO::getCgKhname, reqVO.getCgKhname())
|
"finance_invoice i ON i.order_code = t.code AND i.business_type = 'FINANCE_MAKE_INVOICE'")
|
||||||
.eqIfPresent(OrderYsDO::getCgYs, reqVO.getCgYs())
|
.disableSubLogicDel()
|
||||||
.eqIfPresent(OrderYsDO::getCgYishou, reqVO.getCgYishou())
|
.groupBy(OrderYsDO::getId)
|
||||||
.eqIfPresent(OrderYsDO::getCgTypee, reqVO.getCgTypee())
|
.orderByDesc(OrderYsDO::getCreateTime);
|
||||||
.eqIfPresent(OrderYsDO::getRem, reqVO.getRem())
|
|
||||||
.orderByDesc(OrderYsDO::getId));
|
query.like(!StringUtils.isEmpty(reqVO.getProjectName()), OrderYsDO::getProjectName, reqVO.getProjectName())
|
||||||
|
.like(!StringUtils.isEmpty(reqVO.getCgKhname()), OrderYsDO::getCgKhname, reqVO.getCgKhname())
|
||||||
|
.eq(!StringUtils.isEmpty(reqVO.getCgTypee()), OrderYsDO::getCgTypee, reqVO.getCgTypee());
|
||||||
|
// .eq(InvoiceDO::getType, "FINANCE_MAKE_INVOICE");
|
||||||
|
|
||||||
|
return selectPage(reqVO, query);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default OrderYsDO selectOrderYsId(Integer id){
|
||||||
|
MPJLambdaWrapper<OrderYsDO> query = new MPJLambdaWrapper<>();
|
||||||
|
query.selectAll(OrderYsDO.class)
|
||||||
|
.select("sum(i.amount) as amount")
|
||||||
|
.select("p.shou_Fu_Kuan_Bi_Li as shouFuKuanBiLi","p.two_Fu_Kuan_Bi_Li as twoFuKuanBiLi","p.three_Fu_Kuan_Bi_Li as threeFuKuanBiLi")
|
||||||
|
.select("p.four_Fu_Kuan_Bi_Li as fourFuKuanBiLi","p.five_Fu_Kuan_Bi_Li as fiveFuKuanBiLi","p.six_Fu_Kuan_Bi_Li as sixFuKuanBiLi")
|
||||||
|
.leftJoin(
|
||||||
|
"finance_invoice i ON i.order_code = t.code AND i.business_type = 'FINANCE_MAKE_INVOICE'")
|
||||||
|
.leftJoin(ProjectOrderDO.class, "p", ProjectOrderDO::getCode, OrderYsDO::getCode)
|
||||||
|
.disableSubLogicDel();
|
||||||
|
|
||||||
|
query
|
||||||
|
.eq( OrderYsDO::getId, id);
|
||||||
|
// .eq(InvoiceDO::getType, "FINANCE_MAKE_INVOICE");
|
||||||
|
|
||||||
|
return selectOne(query);
|
||||||
|
}
|
||||||
}
|
}
|
@ -27,7 +27,8 @@ public interface ProjectLeaderMapper extends BaseMapperX<ProjectLeaderDO> {
|
|||||||
MPJLambdaWrapper<ProjectLeaderDO> query = new MPJLambdaWrapper<>();
|
MPJLambdaWrapper<ProjectLeaderDO> query = new MPJLambdaWrapper<>();
|
||||||
query.selectAll(ProjectLeaderDO.class)
|
query.selectAll(ProjectLeaderDO.class)
|
||||||
.select("a.nickname as ownerName")
|
.select("a.nickname as ownerName")
|
||||||
.leftJoin(AdminUserDO.class,"a",AdminUserDO::getId,ProjectLeaderDO::getOwner);
|
.leftJoin(AdminUserDO.class,"a",AdminUserDO::getId,ProjectLeaderDO::getOwner)
|
||||||
|
.disableSubLogicDel();
|
||||||
query.eq(!StringUtils.isEmpty(reqVO.getType()), ProjectLeaderDO::getType, reqVO.getType());
|
query.eq(!StringUtils.isEmpty(reqVO.getType()), ProjectLeaderDO::getType, reqVO.getType());
|
||||||
return selectPage(reqVO, query);
|
return selectPage(reqVO, query);
|
||||||
|
|
||||||
@ -38,6 +39,7 @@ public interface ProjectLeaderMapper extends BaseMapperX<ProjectLeaderDO> {
|
|||||||
query.selectAll(ProjectLeaderDO.class)
|
query.selectAll(ProjectLeaderDO.class)
|
||||||
.select("a.nickname as ownerName,a.username as userName")
|
.select("a.nickname as ownerName,a.username as userName")
|
||||||
.leftJoin(AdminUserDO.class,"a",AdminUserDO::getId,ProjectLeaderDO::getOwner)
|
.leftJoin(AdminUserDO.class,"a",AdminUserDO::getId,ProjectLeaderDO::getOwner)
|
||||||
|
.disableSubLogicDel()
|
||||||
.orderByDesc( ProjectLeaderDO::getCreateTime)
|
.orderByDesc( ProjectLeaderDO::getCreateTime)
|
||||||
.last("limit 1");
|
.last("limit 1");
|
||||||
query.eq(ProjectLeaderDO::getType, type);
|
query.eq(ProjectLeaderDO::getType, type);
|
||||||
|
@ -16,9 +16,11 @@ import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
|||||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.springframework.util.ObjectUtils;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -49,7 +51,6 @@ public interface TaskReportMapper extends BaseMapperX<TaskReportDO> {
|
|||||||
.leftJoin(AdminUserDO.class, "u2", AdminUserDO::getId, TaskReportDO::getUpdater)
|
.leftJoin(AdminUserDO.class, "u2", AdminUserDO::getId, TaskReportDO::getUpdater)
|
||||||
.orderByDesc(TaskReportDO::getId)
|
.orderByDesc(TaskReportDO::getId)
|
||||||
.disableSubLogicDel();
|
.disableSubLogicDel();
|
||||||
|
|
||||||
query.eq(reqVO.getOwner() != null, TaskReportDO::getOwner, reqVO.getOwner())
|
query.eq(reqVO.getOwner() != null, TaskReportDO::getOwner, reqVO.getOwner())
|
||||||
.like(!StringUtils.isEmpty(reqVO.getProjectCode()), ProjectOrderDO::getCode, reqVO.getProjectCode())
|
.like(!StringUtils.isEmpty(reqVO.getProjectCode()), ProjectOrderDO::getCode, reqVO.getProjectCode())
|
||||||
.like(!StringUtils.isEmpty(reqVO.getProjectName()), ProjectOrderDO::getProjectName, reqVO.getProjectName())
|
.like(!StringUtils.isEmpty(reqVO.getProjectName()), ProjectOrderDO::getProjectName, reqVO.getProjectName())
|
||||||
@ -57,7 +58,12 @@ public interface TaskReportMapper extends BaseMapperX<TaskReportDO> {
|
|||||||
.like(!StringUtils.isEmpty(reqVO.getMaterialName()), ProcessBomDetailDO::getMaterialName, reqVO.getMaterialName())
|
.like(!StringUtils.isEmpty(reqVO.getMaterialName()), ProcessBomDetailDO::getMaterialName, reqVO.getMaterialName())
|
||||||
.like(!StringUtils.isEmpty(reqVO.getOwnerName()), AdminUserDO::getNickname, reqVO.getOwnerName())
|
.like(!StringUtils.isEmpty(reqVO.getOwnerName()), AdminUserDO::getNickname, reqVO.getOwnerName())
|
||||||
.eq(!StringUtils.isEmpty(reqVO.getDispatchDetailId()),TaskReportDO::getDispatchDetailId,reqVO.getDispatchDetailId());
|
.eq(!StringUtils.isEmpty(reqVO.getDispatchDetailId()),TaskReportDO::getDispatchDetailId,reqVO.getDispatchDetailId());
|
||||||
|
if (reqVO.getStartTime() != null) {
|
||||||
|
query.between( TaskReportDO::getStartTime, reqVO.getStartTime()[0], reqVO.getStartTime()[1]);
|
||||||
|
}
|
||||||
|
if (reqVO.getStartTime() != null) {
|
||||||
|
query.between(TaskReportDO::getEndTime, reqVO.getEndTime()[0], reqVO.getEndTime()[1]);
|
||||||
|
}
|
||||||
return selectPage(reqVO, query);
|
return selectPage(reqVO, query);
|
||||||
}
|
}
|
||||||
public int deleteByDispatchDetailIds(List<Long> dispatchDetailIds);
|
public int deleteByDispatchDetailIds(List<Long> dispatchDetailIds);
|
||||||
|
@ -1,7 +1,13 @@
|
|||||||
package com.chanko.yunxi.mes.module.heli.service.bgmasterline;
|
package com.chanko.yunxi.mes.module.heli.service.bgmasterline;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
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.PgMasterLineDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.pgmaster.PgMasterLineDO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO;
|
||||||
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.pgmaster.PgMasterMapper;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetailMapper;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@ -34,6 +40,9 @@ public class BgMasterLineServiceImpl implements BgMasterLineService {
|
|||||||
private BgMasterLineMapper bgMasterLineMapper;
|
private BgMasterLineMapper bgMasterLineMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private PgMasterLineMapper pgMasterLineMapper;
|
private PgMasterLineMapper pgMasterLineMapper;
|
||||||
|
@Resource
|
||||||
|
private TaskDispatchDetailMapper taskDispatchDetailMapper;
|
||||||
|
|
||||||
|
|
||||||
//结束本次报工
|
//结束本次报工
|
||||||
@Override
|
@Override
|
||||||
@ -72,8 +81,11 @@ public class BgMasterLineServiceImpl implements BgMasterLineService {
|
|||||||
pgMasterLineDO.setActive("END");
|
pgMasterLineDO.setActive("END");
|
||||||
pgMasterLineDO.setEntTime(currentDateTime);
|
pgMasterLineDO.setEntTime(currentDateTime);
|
||||||
pgMasterLineMapper.updateById(pgMasterLineDO);
|
pgMasterLineMapper.updateById(pgMasterLineDO);
|
||||||
//更新工时
|
//修改派工单明细表检验状态为Y
|
||||||
|
LambdaUpdateWrapper<TaskDispatchDetailDO> wrapper = new LambdaUpdateWrapper<>();
|
||||||
|
wrapper.eq(TaskDispatchDetailDO::getId,pgMasterLineDO.getDispatchDetailId());
|
||||||
|
wrapper.set(TaskDispatchDetailDO::getTestYn,"Y");
|
||||||
|
taskDispatchDetailMapper.update(wrapper);
|
||||||
}else{
|
}else{
|
||||||
//不相等时只更新当前报工状态
|
//不相等时只更新当前报工状态
|
||||||
pgMasterLineDO.setActive("END");
|
pgMasterLineDO.setActive("END");
|
||||||
|
@ -5,6 +5,8 @@ import com.chanko.yunxi.mes.module.heli.controller.admin.invoice.vo.*;
|
|||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.invoice.InvoiceDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.invoice.InvoiceDO;
|
||||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 财务发票 Service 接口
|
* 财务发票 Service 接口
|
||||||
*
|
*
|
||||||
@ -52,4 +54,6 @@ public interface InvoiceService {
|
|||||||
PageResult<InvoiceDO> getInvoicePage(InvoicePageReqVO pageReqVO);
|
PageResult<InvoiceDO> getInvoicePage(InvoicePageReqVO pageReqVO);
|
||||||
|
|
||||||
Long operate(InvoiceSaveReqVO operateReqVO);
|
Long operate(InvoiceSaveReqVO operateReqVO);
|
||||||
|
|
||||||
|
List<InvoiceDO> getOrderYsInvoice(String code);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.chanko.yunxi.mes.module.heli.service.invoice;
|
package com.chanko.yunxi.mes.module.heli.service.invoice;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum;
|
import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum;
|
||||||
import com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils;
|
import com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
import com.chanko.yunxi.mes.module.heli.enums.InvoiceStatusEnum;
|
import com.chanko.yunxi.mes.module.heli.enums.InvoiceStatusEnum;
|
||||||
@ -16,6 +17,7 @@ import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
|||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.invoice.InvoiceMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.invoice.InvoiceMapper;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*;
|
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*;
|
||||||
@ -103,4 +105,11 @@ public class InvoiceServiceImpl implements InvoiceService {
|
|||||||
return operateReqVO.getId();
|
return operateReqVO.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<InvoiceDO> getOrderYsInvoice(String code) {
|
||||||
|
LambdaQueryWrapper<InvoiceDO> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(InvoiceDO::getOrderCode, code);
|
||||||
|
return invoiceMapper.selectList(wrapper);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -94,7 +94,7 @@ public class OrderYsServiceImpl implements OrderYsService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public OrderYsDO getOrderYs(Integer id) {
|
public OrderYsDO getOrderYs(Integer id) {
|
||||||
return orderYsMapper.selectById(id);
|
return orderYsMapper.selectOrderYsId(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -12,6 +12,7 @@ import com.chanko.yunxi.mes.framework.web.core.util.WebFrameworkUtils;
|
|||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.plan.vo.PlanPageReqVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.plan.vo.PlanPageReqVO;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.plan.vo.PlanSaveReqVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.plan.vo.PlanSaveReqVO;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.plansub.vo.PlanSubPageReqVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.plansub.vo.PlanSubPageReqVO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plan.PlanDO;
|
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.plansub.PlanSubDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plantask.PlanTaskDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plantask.PlanTaskDO;
|
||||||
@ -35,6 +36,7 @@ import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetai
|
|||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.taskreport.TaskReportMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.taskreport.TaskReportMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.enums.*;
|
import com.chanko.yunxi.mes.module.heli.enums.*;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.service.customer.CustomerService;
|
||||||
import com.chanko.yunxi.mes.module.heli.service.projectorder.ProjectOrderService;
|
import com.chanko.yunxi.mes.module.heli.service.projectorder.ProjectOrderService;
|
||||||
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
|
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
|
||||||
import jodd.util.StringUtil;
|
import jodd.util.StringUtil;
|
||||||
@ -102,8 +104,10 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
private PlanTaskBomMapper planTaskBomMapper;
|
private PlanTaskBomMapper planTaskBomMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private TaskDispatchMapper taskDispatchMapper;
|
private TaskDispatchMapper taskDispatchMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private TaskDispatchDetailMapper taskDispatchDetailMapper;
|
private TaskDispatchDetailMapper taskDispatchDetailMapper;
|
||||||
|
@Resource
|
||||||
|
private CustomerService customerService;
|
||||||
@Resource
|
@Resource
|
||||||
private TaskReportMapper taskReportMapper;
|
private TaskReportMapper taskReportMapper;
|
||||||
@Override
|
@Override
|
||||||
@ -229,21 +233,27 @@ private TaskReportMapper taskReportMapper;
|
|||||||
planDO.setChangeNum(0);
|
planDO.setChangeNum(0);
|
||||||
// 设置生产计划状态
|
// 设置生产计划状态
|
||||||
planDO.setStatus(ProjectPlanStatusEnum.START.getCode());
|
planDO.setStatus(ProjectPlanStatusEnum.START.getCode());
|
||||||
|
ProjectOrderDO projectOrderDO = projectOrderMapper.selectById(projectId);
|
||||||
|
CustomerDO customer = customerService.getCustomer(projectOrderDO.getCustomerId());
|
||||||
// 月度流水号
|
// 月度流水号
|
||||||
SerialNumberDO serialNumberDO = new SerialNumberDO();
|
// SerialNumberDO serialNumberDO = new SerialNumberDO();
|
||||||
serialNumberDO = serialNumberService.getSerialNumber(PROJECT_PLAN.name(), new SimpleDateFormat("yyyyMM").format(new Date()));
|
// serialNumberDO = serialNumberService.getSerialNumber(PROJECT_PLAN.name(), new SimpleDateFormat("yyyyMM").format(new Date()));
|
||||||
serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1);
|
// serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1);
|
||||||
|
|
||||||
|
// planDO.setPlanNo(PROJECT_PLAN.getCode(serialNumberDO.getSerialNumber().toString()));
|
||||||
|
String code = projectOrderDO.getCode().replace("-", "");
|
||||||
|
planDO.setPlanNo("PP"+code);
|
||||||
|
|
||||||
planDO.setPlanNo(PROJECT_PLAN.getCode(serialNumberDO.getSerialNumber().toString()));
|
|
||||||
Long userId = WebFrameworkUtils.getLoginUserId();
|
Long userId = WebFrameworkUtils.getLoginUserId();
|
||||||
planDO.setCreator(userId.toString());
|
planDO.setCreator(userId.toString());
|
||||||
planMapper.insert(planDO);
|
planMapper.insert(planDO);
|
||||||
// 回写序列记录
|
// 回写序列记录
|
||||||
serialNumberService.updateSerialNumber(serialNumberDO);
|
// serialNumberService.updateSerialNumber(serialNumberDO);
|
||||||
|
|
||||||
for(ProjectOrderSubDO item : projectOrderSubDOs){
|
for(ProjectOrderSubDO item : projectOrderSubDOs){
|
||||||
PlanSubDO planSubDO = new PlanSubDO();
|
PlanSubDO planSubDO = new PlanSubDO();
|
||||||
|
planSubDO.setProjectSubCode(customer.getBrief()+'-'+projectOrderDO.getProjectNameSim()+'-'+item.getNameSim());
|
||||||
|
planSubDO.setProjectSubShortName(item.getNameSim());
|
||||||
planSubDO.setProjectPlanId(planDO.getId());
|
planSubDO.setProjectPlanId(planDO.getId());
|
||||||
planSubDO.setProjectId(projectId);
|
planSubDO.setProjectId(projectId);
|
||||||
planSubDO.setProjectSubId(item.getId());
|
planSubDO.setProjectSubId(item.getId());
|
||||||
|
@ -51,3 +51,7 @@ export const exportInvoice = async (params) => {
|
|||||||
export async function operateInvoice(data: InvoiceVO) {
|
export async function operateInvoice(data: InvoiceVO) {
|
||||||
return await request.post({ url: `/heli/invoice/operate`, data })
|
return await request.post({ url: `/heli/invoice/operate`, data })
|
||||||
}
|
}
|
||||||
|
// 查询应收记录详情
|
||||||
|
export const getOrderYsInvoice = async (code: string) => {
|
||||||
|
return await request.get({ url: `/heli/invoice/getOrderYsInvoice?code=` + code })
|
||||||
|
}
|
||||||
|
@ -42,3 +42,4 @@ export const deleteOrderYs = async (id: number) => {
|
|||||||
export const exportOrderYs = async (params) => {
|
export const exportOrderYs = async (params) => {
|
||||||
return await request.download({ url: `/heli/order-ys/export-excel`, params })
|
return await request.download({ url: `/heli/order-ys/export-excel`, params })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,13 +156,13 @@ const detailDisabled = ref(false)
|
|||||||
|
|
||||||
const formData: any = ref({
|
const formData: any = ref({
|
||||||
id: undefined,
|
id: undefined,
|
||||||
businessType: "FINANCE_RECEIVE_INVOICE",
|
businessType: businessType.value,
|
||||||
orderId: undefined,
|
orderId: undefined,
|
||||||
number: undefined,
|
number: undefined,
|
||||||
type: undefined,
|
type: "2",
|
||||||
billingDate: undefined,
|
billingDate: undefined,
|
||||||
amount: undefined,
|
amount: undefined,
|
||||||
rate: undefined,
|
rate: 13,
|
||||||
remark: undefined,
|
remark: undefined,
|
||||||
submitter: undefined,
|
submitter: undefined,
|
||||||
submitTime: undefined,
|
submitTime: undefined,
|
||||||
@ -190,13 +190,13 @@ const formRules = reactive({
|
|||||||
const resetForm = () => {
|
const resetForm = () => {
|
||||||
formData.value = {
|
formData.value = {
|
||||||
id: undefined,
|
id: undefined,
|
||||||
businessType: "FINANCE_RECEIVE_INVOICE",
|
businessType: businessType.value,
|
||||||
projectId: undefined,
|
projectId: undefined,
|
||||||
number: undefined,
|
number: undefined,
|
||||||
type: undefined,
|
type:"2",
|
||||||
billingDate: undefined,
|
billingDate: undefined,
|
||||||
amount: undefined,
|
amount: undefined,
|
||||||
rate: undefined,
|
rate: 13,
|
||||||
remark: undefined,
|
remark: undefined,
|
||||||
submitter: undefined,
|
submitter: undefined,
|
||||||
submitTime: undefined,
|
submitTime: undefined,
|
||||||
|
@ -10,11 +10,11 @@
|
|||||||
<el-row>
|
<el-row>
|
||||||
|
|
||||||
|
|
||||||
<el-form-item label="项目编号" prop="code" width="200px">
|
<!-- <el-form-item label="项目编号" prop="code" width="200px">-->
|
||||||
<el-input v-model="formData.code" placeholder="请输入项目编号" disabled class="!w-220px"/>
|
<!-- <el-input v-model="formData.code" placeholder="请输入项目编号" disabled class="!w-220px"/>-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
<el-form-item label="项目名称" prop="projectName">
|
<el-form-item label="项目名称" prop="projectName">
|
||||||
<el-input v-model="formData.projectName" placeholder="请输入项目名称" disabled class="!w-220px"/>
|
<el-input v-model="formData.projectName" placeholder="请输入项目名称" disabled class="!w-230px"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="生成日期" prop="cgTime" >
|
<el-form-item label="生成日期" prop="cgTime" >
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
@ -22,42 +22,96 @@
|
|||||||
type="date"
|
type="date"
|
||||||
value-format="x"
|
value-format="x"
|
||||||
placeholder="选择生成日期" disabled
|
placeholder="选择生成日期" disabled
|
||||||
class="!w-220px"
|
class="!w-230px"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="客户名称" prop="cgKhname" >
|
||||||
|
<el-input v-model="formData.cgKhname" placeholder="请输入客户名称" disabled class="!w-230px"/>
|
||||||
|
</el-form-item>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-form-item label="客户名称" prop="cgKhname" >
|
|
||||||
<el-input v-model="formData.cgKhname" placeholder="请输入客户名称" disabled class="!w-220px"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="应收金额" prop="cgYs" >
|
<el-form-item label="应收金额" prop="cgYs" >
|
||||||
<el-input v-model="formData.cgYs" placeholder="请输入应收金额" disabled class="!w-220px"/>
|
<el-input v-model="formData.cgYs" placeholder="请输入应收金额" disabled class="!w-230px"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="已收金额" prop="cgYishou">
|
<el-form-item label="已收金额" prop="cgYishou">
|
||||||
<el-input v-model="formData.cgYishou" placeholder="请输入已收金额" disabled class="!w-220px"/>
|
<el-input v-model="formData.cgYishou" placeholder="请输入已收金额" disabled class="!w-230px"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="已开票金额" prop="amount">
|
||||||
|
<el-input v-model="formData.amount" placeholder="请输入已开票金额" disabled class="!w-230px"/>
|
||||||
|
</el-form-item>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-form-item label="是否回款完成" prop="cgTypee" >
|
<el-col :span="8" >
|
||||||
<el-select
|
<el-form-item label="回款状态" prop="cgTypee" >
|
||||||
v-model="formData.cgTypee"
|
<el-select
|
||||||
placeholder="请选择"
|
v-model="formData.cgTypee"
|
||||||
clearable
|
placeholder="请选择"
|
||||||
class="!w-220px"
|
clearable
|
||||||
>
|
|
||||||
<el-option
|
>
|
||||||
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_YINGFU_MONEY)"
|
<el-option
|
||||||
:key="dict.value"
|
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_YINGFU_MONEY)"
|
||||||
:label="dict.label"
|
:key="dict.value"
|
||||||
:value="dict.value"
|
:label="dict.label"
|
||||||
/>
|
:value="dict.value"
|
||||||
</el-select>
|
/>
|
||||||
</el-form-item>
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="16">
|
||||||
<el-form-item label="备注" prop="rem">
|
<el-form-item label="备注" prop="rem">
|
||||||
<el-input v-model="formData.rem" placeholder="请输入备注" class="!w-220px"/>
|
<el-input type="textarea" :rows='3' v-model="formData.rem" placeholder="请输入备注" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
<el-card class="hl-card-info">
|
||||||
|
<template #header>
|
||||||
|
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">付款比例</span>
|
||||||
|
</template>
|
||||||
|
<el-form
|
||||||
|
ref="formRef"
|
||||||
|
:model="formData"
|
||||||
|
:rules="formRules"
|
||||||
|
label-width="160px"
|
||||||
|
v-loading="formLoading"
|
||||||
|
>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="首付款" prop="shouFuKuanBiLi" >
|
||||||
|
<el-input v-model="formData.shouFuKuanBiLi" placeholder="请输入应收金额" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="第二笔款" prop="twoFuKuanBiLi" >
|
||||||
|
<el-input v-model="formData.twoFuKuanBiLi" placeholder="请输入应收金额" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="第三笔款" prop="threeFuKuanBiLi" >
|
||||||
|
<el-input v-model="formData.threeFuKuanBiLi" placeholder="请输入应收金额" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="第四笔款" prop="fourFuKuanBiLi" >
|
||||||
|
<el-input v-model="formData.fourFuKuanBiLi" placeholder="请输入应收金额" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="第五笔款" prop="fiveFuKuanBiLi" >
|
||||||
|
<el-input v-model="formData.fiveFuKuanBiLi" placeholder="请输入应收金额" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="第六笔款" prop="sixFuKuanBiLi" >
|
||||||
|
<el-input v-model="formData.sixFuKuanBiLi" placeholder="请输入应收金额" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</el-card>
|
||||||
<el-card class="hl-card-info">
|
<el-card class="hl-card-info">
|
||||||
<template #header>
|
<template #header>
|
||||||
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">回款明细信息</span>
|
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">回款明细信息</span>
|
||||||
@ -66,7 +120,7 @@
|
|||||||
<el-col>
|
<el-col>
|
||||||
<el-card class="hl-incard">
|
<el-card class="hl-incard">
|
||||||
<el-col>
|
<el-col>
|
||||||
<el-button type="primary" size="large" @click="onAddItem" v-if="formData.cgTypee==1">新增</el-button>
|
<el-button type="primary" size="large" @click="onAddItem" v-if="formData.cgTypee==2||formData.cgTypee==3">新增</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-form ref="OrderYsDetailSubFormRef" :model="formData.orderYsDetails" label-width="0" >
|
<el-form ref="OrderYsDetailSubFormRef" :model="formData.orderYsDetails" label-width="0" >
|
||||||
<el-table :data="formData.orderYsDetails" class="hl-table" >
|
<el-table :data="formData.orderYsDetails" class="hl-table" >
|
||||||
@ -108,13 +162,13 @@
|
|||||||
<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="cgYishou" >
|
<el-form-item prop="cgYishou" >
|
||||||
<el-input v-model="scope.row.cgYishou" type="number" placeholder="请输入回款金额" @change="sum" :disabled="scope.row.id" />
|
<el-input v-model="scope.row.cgYishou" type="number" placeholder="请输入回款金额" @change="sum" :disabled="scope.row.id" min="0" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="center" width="120" fixed="right">
|
<el-table-column label="操作" align="center" width="120" fixed="right">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button link type="danger" size="small" @click.prevent="onDeleteItem(scope.$index)" v-if="formData.cgTypee==1">
|
<el-button link type="danger" size="small" @click.prevent="onDeleteItem(scope.$index)" v-if="formData.cgTypee==2||formData.cgTypee==3">
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
@ -135,12 +189,6 @@
|
|||||||
import * as OrderYsApi from '@/api/heli/orderys'
|
import * as OrderYsApi from '@/api/heli/orderys'
|
||||||
import * as OrderYsDetailApi from '@/api/heli/orderysdetail'
|
import * as OrderYsDetailApi from '@/api/heli/orderysdetail'
|
||||||
import {DICT_TYPE, getIntDictOptions, getStrDictOptions} from "@/utils/dict";
|
import {DICT_TYPE, getIntDictOptions, getStrDictOptions} from "@/utils/dict";
|
||||||
import CompositionSelect from "@/views/heli/hlvuestyle/compositionSelect.vue";
|
|
||||||
import EquipSelect from "@/views/heli/hlvuestyle/equipSelect.vue";
|
|
||||||
import * as ProjectOrderApi from "@/api/heli/projectorder";
|
|
||||||
import * as UserApi from "@/api/system/user";
|
|
||||||
import * as FpUserDetailApi from "@/api/heli/fpuserdetail";
|
|
||||||
import {number} from "vue-types";
|
|
||||||
|
|
||||||
const { t } = useI18n() // 国际化
|
const { t } = useI18n() // 国际化
|
||||||
const message = useMessage() // 消息弹窗
|
const message = useMessage() // 消息弹窗
|
||||||
@ -160,7 +208,13 @@ const formData = ref({
|
|||||||
cgTypee: undefined,
|
cgTypee: undefined,
|
||||||
orderYsDetails: [],
|
orderYsDetails: [],
|
||||||
rem: undefined,
|
rem: undefined,
|
||||||
|
amount:undefined,
|
||||||
|
shouFuKuanBiLi:undefined,
|
||||||
|
twoFuKuanBiLi:undefined,
|
||||||
|
threeFuKuanBiLi:undefined,
|
||||||
|
fourFuKuanBiLi:undefined,
|
||||||
|
fiveFuKuanBiLi:undefined,
|
||||||
|
sixFuKuanBiLi:undefined
|
||||||
})
|
})
|
||||||
// const subFormRules = reactive({
|
// const subFormRules = reactive({
|
||||||
// paymentDate: [{
|
// paymentDate: [{
|
||||||
@ -257,13 +311,15 @@ const submitForm = async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (formData.value.cgYishou!=''&&formData.value.cgYishou!=undefined&&formData.value.cgYishou!=null){
|
if (formData.value.cgYishou!=''&&formData.value.cgYishou!=undefined&&formData.value.cgYishou!=null){
|
||||||
if (formData.value.cgYishou<formData.value.cgYs&&formData.value.cgTypee==2){
|
if (formData.value.cgYishou<formData.value.cgYs&&formData.value.cgTypee==1){
|
||||||
await message.confirm("已收金额小于应收金额,回款未完成,请确认")
|
await message.confirm("已收金额小于应收金额,回款未全部完成,请确认")
|
||||||
}else if (formData.value.cgYishou>=formData.value.cgYs&&formData.value.cgTypee==1){
|
}else if (formData.value.cgYishou>=formData.value.cgYs&&formData.value.cgTypee==2){
|
||||||
await message.confirm("已收金额大于等于应收金额,回款已完成,请确认")
|
await message.confirm("已收金额大于等于应收金额,回款已完成,请确认")
|
||||||
|
}else if (formData.value.cgTypee==3){
|
||||||
|
await message.confirm("已收金额不为0,不能选择未付款,请确认")
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
if (formData.value.cgTypee==2){
|
if (formData.value.cgTypee==2||formData.value.cgTypee==1){
|
||||||
await message.confirm("未输入已收金额,回款未完成,请确认")
|
await message.confirm("未输入已收金额,回款未完成,请确认")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,24 +6,24 @@
|
|||||||
:model="queryParams"
|
:model="queryParams"
|
||||||
ref="queryFormRef"
|
ref="queryFormRef"
|
||||||
:inline="true"
|
:inline="true"
|
||||||
label-width="160px"
|
label-width="100px"
|
||||||
>
|
>
|
||||||
<el-form-item label="项目编号" prop="code">
|
<!-- <el-form-item label="项目编号" prop="code">-->
|
||||||
<el-input
|
<!-- <el-input-->
|
||||||
v-model="queryParams.code"
|
<!-- v-model="queryParams.code"-->
|
||||||
placeholder="请输入项目编号"
|
<!-- placeholder="请输入项目编号"-->
|
||||||
clearable
|
<!-- clearable-->
|
||||||
@keyup.enter="handleQuery"
|
<!-- @keyup.enter="handleQuery"-->
|
||||||
class="!w-240px"
|
<!-- class="!w-240px"-->
|
||||||
/>
|
<!-- />-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
<el-form-item label="项目名称" prop="projectName">
|
<el-form-item label="项目名称" prop="projectName">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.projectName"
|
v-model="queryParams.projectName"
|
||||||
placeholder="请输入项目名称"
|
placeholder="请输入项目名称"
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter="handleQuery"
|
@keyup.enter="handleQuery"
|
||||||
class="!w-240px"
|
class="!w-200px"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
@ -33,10 +33,10 @@
|
|||||||
placeholder="请输入客户名称"
|
placeholder="请输入客户名称"
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter="handleQuery"
|
@keyup.enter="handleQuery"
|
||||||
class="!w-240px"
|
class="!w-200px"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="是否回款完成" prop="cgTypee">
|
<el-form-item label="回款状态" prop="cgTypee">
|
||||||
<!-- <el-input-->
|
<!-- <el-input-->
|
||||||
<!-- v-model="queryParams.cgTypee"-->
|
<!-- v-model="queryParams.cgTypee"-->
|
||||||
<!-- placeholder="请输入是否回款完成"-->
|
<!-- placeholder="请输入是否回款完成"-->
|
||||||
@ -48,7 +48,7 @@
|
|||||||
v-model="queryParams.cgTypee"
|
v-model="queryParams.cgTypee"
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
clearable
|
clearable
|
||||||
class="!w-240px"
|
class="!w-200px"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_YINGFU_MONEY)"
|
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_YINGFU_MONEY)"
|
||||||
@ -87,13 +87,13 @@
|
|||||||
<ContentWrap>
|
<ContentWrap>
|
||||||
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
|
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
|
||||||
<el-table-column label="项目名称" align="center" prop="projectName" width="150"/>
|
<el-table-column label="项目名称" align="center" prop="projectName" width="150"/>
|
||||||
<el-table-column
|
<!-- <el-table-column-->
|
||||||
label="生成日期"
|
<!-- label="生成日期"-->
|
||||||
align="center"
|
<!-- align="center"-->
|
||||||
prop="cgTime"
|
<!-- prop="cgTime"-->
|
||||||
:formatter="dateFormatter"
|
<!-- :formatter="dateFormatter"-->
|
||||||
width="250px"
|
<!-- width="250px"-->
|
||||||
/>
|
<!-- />-->
|
||||||
<el-table-column label="客户名称" align="center" prop="cgKhname" width="200px"/>
|
<el-table-column label="客户名称" align="center" prop="cgKhname" width="200px"/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="预计回款日期"
|
label="预计回款日期"
|
||||||
@ -104,13 +104,14 @@
|
|||||||
/>
|
/>
|
||||||
<el-table-column label="应收金额(元)" align="center" prop="cgYs" width="150"/>
|
<el-table-column label="应收金额(元)" align="center" prop="cgYs" width="150"/>
|
||||||
<el-table-column label="已收金额(元)" align="center" prop="cgYishou" width="150"/>
|
<el-table-column label="已收金额(元)" align="center" prop="cgYishou" width="150"/>
|
||||||
<el-table-column label="是否回款完成" align="center" prop="cgTypee" width="150" >
|
<el-table-column label="已开票金额(元)" align="center" prop="amount" width="150"/>
|
||||||
|
<el-table-column label="回款状态" align="center" prop="cgTypee" width="150" >
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :type="DICT_TYPE.HELI_YINGFU_MONEY" :value="scope.row.cgTypee" />
|
<dict-tag :type="DICT_TYPE.HELI_YINGFU_MONEY" :value="scope.row.cgTypee" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="项目编号" align="center" prop="code" width="180"/>
|
<!-- <el-table-column label="项目编号" align="center" prop="code" width="180"/>-->
|
||||||
<el-table-column label="备注" align="center" prop="rem" width="120"/>
|
<el-table-column label="备注" align="center" prop="rem" width="250"/>
|
||||||
<el-table-column label="操作" align="center" width="180">
|
<el-table-column label="操作" align="center" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button
|
<el-button
|
||||||
@ -121,14 +122,14 @@
|
|||||||
>
|
>
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-if=" scope.row.cgYishou==null"
|
<!-- <el-button v-if=" scope.row.cgYishou==null"-->
|
||||||
link
|
<!-- link-->
|
||||||
type="danger"
|
<!-- type="danger"-->
|
||||||
@click="handleDelete(scope.row.id)"
|
<!-- @click="handleDelete(scope.row.id)"-->
|
||||||
v-hasPermi="['heli:order-ys:delete']"
|
<!-- v-hasPermi="['heli:order-ys:delete']"-->
|
||||||
>
|
<!-- >-->
|
||||||
删除
|
<!-- 删除-->
|
||||||
</el-button>
|
<!-- </el-button>-->
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -0,0 +1,87 @@
|
|||||||
|
<!-- 基于 ruoyi-vue3 的 Pagination 重构,核心是简化无用的属性,并使用 ts 重写 -->
|
||||||
|
<template>
|
||||||
|
<el-pagination
|
||||||
|
v-show="total > 0"
|
||||||
|
v-model:current-page="currentPage"
|
||||||
|
v-model:page-size="pageSize"
|
||||||
|
:background="true"
|
||||||
|
:page-sizes="[5,10, 20, 30, 50, 100]"
|
||||||
|
:pager-count="pagerCount"
|
||||||
|
:total="total"
|
||||||
|
:small="isSmall"
|
||||||
|
class="float-right mb-15px mt-15px"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { computed, watchEffect } from 'vue'
|
||||||
|
import { useAppStore } from '@/store/modules/app'
|
||||||
|
|
||||||
|
defineOptions({ name: 'Pagination' })
|
||||||
|
|
||||||
|
// 此处解决了当全局size为small的时候分页组件样式太大的问题
|
||||||
|
const appStore = useAppStore()
|
||||||
|
const layoutCurrentSize = computed(() => appStore.currentSize)
|
||||||
|
const isSmall = ref<boolean>(layoutCurrentSize.value === 'small')
|
||||||
|
watchEffect(() => {
|
||||||
|
isSmall.value = layoutCurrentSize.value === 'small'
|
||||||
|
})
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
// 总条目数
|
||||||
|
total: {
|
||||||
|
required: true,
|
||||||
|
type: Number
|
||||||
|
},
|
||||||
|
// 当前页数:pageNo
|
||||||
|
page: {
|
||||||
|
type: Number,
|
||||||
|
default: 1
|
||||||
|
},
|
||||||
|
// 每页显示条目个数:pageSize
|
||||||
|
limit: {
|
||||||
|
type: Number,
|
||||||
|
default: 20
|
||||||
|
},
|
||||||
|
// 设置最大页码按钮数。 页码按钮的数量,当总页数超过该值时会折叠
|
||||||
|
// 移动端页码按钮的数量端默认值 5
|
||||||
|
pagerCount: {
|
||||||
|
type: Number,
|
||||||
|
default: document.body.clientWidth < 992 ? 5 : 7
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const emit = defineEmits(['update:page', 'update:limit', 'pagination', 'pagination'])
|
||||||
|
const currentPage = computed({
|
||||||
|
get() {
|
||||||
|
return props.page
|
||||||
|
},
|
||||||
|
set(val) {
|
||||||
|
// 触发 update:page 事件,更新 limit 属性,从而更新 pageNo
|
||||||
|
emit('update:page', val)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const pageSize = computed({
|
||||||
|
get() {
|
||||||
|
return props.limit
|
||||||
|
},
|
||||||
|
set(val) {
|
||||||
|
// 触发 update:limit 事件,更新 limit 属性,从而更新 pageSize
|
||||||
|
emit('update:limit', val)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const handleSizeChange = (val) => {
|
||||||
|
// 如果修改后超过最大页面,强制跳转到第 1 页
|
||||||
|
if (currentPage.value * val > props.total) {
|
||||||
|
currentPage.value = 1
|
||||||
|
}
|
||||||
|
// 触发 pagination 事件,重新加载列表
|
||||||
|
emit('pagination', { page: currentPage.value, limit: val })
|
||||||
|
}
|
||||||
|
const handleCurrentChange = (val) => {
|
||||||
|
// 触发 pagination 事件,重新加载列表
|
||||||
|
emit('pagination', { page: val, limit: pageSize.value })
|
||||||
|
}
|
||||||
|
</script>
|
325
mes-ui/mes-ui-admin-vue3/src/views/heli/orderys/record.vue
Normal file
325
mes-ui/mes-ui-admin-vue3/src/views/heli/orderys/record.vue
Normal file
@ -0,0 +1,325 @@
|
|||||||
|
<template>
|
||||||
|
<ContentWrap>
|
||||||
|
<!-- 搜索工作栏 -->
|
||||||
|
<el-form
|
||||||
|
class="-mb-15px"
|
||||||
|
:model="queryParams"
|
||||||
|
ref="queryFormRef"
|
||||||
|
:inline="true"
|
||||||
|
label-width="100px"
|
||||||
|
>
|
||||||
|
<!-- <el-form-item label="项目编号" prop="code">-->
|
||||||
|
<!-- <el-input-->
|
||||||
|
<!-- v-model="queryParams.code"-->
|
||||||
|
<!-- placeholder="请输入项目编号"-->
|
||||||
|
<!-- clearable-->
|
||||||
|
<!-- @keyup.enter="handleQuery"-->
|
||||||
|
<!-- class="!w-240px"-->
|
||||||
|
<!-- />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<el-form-item label="项目名称" prop="projectName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.projectName"
|
||||||
|
placeholder="请输入项目名称"
|
||||||
|
clearable
|
||||||
|
@keyup.enter="handleQuery"
|
||||||
|
class="!w-200px"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="客户名称" prop="cgKhname">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.cgKhname"
|
||||||
|
placeholder="请输入客户名称"
|
||||||
|
clearable
|
||||||
|
@keyup.enter="handleQuery"
|
||||||
|
class="!w-200px"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="回款状态" prop="cgTypee">
|
||||||
|
<!-- <el-input-->
|
||||||
|
<!-- v-model="queryParams.cgTypee"-->
|
||||||
|
<!-- placeholder="请输入是否回款完成"-->
|
||||||
|
<!-- clearable-->
|
||||||
|
<!-- @keyup.enter="handleQuery"-->
|
||||||
|
<!-- class="!w-240px"-->
|
||||||
|
<!-- />-->
|
||||||
|
<el-select
|
||||||
|
v-model="queryParams.cgTypee"
|
||||||
|
placeholder="请选择"
|
||||||
|
clearable
|
||||||
|
class="!w-200px"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_YINGFU_MONEY)"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item>
|
||||||
|
<el-button @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-button-->
|
||||||
|
<!-- type="primary"-->
|
||||||
|
<!-- plain-->
|
||||||
|
<!-- @click="openForm('create')"-->
|
||||||
|
<!-- v-hasPermi="['heli:order-ys:create']"-->
|
||||||
|
<!-- >-->
|
||||||
|
<!-- <Icon icon="ep:plus" class="mr-5px" /> 新增-->
|
||||||
|
<!-- </el-button>-->
|
||||||
|
<!-- <el-button-->
|
||||||
|
<!-- type="success"-->
|
||||||
|
<!-- plain-->
|
||||||
|
<!-- @click="handleExport"-->
|
||||||
|
<!-- :loading="exportLoading"-->
|
||||||
|
<!-- v-hasPermi="['heli:order-ys:export']"-->
|
||||||
|
<!-- >-->
|
||||||
|
<!-- <Icon icon="ep:download" 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" @row-click="rowClick" :row-class-name="tableRowClassName" highlight-current-row>
|
||||||
|
<el-table-column label="项目名称" align="center" prop="projectName" width="150"/>
|
||||||
|
<!-- <el-table-column-->
|
||||||
|
<!-- label="生成日期"-->
|
||||||
|
<!-- align="center"-->
|
||||||
|
<!-- prop="cgTime"-->
|
||||||
|
<!-- :formatter="dateFormatter"-->
|
||||||
|
<!-- width="250px"-->
|
||||||
|
<!-- />-->
|
||||||
|
<el-table-column label="客户名称" align="center" prop="cgKhname" width="200px"/>
|
||||||
|
<el-table-column
|
||||||
|
label="预计回款日期"
|
||||||
|
align="center"
|
||||||
|
prop="paymentDate"
|
||||||
|
:formatter="dateFormatter1"
|
||||||
|
width="200px"
|
||||||
|
/>
|
||||||
|
<el-table-column label="应收金额(元)" align="center" prop="cgYs" width="150"/>
|
||||||
|
<el-table-column label="已收金额(元)" align="center" prop="cgYishou" width="150"/>
|
||||||
|
<el-table-column label="已开票金额(元)" align="center" prop="amount" width="150"/>
|
||||||
|
<el-table-column label="回款状态" align="center" prop="cgTypee" width="150" >
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :type="DICT_TYPE.HELI_YINGFU_MONEY" :value="scope.row.cgTypee" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- <el-table-column label="项目编号" align="center" prop="code" width="180"/>-->
|
||||||
|
<el-table-column label="备注" align="center" prop="rem" />
|
||||||
|
<!-- <el-table-column label="操作" align="center" width="180">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <el-button-->
|
||||||
|
<!-- link-->
|
||||||
|
<!-- type="primary"-->
|
||||||
|
<!-- @click="openForm('update', scope.row.id)"-->
|
||||||
|
<!-- v-hasPermi="['heli:order-ys:update']"-->
|
||||||
|
<!-- >-->
|
||||||
|
<!-- 编辑-->
|
||||||
|
<!-- </el-button>-->
|
||||||
|
<!-- <el-button v-if=" scope.row.cgYishou==null"-->
|
||||||
|
<!-- link-->
|
||||||
|
<!-- type="danger"-->
|
||||||
|
<!-- @click="handleDelete(scope.row.id)"-->
|
||||||
|
<!-- v-hasPermi="['heli:order-ys:delete']"-->
|
||||||
|
<!-- >-->
|
||||||
|
<!-- 删除-->
|
||||||
|
<!-- </el-button>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
</el-table>
|
||||||
|
<!-- 分页 -->
|
||||||
|
<Paginations
|
||||||
|
:total="total"
|
||||||
|
v-model:page="queryParams.pageNo"
|
||||||
|
v-model:limit="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
<div class="footer">
|
||||||
|
<el-table :data="OrderYsDetailLiat" highlight-current-row style="width: 50%; height: 100%">
|
||||||
|
<el-table-column prop="paymentDate" label="回款日期" :formatter="dateFormatter2"
|
||||||
|
/>
|
||||||
|
<el-table-column prop="cgType" label="回款类型" >
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :type="DICT_TYPE.HELI_CGTYPE" :value="scope.row.cgType" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="cgYishou" label="回款金额" />
|
||||||
|
</el-table>
|
||||||
|
<el-table :data="InvoiceList" class="ml-10" style="width: 50%;height: 100%">
|
||||||
|
<el-table-column label="发票编码" align="center" prop="number"/>
|
||||||
|
|
||||||
|
<el-table-column
|
||||||
|
label="开票日期"
|
||||||
|
align="center"
|
||||||
|
prop="billingDate"
|
||||||
|
:formatter="dateFormatter2"
|
||||||
|
/>
|
||||||
|
<el-table-column label="发票金额" align="center" prop="amount" />
|
||||||
|
<el-table-column label="发票类型" align="center" prop="type" width="160">
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :type="DICT_TYPE.HELI_INVOICE_TYPE" :value="scope.row.type" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="税率(%)" align="center" prop="rate" width="140" />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</ContentWrap>
|
||||||
|
|
||||||
|
<!-- 表单弹窗:添加/修改 -->
|
||||||
|
<!-- <OrderYsForm ref="formRef" @success="getList" />-->
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import {dateFormatter, dateFormatter1, dateFormatter2} from '@/utils/formatTime'
|
||||||
|
import download from '@/utils/download'
|
||||||
|
import Paginations from './pagination.vue'
|
||||||
|
import * as OrderYsApi from '@/api/heli/orderys'
|
||||||
|
import OrderYsForm from './OrderYsForm.vue'
|
||||||
|
import {DICT_TYPE, getIntDictOptions} from "@/utils/dict";
|
||||||
|
import * as OrderYsDetailApi from "@/api/heli/orderysdetail";
|
||||||
|
import * as InvoiceApi from "@/api/heli/invoice";
|
||||||
|
|
||||||
|
defineOptions({ name: 'OrderYs' })
|
||||||
|
|
||||||
|
const message = useMessage() // 消息弹窗
|
||||||
|
const { t } = useI18n() // 国际化
|
||||||
|
|
||||||
|
const loading = ref(true) // 列表的加载中
|
||||||
|
const list = ref([]) // 列表的数据
|
||||||
|
const OrderYsDetailLiat = ref([]) // 列表的数据
|
||||||
|
const InvoiceList = ref([]) // 列表的数据
|
||||||
|
const total = ref(0) // 列表的总页数
|
||||||
|
const queryParams = reactive({
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 5,
|
||||||
|
createTime: [],
|
||||||
|
code: undefined,
|
||||||
|
projectName: undefined,
|
||||||
|
cgTime: [],
|
||||||
|
cgKhname: undefined,
|
||||||
|
cgYs: undefined,
|
||||||
|
cgYishou: undefined,
|
||||||
|
cgTypee: undefined,
|
||||||
|
rem: undefined,
|
||||||
|
})
|
||||||
|
const queryFormRef = ref() // 搜索的表单
|
||||||
|
const exportLoading = ref(false) // 导出的加载中
|
||||||
|
|
||||||
|
/** 查询列表 */
|
||||||
|
const getList = async () => {
|
||||||
|
loading.value = true
|
||||||
|
try {
|
||||||
|
const data = await OrderYsApi.getOrderYsPage(queryParams)
|
||||||
|
list.value = data.list
|
||||||
|
total.value = data.total
|
||||||
|
} finally {
|
||||||
|
loading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
const handleQuery = () => {
|
||||||
|
queryParams.pageNo = 1
|
||||||
|
getList()
|
||||||
|
}
|
||||||
|
/** 处理某一行的点击 */
|
||||||
|
const rowClick = async (row) => {
|
||||||
|
OrderYsDetailLiat.value= await OrderYsDetailApi.getOrderYsDetails(row.id)
|
||||||
|
InvoiceList.value= await InvoiceApi.getOrderYsInvoice(row.code)
|
||||||
|
// OrderYsDetailLiat.value.map(item=>{item.cgTypee=Number(item.cgTypee)})
|
||||||
|
}
|
||||||
|
const tableRowClassName = ({ row }) => {
|
||||||
|
if (row.paymentDate!=null){
|
||||||
|
var endTime = new Date(row.paymentDate);
|
||||||
|
|
||||||
|
// 获取当前时间的 Date 对象
|
||||||
|
var currentTime = new Date();
|
||||||
|
|
||||||
|
// 将 endTime 和 currentTime 的时间部分设置为零
|
||||||
|
endTime.setHours(0, 0, 0, 0);
|
||||||
|
currentTime.setHours(0, 0, 0, 0);
|
||||||
|
if (endTime < currentTime){
|
||||||
|
console.log(1)
|
||||||
|
return 'warning-row1';
|
||||||
|
}else {
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
const resetQuery = () => {
|
||||||
|
OrderYsDetailLiat.value=[]
|
||||||
|
InvoiceList.value=[]
|
||||||
|
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 OrderYsApi.deleteOrderYs(id)
|
||||||
|
message.success(t('common.delSuccess'))
|
||||||
|
// 刷新列表
|
||||||
|
await getList()
|
||||||
|
} catch {}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
const handleExport = async () => {
|
||||||
|
try {
|
||||||
|
// 导出的二次确认
|
||||||
|
await message.exportConfirm()
|
||||||
|
// 发起导出
|
||||||
|
exportLoading.value = true
|
||||||
|
const data = await OrderYsApi.exportOrderYs(queryParams)
|
||||||
|
download.excel(data, '应收记录.xls')
|
||||||
|
} catch {
|
||||||
|
} finally {
|
||||||
|
exportLoading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 初始化 **/
|
||||||
|
onMounted(() => {
|
||||||
|
getList()
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.ml-10 {
|
||||||
|
>>> .el-scrollbar__wrap {
|
||||||
|
margin-left: 10px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
margin-top: 10px;
|
||||||
|
height: 200px;
|
||||||
|
width: 100%;
|
||||||
|
flex-shrink: 0;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.ml-10 {
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.warning-row1 {
|
||||||
|
background-color:#F08080 !important;
|
||||||
|
}
|
||||||
|
</style>
|
@ -328,7 +328,7 @@ ref="subFormRef" :model="formData.projectPlanSubs" :rules="subFormRules"
|
|||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<el-form-item :prop="`${$index}.projectSubShortName`" :rules="subFormRules.projectSubShortName" class="mb-0px!">
|
<el-form-item :prop="`${$index}.projectSubShortName`" :rules="subFormRules.projectSubShortName" class="mb-0px!">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="row.projectSubShortName" placeholder="子项目简码"
|
v-model="row.projectSubShortName" placeholder="子项目简码" disabled
|
||||||
@change="(name) => handleSubCode(row, name)" />
|
@change="(name) => handleSubCode(row, name)" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
@ -508,18 +508,51 @@ style="width: 100%" v-model="row.endDate" type="date" value-format="x"
|
|||||||
<el-table-column min-width="150" label="责任人" align="center">
|
<el-table-column min-width="150" label="责任人" align="center">
|
||||||
<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 style="width: 100%" v-model="row.owner" clearable filterable @update:new-value="handleSelectedUser9($index,$event)" v-if="row.name!='检验'&&row.name!='预验收'&&row.name!='装配'">
|
<!-- <el-select style="width: 100%" v-model="row.owner" clearable filterable @update:new-value="handleSelectedUser9($index,$event)" v-if="row.name!='检验'&&row.name!='预验收'&&row.name!='装配'">-->
|
||||||
<el-option v-for="dict in mergedArray" :key="dict.id"
|
<!-- <el-option v-for="dict in mergedArray" :key="dict.id"-->
|
||||||
:label="dict.username+' '+dict.nickname" :value="dict.id" />
|
<!-- :label="dict.username+' '+dict.nickname" :value="dict.id" />-->
|
||||||
</el-select>
|
<!-- </el-select>-->
|
||||||
<el-select style="width: 100%" v-model="row.owner" clearable filterable @update:new-value="handleSelectedUser9($index,$event)" v-if="row.name=='检验'||row.name=='预验收'">
|
<!-- <el-select style="width: 100%" v-model="row.owner" clearable filterable @update:new-value="handleSelectedUser9($index,$event)" v-if="row.name=='检验'||row.name=='预验收'">-->
|
||||||
<el-option v-for="dict in userInit2" :key="dict.id"
|
<!-- <el-option v-for="dict in userInit2" :key="dict.id"-->
|
||||||
|
<!-- :label="dict.username+' '+dict.nickname" :value="dict.id" />-->
|
||||||
|
<!-- </el-select>-->
|
||||||
|
<!-- <el-select style="width: 100%" v-model="row.owner" clearable filterable @update:new-value="handleSelectedUser9($index,$event)" v-if="row.name=='装配'">-->
|
||||||
|
<!-- <el-option v-for="dict in mergedArray1" :key="dict.id"-->
|
||||||
|
<!-- :label="dict.username+' '+dict.nickname" :value="dict.id" />-->
|
||||||
|
<!-- </el-select>-->
|
||||||
|
<el-select style="width: 100%" v-model="row.owner" clearable filterable @update:new-value="handleSelectedUser9($index,$event)" v-if="row.name=='母模/毛坯'">
|
||||||
|
<el-option v-for="dict in mergedArray" :key="dict.id"
|
||||||
:label="dict.username+' '+dict.nickname" :value="dict.id" />
|
:label="dict.username+' '+dict.nickname" :value="dict.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-select style="width: 100%" v-model="row.owner" clearable filterable @update:new-value="handleSelectedUser9($index,$event)" v-if="row.name=='装配'">
|
<el-select style="width: 100%" v-model="row.owner" clearable filterable @update:new-value="handleSelectedUser9($index,$event)" v-if="row.name=='粗,精加工'">
|
||||||
<el-option v-for="dict in mergedArray1" :key="dict.id"
|
<el-option v-for="dict in mergedArray1" :key="dict.id"
|
||||||
:label="dict.username+' '+dict.nickname" :value="dict.id" />
|
:label="dict.username+' '+dict.nickname" :value="dict.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
|
<el-select style="width: 100%" v-model="row.owner" clearable filterable @update:new-value="handleSelectedUser9($index,$event)" v-if="row.name=='热处理'">
|
||||||
|
<el-option v-for="dict in mergedArray2" :key="dict.id"
|
||||||
|
:label="dict.username+' '+dict.nickname" :value="dict.id" />
|
||||||
|
</el-select>
|
||||||
|
<el-select style="width: 100%" v-model="row.owner" clearable filterable @update:new-value="handleSelectedUser9($index,$event)" v-if="row.name=='电火花'">
|
||||||
|
<el-option v-for="dict in mergedArray3" :key="dict.id"
|
||||||
|
:label="dict.username+' '+dict.nickname" :value="dict.id" />
|
||||||
|
</el-select>
|
||||||
|
<el-select style="width: 100%" v-model="row.owner" clearable filterable @update:new-value="handleSelectedUser9($index,$event)" v-if="row.name=='打孔/抛光'">
|
||||||
|
<el-option v-for="dict in mergedArray4" :key="dict.id"
|
||||||
|
:label="dict.username+' '+dict.nickname" :value="dict.id" />
|
||||||
|
</el-select>
|
||||||
|
<el-select style="width: 100%" v-model="row.owner" clearable filterable @update:new-value="handleSelectedUser9($index,$event)" v-if="row.name=='装配'">
|
||||||
|
<el-option v-for="dict in mergedArray5" :key="dict.id"
|
||||||
|
:label="dict.username+' '+dict.nickname" :value="dict.id" />
|
||||||
|
</el-select>
|
||||||
|
<el-select style="width: 100%" v-model="row.owner" clearable filterable @update:new-value="handleSelectedUser9($index,$event)" v-if="row.name=='预验收'">
|
||||||
|
<el-option v-for="dict in mergedArray6" :key="dict.id"
|
||||||
|
:label="dict.username+' '+dict.nickname" :value="dict.id" />
|
||||||
|
</el-select>
|
||||||
|
<el-select style="width: 100%" v-model="row.owner" clearable filterable @update:new-value="handleSelectedUser9($index,$event)" v-if="row.name=='检验'">
|
||||||
|
<el-option v-for="dict in mergedArray7" :key="dict.id"
|
||||||
|
:label="dict.username+' '+dict.nickname" :value="dict.id" />
|
||||||
|
</el-select>
|
||||||
|
|
||||||
<!-- <UserSelect v-model="row.owner" @update:new-value="handleSelectedUser9($index,$event)" class="!w-265px"/>-->
|
<!-- <UserSelect v-model="row.owner" @update:new-value="handleSelectedUser9($index,$event)" class="!w-265px"/>-->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
@ -1456,7 +1489,7 @@ const handleCraftInfo = (val) =>{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
const handleSubCode = (row, name) => {
|
const handleSubCode = (row, name) => {
|
||||||
row.projectSubCode = name.length==0?"" : (formData.value.projectCode + '-' + customerInit.value.brief + '-' + name)
|
// row.projectSubCode = name.length==0?"" : (formData.value.projectCode + '-' + customerInit.value.brief + '-' + name)
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleMouldType = async (scope, mid) => {
|
const handleMouldType = async (scope, mid) => {
|
||||||
@ -1575,6 +1608,12 @@ const userInit2= ref()
|
|||||||
const userInit3= ref()
|
const userInit3= ref()
|
||||||
const mergedArray= ref()
|
const mergedArray= ref()
|
||||||
const mergedArray1= ref()
|
const mergedArray1= ref()
|
||||||
|
const mergedArray2= ref()
|
||||||
|
const mergedArray3= ref()
|
||||||
|
const mergedArray4= ref()
|
||||||
|
const mergedArray5= ref()
|
||||||
|
const mergedArray6= ref()
|
||||||
|
const mergedArray7= ref()
|
||||||
const equipInit = ref()
|
const equipInit = ref()
|
||||||
const mouldTypeList = ref()
|
const mouldTypeList = ref()
|
||||||
const customerInit = ref()
|
const customerInit = ref()
|
||||||
@ -1584,7 +1623,6 @@ onMounted(async () => {
|
|||||||
userInit1.value = await UserApi.getDeptName("生产部")
|
userInit1.value = await UserApi.getDeptName("生产部")
|
||||||
userInit2.value = await UserApi.getDeptName("检验部")
|
userInit2.value = await UserApi.getDeptName("检验部")
|
||||||
userInit3.value=await UserApi.getDeptName("采购部")
|
userInit3.value=await UserApi.getDeptName("采购部")
|
||||||
mergedArray.value = [...userInit1.value, ...userInit3.value];
|
|
||||||
// 模具类型下拉列表数据
|
// 模具类型下拉列表数据
|
||||||
mouldTypeList.value = await MouldTypeApi.getSimpList()
|
mouldTypeList.value = await MouldTypeApi.getSimpList()
|
||||||
// 设备信息下拉列表数据
|
// 设备信息下拉列表数据
|
||||||
@ -1592,12 +1630,111 @@ onMounted(async () => {
|
|||||||
// 获取库存信息
|
// 获取库存信息
|
||||||
formData.value = await PlanApi.getPlan(query.id)
|
formData.value = await PlanApi.getPlan(query.id)
|
||||||
formData.value.hasCraft = 1
|
formData.value.hasCraft = 1
|
||||||
const zp = await ProjectLeaderApi.getProjectLeaderType(4)
|
const data = await ProjectLeaderApi.getProjectLeaderType(4)
|
||||||
|
const data1 = await ProjectLeaderApi.getProjectLeaderType(5)
|
||||||
|
const data2 = await ProjectLeaderApi.getProjectLeaderType(6)
|
||||||
|
const data3 = await ProjectLeaderApi.getProjectLeaderType(7)
|
||||||
|
const data4 = await ProjectLeaderApi.getProjectLeaderType(8)
|
||||||
|
const data5 = await ProjectLeaderApi.getProjectLeaderType(9)
|
||||||
|
const data6 = await ProjectLeaderApi.getProjectLeaderType(10)
|
||||||
|
const data7 = await ProjectLeaderApi.getProjectLeaderType(11)
|
||||||
|
mergedArray.value = [...userInit1.value, ...userInit3.value];
|
||||||
mergedArray1.value = [...userInit1.value, ...userInit3.value];
|
mergedArray1.value = [...userInit1.value, ...userInit3.value];
|
||||||
if (zp) { // 自动过滤 null/undefined
|
mergedArray2.value = [...userInit1.value, ...userInit3.value];
|
||||||
console.log(zp)
|
mergedArray3.value = [...userInit1.value, ...userInit3.value];
|
||||||
mergedArray1.value.push({ id: zp.owner, username: zp.userName, nickname: zp.ownerName });
|
mergedArray4.value = [...userInit1.value, ...userInit3.value];
|
||||||
console.log(mergedArray1.value)
|
mergedArray5.value = [...userInit1.value, ...userInit3.value];
|
||||||
|
mergedArray6.value = [...userInit2.value];
|
||||||
|
mergedArray7.value = [...userInit2.value];
|
||||||
|
if (data&&data.owner) { // 自动过滤 null/undefined
|
||||||
|
// 检查 mergedArray1 是否已存在相同 id 的数据
|
||||||
|
const isOwnerExist = mergedArray.value.some(item => item.id === data.owner);
|
||||||
|
// 如果不存在,才 push 新数据
|
||||||
|
if (!isOwnerExist) {
|
||||||
|
mergedArray.value.push({
|
||||||
|
id: data.owner,
|
||||||
|
username: data.userName,
|
||||||
|
nickname: data.ownerName
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (data1&&data1.owner) {
|
||||||
|
const isOwnerExist = mergedArray1.value.some(item => item.id === data1.owner);
|
||||||
|
// 如果不存在,才 push 新数据
|
||||||
|
if (!isOwnerExist) {
|
||||||
|
mergedArray1.value.push({
|
||||||
|
id: data1.owner,
|
||||||
|
username: data1.userName,
|
||||||
|
nickname: data1.ownerName
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (data2&&data2.owner) {
|
||||||
|
const isOwnerExist = mergedArray2.value.some(item => item.id === data2.owner);
|
||||||
|
// 如果不存在,才 push 新数据
|
||||||
|
if (!isOwnerExist) {
|
||||||
|
mergedArray2.value.push({
|
||||||
|
id: data2.owner,
|
||||||
|
username: data2.userName,
|
||||||
|
nickname: data2.ownerName
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (data3&&data3.owner) {
|
||||||
|
const isOwnerExist = mergedArray3.value.some(item => item.id === data3.owner);
|
||||||
|
// 如果不存在,才 push 新数据
|
||||||
|
if (!isOwnerExist) {
|
||||||
|
mergedArray3.value.push({
|
||||||
|
id: data3.owner,
|
||||||
|
username: data3.userName,
|
||||||
|
nickname: data3.ownerName
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (data4&&data4.owner) {
|
||||||
|
const isOwnerExist = mergedArray4.value.some(item => item.id === data4.owner);
|
||||||
|
// 如果不存在,才 push 新数据
|
||||||
|
if (!isOwnerExist) {
|
||||||
|
mergedArray4.value.push({
|
||||||
|
id: data4.owner,
|
||||||
|
username: data4.userName,
|
||||||
|
nickname: data4.ownerName
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (data5&&data5.owner) {
|
||||||
|
const isOwnerExist = mergedArray5.value.some(item => item.id === data5.owner);
|
||||||
|
// 如果不存在,才 push 新数据
|
||||||
|
if (!isOwnerExist) {
|
||||||
|
mergedArray5.value.push({
|
||||||
|
id: data5.owner,
|
||||||
|
username: data5.userName,
|
||||||
|
nickname: data5.ownerName
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (data6&&data6.owner) {
|
||||||
|
const isOwnerExist = mergedArray6.value.some(item => item.id === data6.owner);
|
||||||
|
// 如果不存在,才 push 新数据
|
||||||
|
if (!isOwnerExist) {
|
||||||
|
mergedArray6.value.push({
|
||||||
|
id: data6.owner,
|
||||||
|
username: data6.userName,
|
||||||
|
nickname: data6.ownerName
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (data7&&data7.owner) { // 自动过滤 null/undefined
|
||||||
|
const isOwnerExist = mergedArray7.value.some(item => item.id === data7.owner);
|
||||||
|
// 如果不存在,才 push 新数据
|
||||||
|
if (!isOwnerExist) {
|
||||||
|
mergedArray7.value.push({
|
||||||
|
id: data7.owner,
|
||||||
|
username: data7.userName,
|
||||||
|
nickname: data7.ownerName
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
await handleInitPlanSub()
|
await handleInitPlanSub()
|
||||||
var projectInit = await ProjectOrderApi.getProjectOrder(formData.value.projectId)
|
var projectInit = await ProjectOrderApi.getProjectOrder(formData.value.projectId)
|
||||||
@ -1651,14 +1788,71 @@ if (formData.value.editor==null||formData.value.editor==undefined){
|
|||||||
//装配的负责人
|
//装配的负责人
|
||||||
const craftInfos = formData.value.craftInfos;
|
const craftInfos = formData.value.craftInfos;
|
||||||
for (var i = 0; i < craftInfos.length; i++) {
|
for (var i = 0; i < craftInfos.length; i++) {
|
||||||
if (craftInfos[i].name=='装配'){
|
if (craftInfos[i].name=='母模/毛坯'){
|
||||||
if (craftInfos[i].owner==null||craftInfos[i].owner==undefined||craftInfos[i].owner==''){
|
if (craftInfos[i].owner==null||craftInfos[i].owner==undefined||craftInfos[i].owner==''){
|
||||||
if (zp!=null){
|
if (data&&data.owner){
|
||||||
craftInfos[i].owner =zp.owner
|
craftInfos[i].owner =data.owner
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (craftInfos[i].name=='粗,精加工'){
|
||||||
|
if (craftInfos[i].owner==null||craftInfos[i].owner==undefined||craftInfos[i].owner==''){
|
||||||
|
if (data1&&data1.owner){
|
||||||
|
craftInfos[i].owner =data1.owner
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (craftInfos[i].name=='热处理'){
|
||||||
|
if (craftInfos[i].owner==null||craftInfos[i].owner==undefined||craftInfos[i].owner==''){
|
||||||
|
if (data2&&data2.owner){
|
||||||
|
craftInfos[i].owner =data2.owner
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (craftInfos[i].name=='电火花'){
|
||||||
|
if (craftInfos[i].owner==null||craftInfos[i].owner==undefined||craftInfos[i].owner==''){
|
||||||
|
if (data3&&data3.owner){
|
||||||
|
craftInfos[i].owner =data3.owner
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (craftInfos[i].name=='打孔/抛光'){
|
||||||
|
if (craftInfos[i].owner==null||craftInfos[i].owner==undefined||craftInfos[i].owner==''){
|
||||||
|
if (data4&&data4.owner){
|
||||||
|
craftInfos[i].owner =data4.owner
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (craftInfos[i].name=='装配'){
|
||||||
|
if (craftInfos[i].owner==null||craftInfos[i].owner==undefined||craftInfos[i].owner==''){
|
||||||
|
if (data5&&data5.owner){
|
||||||
|
craftInfos[i].owner =data5.owner
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (craftInfos[i].name=='预验收'){
|
||||||
|
if (craftInfos[i].owner==null||craftInfos[i].owner==undefined||craftInfos[i].owner==''){
|
||||||
|
if (data6&&data6.owner){
|
||||||
|
craftInfos[i].owner =data6.owner
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (craftInfos[i].name=='检验'){
|
||||||
|
if (craftInfos[i].owner==null||craftInfos[i].owner==undefined||craftInfos[i].owner==''){
|
||||||
|
if (data7&&data7.owner){
|
||||||
|
craftInfos[i].owner =data7.owner
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -1685,7 +1879,6 @@ const handleSelectedUser5 = (newValue: any) => {
|
|||||||
}
|
}
|
||||||
// 毛坯负责人
|
// 毛坯负责人
|
||||||
const handleSelectedUser6 = (currentIndex,newValue: any) => {
|
const handleSelectedUser6 = (currentIndex,newValue: any) => {
|
||||||
console.log("111"+currentIndex)
|
|
||||||
formData.value.projectPlanSubs[currentIndex].blankOwner = newValue?.id
|
formData.value.projectPlanSubs[currentIndex].blankOwner = newValue?.id
|
||||||
}
|
}
|
||||||
// 设备型号
|
// 设备型号
|
||||||
|
@ -75,15 +75,6 @@ class="!w-250px" :disabled="alterDisabled || detailDisabled || priceDisabled"
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="项目简码" prop="projectNameSim">
|
|
||||||
<el-input
|
|
||||||
class="!w-250px" :disabled="alterDisabled || detailDisabled || priceDisabled"
|
|
||||||
v-model="formData.projectNameSim" placeholder="请输入项目简码" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="项目开始日期" prop="projectStartTime">
|
<el-form-item label="项目开始日期" prop="projectStartTime">
|
||||||
@ -182,27 +173,13 @@ class="!w-250px" v-model="formData.businessMan"
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="所属业务线" prop="businessLine">
|
|
||||||
<el-select
|
|
||||||
class="!w-250px" v-model="formData.businessLine"
|
|
||||||
placeholder="请选择所属业务线" :disabled="alterDisabled || detailDisabled">
|
|
||||||
<el-option
|
|
||||||
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_BUSINESS_LINE)"
|
|
||||||
:key="dict.value" :label="dict.label" :value="dict.value" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
 
|
<el-form-item label="项目简码" prop="projectNameSim">
|
||||||
</el-col>
|
<el-input
|
||||||
</el-row>
|
class="!w-250px" :disabled="alterDisabled || detailDisabled || priceDisabled"
|
||||||
<el-row>
|
v-model="formData.projectNameSim" placeholder="请输入项目简码" />
|
||||||
<el-col :span="24">
|
</el-form-item>
|
||||||
 
|
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
@ -275,13 +252,26 @@ class="!w-703px" :disabled="detailDisabled || priceDisabled"
|
|||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-row>
|
<!-- <el-row>-->
|
||||||
<el-col :span="24">
|
<!-- <el-col :span="24">-->
|
||||||
<el-form-item label="单据状态" prop="orderStatus">
|
<!-- <el-form-item label="单据状态" prop="orderStatus">-->
|
||||||
{{ getDictLabel(DICT_TYPE.HELI_PROJECT_ORDER_STATUS, formData.orderStatus) }}
|
<!-- {{ getDictLabel(DICT_TYPE.HELI_PROJECT_ORDER_STATUS, formData.orderStatus) }}-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
</el-col>
|
<!-- </el-col>-->
|
||||||
</el-row>
|
<!-- </el-row>-->
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="性质" prop="property">
|
||||||
|
<el-select
|
||||||
|
class="!w-250px" :class="{ 'alter-class': fieldHasAlter('property') }"
|
||||||
|
:disabled="detailDisabled || priceDisabled" v-model="formData.property" placeholder="请选择性质">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PROPERTY)"
|
||||||
|
:key="dict.value" :label="dict.label" :value="dict.value" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="客户名称" prop="customerId">
|
<el-form-item label="客户名称" prop="customerId">
|
||||||
@ -292,19 +282,19 @@ class="!w-703px" :disabled="detailDisabled || priceDisabled"
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="性质" prop="property">
|
<el-form-item label="所属业务线" prop="businessLine">
|
||||||
<el-select
|
<el-select
|
||||||
class="!w-250px" :class="{ 'alter-class': fieldHasAlter('property') }"
|
class="!w-250px" v-model="formData.businessLine"
|
||||||
:disabled="detailDisabled || priceDisabled" v-model="formData.property" placeholder="请选择性质">
|
placeholder="请选择所属业务线" :disabled="alterDisabled || detailDisabled">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PROPERTY)"
|
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_BUSINESS_LINE)"
|
||||||
:key="dict.value" :label="dict.label" :value="dict.value" />
|
:key="dict.value" :label="dict.label" :value="dict.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="是否有价格" prop="hasPrice">
|
<el-form-item label="是否有价格" prop="hasPrice">
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<template #header>
|
<template #header>
|
||||||
<span>每日报工记录</span>
|
<span>每日报工记录</span>
|
||||||
</template>
|
</template>
|
||||||
<ContentWrap>
|
<ContentWrap class="fixed-search">
|
||||||
<!-- 搜索工作栏 -->
|
<!-- 搜索工作栏 -->
|
||||||
<el-form
|
<el-form
|
||||||
class="-mb-15px"
|
class="-mb-15px"
|
||||||
@ -12,13 +12,33 @@
|
|||||||
:inline="true"
|
:inline="true"
|
||||||
label-width="110px"
|
label-width="110px"
|
||||||
>
|
>
|
||||||
|
<el-form-item label="起始日期" prop="startTime">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="queryParams.startTime"
|
||||||
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
|
type="daterange"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
class="!w-280px"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="结束日期" prop="startTime">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="queryParams.endTime"
|
||||||
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
|
type="daterange"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
class="!w-280px"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="项目编号" prop="projectCode">
|
<el-form-item label="项目编号" prop="projectCode">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.projectCode"
|
v-model="queryParams.projectCode"
|
||||||
placeholder="请输入项目编号"
|
placeholder="请输入项目编号"
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter="handleQuery"
|
@keyup.enter="handleQuery"
|
||||||
class="!w-240px"
|
class="!w-280px"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="项目名称" prop="projectName">
|
<el-form-item label="项目名称" prop="projectName">
|
||||||
@ -27,7 +47,7 @@
|
|||||||
placeholder="请输入项目名称"
|
placeholder="请输入项目名称"
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter="handleQuery"
|
@keyup.enter="handleQuery"
|
||||||
class="!w-240px"
|
class="!w-280px"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="子项目名称" prop="projectSubName">
|
<el-form-item label="子项目名称" prop="projectSubName">
|
||||||
@ -36,7 +56,7 @@
|
|||||||
placeholder="请输入子项目名称"
|
placeholder="请输入子项目名称"
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter="handleQuery"
|
@keyup.enter="handleQuery"
|
||||||
class="!w-240px"
|
class="!w-280px"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="零件名称" prop="materialName">
|
<el-form-item label="零件名称" prop="materialName">
|
||||||
@ -45,7 +65,7 @@
|
|||||||
placeholder="请输入零件名称"
|
placeholder="请输入零件名称"
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter="handleQuery"
|
@keyup.enter="handleQuery"
|
||||||
class="!w-240px"
|
class="!w-280px"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="报工人" prop="OwnerName">
|
<el-form-item label="报工人" prop="OwnerName">
|
||||||
@ -54,7 +74,7 @@
|
|||||||
placeholder="请输入报工人名称"
|
placeholder="请输入报工人名称"
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter="handleQuery"
|
@keyup.enter="handleQuery"
|
||||||
class="!w-240px"
|
class="!w-280px"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item style="margin-left: 20px">
|
<el-form-item style="margin-left: 20px">
|
||||||
@ -74,30 +94,30 @@
|
|||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
|
|
||||||
<!-- 列表 -->
|
<!-- 列表 -->
|
||||||
<ContentWrap>
|
<ContentWrap class="table-container">
|
||||||
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" class="hl-table">
|
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" class="hl-table" height="500px">
|
||||||
<el-table-column fixed type="index" width="100" label="序号" align="center" />
|
<el-table-column fixed type="index" width="100" label="序号" align="center" />
|
||||||
<el-table-column fixed label="项目编号" align="center" prop="projectCode" width="220" />
|
<el-table-column fixed label="项目编号" align="center" prop="projectCode" width="220" />
|
||||||
<el-table-column fixed label="项目名称" align="center" prop="projectName" width="180" />
|
<el-table-column fixed label="项目名称" align="center" prop="projectName" width="180" />
|
||||||
<el-table-column fixed label="子项目名称" align="center" prop="projectSubName" width="180" />
|
<el-table-column fixed label="子项目名称" align="center" prop="projectSubName" width="180" />
|
||||||
<!-- <el-table-column label="子项目编号" align="center" prop="projectSubCode" width="260" />-->
|
<!-- <el-table-column label="子项目编号" align="center" prop="projectSubCode" width="260" />-->
|
||||||
<el-table-column label="派工单号" align="center" prop="dispatchCode" width="180" />
|
<!-- <el-table-column label="派工单号" align="center" prop="dispatchCode" width="180" />-->
|
||||||
<el-table-column label="零件名称" align="center" prop="materialName" width="180" />
|
<el-table-column label="零件名称" align="center" prop="materialName" width="180" />
|
||||||
<el-table-column label="规格型号" align="center" prop="spec" width="160" />
|
<!-- <el-table-column label="规格型号" align="center" prop="spec" width="160" />-->
|
||||||
<el-table-column label="报工人" align="center" prop="ownerName" />
|
<el-table-column label="报工人" align="center" prop="ownerName" />
|
||||||
<el-table-column label="报工工序" align="center" prop="procedureName" width="160" />
|
<el-table-column label="报工工序" align="center" prop="procedureName" width="160" />
|
||||||
<el-table-column label="报工工时" align="center" prop="workTime" width="160" />
|
<el-table-column label="报工工时" align="center" prop="workTime" width="160" />
|
||||||
<el-table-column label="报工数量" align="center" prop="amount" width="120" />
|
<el-table-column label="报工数量" align="center" prop="amount" width="120" />
|
||||||
<el-table-column
|
<!-- <el-table-column-->
|
||||||
label="生产起止时间"
|
<!-- label="生产起止时间"-->
|
||||||
align="center"
|
<!-- align="center"-->
|
||||||
prop="startTime"
|
<!-- prop="startTime"-->
|
||||||
width="400"
|
<!-- width="400"-->
|
||||||
>
|
<!-- >-->
|
||||||
<template #default="scope">
|
<!-- <template #default="scope">-->
|
||||||
{{formatDate(scope.row.startTime)+'~'+formatDate(scope.row.endTime)}}
|
<!-- {{formatDate(scope.row.startTime)+'~'+formatDate(scope.row.endTime)}}-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
</el-table-column>
|
<!-- </el-table-column>-->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="报工记录提交时间"
|
label="报工记录提交时间"
|
||||||
align="center"
|
align="center"
|
||||||
@ -146,6 +166,7 @@ import {dateFormatter, formatDate} from '@/utils/formatTime'
|
|||||||
import download from '@/utils/download'
|
import download from '@/utils/download'
|
||||||
import * as TaskReportApi from '@/api/heli/taskreport'
|
import * as TaskReportApi from '@/api/heli/taskreport'
|
||||||
import TaskReportForm from './TaskReportForm.vue'
|
import TaskReportForm from './TaskReportForm.vue'
|
||||||
|
import dayjs from "dayjs";
|
||||||
|
|
||||||
defineOptions({ name: 'TaskReport' })
|
defineOptions({ name: 'TaskReport' })
|
||||||
|
|
||||||
@ -214,7 +235,17 @@ const handleDelete = async (id: number) => {
|
|||||||
await getList()
|
await getList()
|
||||||
} catch {}
|
} catch {}
|
||||||
}
|
}
|
||||||
|
// 设置默认时间为当天
|
||||||
|
const setDefaultDate = () => {
|
||||||
|
queryParams.startTime = [
|
||||||
|
dayjs().startOf('day').format('YYYY-MM-DD HH:mm:ss'),
|
||||||
|
dayjs().endOf('day').format('YYYY-MM-DD HH:mm:ss')
|
||||||
|
]
|
||||||
|
queryParams.endTime = [
|
||||||
|
dayjs().startOf('day').format('YYYY-MM-DD HH:mm:ss'),
|
||||||
|
dayjs().endOf('day').format('YYYY-MM-DD HH:mm:ss')
|
||||||
|
]
|
||||||
|
}
|
||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
const handleExport = async () => {
|
const handleExport = async () => {
|
||||||
try {
|
try {
|
||||||
@ -240,6 +271,27 @@ const handleExport = async () => {
|
|||||||
|
|
||||||
/** 初始化 **/
|
/** 初始化 **/
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
setDefaultDate()
|
||||||
getList()
|
getList()
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
/* 固定搜索栏样式 */
|
||||||
|
.fixed-search {
|
||||||
|
position: sticky;
|
||||||
|
top: 0;
|
||||||
|
z-index: 1000;
|
||||||
|
background: white;
|
||||||
|
padding: 16px;
|
||||||
|
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
/* 表格容器预留顶部空间 */
|
||||||
|
.table-container {
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 可选:调整搜索表单间距 */
|
||||||
|
.el-form-item {
|
||||||
|
margin-bottom: 16px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
Loading…
Reference in New Issue
Block a user