成本归集导出
This commit is contained in:
parent
41428661ea
commit
9a663001a5
@ -109,6 +109,13 @@ public class MaterialPlanController {
|
|||||||
PageResult<MaterialPlanDO> pageResult = materialPlanService.getMaterialPlanPages(pageReqVO);
|
PageResult<MaterialPlanDO> pageResult = materialPlanService.getMaterialPlanPages(pageReqVO);
|
||||||
return success(BeanUtils.toBean(pageResult, MaterialPlanRespVO.class));
|
return success(BeanUtils.toBean(pageResult, MaterialPlanRespVO.class));
|
||||||
}
|
}
|
||||||
|
@GetMapping("/pageData")
|
||||||
|
@Operation(summary = "获得库存补充管理分页")
|
||||||
|
@PreAuthorize("@ss.hasPermission('heli:material-plan:query')")
|
||||||
|
public CommonResult<PageResult<MaterialPlanRespVO>> getMaterialPlanPageData(@Valid MaterialPlanPageReqVO pageReqVO) {
|
||||||
|
PageResult<MaterialPlanDO> pageResult = materialPlanService.getMaterialPlanPageData(pageReqVO);
|
||||||
|
return success(BeanUtils.toBean(pageResult, MaterialPlanRespVO.class));
|
||||||
|
}
|
||||||
@DeleteMapping("/delMaterialPlanBoom")
|
@DeleteMapping("/delMaterialPlanBoom")
|
||||||
@Operation(summary = "删除物料需求计划")
|
@Operation(summary = "删除物料需求计划")
|
||||||
@Parameter(name = "id", description = "编号", required = true)
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
|
|||||||
@ -12,12 +12,14 @@ import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum;
|
|||||||
import com.chanko.yunxi.mes.framework.operatelog.core.service.OperateLogFrameworkService;
|
import com.chanko.yunxi.mes.framework.operatelog.core.service.OperateLogFrameworkService;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.*;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.*;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderSubDO;
|
||||||
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.projectorder.ProjectOrderDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorder.PurchaseOrderDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorder.PurchaseOrderDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.service.projectorder.dto.ExportResult;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.orderys.OrderYsMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.orderys.OrderYsMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder.ProjectOrderSubMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder.ProjectOrderSubMapper;
|
||||||
@ -27,7 +29,6 @@ import com.chanko.yunxi.mes.module.heli.service.deliverorder.DeliverOrderService
|
|||||||
import com.chanko.yunxi.mes.module.heli.service.orderys.OrderYsService;
|
import com.chanko.yunxi.mes.module.heli.service.orderys.OrderYsService;
|
||||||
import com.chanko.yunxi.mes.module.heli.service.processbom.ProcessBomService;
|
import com.chanko.yunxi.mes.module.heli.service.processbom.ProcessBomService;
|
||||||
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.purchaseorder.PurchaseOrderService;
|
|
||||||
import com.chanko.yunxi.mes.module.heli.service.storage.StorageService;
|
import com.chanko.yunxi.mes.module.heli.service.storage.StorageService;
|
||||||
import com.chanko.yunxi.mes.module.heli.service.taskdispatch.TaskDispatchService;
|
import com.chanko.yunxi.mes.module.heli.service.taskdispatch.TaskDispatchService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
@ -49,6 +50,7 @@ import java.math.RoundingMode;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -80,6 +82,10 @@ public class ProjectOrderController {
|
|||||||
private DeliverOrderService deliverOrderService;
|
private DeliverOrderService deliverOrderService;
|
||||||
@Resource
|
@Resource
|
||||||
private ProjectOrderSubMapper projectOrderSubMapper;
|
private ProjectOrderSubMapper projectOrderSubMapper;
|
||||||
|
@Resource
|
||||||
|
private StorageService storageService;
|
||||||
|
@Resource
|
||||||
|
private TaskDispatchService taskDispatchService;
|
||||||
@PostMapping("/create")
|
@PostMapping("/create")
|
||||||
@Operation(summary = "创建项目订单")
|
@Operation(summary = "创建项目订单")
|
||||||
@PreAuthorize("@ss.hasPermission('heli:project-order:create')")
|
@PreAuthorize("@ss.hasPermission('heli:project-order:create')")
|
||||||
@ -200,10 +206,16 @@ public class ProjectOrderController {
|
|||||||
projectOrderDO.setBiaoZhunJianCost(standardPartsCost);
|
projectOrderDO.setBiaoZhunJianCost(standardPartsCost);
|
||||||
|
|
||||||
|
|
||||||
//外协加工费
|
//外部材料成本
|
||||||
BigDecimal outsourcedProcessingFee;
|
BigDecimal outsourcedProcessingFee;
|
||||||
outsourcedProcessingFee=processBomService.outsourcedProcessingFee(projectOrderDO.getId(),projectOrderDO.getProjectSubId());
|
outsourcedProcessingFee=processBomService.outsourcedProcessingFee(projectOrderDO.getId(),projectOrderDO.getProjectSubId());
|
||||||
projectOrderDO.setWaixeiCost(outsourcedProcessingFee);
|
projectOrderDO.setWaixeiCost(outsourcedProcessingFee);
|
||||||
|
|
||||||
|
//外部材料加工费
|
||||||
|
BigDecimal jiagong;
|
||||||
|
jiagong=processBomService.outsourcedProcessingFee1(projectOrderDO.getId(),projectOrderDO.getProjectSubId());
|
||||||
|
projectOrderDO.setWaixeijiagong(jiagong);
|
||||||
|
|
||||||
//材料成本
|
//材料成本
|
||||||
BigDecimal materialCost;
|
BigDecimal materialCost;
|
||||||
materialCost=processBomService.materialCost(projectOrderDO.getId(),projectOrderDO.getProjectSubId());
|
materialCost=processBomService.materialCost(projectOrderDO.getId(),projectOrderDO.getProjectSubId());
|
||||||
@ -223,7 +235,7 @@ public class ProjectOrderController {
|
|||||||
yunFeiCost = deliverOrderService.getListYf(projectOrderDO.getId(),projectOrderDO.getProjectSubId());
|
yunFeiCost = deliverOrderService.getListYf(projectOrderDO.getId(),projectOrderDO.getProjectSubId());
|
||||||
projectOrderDO.setYunFeiCost(yunFeiCost);
|
projectOrderDO.setYunFeiCost(yunFeiCost);
|
||||||
|
|
||||||
BigDecimal sum = projectOrderDO.getYunFeiCost().add(projectOrderDO.getCailiaoCost()).add(projectOrderDO.getBiaoZhunJianCost()).add(projectOrderDO.getZpCost().add(projectOrderDO.getNeibuCost()).add(projectOrderDO.getWaixeiCost()));
|
BigDecimal sum = projectOrderDO.getYunFeiCost().add(projectOrderDO.getCailiaoCost()).add(projectOrderDO.getBiaoZhunJianCost()).add(projectOrderDO.getZpCost().add(projectOrderDO.getNeibuCost()).add(projectOrderDO.getWaixeiCost()).add(projectOrderDO.getWaixeijiagong()));
|
||||||
projectOrderDO.setSumCost(sum);
|
projectOrderDO.setSumCost(sum);
|
||||||
}
|
}
|
||||||
return success(BeanUtils.toBean(pageResult, ProjectOrderCostRespVO.class));
|
return success(BeanUtils.toBean(pageResult, ProjectOrderCostRespVO.class));
|
||||||
@ -325,5 +337,21 @@ public class ProjectOrderController {
|
|||||||
ExcelUtils.write(response, "项目成本归集.xlsx", "数据", ProjectOrderCostRespVO.class,
|
ExcelUtils.write(response, "项目成本归集.xlsx", "数据", ProjectOrderCostRespVO.class,
|
||||||
BeanUtils.toBean(list, ProjectOrderCostRespVO.class));
|
BeanUtils.toBean(list, ProjectOrderCostRespVO.class));
|
||||||
}
|
}
|
||||||
|
@GetMapping("/exportExcel")
|
||||||
|
@Operation(summary = "导出项目成本归集明细 Excel")
|
||||||
|
@PreAuthorize("@ss.hasPermission('heli:project-order:export')")
|
||||||
|
@OperateLog(type = EXPORT)
|
||||||
|
public void exportExcel(@Valid ProjectOrderCostPageReqVO pageReqVO,
|
||||||
|
HttpServletResponse response) throws IOException {
|
||||||
|
ExportResult result = projectOrderService.exportExcelData(pageReqVO);
|
||||||
|
exportExcelWithResult(response, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
private <T> void exportExcelWithResult(HttpServletResponse response, ExportResult result) throws IOException {
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
List<T> dataList = (List<T>) result.getDataList();
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
Class<T> voClass = (Class<T>) result.getVoClass();
|
||||||
|
ExcelUtils.write(response, result.getFileName(), result.getSheetName(), voClass, dataList);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,45 @@
|
|||||||
|
package com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import com.chanko.yunxi.mes.framework.excel.core.annotations.DictFormat;
|
||||||
|
import com.chanko.yunxi.mes.framework.excel.core.convert.DictConvert;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 项目订单 Response VO")
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
public class ProjectOrderBiaoRespVO {
|
||||||
|
|
||||||
|
|
||||||
|
@ExcelProperty("物料编号")
|
||||||
|
private String materialCode;
|
||||||
|
|
||||||
|
@ExcelProperty("物料名称")
|
||||||
|
private String materialName;
|
||||||
|
|
||||||
|
@ExcelProperty("单据类型")
|
||||||
|
private String orderType;
|
||||||
|
|
||||||
|
@ExcelProperty(value = "物料类型", converter = DictConvert.class)
|
||||||
|
@DictFormat("heli_material_type")
|
||||||
|
private Integer materialType;
|
||||||
|
|
||||||
|
@ExcelProperty("规格型号")
|
||||||
|
private String materialSpec;
|
||||||
|
@ExcelProperty("数量")
|
||||||
|
private String amount;
|
||||||
|
@ExcelProperty(value = "单位", converter = DictConvert.class)
|
||||||
|
@DictFormat("heli_material_unit")
|
||||||
|
private Integer unit;
|
||||||
|
@ExcelProperty("价格(元)")
|
||||||
|
private String caiGouMoney;
|
||||||
|
@ExcelProperty("单据编号")
|
||||||
|
private String stockNo;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
package com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 项目订单 Response VO")
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
public class ProjectOrderCaiRespVO {
|
||||||
|
|
||||||
|
|
||||||
|
@ExcelProperty("零件名称")
|
||||||
|
private String materialName;
|
||||||
|
|
||||||
|
@ExcelProperty("材质")
|
||||||
|
private String compositionName;
|
||||||
|
|
||||||
|
@ExcelProperty("规格型号")
|
||||||
|
private String spec;
|
||||||
|
@ExcelProperty("数量")
|
||||||
|
private String amount;
|
||||||
|
@ExcelProperty("泡沫")
|
||||||
|
private String paomo;
|
||||||
|
@ExcelProperty("下料1")
|
||||||
|
private String xialiao1;
|
||||||
|
@ExcelProperty("下料2")
|
||||||
|
private String xialiao2;
|
||||||
|
@ExcelProperty("单件成本")
|
||||||
|
private String assemblyLaborCost;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -37,7 +37,8 @@ public class ProjectOrderCostPageReqVO extends PageParam {
|
|||||||
|
|
||||||
@Schema(description = "子项目Id", example = "赵六")
|
@Schema(description = "子项目Id", example = "赵六")
|
||||||
private Long projectSubId;
|
private Long projectSubId;
|
||||||
|
@Schema(description = "子项目Id", example = "赵六")
|
||||||
|
private String activeIndex;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -52,12 +52,15 @@ public class ProjectOrderCostRespVO {
|
|||||||
@Schema(description = "标准件成本")
|
@Schema(description = "标准件成本")
|
||||||
@ExcelProperty("标准件成本")
|
@ExcelProperty("标准件成本")
|
||||||
private BigDecimal biaoZhunJianCost;
|
private BigDecimal biaoZhunJianCost;
|
||||||
@ExcelProperty("材料成本")
|
@ExcelProperty("内部材料成本")
|
||||||
private BigDecimal cailiaoCost;
|
private BigDecimal cailiaoCost;
|
||||||
|
|
||||||
@Schema(description = "外协加工费用")
|
@Schema(description = "外部材料成本")
|
||||||
@ExcelProperty("外协加工费")
|
@ExcelProperty("外部材料成本")
|
||||||
private BigDecimal waixeiCost;
|
private BigDecimal waixeiCost;
|
||||||
|
@Schema(description = "外部加工费")
|
||||||
|
@ExcelProperty("外部加工费")
|
||||||
|
private BigDecimal waixeijiagong;
|
||||||
@Schema(description = "内部工时费")
|
@Schema(description = "内部工时费")
|
||||||
@ExcelProperty("内部工时费")
|
@ExcelProperty("内部工时费")
|
||||||
private BigDecimal neibuCost;
|
private BigDecimal neibuCost;
|
||||||
|
|||||||
@ -0,0 +1,84 @@
|
|||||||
|
package com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 项目订单 Response VO")
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
public class ProjectOrderJiaGongRespVO {
|
||||||
|
|
||||||
|
|
||||||
|
@ExcelProperty("零件名称")
|
||||||
|
private String materialName;
|
||||||
|
|
||||||
|
@ExcelProperty("材质")
|
||||||
|
private String compositionName;
|
||||||
|
|
||||||
|
@ExcelProperty("规格型号")
|
||||||
|
private String spec;
|
||||||
|
@ExcelProperty("数量")
|
||||||
|
private String amount;
|
||||||
|
@ExcelProperty("电焊")
|
||||||
|
private String dianhan;
|
||||||
|
@ExcelProperty("编程")
|
||||||
|
private String biacheng;
|
||||||
|
@ExcelProperty("开粗1")
|
||||||
|
private String kaicu1;
|
||||||
|
@ExcelProperty("开粗2")
|
||||||
|
private String kaicu2;
|
||||||
|
@ExcelProperty("铣床1")
|
||||||
|
private String xianchuang1;
|
||||||
|
@ExcelProperty("铣床2")
|
||||||
|
private String xianchuang2;
|
||||||
|
@ExcelProperty("车床1")
|
||||||
|
private String chechuang1;
|
||||||
|
@ExcelProperty("车床2")
|
||||||
|
private String chechuang2;
|
||||||
|
@ExcelProperty("热处理1")
|
||||||
|
private String renchuli1;
|
||||||
|
@ExcelProperty("热处理2")
|
||||||
|
private String renchuli2;
|
||||||
|
@ExcelProperty("热处理3")
|
||||||
|
private String renchuli3;
|
||||||
|
@ExcelProperty("磨床1")
|
||||||
|
private String mochuang1;
|
||||||
|
@ExcelProperty("磨床2")
|
||||||
|
private String mochuang2;
|
||||||
|
@ExcelProperty("数控1")
|
||||||
|
private String shukong1;
|
||||||
|
@ExcelProperty("数控2")
|
||||||
|
private String shukong2;
|
||||||
|
@ExcelProperty("数控3")
|
||||||
|
private String shukong3;
|
||||||
|
@ExcelProperty("线切割1")
|
||||||
|
private String xianqeige1;
|
||||||
|
@ExcelProperty("线切割2")
|
||||||
|
private String xianqeige2;
|
||||||
|
@ExcelProperty("电极")
|
||||||
|
private String dianji;
|
||||||
|
@ExcelProperty("火花1")
|
||||||
|
private String huohua1;
|
||||||
|
@ExcelProperty("火花2")
|
||||||
|
private String huohua2;
|
||||||
|
@ExcelProperty("刻字")
|
||||||
|
private String kezi;
|
||||||
|
@ExcelProperty("网格1")
|
||||||
|
private String wangge1;
|
||||||
|
@ExcelProperty("网格2")
|
||||||
|
private String wangge2;
|
||||||
|
@ExcelProperty("深孔钻1")
|
||||||
|
private String shengkongzuan1;
|
||||||
|
@ExcelProperty("深孔钻2")
|
||||||
|
private String shengkongzuan2;
|
||||||
|
@ExcelProperty("钻孔1")
|
||||||
|
private String zuankong1;
|
||||||
|
@ExcelProperty("钻孔2")
|
||||||
|
private String zuankong2;
|
||||||
|
@ExcelProperty("单件成本")
|
||||||
|
private String assemblyLaborCost;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
package com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import com.chanko.yunxi.mes.framework.excel.core.annotations.DictFormat;
|
||||||
|
import com.chanko.yunxi.mes.framework.excel.core.convert.DictConvert;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 项目订单 Response VO")
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
public class ProjectOrderNCRespVO {
|
||||||
|
|
||||||
|
|
||||||
|
@ExcelProperty("零件名称")
|
||||||
|
private String materialName;
|
||||||
|
|
||||||
|
@ExcelProperty("材质")
|
||||||
|
private String compositionName;
|
||||||
|
|
||||||
|
@ExcelProperty("规格型号")
|
||||||
|
private String spec;
|
||||||
|
@ExcelProperty("数量")
|
||||||
|
private String amount;
|
||||||
|
@ExcelProperty("下料1")
|
||||||
|
private String xialiao1;
|
||||||
|
@ExcelProperty("下料2")
|
||||||
|
private String xialiao2;
|
||||||
|
@ExcelProperty("单件成本")
|
||||||
|
private String assemblyLaborCost;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,90 @@
|
|||||||
|
package com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 项目订单 Response VO")
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
public class ProjectOrderNGRespVO {
|
||||||
|
|
||||||
|
|
||||||
|
@ExcelProperty("零件名称")
|
||||||
|
private String materialName;
|
||||||
|
|
||||||
|
@ExcelProperty("材质")
|
||||||
|
private String compositionName;
|
||||||
|
|
||||||
|
@ExcelProperty("规格型号")
|
||||||
|
private String spec;
|
||||||
|
@ExcelProperty("数量")
|
||||||
|
private String amount;
|
||||||
|
@ExcelProperty("泡沫")
|
||||||
|
private String paomo;
|
||||||
|
@ExcelProperty("下料1")
|
||||||
|
private String xialiao1;
|
||||||
|
@ExcelProperty("下料2")
|
||||||
|
private String xialiao2;
|
||||||
|
@ExcelProperty("电焊")
|
||||||
|
private String dianhan;
|
||||||
|
@ExcelProperty("编程")
|
||||||
|
private String biacheng;
|
||||||
|
@ExcelProperty("开粗1")
|
||||||
|
private String kaicu1;
|
||||||
|
@ExcelProperty("开粗2")
|
||||||
|
private String kaicu2;
|
||||||
|
@ExcelProperty("铣床1")
|
||||||
|
private String xianchuang1;
|
||||||
|
@ExcelProperty("铣床2")
|
||||||
|
private String xianchuang2;
|
||||||
|
@ExcelProperty("车床1")
|
||||||
|
private String chechuang1;
|
||||||
|
@ExcelProperty("车床2")
|
||||||
|
private String chechuang2;
|
||||||
|
@ExcelProperty("热处理1")
|
||||||
|
private String renchuli1;
|
||||||
|
@ExcelProperty("热处理2")
|
||||||
|
private String renchuli2;
|
||||||
|
@ExcelProperty("热处理3")
|
||||||
|
private String renchuli3;
|
||||||
|
@ExcelProperty("磨床1")
|
||||||
|
private String mochuang1;
|
||||||
|
@ExcelProperty("磨床2")
|
||||||
|
private String mochuang2;
|
||||||
|
@ExcelProperty("数控1")
|
||||||
|
private String shukong1;
|
||||||
|
@ExcelProperty("数控2")
|
||||||
|
private String shukong2;
|
||||||
|
@ExcelProperty("数控3")
|
||||||
|
private String shukong3;
|
||||||
|
@ExcelProperty("线切割1")
|
||||||
|
private String xianqeige1;
|
||||||
|
@ExcelProperty("线切割2")
|
||||||
|
private String xianqeige2;
|
||||||
|
@ExcelProperty("电极")
|
||||||
|
private String dianji;
|
||||||
|
@ExcelProperty("火花1")
|
||||||
|
private String huohua1;
|
||||||
|
@ExcelProperty("火花2")
|
||||||
|
private String huohua2;
|
||||||
|
@ExcelProperty("刻字")
|
||||||
|
private String kezi;
|
||||||
|
@ExcelProperty("网格1")
|
||||||
|
private String wangge1;
|
||||||
|
@ExcelProperty("网格2")
|
||||||
|
private String wangge2;
|
||||||
|
@ExcelProperty("深孔钻1")
|
||||||
|
private String shengkongzuan1;
|
||||||
|
@ExcelProperty("深孔钻2")
|
||||||
|
private String shengkongzuan2;
|
||||||
|
@ExcelProperty("钻孔1")
|
||||||
|
private String zuankong1;
|
||||||
|
@ExcelProperty("钻孔2")
|
||||||
|
private String zuankong2;
|
||||||
|
@ExcelProperty("单件成本")
|
||||||
|
private String assemblyLaborCost;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -27,4 +27,6 @@ public class ProjectOrderSubPageReqVO extends PageParam {
|
|||||||
private String nameSim;
|
private String nameSim;
|
||||||
@Schema(description = "客户简称", example = "赵六")
|
@Schema(description = "客户简称", example = "赵六")
|
||||||
private String customerName;
|
private String customerName;
|
||||||
|
@Schema(description = "发货状态", example = "赵六")
|
||||||
|
private Integer deliveryStatus;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,42 @@
|
|||||||
|
package com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import com.chanko.yunxi.mes.framework.excel.core.annotations.DictFormat;
|
||||||
|
import com.chanko.yunxi.mes.framework.excel.core.convert.DictConvert;
|
||||||
|
import com.chanko.yunxi.mes.framework.excel.core.convert.TimestampToDateConvert;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.*;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 项目订单 Response VO")
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
public class ProjectOrderYunRespVO {
|
||||||
|
@ExcelProperty(value = "发货日期", converter = TimestampToDateConvert.class)
|
||||||
|
private LocalDateTime deliverDate;
|
||||||
|
|
||||||
|
@ExcelProperty("发货数量")
|
||||||
|
private String amount;
|
||||||
|
|
||||||
|
@ExcelProperty("重量")
|
||||||
|
private String weight;
|
||||||
|
|
||||||
|
@ExcelProperty("发货人")
|
||||||
|
private String deliverPersonName;
|
||||||
|
@ExcelProperty("运费")
|
||||||
|
private String yunFei;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,41 @@
|
|||||||
|
package com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import com.chanko.yunxi.mes.framework.excel.core.annotations.DictFormat;
|
||||||
|
import com.chanko.yunxi.mes.framework.excel.core.convert.DictConvert;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 项目订单 Response VO")
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
public class ProjectOrderZPRespVO {
|
||||||
|
|
||||||
|
|
||||||
|
@ExcelProperty("子项目编码")
|
||||||
|
private String projectSubCode;
|
||||||
|
|
||||||
|
@ExcelProperty("子项目名称")
|
||||||
|
private String projectSubName;
|
||||||
|
@ExcelProperty("数量")
|
||||||
|
private String amount;
|
||||||
|
@ExcelProperty("装配")
|
||||||
|
private String zhuangpei;
|
||||||
|
@ExcelProperty("包装")
|
||||||
|
private String baozhuang;
|
||||||
|
@ExcelProperty("钻孔")
|
||||||
|
private String zhuankong;
|
||||||
|
@ExcelProperty("检验成本")
|
||||||
|
private String jianyan;
|
||||||
|
@ExcelProperty("单件成本")
|
||||||
|
private String assemblyLaborCost;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -276,8 +276,8 @@ public class TaskDispatchController {
|
|||||||
@GetMapping("/getListCl")
|
@GetMapping("/getListCl")
|
||||||
@Operation(summary = "获得外部材料成本")
|
@Operation(summary = "获得外部材料成本")
|
||||||
@PreAuthorize("@ss.hasPermission('heli:deliver-order:query')")
|
@PreAuthorize("@ss.hasPermission('heli:deliver-order:query')")
|
||||||
public CommonResult<List<TaskDispatchDO>> getListCl(@RequestParam("id") Long id, @RequestParam("projectSubId") Long projectSubId ) {
|
public CommonResult<List<TaskDispatchDO>> getListCl(@RequestParam("id") Long id, @RequestParam("projectSubId") Long projectSubId ,@RequestParam("type") Integer type) {
|
||||||
List<TaskDispatchDO> list= taskDispatchService.getListCl(id,projectSubId);
|
List<TaskDispatchDO> list= taskDispatchService.getListCl(id,projectSubId, type);
|
||||||
return success( list);
|
return success( list);
|
||||||
}
|
}
|
||||||
@GetMapping("/getListNg")
|
@GetMapping("/getListNg")
|
||||||
|
|||||||
@ -298,6 +298,8 @@ public class ProjectOrderDO extends BaseDO {
|
|||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private BigDecimal waixeiCost;
|
private BigDecimal waixeiCost;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
|
private BigDecimal waixeijiagong;
|
||||||
|
@TableField(exist = false)
|
||||||
private BigDecimal sumCost;
|
private BigDecimal sumCost;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch;
|
package com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
@ -169,6 +170,76 @@ public class TaskDispatchDO extends BaseDO {
|
|||||||
private BigDecimal assemblyLaborCost;
|
private BigDecimal assemblyLaborCost;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private BigDecimal assemblyLaborSum;
|
private BigDecimal assemblyLaborSum;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal paomo;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal xialiao1;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal xialiao2;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal dianhan;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal biacheng;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal kaicu1;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal kaicu2;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal xianchuang1;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal xianchuang2;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal chechuang1;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal chechuang2;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal renchuli1;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal renchuli2;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal renchuli3;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal mochuang1;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal mochuang2;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal shukong1;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal shukong2;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal shukong3;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal xianqeige1;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal xianqeige2;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal dianji;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal huohua1;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal huohua2;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal kezi;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal wangge1;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal wangge2;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal shengkongzuan1;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal shengkongzuan2;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal zuankong1;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal zuankong2;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal zhuangpei;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal baozhuang;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal zhuankong;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal jianyan;
|
||||||
public boolean canSave(){
|
public boolean canSave(){
|
||||||
return TaskDispatchStatusEnum.SAVE.getCode() == this.dispatchStatus.intValue();
|
return TaskDispatchStatusEnum.SAVE.getCode() == this.dispatchStatus.intValue();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -175,6 +175,9 @@ public interface MaterialMapper extends BaseMapperX<MaterialDO> {
|
|||||||
.disableSubLogicDel()
|
.disableSubLogicDel()
|
||||||
.groupBy(MaterialDO::getId)
|
.groupBy(MaterialDO::getId)
|
||||||
.having("COALESCE(SUM(s.yard_amount), 0) < COALESCE(MAX(t.inv_safe), 0)");
|
.having("COALESCE(SUM(s.yard_amount), 0) < COALESCE(MAX(t.inv_safe), 0)");
|
||||||
|
subQuery .eq(true,MaterialDO::getVirtualPart, YesOrNoEnum.N.name())
|
||||||
|
.eq(MaterialDO::getStatus,1)
|
||||||
|
.eq(MaterialDO::getTenantId, 2);
|
||||||
//执行子查询获取符合条件的matCode
|
//执行子查询获取符合条件的matCode
|
||||||
List<Long> qualifiedMatCodes = this.selectList(subQuery)
|
List<Long> qualifiedMatCodes = this.selectList(subQuery)
|
||||||
.stream()
|
.stream()
|
||||||
|
|||||||
@ -102,6 +102,23 @@ public interface MaterialPlanMapper extends BaseMapperX<MaterialPlanDO> {
|
|||||||
void delMaterialPlan(@Param("id") Long id);
|
void delMaterialPlan(@Param("id") Long id);
|
||||||
|
|
||||||
void delMaterialPlanBoom(@Param("bomDetailId")Long bomDetailId, @Param("procedureId")Long procedureId);
|
void delMaterialPlanBoom(@Param("bomDetailId")Long bomDetailId, @Param("procedureId")Long procedureId);
|
||||||
|
|
||||||
|
default PageResult<MaterialPlanDO> getMaterialPlanPageData(MaterialPlanPageReqVO pageReqVO){
|
||||||
|
MPJLambdaWrapper<MaterialPlanDO> query = new MPJLambdaWrapper<>();
|
||||||
|
query.selectAll(MaterialPlanDO.class)
|
||||||
|
.leftJoin(MaterialPlanBoomDO.class, "b", MaterialPlanBoomDO::getProjectMaterialPlanId, MaterialPlanDO::getId)
|
||||||
|
.groupBy(MaterialPlanDO::getId)
|
||||||
|
.orderByDesc(MaterialPlanDO::getCreateTime);
|
||||||
|
query.like(!StringUtils.isEmpty(pageReqVO.getProjectMaterialPlanNo()), MaterialPlanDO::getProjectMaterialPlanNo, pageReqVO.getProjectMaterialPlanNo())
|
||||||
|
.like(!StringUtils.isEmpty(pageReqVO.getMaterialName()), MaterialPlanBoomDO::getMatName, pageReqVO.getMaterialName())
|
||||||
|
.eq(!StringUtils.isEmpty(pageReqVO.getMatType()), MaterialPlanDO::getMatType, pageReqVO.getMatType());
|
||||||
|
if (pageReqVO.getMatPlanDate() != null) {
|
||||||
|
query.between( MaterialPlanDO::getMatPlanDate, pageReqVO.getMatPlanDate()[0], pageReqVO.getMatPlanDate()[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return selectPage(pageReqVO, query);
|
||||||
|
}
|
||||||
|
|
||||||
// default PageResult<MaterialPlanDO> selectPage(MaterialPlanPageReqVO reqVO) {
|
// default PageResult<MaterialPlanDO> selectPage(MaterialPlanPageReqVO reqVO) {
|
||||||
// return selectPage(reqVO, new LambdaQueryWrapperX<MaterialPlanDO>()
|
// return selectPage(reqVO, new LambdaQueryWrapperX<MaterialPlanDO>()
|
||||||
// .eqIfPresent(MaterialPlanDO::getId, reqVO.getId())
|
// .eqIfPresent(MaterialPlanDO::getId, reqVO.getId())
|
||||||
|
|||||||
@ -223,4 +223,6 @@ public interface ProcessBomMapper extends BaseMapperX<ProcessBomDO> {
|
|||||||
void deleteOrderId(@Param("id") Long id);
|
void deleteOrderId(@Param("id") Long id);
|
||||||
|
|
||||||
BigDecimal cuttingMaterials(@Param("id") Long id, @Param("projectSubId")Long projectSubId);
|
BigDecimal cuttingMaterials(@Param("id") Long id, @Param("projectSubId")Long projectSubId);
|
||||||
|
|
||||||
|
BigDecimal outsourcingExpenses1(@Param("id") Long id,@Param("projectSubId") Long projectSubId);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder;
|
package com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
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.mapper.BaseMapperX;
|
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.ProjectOrderSubPageReqVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.ProjectOrderSubPageReqVO;
|
||||||
@ -18,6 +19,7 @@ import com.chanko.yunxi.mes.module.heli.enums.YesOrNoEnum;
|
|||||||
import com.chanko.yunxi.mes.module.infra.dal.dataobject.file.FileDO;
|
import com.chanko.yunxi.mes.module.infra.dal.dataobject.file.FileDO;
|
||||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||||
import org.apache.ibatis.annotations.*;
|
import org.apache.ibatis.annotations.*;
|
||||||
|
import org.aspectj.weaver.ast.Not;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -146,8 +148,8 @@ public interface ProjectOrderSubMapper extends BaseMapperX<ProjectOrderSubDO> {
|
|||||||
.like(!StringUtils.isEmpty(pageReqVO.getProjectName()), ProjectOrderDO::getProjectName, pageReqVO.getProjectName())
|
.like(!StringUtils.isEmpty(pageReqVO.getProjectName()), ProjectOrderDO::getProjectName, pageReqVO.getProjectName())
|
||||||
.like(!StringUtils.isEmpty(pageReqVO.getProjectSubName()), ProjectOrderSubDO::getName, pageReqVO.getProjectSubName())
|
.like(!StringUtils.isEmpty(pageReqVO.getProjectSubName()), ProjectOrderSubDO::getName, pageReqVO.getProjectSubName())
|
||||||
.like(!StringUtils.isEmpty(pageReqVO.getProjectSubCode()), PlanSubDO::getProjectSubCode, pageReqVO.getProjectSubCode())
|
.like(!StringUtils.isEmpty(pageReqVO.getProjectSubCode()), PlanSubDO::getProjectSubCode, pageReqVO.getProjectSubCode())
|
||||||
.like(!StringUtils.isEmpty(pageReqVO.getCustomerName()), CustomerDO::getName, pageReqVO.getCustomerName());
|
.like(!StringUtils.isEmpty(pageReqVO.getCustomerName()), CustomerDO::getName, pageReqVO.getCustomerName())
|
||||||
|
.ne(ObjectUtil.isNotEmpty(pageReqVO.getDeliveryStatus()),ProjectOrderDO::getDeliveryStatus,pageReqVO.getDeliveryStatus());
|
||||||
return selectPage(pageReqVO, query);
|
return selectPage(pageReqVO, query);
|
||||||
}
|
}
|
||||||
@Delete("delete from project_sale_order_sub where project_order_id = #{id}")
|
@Delete("delete from project_sale_order_sub where project_order_id = #{id}")
|
||||||
|
|||||||
@ -1081,4 +1081,16 @@ public interface TaskDispatchDetailMapper extends BaseMapperX<TaskDispatchDetail
|
|||||||
return selectList(query);
|
return selectList(query);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default List<TaskDispatchDetailDO> getTaskDispatchDetailsBatch(List<Long> dispatchIds, Integer type){
|
||||||
|
MPJLambdaWrapper<TaskDispatchDetailDO> query = new MPJLambdaWrapper<>();
|
||||||
|
query.selectAll(TaskDispatchDetailDO.class)
|
||||||
|
.leftJoin(ProcedureDO.class,"a",ProcedureDO::getId,TaskDispatchDetailDO::getProcedureId);
|
||||||
|
query.in(TaskDispatchDetailDO::getDispatchId,dispatchIds);
|
||||||
|
if (type == 1){
|
||||||
|
query.in(ProcedureDO::getName,"泡沫","下料1","下料2");
|
||||||
|
}else{
|
||||||
|
query.notIn(ProcedureDO::getName,"泡沫","下料1","下料2");
|
||||||
|
}
|
||||||
|
return selectList(query);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -240,4 +240,21 @@ public interface TaskDispatchMapper extends BaseMapperX<TaskDispatchDO> {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default List<TaskDispatchDO> getListCl1(Long id, Long projectSubId, Integer type){
|
||||||
|
MPJLambdaWrapper<TaskDispatchDO> query = new MPJLambdaWrapper<>();
|
||||||
|
query.selectAll(TaskDispatchDO.class)
|
||||||
|
.select("p.material_name as materialName","z.name as compositionName","p.spec as spec","p.amount*s.amount as amount")
|
||||||
|
.leftJoin(ProcessBomDetailDO.class, "p", ProcessBomDetailDO::getId,TaskDispatchDO::getBomDetailId)
|
||||||
|
.leftJoin(CompositionDO.class, "z", CompositionDO::getId, ProcessBomDetailDO::getCompositionId)
|
||||||
|
.leftJoin(ProjectOrderSubDO.class,"s", ProjectOrderSubDO::getId, TaskDispatchDO::getProjectSubId);
|
||||||
|
query.eq(TaskDispatchDO::getProjectId, id)
|
||||||
|
.eq(TaskDispatchDO::getProjectSubId,projectSubId)
|
||||||
|
.eq(TaskDispatchDO::getDispatchType,"PRODUCTION");
|
||||||
|
if (type == 1){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return selectList(query);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -86,4 +86,6 @@ public interface MaterialPlanService {
|
|||||||
CommonResult<Boolean> delMaterialPlanBoom(Long id, String projectMaterialPlanNo);
|
CommonResult<Boolean> delMaterialPlanBoom(Long id, String projectMaterialPlanNo);
|
||||||
|
|
||||||
Boolean saveLog(TaskDispatchDetailDO detailDO);
|
Boolean saveLog(TaskDispatchDetailDO detailDO);
|
||||||
|
|
||||||
|
PageResult<MaterialPlanDO> getMaterialPlanPageData(MaterialPlanPageReqVO pageReqVO);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -631,4 +631,9 @@ public class MaterialPlanServiceImpl implements MaterialPlanService {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<MaterialPlanDO> getMaterialPlanPageData(MaterialPlanPageReqVO pageReqVO) {
|
||||||
|
return materialPlanMapper.getMaterialPlanPageData(pageReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -122,4 +122,6 @@ public interface ProcessBomService {
|
|||||||
CommonResult<Boolean> selectPlanTaskStatus(String id);
|
CommonResult<Boolean> selectPlanTaskStatus(String id);
|
||||||
|
|
||||||
List<ProcessBomDetailDO> getProcessBomExcel(List<Long> collect);
|
List<ProcessBomDetailDO> getProcessBomExcel(List<Long> collect);
|
||||||
|
|
||||||
|
BigDecimal outsourcedProcessingFee1(Long id, Long projectSubId);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1704,6 +1704,13 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
|||||||
return processBomDetailMapper.getProcessBomExcel( collect);
|
return processBomDetailMapper.getProcessBomExcel( collect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BigDecimal outsourcedProcessingFee1(Long id, Long projectSubId) {
|
||||||
|
BigDecimal cost=processBomMapper.outsourcingExpenses1(id,projectSubId);
|
||||||
|
if (ObjectUtil.isEmpty(cost)) cost=BigDecimal.ZERO;
|
||||||
|
return cost;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void createProcessBomDetailList(String bomCode,Long bomId, List<ProcessBomDetailDO> list,Integer num) {
|
private void createProcessBomDetailList(String bomCode,Long bomId, List<ProcessBomDetailDO> list,Integer num) {
|
||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.Project
|
|||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.ProjectOrderSubPageReqVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.ProjectOrderSubPageReqVO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.service.projectorder.dto.ExportResult;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -60,6 +61,15 @@ public interface ProjectOrderService {
|
|||||||
PageResult<ProjectOrderDO> getProjectOrderCostPage(ProjectOrderCostPageReqVO pageReqVO);
|
PageResult<ProjectOrderDO> getProjectOrderCostPage(ProjectOrderCostPageReqVO pageReqVO);
|
||||||
|
|
||||||
ProjectOrderDO getProjectOrderCost(Long id,Long projectSubId);
|
ProjectOrderDO getProjectOrderCost(Long id,Long projectSubId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出项目成本归集明细数据
|
||||||
|
*
|
||||||
|
* @param pageReqVO 导出条件
|
||||||
|
* @return 导出结果
|
||||||
|
*/
|
||||||
|
ExportResult exportExcelData(ProjectOrderCostPageReqVO pageReqVO);
|
||||||
|
|
||||||
// ==================== 子表(项目订单子项目) ====================
|
// ==================== 子表(项目订单子项目) ====================
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -9,29 +9,22 @@ import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
|||||||
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
||||||
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.controller.admin.projectorder.vo.ProjectOrderCostPageReqVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.*;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.ProjectOrderPageReqVO;
|
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.ProjectOrderSaveReqVO;
|
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.ProjectOrderSubPageReqVO;
|
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.storagelog.vo.StorageLogPageReqVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.storagelog.vo.StorageLogPageReqVO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.attentiontodo.AttentiontodoDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.attentiontodo.AttentiontodoDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.bdgzsomthing.bdgzsomthingDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.bdgzsomthing.bdgzsomthingDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderSubDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderSubDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplan.MaterialPlanDO;
|
|
||||||
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.plansub.PlanSubDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plansub.PlanSubDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plansubdetail.PlanSubDetailDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plansubdetail.PlanSubDetailDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plantask.PlanTaskDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plantask.PlanTaskDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plantaskbom.PlanTaskBomDO;
|
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO;
|
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing.bdgzsomthingMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing.bdgzsomthingMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.deliverorder.DeliverOrderSubMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.deliverorder.DeliverOrderSubMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.orderys.OrderYsMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.orderys.OrderYsMapper;
|
||||||
@ -54,9 +47,13 @@ import com.chanko.yunxi.mes.module.heli.enums.YesOrNoEnum;
|
|||||||
import com.chanko.yunxi.mes.module.heli.manager.CrossOrderManager;
|
import com.chanko.yunxi.mes.module.heli.manager.CrossOrderManager;
|
||||||
import com.chanko.yunxi.mes.module.heli.service.attentiontodo.AttentiontodoService;
|
import com.chanko.yunxi.mes.module.heli.service.attentiontodo.AttentiontodoService;
|
||||||
import com.chanko.yunxi.mes.module.heli.service.customer.CustomerService;
|
import com.chanko.yunxi.mes.module.heli.service.customer.CustomerService;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.service.deliverorder.DeliverOrderService;
|
||||||
import com.chanko.yunxi.mes.module.heli.service.processbom.ProcessBomService;
|
import com.chanko.yunxi.mes.module.heli.service.processbom.ProcessBomService;
|
||||||
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
|
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.service.storage.StorageService;
|
||||||
import com.chanko.yunxi.mes.module.heli.service.storagelog.StorageLogService;
|
import com.chanko.yunxi.mes.module.heli.service.storagelog.StorageLogService;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.service.taskdispatch.TaskDispatchService;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.service.projectorder.dto.ExportConfig;
|
||||||
import com.chanko.yunxi.mes.module.infra.controller.admin.file.vo.file.FilePageReqVO;
|
import com.chanko.yunxi.mes.module.infra.controller.admin.file.vo.file.FilePageReqVO;
|
||||||
import com.chanko.yunxi.mes.module.infra.dal.dataobject.file.FileDO;
|
import com.chanko.yunxi.mes.module.infra.dal.dataobject.file.FileDO;
|
||||||
import com.chanko.yunxi.mes.module.infra.service.file.FileService;
|
import com.chanko.yunxi.mes.module.infra.service.file.FileService;
|
||||||
@ -64,20 +61,19 @@ import com.chanko.yunxi.mes.module.system.api.user.AdminUserApi;
|
|||||||
import com.github.dadiyang.equator.FieldInfo;
|
import com.github.dadiyang.equator.FieldInfo;
|
||||||
import com.github.dadiyang.equator.GetterBaseEquator;
|
import com.github.dadiyang.equator.GetterBaseEquator;
|
||||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||||
import jodd.system.SystemUtil;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
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.CodeEnum.PROJECT_ORDER;
|
import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.PROJECT_ORDER;
|
||||||
@ -147,6 +143,13 @@ public class ProjectOrderServiceImpl implements ProjectOrderService {
|
|||||||
private ProcessBomDetailMapper processBomDetailMapper;
|
private ProcessBomDetailMapper processBomDetailMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private ProcessDesignMapper ProcessDesignMapper;
|
private ProcessDesignMapper ProcessDesignMapper;
|
||||||
|
@Resource
|
||||||
|
private StorageService storageService;
|
||||||
|
@Resource
|
||||||
|
private TaskDispatchService taskDispatchService;
|
||||||
|
@Resource
|
||||||
|
@Lazy
|
||||||
|
private DeliverOrderService deliverOrderService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@ -794,4 +797,141 @@ public class ProjectOrderServiceImpl implements ProjectOrderService {
|
|||||||
projectOrderSubMapper.deleteByProjectOrderId(projectOrderId);
|
projectOrderSubMapper.deleteByProjectOrderId(projectOrderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public com.chanko.yunxi.mes.module.heli.service.projectorder.dto.ExportResult exportExcelData(ProjectOrderCostPageReqVO pageReqVO) {
|
||||||
|
ExportConfig config = getExportConfig(pageReqVO);
|
||||||
|
Object dataList = config.getDataSupplier().get();
|
||||||
|
if (config.getProcessor() != null && dataList instanceof List) {
|
||||||
|
config.getProcessor().process((List<?>) dataList);
|
||||||
|
}
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
List<?> voList = BeanUtils.toBean((List<?>) dataList, config.getVoClass());
|
||||||
|
return new com.chanko.yunxi.mes.module.heli.service.projectorder.dto.ExportResult(
|
||||||
|
config.getFileName(), "数据", config.getVoClass(), voList
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private ExportConfig getExportConfig(ProjectOrderCostPageReqVO pageReqVO) {
|
||||||
|
String activeIndex = pageReqVO.getActiveIndex();
|
||||||
|
switch (activeIndex) {
|
||||||
|
case "biao":
|
||||||
|
return new ExportConfig(
|
||||||
|
() -> storageService.getList(pageReqVO.getId(), pageReqVO.getProjectSubId()),
|
||||||
|
"标准件成本.xlsx", ProjectOrderBiaoRespVO.class, null
|
||||||
|
);
|
||||||
|
case "neicai":
|
||||||
|
return new ExportConfig(
|
||||||
|
() -> taskDispatchService.getListNc(pageReqVO.getId(), pageReqVO.getProjectSubId()),
|
||||||
|
"内部材料成本.xlsx", ProjectOrderNCRespVO.class, null
|
||||||
|
);
|
||||||
|
case "cai":
|
||||||
|
return new ExportConfig(
|
||||||
|
() -> taskDispatchService.getListCl(pageReqVO.getId(), pageReqVO.getProjectSubId(), 1),
|
||||||
|
"外部材料成本.xlsx", ProjectOrderCaiRespVO.class, new ExportConfig.FieldProcessor() {
|
||||||
|
@Override
|
||||||
|
public void process(List<?> list) {
|
||||||
|
processMaterialFields((List<TaskDispatchDO>) list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
case "jiagong":
|
||||||
|
return new ExportConfig(
|
||||||
|
() -> taskDispatchService.getListCl(pageReqVO.getId(), pageReqVO.getProjectSubId(), 2),
|
||||||
|
"外部加工费.xlsx", ProjectOrderJiaGongRespVO.class, new ExportConfig.FieldProcessor() {
|
||||||
|
@Override
|
||||||
|
public void process(List<?> list) {
|
||||||
|
processProcessingFields((List<TaskDispatchDO>) list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
case "neigong":
|
||||||
|
return new ExportConfig(
|
||||||
|
() -> taskDispatchService.getListNg(pageReqVO.getId(), pageReqVO.getProjectSubId()),
|
||||||
|
"内部工时费.xlsx", ProjectOrderNGRespVO.class, new ExportConfig.FieldProcessor() {
|
||||||
|
@Override
|
||||||
|
public void process(List<?> list) {
|
||||||
|
processAllFields((List<TaskDispatchDO>) list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
case "zhuang":
|
||||||
|
return new ExportConfig(
|
||||||
|
() -> taskDispatchService.getListZp(pageReqVO.getId(), pageReqVO.getProjectSubId()),
|
||||||
|
"装配成本.xlsx", ProjectOrderZPRespVO.class, new ExportConfig.FieldProcessor() {
|
||||||
|
@Override
|
||||||
|
public void process(List<?> list) {
|
||||||
|
processAssemblyFields((List<TaskDispatchDO>) list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
default:
|
||||||
|
return new ExportConfig(
|
||||||
|
() -> deliverOrderService.getListYfDetails(pageReqVO.getId(), pageReqVO.getProjectSubId()),
|
||||||
|
"运费成本.xlsx", ProjectOrderYunRespVO.class, null
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void processMaterialFields(List<TaskDispatchDO> list) {
|
||||||
|
processMapFields(list, new String[][]{
|
||||||
|
{"泡沫", "setPaomo"},
|
||||||
|
{"下料1", "setXialiao1"},
|
||||||
|
{"下料2", "setXialiao2"}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void processProcessingFields(List<TaskDispatchDO> list) {
|
||||||
|
processMapFields(list, new String[][]{
|
||||||
|
{"电焊", "setDianhan"}, {"编程", "setBiacheng"}, {"开粗1", "setKaicu1"}, {"开粗2", "setKaicu2"},
|
||||||
|
{"铣床1", "setXianchuang1"}, {"铣床2", "setXianchuang2"}, {"车床1", "setChechuang1"}, {"车床2", "setChechuang2"},
|
||||||
|
{"热处理1", "setRenchuli1"}, {"热处理2", "setRenchuli2"}, {"热处理3", "setRenchuli3"},
|
||||||
|
{"磨床1", "setMochuang1"}, {"磨床2", "setMochuang2"}, {"数控1", "setShukong1"}, {"数控2", "setShukong2"},
|
||||||
|
{"数控3", "setShukong3"}, {"线切割1", "setXianqeige1"}, {"线切割2", "setXianqeige2"},
|
||||||
|
{"电极", "setDianji"}, {"火花1", "setHuohua1"}, {"火花2", "setHuohua2"}, {"刻字", "setKezi"},
|
||||||
|
{"网格1", "setWangge1"}, {"网格2", "setWangge2"}, {"深孔钻1", "setShengkongzuan1"},
|
||||||
|
{"深孔钻2", "setShengkongzuan2"}, {"钻孔1", "setZuankong1"}, {"钻孔2", "setZuankong2"}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void processAllFields(List<TaskDispatchDO> list) {
|
||||||
|
processMapFields(list, new String[][]{
|
||||||
|
{"泡沫", "setPaomo"}, {"下料1", "setXialiao1"}, {"下料2", "setXialiao2"}, {"电焊", "setDianhan"},
|
||||||
|
{"编程", "setBiacheng"}, {"开粗1", "setKaicu1"}, {"开粗2", "setKaicu2"}, {"铣床1", "setXianchuang1"},
|
||||||
|
{"铣床2", "setXianchuang2"}, {"车床1", "setChechuang1"}, {"车床2", "setChechuang2"}, {"热处理1", "setRenchuli1"},
|
||||||
|
{"热处理2", "setRenchuli2"}, {"热处理3", "setRenchuli3"}, {"磨床1", "setMochuang1"}, {"磨床2", "setMochuang2"},
|
||||||
|
{"数控1", "setShukong1"}, {"数控2", "setShukong2"}, {"数控3", "setShukong3"}, {"线切割1", "setXianqeige1"},
|
||||||
|
{"线切割2", "setXianqeige2"}, {"电极", "setDianji"}, {"火花1", "setHuohua1"}, {"火花2", "setHuohua2"},
|
||||||
|
{"刻字", "setKezi"}, {"网格1", "setWangge1"}, {"网格2", "setWangge2"}, {"深孔钻1", "setShengkongzuan1"},
|
||||||
|
{"深孔钻2", "setShengkongzuan2"}, {"钻孔1", "setZuankong1"}, {"钻孔2", "setZuankong2"}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void processAssemblyFields(List<TaskDispatchDO> list) {
|
||||||
|
processMapFields(list, new String[][]{
|
||||||
|
{"装配", "setZhuangpei"}, {"包装", "setBaozhuang"}, {"钻孔", "setZhuankong"}, {"检验", "setJianyan"}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void processMapFields(List<?> list, String[][] fieldMappings) {
|
||||||
|
for (Object item : list) {
|
||||||
|
if (item instanceof TaskDispatchDO) {
|
||||||
|
TaskDispatchDO taskDispatchDO = (TaskDispatchDO) item;
|
||||||
|
Map<String, BigDecimal> map = taskDispatchDO.getMap();
|
||||||
|
if (ObjectUtil.isNotEmpty(map)) {
|
||||||
|
for (String[] mapping : fieldMappings) {
|
||||||
|
BigDecimal value = map.get(mapping[0]);
|
||||||
|
if (ObjectUtil.isNotEmpty(value)) {
|
||||||
|
try {
|
||||||
|
Method method = taskDispatchDO.getClass().getMethod(mapping[1], BigDecimal.class);
|
||||||
|
method.invoke(taskDispatchDO, value);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("Failed to set field: {}, error: {}", mapping[1], e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -106,7 +106,7 @@ public interface TaskDispatchService {
|
|||||||
|
|
||||||
List<TaskDispatchDO> getListZp(Long id, Long projectSubId);
|
List<TaskDispatchDO> getListZp(Long id, Long projectSubId);
|
||||||
|
|
||||||
List<TaskDispatchDO> getListCl(Long id, Long projectSubId);
|
List<TaskDispatchDO> getListCl(Long id, Long projectSubId,Integer type);
|
||||||
|
|
||||||
List<HashMap<String, String>> getOwners(Long id);
|
List<HashMap<String, String>> getOwners(Long id);
|
||||||
|
|
||||||
|
|||||||
@ -1316,7 +1316,7 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<TaskDispatchDO> getListCl(Long id, Long projectSubId) {
|
public List<TaskDispatchDO> getListCl(Long id, Long projectSubId, Integer type) {
|
||||||
// List<TaskDispatchDO> taskDispatchDOS = taskDispatchMapper.getListCl(id, projectSubId);
|
// List<TaskDispatchDO> taskDispatchDOS = taskDispatchMapper.getListCl(id, projectSubId);
|
||||||
// for (TaskDispatchDO taskDispatchDO : taskDispatchDOS) {
|
// for (TaskDispatchDO taskDispatchDO : taskDispatchDOS) {
|
||||||
// LambdaQueryWrapper<TaskDispatchDetailDO> wrapper = new LambdaQueryWrapper<>();
|
// LambdaQueryWrapper<TaskDispatchDetailDO> wrapper = new LambdaQueryWrapper<>();
|
||||||
@ -1362,7 +1362,7 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
// 2. 批量查询所有TaskDispatchDetailDO
|
// 2. 批量查询所有TaskDispatchDetailDO
|
||||||
List<TaskDispatchDetailDO> allDetailDOS = getTaskDispatchDetailsBatch(dispatchIds);
|
List<TaskDispatchDetailDO> allDetailDOS = getTaskDispatchDetailsBatch1(dispatchIds, type);
|
||||||
if (ObjectUtil.isEmpty(allDetailDOS)){
|
if (ObjectUtil.isEmpty(allDetailDOS)){
|
||||||
return taskDispatchDOS;
|
return taskDispatchDOS;
|
||||||
}
|
}
|
||||||
@ -1435,6 +1435,10 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
|||||||
wrapper.in(TaskDispatchDetailDO::getDispatchId, dispatchIds);
|
wrapper.in(TaskDispatchDetailDO::getDispatchId, dispatchIds);
|
||||||
return taskDispatchDetailMapper.selectList(wrapper);
|
return taskDispatchDetailMapper.selectList(wrapper);
|
||||||
}
|
}
|
||||||
|
private List<TaskDispatchDetailDO> getTaskDispatchDetailsBatch1(List<Long> dispatchIds,Integer type) {
|
||||||
|
|
||||||
|
return taskDispatchDetailMapper.getTaskDispatchDetailsBatch(dispatchIds,type);
|
||||||
|
}
|
||||||
private List<TaskDispatchDetailDO> getTaskDispatchDetails(List<Long> dispatchIds) {
|
private List<TaskDispatchDetailDO> getTaskDispatchDetails(List<Long> dispatchIds) {
|
||||||
return taskDispatchDetailMapper.getTaskDispatchDetails(dispatchIds);
|
return taskDispatchDetailMapper.getTaskDispatchDetails(dispatchIds);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -119,8 +119,9 @@
|
|||||||
SUM(s.storage_amount) AS total_storage
|
SUM(s.storage_amount) AS total_storage
|
||||||
FROM project_purchase_order_no_detail t
|
FROM project_purchase_order_no_detail t
|
||||||
JOIN project_storage_in_detail s on s.purchase_order_no_detail_id=t.id and s.deleted=0 and s.tenant_id=2
|
JOIN project_storage_in_detail s on s.purchase_order_no_detail_id=t.id and s.deleted=0 and s.tenant_id=2
|
||||||
left join pro_process_bom_detail d on d.id=t.boom_detail_id
|
left join pro_process_bom_detail d on d.id=t.boom_detail_id and d.deleted=0 and d.tenant_id=2
|
||||||
where t.deleted=0 and t.tenant_id=2 and d.type=2 and t.project_id=#{id} and t.project_plan_sub_id=#{projectSubId}
|
LEFT JOIN base_procedure P ON P.id = t.procedure_id AND P.deleted = 0 AND P.tenant_id = 2
|
||||||
|
where t.deleted=0 and t.tenant_id=2 and d.type=2 and t.project_id=#{id} and t.project_plan_sub_id=#{projectSubId} AND P.name in ('泡沫','下料1','下料2')
|
||||||
GROUP BY s.id
|
GROUP BY s.id
|
||||||
) AS subquery;
|
) AS subquery;
|
||||||
</select>
|
</select>
|
||||||
@ -131,6 +132,21 @@
|
|||||||
left join pro_task_in_report r on r.dispatch_detail_id=t1.id and r.deleted=0 and r.tenant_id=2
|
left join pro_task_in_report r on r.dispatch_detail_id=t1.id and r.deleted=0 and r.tenant_id=2
|
||||||
where t.deleted=0 and t.dispatch_type='PRODUCTION' and t.project_id=#{id} and t.project_sub_id= #{projectSubId}
|
where t.deleted=0 and t.dispatch_type='PRODUCTION' and t.project_id=#{id} and t.project_sub_id= #{projectSubId}
|
||||||
</select>
|
</select>
|
||||||
|
<select id="outsourcingExpenses1" resultType="java.math.BigDecimal">
|
||||||
|
SELECT
|
||||||
|
ROUND(SUM(unit_price * total_storage), 1) AS cost
|
||||||
|
FROM (
|
||||||
|
SELECT
|
||||||
|
ROUND(t.estimated_price / t.purchase_amount, 1) AS unit_price,
|
||||||
|
SUM(s.storage_amount) AS total_storage
|
||||||
|
FROM project_purchase_order_no_detail t
|
||||||
|
JOIN project_storage_in_detail s on s.purchase_order_no_detail_id=t.id and s.deleted=0 and s.tenant_id=2
|
||||||
|
left join pro_process_bom_detail d on d.id=t.boom_detail_id
|
||||||
|
LEFT JOIN base_procedure P ON P.id = t.procedure_id AND P.deleted = 0 AND P.tenant_id = 2
|
||||||
|
where t.deleted=0 and t.tenant_id=2 and d.type=2 and t.project_id=#{id} and t.project_plan_sub_id=#{projectSubId} AND P.name NOT IN ('泡沫','下料1','下料2')
|
||||||
|
GROUP BY s.id
|
||||||
|
) AS subquery;
|
||||||
|
</select>
|
||||||
|
|
||||||
<update id="updateDetailEditStatusById" parameterType="Long">
|
<update id="updateDetailEditStatusById" parameterType="Long">
|
||||||
UPDATE pro_process_bom_detail
|
UPDATE pro_process_bom_detail
|
||||||
|
|||||||
@ -49,6 +49,10 @@ export const exportMaterialPlan = async (params) => {
|
|||||||
export const getMaterialPlanPages = async (params) => {
|
export const getMaterialPlanPages = async (params) => {
|
||||||
return await request.get({ url: `/heli/material-plan/pages`, params })
|
return await request.get({ url: `/heli/material-plan/pages`, params })
|
||||||
}
|
}
|
||||||
|
// 查询库存补充管理分页
|
||||||
|
export const getMaterialPlanPageData = async (params) => {
|
||||||
|
return await request.get({ url: `/heli/material-plan/pageData`, params })
|
||||||
|
}
|
||||||
// 删除物料需求计划
|
// 删除物料需求计划
|
||||||
export const delMaterialPlan = async (id: number) => {
|
export const delMaterialPlan = async (id: number) => {
|
||||||
return await request.delete({ url: `/heli/material-plan/delMaterialPlan?id=` + id })
|
return await request.delete({ url: `/heli/material-plan/delMaterialPlan?id=` + id })
|
||||||
|
|||||||
@ -44,8 +44,8 @@ export const getListYfDetails = async (id: number,projectSubId: number) => {
|
|||||||
return await request.get({ url: `/heli/deliver-order/getListYfDetails?id=`+id+`&projectSubId=`+projectSubId })
|
return await request.get({ url: `/heli/deliver-order/getListYfDetails?id=`+id+`&projectSubId=`+projectSubId })
|
||||||
}
|
}
|
||||||
//查询外部材料成本
|
//查询外部材料成本
|
||||||
export const getListcl = async (id: number,projectSubId: number) => {
|
export const getListcl = async (id: number,projectSubId: number,type:number) => {
|
||||||
return await request.get({ url: `/heli/task-dispatch/getListCl?id=`+id+`&projectSubId=`+projectSubId })
|
return await request.get({ url: `/heli/task-dispatch/getListCl?id=`+id+`&projectSubId=`+projectSubId+`&type=`+type })
|
||||||
}
|
}
|
||||||
//查询内部材料成本
|
//查询内部材料成本
|
||||||
export const getListNc = async (id: number,projectSubId: number) => {
|
export const getListNc = async (id: number,projectSubId: number) => {
|
||||||
@ -64,3 +64,7 @@ export const getListZp = async (id: number,projectSubId: number) => {
|
|||||||
export const exportCost = async (params) => {
|
export const exportCost = async (params) => {
|
||||||
return await request.download({ url: `/heli/project-order/exportCost`, params })
|
return await request.download({ url: `/heli/project-order/exportCost`, params })
|
||||||
}
|
}
|
||||||
|
// 导出任务报工 Excel
|
||||||
|
export const exportExcel = async (params) => {
|
||||||
|
return await request.download({ url: `/heli/project-order/exportExcel`, params })
|
||||||
|
}
|
||||||
|
|||||||
@ -49,7 +49,11 @@
|
|||||||
<el-input class="!w-265px" v-model="formData.waixeiCost" disabled />
|
<el-input class="!w-265px" v-model="formData.waixeiCost" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="外部加工费" prop="waixeijiagong">
|
||||||
|
<el-input class="!w-265px" v-model="formData.waixeijiagong" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="内部加工费" prop="neiBuCost">
|
<el-form-item label="内部加工费" prop="neiBuCost">
|
||||||
<el-input class="!w-265px" v-model="formData.neiBuCost" disabled />
|
<el-input class="!w-265px" v-model="formData.neiBuCost" disabled />
|
||||||
@ -73,11 +77,23 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="12">
|
||||||
<el-form-item label="备注" prop="rem">
|
<el-form-item label="备注" prop="rem">
|
||||||
<el-input class="!w-1825px" v-model="formData.rem" />
|
<el-input class="!w-1825px" v-model="formData.rem" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="" prop="rem">
|
||||||
|
<el-button
|
||||||
|
type="success"
|
||||||
|
plain
|
||||||
|
@click="handleExport(activeIndex)"
|
||||||
|
:loading="exportLoading"
|
||||||
|
v-hasPermi="['heli:shenhe:export']"
|
||||||
|
>
|
||||||
|
<Icon icon="ep:download" class="mr-5px" /> 导出
|
||||||
|
</el-button> </el-form-item>
|
||||||
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
||||||
@ -88,6 +104,7 @@
|
|||||||
<el-tab-pane label="标准件成本" name="biao">{{ }}</el-tab-pane>
|
<el-tab-pane label="标准件成本" name="biao">{{ }}</el-tab-pane>
|
||||||
<el-tab-pane label="内部材料成本" name="neicai">{{ }}</el-tab-pane>
|
<el-tab-pane label="内部材料成本" name="neicai">{{ }}</el-tab-pane>
|
||||||
<el-tab-pane label="外部材料成本" name="cai">{{ }}</el-tab-pane>
|
<el-tab-pane label="外部材料成本" name="cai">{{ }}</el-tab-pane>
|
||||||
|
<el-tab-pane label="外部加工费" name="jiagong">{{ }}</el-tab-pane>
|
||||||
<el-tab-pane label="内部工时费" name="neigong">{{ }}</el-tab-pane>
|
<el-tab-pane label="内部工时费" name="neigong">{{ }}</el-tab-pane>
|
||||||
<el-tab-pane label="装配成本" name="zhuang">{{ }}</el-tab-pane>
|
<el-tab-pane label="装配成本" name="zhuang">{{ }}</el-tab-pane>
|
||||||
<el-tab-pane label="运费成本" name="yun">{{ }}</el-tab-pane>
|
<el-tab-pane label="运费成本" name="yun">{{ }}</el-tab-pane>
|
||||||
@ -162,9 +179,9 @@
|
|||||||
|
|
||||||
</el-card>
|
</el-card>
|
||||||
<el-card class="hl-card-info" v-if="activeIndex == 'cai'">
|
<el-card class="hl-card-info" v-if="activeIndex == 'cai'">
|
||||||
<!-- <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>-->
|
||||||
<!-- </template>-->
|
<!-- </template>-->
|
||||||
<el-table v-loading="loading" :data="listcl" :stripe="true" :show-overflow-tooltip="true" border class="hl-table" height="500px">
|
<el-table v-loading="loading" :data="listcl" :stripe="true" :show-overflow-tooltip="true" border class="hl-table" height="500px">
|
||||||
<el-table-column type="index" width="70" fixed label="序号" align="center" />
|
<el-table-column type="index" width="70" fixed label="序号" align="center" />
|
||||||
|
|
||||||
@ -201,6 +218,23 @@
|
|||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="单件成本" align="center" prop="assemblyLaborCost" width="120px"/>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
</el-card>
|
||||||
|
<el-card class="hl-card-info" v-if="activeIndex == 'jiagong'">
|
||||||
|
<!-- <template #header>-->
|
||||||
|
<!-- <div class="hl-card-info-icona"></div><span class="hl-card-info-text">材料成本</span>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<el-table v-loading="loading" :data="listjiagong" :stripe="true" :show-overflow-tooltip="true" border class="hl-table" height="500px">
|
||||||
|
<el-table-column type="index" width="70" fixed label="序号" align="center" />
|
||||||
|
|
||||||
|
|
||||||
|
<el-table-column label="零件名称" align="center" prop="materialName" width="200px" />
|
||||||
|
<el-table-column label="材质" align="center" prop="compositionName" width="150px"/>
|
||||||
|
|
||||||
|
<el-table-column label="规格型号" align="center" prop="spec" width="100"/>
|
||||||
|
<el-table-column label="数量" align="center" prop="amount" width="100"/>
|
||||||
<el-table-column label="电焊" min-width="100" align="center">
|
<el-table-column label="电焊" min-width="100" align="center">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<template v-if="row.map && row.map['电焊']">
|
<template v-if="row.map && row.map['电焊']">
|
||||||
@ -457,6 +491,7 @@
|
|||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<el-card class="hl-card-info" v-if="activeIndex == 'neigong'">
|
<el-card class="hl-card-info" v-if="activeIndex == 'neigong'">
|
||||||
<!-- <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>-->
|
||||||
@ -836,6 +871,8 @@
|
|||||||
import {dateFormatter2} from "@/utils/formatTime";
|
import {dateFormatter2} from "@/utils/formatTime";
|
||||||
import {DICT_TYPE} from "@/utils/dict";
|
import {DICT_TYPE} from "@/utils/dict";
|
||||||
import type {TabsPaneContext} from "element-plus";
|
import type {TabsPaneContext} from "element-plus";
|
||||||
|
import download from "@/utils/download";
|
||||||
|
import {exportExcel} from "@/api/heli/saleordercost";
|
||||||
|
|
||||||
const { t } = useI18n() // 国际化
|
const { t } = useI18n() // 国际化
|
||||||
const message = useMessage() // 消息弹窗
|
const message = useMessage() // 消息弹窗
|
||||||
@ -845,18 +882,24 @@
|
|||||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||||
const list = ref([]) // 标准件数据
|
const list = ref([]) // 标准件数据
|
||||||
const listcl = ref([]) // 材料
|
const listcl = ref([]) // 材料
|
||||||
|
const listjiagong = ref([]) // 材料
|
||||||
const listng = ref([]) // 材料
|
const listng = ref([]) // 材料
|
||||||
const listnc = ref([]) // 材料
|
const listnc = ref([]) // 材料
|
||||||
// const listFzc = ref([]) // 副资材
|
// const listFzc = ref([]) // 副资材
|
||||||
// const loading = ref(true) // 列表的加载中
|
// const loading = ref(true) // 列表的加载中
|
||||||
const activeName = ref('biao')
|
const activeName = ref('biao')
|
||||||
const activeIndex = ref('biao')
|
const activeIndex = ref('biao')
|
||||||
|
const exportLoading = ref(false) // 导出的加载中
|
||||||
|
|
||||||
// const listWx = ref([]) // 外协
|
// const listWx = ref([]) // 外协
|
||||||
const listJg = ref([]) // 加工
|
const listJg = ref([]) // 加工
|
||||||
// const listQg = ref([]) // 钳工
|
// const listQg = ref([]) // 钳工
|
||||||
const listYf = ref([]) // 运费
|
const listYf = ref([]) // 运费
|
||||||
|
const queryParams = reactive({
|
||||||
|
activeIndex:"",
|
||||||
|
id:undefined,
|
||||||
|
projectSubId:undefined
|
||||||
|
})
|
||||||
const formData = ref({
|
const formData = ref({
|
||||||
id:undefined,
|
id:undefined,
|
||||||
code:undefined,
|
code:undefined,
|
||||||
@ -881,13 +924,43 @@
|
|||||||
activeIndex.value = tabIndex;
|
activeIndex.value = tabIndex;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
const handleExport = async (activeIndex: string) => {
|
||||||
|
try {
|
||||||
|
// 导出的二次确认
|
||||||
|
await message.exportConfirm()
|
||||||
|
|
||||||
|
// 文件名映射
|
||||||
|
const fileNameMap: Record<string, string> = {
|
||||||
|
'biao': '标准件成本.xlsx',
|
||||||
|
'neicai': '内部材料成本.xlsx',
|
||||||
|
'cai': '外部材料成本.xlsx',
|
||||||
|
'jiagong': '外部加工费.xlsx',
|
||||||
|
'neigong': '内部工时费.xlsx',
|
||||||
|
'zhuang': '装配成本.xlsx',
|
||||||
|
'yun': '运费成本.xlsx'
|
||||||
|
}
|
||||||
|
|
||||||
|
// 发起导出
|
||||||
|
queryParams.activeIndex = activeIndex
|
||||||
|
exportLoading.value = true
|
||||||
|
const data = await SaleeOrderCost.exportExcel(queryParams)
|
||||||
|
|
||||||
|
// 根据映射获取文件名并导出
|
||||||
|
const fileName = fileNameMap[activeIndex]
|
||||||
|
if (fileName) {
|
||||||
|
download.excel(data, fileName)
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
} finally {
|
||||||
|
exportLoading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
//初始化方法
|
//初始化方法
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
console.log(query)
|
|
||||||
formData.value.id = query.id
|
formData.value.id = query.id
|
||||||
formData.value.projectSubId = query.projectSubId
|
formData.value.projectSubId = query.projectSubId
|
||||||
|
queryParams.id=query.id
|
||||||
|
queryParams.projectSubId=query.projectSubId
|
||||||
//查询子项目信息
|
//查询子项目信息
|
||||||
// const data = await SaleeOrderCost.getPlanCost(query.id,query.projectSubId)
|
// const data = await SaleeOrderCost.getPlanCost(query.id,query.projectSubId)
|
||||||
// formData.value = data
|
// formData.value = data
|
||||||
@ -898,8 +971,10 @@
|
|||||||
listJg.value=listJgData
|
listJg.value=listJgData
|
||||||
const listData = await SaleeOrderCost.getList(query.id,query.projectSubId)
|
const listData = await SaleeOrderCost.getList(query.id,query.projectSubId)
|
||||||
list.value=listData
|
list.value=listData
|
||||||
const listclData = await SaleeOrderCost.getListcl(query.id,query.projectSubId)
|
const listclData = await SaleeOrderCost.getListcl(query.id,query.projectSubId,1)
|
||||||
listcl.value=listclData
|
listcl.value=listclData
|
||||||
|
const listjiagongData = await SaleeOrderCost.getListcl(query.id,query.projectSubId,2)
|
||||||
|
listjiagong.value=listjiagongData
|
||||||
const listNgData = await SaleeOrderCost.getListNg(query.id,query.projectSubId)
|
const listNgData = await SaleeOrderCost.getListNg(query.id,query.projectSubId)
|
||||||
listng.value=listNgData
|
listng.value=listNgData
|
||||||
const listNcData = await SaleeOrderCost.getListNc(query.id,query.projectSubId)
|
const listNcData = await SaleeOrderCost.getListNc(query.id,query.projectSubId)
|
||||||
@ -915,6 +990,7 @@
|
|||||||
formData.value.zpCost=query.zpCost
|
formData.value.zpCost=query.zpCost
|
||||||
formData.value.neiBuCost=query.neibuCost
|
formData.value.neiBuCost=query.neibuCost
|
||||||
formData.value.waixeiCost=query.waixeiCost
|
formData.value.waixeiCost=query.waixeiCost
|
||||||
|
formData.value.waixeijiagong=query.waixeijiagong
|
||||||
|
|
||||||
|
|
||||||
// if (listYf.value!=null){
|
// if (listYf.value!=null){
|
||||||
|
|||||||
@ -66,7 +66,7 @@
|
|||||||
<!-- 列表 -->
|
<!-- 列表 -->
|
||||||
<ContentWrap>
|
<ContentWrap>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" border class="hl-table" show-summary :summary-method="getSummaries" height="500px">
|
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" border class="hl-table" show-summary :summary-method="getSummaries" >
|
||||||
<el-table-column type="index" width="70" fixed label="序号" align="center" />
|
<el-table-column type="index" width="70" fixed label="序号" align="center" />
|
||||||
<el-table-column label="项目编号" align="center" prop="code" width="200px" />
|
<el-table-column label="项目编号" align="center" prop="code" width="200px" />
|
||||||
<el-table-column label="项目名称" align="center" prop="projectName" width="240px"/>
|
<el-table-column label="项目名称" align="center" prop="projectName" width="240px"/>
|
||||||
@ -81,6 +81,7 @@
|
|||||||
<el-table-column label="标准件成本" align="center" prop="biaoZhunJianCost" width="200px"/>
|
<el-table-column label="标准件成本" align="center" prop="biaoZhunJianCost" width="200px"/>
|
||||||
<el-table-column label="内部材料成本" align="center" prop="cailiaoCost" width="200px"/>
|
<el-table-column label="内部材料成本" align="center" prop="cailiaoCost" width="200px"/>
|
||||||
<el-table-column label="外部材料成本" align="center" prop="waixeiCost" width="200px"/>
|
<el-table-column label="外部材料成本" align="center" prop="waixeiCost" width="200px"/>
|
||||||
|
<el-table-column label="外部加工费" align="center" prop="waixeijiagong" width="200px"/>
|
||||||
<el-table-column label="内部工时费" align="center" prop="neibuCost" width="220px"/>
|
<el-table-column label="内部工时费" align="center" prop="neibuCost" width="220px"/>
|
||||||
<el-table-column label="装配工时费" align="center" prop="zpCost" width="220px"/>
|
<el-table-column label="装配工时费" align="center" prop="zpCost" width="220px"/>
|
||||||
<el-table-column label="运费" align="center" prop="yunFeiCost" width="200px"/>
|
<el-table-column label="运费" align="center" prop="yunFeiCost" width="200px"/>
|
||||||
|
|||||||
@ -89,7 +89,8 @@ const queryReqVo: any = reactive({
|
|||||||
projectCode: undefined,
|
projectCode: undefined,
|
||||||
projectName: undefined,
|
projectName: undefined,
|
||||||
projectSubName: undefined,
|
projectSubName: undefined,
|
||||||
customerName:undefined
|
customerName:undefined,
|
||||||
|
deliveryStatus:3
|
||||||
})
|
})
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
const handleQuery = async () => {
|
const handleQuery = async () => {
|
||||||
|
|||||||
@ -90,6 +90,7 @@ import * as MaterialPlanApi from '@/api/heli/materialplan'
|
|||||||
import * as UserApi from '@/api/system/user'
|
import * as UserApi from '@/api/system/user'
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import routeParamsCache from '@/utils/routeParamsCache'
|
import routeParamsCache from '@/utils/routeParamsCache'
|
||||||
|
import {getMaterialPlanPageData} from "@/api/heli/materialplan";
|
||||||
|
|
||||||
defineOptions({ name: 'SupplementManagement' })
|
defineOptions({ name: 'SupplementManagement' })
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
@ -126,7 +127,7 @@ const exportLoading = ref(false) // 导出的加载中
|
|||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
try {
|
try {
|
||||||
const data = await MaterialPlanApi.getMaterialPlanPages(queryParams)
|
const data = await MaterialPlanApi.getMaterialPlanPageData(queryParams)
|
||||||
list.value = data.list
|
list.value = data.list
|
||||||
total.value = data.total
|
total.value = data.total
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user