近期修改
This commit is contained in:
parent
a38727d8f0
commit
5107396ebd
@ -83,4 +83,10 @@ public class MaterialPlanPageReqVO extends PageParam {
|
|||||||
private String supplierName;
|
private String supplierName;
|
||||||
@Schema(description = "客户简称")
|
@Schema(description = "客户简称")
|
||||||
private String customerName;
|
private String customerName;
|
||||||
|
@Schema(description = "采购单号")
|
||||||
|
private String purchaseNo;
|
||||||
|
@Schema(description = "零件明细id集合")
|
||||||
|
List<Long> boomDetailIds;
|
||||||
|
@Schema(description = "子项目id集合")
|
||||||
|
List<Long> projectPlanSubIds;
|
||||||
}
|
}
|
||||||
@ -158,6 +158,12 @@ public class PurchaseOrderMakeController {
|
|||||||
public CommonResult<Boolean> createPurchaseOrderMakeAndDetail(@Valid @RequestBody List<MaterialPlanBoomDO> saveReqVOs) {
|
public CommonResult<Boolean> createPurchaseOrderMakeAndDetail(@Valid @RequestBody List<MaterialPlanBoomDO> saveReqVOs) {
|
||||||
return success(partPurchaseOrderService.createPurchaseOrderMakeAndDetailBatch(saveReqVOs));
|
return success(partPurchaseOrderService.createPurchaseOrderMakeAndDetailBatch(saveReqVOs));
|
||||||
}
|
}
|
||||||
|
@PostMapping("/updateDuEmp")
|
||||||
|
@Operation(summary = "零件采购单送审生成")
|
||||||
|
@PreAuthorize("@ss.hasPermission('heli:material-plan:query')")
|
||||||
|
public CommonResult<Boolean> updateDuEmp(@Valid @RequestBody List<MaterialPlanBoomDO> saveReqVOs) {
|
||||||
|
return partPurchaseOrderService.updateDuEmp(saveReqVOs);
|
||||||
|
}
|
||||||
@GetMapping("/review")
|
@GetMapping("/review")
|
||||||
@Operation(summary = "小程序采购单审核分页")
|
@Operation(summary = "小程序采购单审核分页")
|
||||||
@PreAuthorize("@ss.hasPermission('heli:purchase-order-make:query')")
|
@PreAuthorize("@ss.hasPermission('heli:purchase-order-make:query')")
|
||||||
|
|||||||
@ -18,7 +18,6 @@ public class PurchaseOrderMakeDetailSaveReqVO {
|
|||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@Schema(description = "采购单id", requiredMode = Schema.RequiredMode.REQUIRED, example = "13340")
|
@Schema(description = "采购单id", requiredMode = Schema.RequiredMode.REQUIRED, example = "13340")
|
||||||
@NotNull(message = "采购单id不能为空")
|
|
||||||
private Long purchaseOrderId;
|
private Long purchaseOrderId;
|
||||||
|
|
||||||
private Integer buyType;
|
private Integer buyType;
|
||||||
|
|||||||
@ -112,4 +112,6 @@ public class PurchaseOrderNoRespVO {
|
|||||||
private Integer receivingStatus1;
|
private Integer receivingStatus1;
|
||||||
@Schema(description = "创建人")
|
@Schema(description = "创建人")
|
||||||
private String submitUserName;
|
private String submitUserName;
|
||||||
|
@Schema(description = "工序名称")
|
||||||
|
private String procedureName;
|
||||||
}
|
}
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
package com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class BubbleFeeResult {
|
||||||
|
private Long bomDetailId;
|
||||||
|
private Long procedureId;
|
||||||
|
private BigDecimal cost;
|
||||||
|
}
|
||||||
@ -83,4 +83,6 @@ public class TaskDispatchPageReqVO extends PageParam {
|
|||||||
private String blueprintNo;
|
private String blueprintNo;
|
||||||
@Schema(description = "零件名称")
|
@Schema(description = "零件名称")
|
||||||
private String boomName;
|
private String boomName;
|
||||||
|
@Schema(description = "已发货零件显示")
|
||||||
|
private String flag;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -182,12 +182,35 @@ public class PurchaseOrderMakeDetailDO extends BaseDO {
|
|||||||
* 泡沫
|
* 泡沫
|
||||||
*/
|
*/
|
||||||
private String isFoam;
|
private String isFoam;
|
||||||
@TableField(exist = false)
|
/**
|
||||||
|
* 订单id
|
||||||
|
*/
|
||||||
|
private Long projectId;
|
||||||
|
/**
|
||||||
|
* 生产计划id
|
||||||
|
*/
|
||||||
|
private Long projectPlanId;
|
||||||
|
/**
|
||||||
|
* 客户id
|
||||||
|
*/
|
||||||
|
private Long customerId;
|
||||||
|
/**
|
||||||
|
* 客户简称
|
||||||
|
*/
|
||||||
|
private String brief;
|
||||||
|
/**
|
||||||
|
* 项目名称
|
||||||
|
*/
|
||||||
private String projectName;
|
private String projectName;
|
||||||
|
/**
|
||||||
|
* 项目名称简码
|
||||||
|
*/
|
||||||
|
private String projectNameSim;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String matName;
|
private String matName;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String brief;
|
private String briefs;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String blueprintNo;
|
private String blueprintNo;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
|
|||||||
@ -140,6 +140,8 @@ public class PurchaseOrderNoDO extends BaseDO {
|
|||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String userMobile;
|
private String userMobile;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
|
private String procedureName;
|
||||||
|
@TableField(exist = false)
|
||||||
private String contactName;
|
private String contactName;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String contactMobile;
|
private String contactMobile;
|
||||||
|
|||||||
@ -96,6 +96,8 @@ public class TaskDispatchDetailDO extends BaseDO {
|
|||||||
private LocalDateTime endTime;
|
private LocalDateTime endTime;
|
||||||
private Long dispatchType;
|
private Long dispatchType;
|
||||||
private String postId;
|
private String postId;
|
||||||
|
private String purchaseNo;
|
||||||
|
private String projectPurchaseOrderMakeDetailId;
|
||||||
private String isOutsourcing;
|
private String isOutsourcing;
|
||||||
private String projectMaterialPlanNo;
|
private String projectMaterialPlanNo;
|
||||||
private Long projectMaterialPlanDetailId;
|
private Long projectMaterialPlanDetailId;
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
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;
|
||||||
@ -22,6 +23,7 @@ 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.purchaseordermake.PurchaseOrderMakeDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermakedetail.PurchaseOrderMakeDetailDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermakedetail.PurchaseOrderMakeDetailDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.rg.RgDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.rg.RgDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageinventory.StorageInventoryDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageinventory.StorageInventoryDO;
|
||||||
@ -34,6 +36,7 @@ import com.chanko.yunxi.mes.module.heli.enums.ProcessBomStatusEnum;
|
|||||||
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
||||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
import org.apache.ibatis.annotations.Delete;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.materialplanboom.vo.*;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.materialplanboom.vo.*;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
@ -238,6 +241,7 @@ public interface MaterialPlanBoomMapper extends BaseMapperX<MaterialPlanBoomDO>
|
|||||||
.select("COALESCE(m.the_weight, t.mat_weight) as theWeight","COALESCE(m.the_weight, t.mat_weight) as theWeight")
|
.select("COALESCE(m.the_weight, t.mat_weight) as theWeight","COALESCE(m.the_weight, t.mat_weight) as theWeight")
|
||||||
.select("COALESCE(m.purchase_amount, t.boom_amount) AS purchaseAmounts,m.supplier_id as supplierIds,m.estimated_price as estimatedPrices,m.unit_price as unitPrice")
|
.select("COALESCE(m.purchase_amount, t.boom_amount) AS purchaseAmounts,m.supplier_id as supplierIds,m.estimated_price as estimatedPrices,m.unit_price as unitPrice")
|
||||||
.select("COALESCE(m.arrive_time, t.boom_arrive_date) as arriveTimes,COALESCE(m.description, t.description) as descriptions")
|
.select("COALESCE(m.arrive_time, t.boom_arrive_date) as arriveTimes,COALESCE(m.description, t.description) as descriptions")
|
||||||
|
.select("COALESCE(m.du_emp_id, t.du_emp_id) as duEmpId")
|
||||||
.select("m.is_foam as isFoams","m.foam_price as foamPrice")
|
.select("m.is_foam as isFoams","m.foam_price as foamPrice")
|
||||||
.select("CASE \n" +
|
.select("CASE \n" +
|
||||||
" WHEN t.is_foam = 'Y' THEN 1 \n" +
|
" WHEN t.is_foam = 'Y' THEN 1 \n" +
|
||||||
@ -250,6 +254,7 @@ public interface MaterialPlanBoomMapper extends BaseMapperX<MaterialPlanBoomDO>
|
|||||||
.leftJoin(ProjectOrderDO.class,"pro",ProjectOrderDO::getId,MaterialPlanDO::getProjectId)
|
.leftJoin(ProjectOrderDO.class,"pro",ProjectOrderDO::getId,MaterialPlanDO::getProjectId)
|
||||||
.leftJoin(ProjectOrderSubDO.class,"sub",ProjectOrderSubDO::getId,MaterialPlanBoomDO::getProjectPlanSubId)
|
.leftJoin(ProjectOrderSubDO.class,"sub",ProjectOrderSubDO::getId,MaterialPlanBoomDO::getProjectPlanSubId)
|
||||||
.leftJoin(AdminUserDO.class, "a", AdminUserDO::getId, MaterialPlanBoomDO::getDuEmpId)
|
.leftJoin(AdminUserDO.class, "a", AdminUserDO::getId, MaterialPlanBoomDO::getDuEmpId)
|
||||||
|
.leftJoin(AdminUserDO.class,"admin", AdminUserDO::getId, PurchaseOrderMakeDetailDO::getDuEmpId)
|
||||||
.leftJoin(ProcedureDO.class, "c", ProcedureDO::getId, MaterialPlanBoomDO::getProcedureId)
|
.leftJoin(ProcedureDO.class, "c", ProcedureDO::getId, MaterialPlanBoomDO::getProcedureId)
|
||||||
.leftJoin(CompositionDO.class, "e", CompositionDO::getId, ProcessBomDetailDO::getCompositionId)
|
.leftJoin(CompositionDO.class, "e", CompositionDO::getId, ProcessBomDetailDO::getCompositionId)
|
||||||
.leftJoin(SupplierDO.class, "f", SupplierDO::getId, PurchaseOrderMakeDetailDO::getSupplierId)
|
.leftJoin(SupplierDO.class, "f", SupplierDO::getId, PurchaseOrderMakeDetailDO::getSupplierId)
|
||||||
@ -263,21 +268,33 @@ public interface MaterialPlanBoomMapper extends BaseMapperX<MaterialPlanBoomDO>
|
|||||||
.like(!StringUtils.isEmpty(pageReqVO.getMaterialName()), MaterialPlanBoomDO::getMatName, pageReqVO.getMaterialName())
|
.like(!StringUtils.isEmpty(pageReqVO.getMaterialName()), MaterialPlanBoomDO::getMatName, pageReqVO.getMaterialName())
|
||||||
.like(!StringUtils.isEmpty(pageReqVO.getMatName()), MaterialPlanBoomDO::getMatName, pageReqVO.getMatName())
|
.like(!StringUtils.isEmpty(pageReqVO.getMatName()), MaterialPlanBoomDO::getMatName, pageReqVO.getMatName())
|
||||||
.like(!StringUtils.isEmpty(pageReqVO.getProjectCode()), ProjectOrderDO::getCode, pageReqVO.getProjectCode())
|
.like(!StringUtils.isEmpty(pageReqVO.getProjectCode()), ProjectOrderDO::getCode, pageReqVO.getProjectCode())
|
||||||
.like(!StringUtils.isEmpty(pageReqVO.getDuEmpName()), AdminUserDO::getNickname, pageReqVO.getDuEmpName())
|
// .like(!StringUtils.isEmpty(pageReqVO.getDuEmpName()), AdminUserDO::getNickname, pageReqVO.getDuEmpName())
|
||||||
.like(!StringUtils.isEmpty(pageReqVO.getProcedureName()), ProcedureDO::getName, pageReqVO.getProcedureName())
|
.like(!StringUtils.isEmpty(pageReqVO.getProcedureName()), ProcedureDO::getName, pageReqVO.getProcedureName())
|
||||||
.eq(!StringUtils.isEmpty(pageReqVO.getMatType()), MaterialPlanDO::getMatType, pageReqVO.getMatType())
|
.eq(!StringUtils.isEmpty(pageReqVO.getMatType()), MaterialPlanDO::getMatType, pageReqVO.getMatType())
|
||||||
.eq(!StringUtils.isEmpty(pageReqVO.getStatus()), MaterialPlanBoomDO::getIsPurYard, pageReqVO.getStatus())
|
.eq(!StringUtils.isEmpty(pageReqVO.getStatus()), MaterialPlanBoomDO::getIsPurYard, pageReqVO.getStatus())
|
||||||
.like(ObjectUtil.isNotEmpty(pageReqVO.getSupplierName()), SupplierDO::getBrief, pageReqVO.getSupplierName())
|
.like(ObjectUtil.isNotEmpty(pageReqVO.getSupplierName()), SupplierDO::getBrief, pageReqVO.getSupplierName())
|
||||||
.like(ObjectUtil.isNotEmpty(pageReqVO.getCustomerName()), MaterialPlanDO::getBrief, pageReqVO.getCustomerName())
|
.like(ObjectUtil.isNotEmpty(pageReqVO.getCustomerName()), MaterialPlanDO::getBrief, pageReqVO.getCustomerName())
|
||||||
|
.in(Objects.nonNull(pageReqVO.getBoomDetailIds()), ProcessBomDetailDO::getId, pageReqVO.getBoomDetailIds())
|
||||||
|
.in(Objects.nonNull(pageReqVO.getProjectPlanSubIds()), ProjectOrderSubDO::getId, pageReqVO.getProjectPlanSubIds())
|
||||||
.in(Objects.nonNull(pageReqVO.getMplanStatus()), MaterialPlanBoomDO::getMplanStatus, pageReqVO.getMplanStatus() != null && pageReqVO.getMplanStatus() != 0 ? Arrays.asList(pageReqVO.getMplanStatus()) : Arrays.asList(0, 3))
|
.in(Objects.nonNull(pageReqVO.getMplanStatus()), MaterialPlanBoomDO::getMplanStatus, pageReqVO.getMplanStatus() != null && pageReqVO.getMplanStatus() != 0 ? Arrays.asList(pageReqVO.getMplanStatus()) : Arrays.asList(0, 3))
|
||||||
.eq(Objects.nonNull(pageReqVO.getProjectMaterialPlanNo()), MaterialPlanDO::getProjectMaterialPlanNo, pageReqVO.getProjectMaterialPlanNo());
|
.eq(Objects.nonNull(pageReqVO.getProjectMaterialPlanNo()), MaterialPlanDO::getProjectMaterialPlanNo, pageReqVO.getProjectMaterialPlanNo());
|
||||||
|
if (Objects.nonNull(pageReqVO.getMplanStatus())) {
|
||||||
|
if (pageReqVO.getMplanStatus() == 0 || pageReqVO.getMplanStatus() == 3){
|
||||||
|
if (ObjectUtil.isNotEmpty(pageReqVO.getDuEmpName())){
|
||||||
|
query.like("a.nickname", pageReqVO.getDuEmpName());
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
if (ObjectUtil.isNotEmpty(pageReqVO.getDuEmpName())){
|
||||||
|
query.like("admin.nickname", pageReqVO.getDuEmpName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Objects.nonNull(pageReqVO.getMplanStatus())) {
|
if (Objects.nonNull(pageReqVO.getMplanStatus())) {
|
||||||
// 根据 mplanStatus 的值动态设置排序字段
|
// 根据 mplanStatus 的值动态设置排序字段
|
||||||
if (pageReqVO.getMplanStatus() == 0){
|
if (pageReqVO.getMplanStatus() == 0){
|
||||||
query.orderByAsc(MaterialPlanDO::getProjectName);
|
query.orderByAsc(MaterialPlanDO::getProjectName);
|
||||||
query.orderByAsc(ProcessBomDetailDO::getBlueprintNo);
|
query.orderByAsc(ProcessBomDetailDO::getBlueprintNo);
|
||||||
|
|
||||||
}else if (pageReqVO.getMplanStatus() == 1 || pageReqVO.getMplanStatus() == 2) {
|
}else if (pageReqVO.getMplanStatus() == 1 || pageReqVO.getMplanStatus() == 2) {
|
||||||
query.orderByDesc(MaterialPlanBoomDO::getPurchaseNo);
|
query.orderByDesc(MaterialPlanBoomDO::getPurchaseNo);
|
||||||
query.orderByAsc(ProcessBomDetailDO::getBlueprintNo);
|
query.orderByAsc(ProcessBomDetailDO::getBlueprintNo);
|
||||||
@ -292,6 +309,8 @@ public interface MaterialPlanBoomMapper extends BaseMapperX<MaterialPlanBoomDO>
|
|||||||
PageResult<MaterialPlanBoomDO> pageResult = selectPage(pageReqVO, query);
|
PageResult<MaterialPlanBoomDO> pageResult = selectPage(pageReqVO, query);
|
||||||
return pageResult;
|
return pageResult;
|
||||||
}
|
}
|
||||||
|
@Delete("DELETE FROM project_material_plan_boom WHERE id= #{id}")
|
||||||
|
void deletePlanBoom(@Param("id") Long id);
|
||||||
|
|
||||||
|
|
||||||
// default PageResult<MaterialPlanBoomDO> selectPage(MaterialPlanBoomPageReqVO reqVO) {
|
// default PageResult<MaterialPlanBoomDO> selectPage(MaterialPlanBoomPageReqVO reqVO) {
|
||||||
|
|||||||
@ -189,7 +189,10 @@ public interface PurchaseOrderMakeDetailMapper extends BaseMapperX<PurchaseOrder
|
|||||||
MPJLambdaWrapper<PurchaseOrderMakeDetailDO> query = new MPJLambdaWrapper<>();
|
MPJLambdaWrapper<PurchaseOrderMakeDetailDO> query = new MPJLambdaWrapper<>();
|
||||||
query.selectAll(PurchaseOrderMakeDetailDO.class)
|
query.selectAll(PurchaseOrderMakeDetailDO.class)
|
||||||
.select("c.nickname as duEmpName")
|
.select("c.nickname as duEmpName")
|
||||||
.select("a.brief as brief")
|
.select(" CASE \n" +
|
||||||
|
" WHEN a.goods_type = 1 THEN a.brief \n" +
|
||||||
|
" ELSE t.brief \n" +
|
||||||
|
" END as briefs")
|
||||||
.select("d.brief as supplierName")
|
.select("d.brief as supplierName")
|
||||||
.select("bom.blueprint_no as blueprintNo")
|
.select("bom.blueprint_no as blueprintNo")
|
||||||
.select("CASE \n" +
|
.select("CASE \n" +
|
||||||
@ -202,6 +205,7 @@ public interface PurchaseOrderMakeDetailMapper extends BaseMapperX<PurchaseOrder
|
|||||||
.select("DATE_FORMAT(t.require_time, '%Y-%m-%d') AS requir")
|
.select("DATE_FORMAT(t.require_time, '%Y-%m-%d') AS requir")
|
||||||
.leftJoin(PurchaseOrderMakeDO.class,"a",PurchaseOrderMakeDO::getId,PurchaseOrderMakeDetailDO::getPurchaseOrderId)
|
.leftJoin(PurchaseOrderMakeDO.class,"a",PurchaseOrderMakeDO::getId,PurchaseOrderMakeDetailDO::getPurchaseOrderId)
|
||||||
.leftJoin(ProjectOrderDO.class,"b",ProjectOrderDO::getId,PurchaseOrderMakeDO::getProjectId)
|
.leftJoin(ProjectOrderDO.class,"b",ProjectOrderDO::getId,PurchaseOrderMakeDO::getProjectId)
|
||||||
|
.leftJoin(ProjectOrderDO.class,"o",ProjectOrderDO::getId,PurchaseOrderMakeDetailDO::getProjectId)
|
||||||
.leftJoin(AdminUserDO.class,"c", AdminUserDO::getId,PurchaseOrderMakeDetailDO::getDuEmpId)
|
.leftJoin(AdminUserDO.class,"c", AdminUserDO::getId,PurchaseOrderMakeDetailDO::getDuEmpId)
|
||||||
.leftJoin(SupplierDO.class, "d", SupplierDO::getId,PurchaseOrderMakeDetailDO::getSupplierId)
|
.leftJoin(SupplierDO.class, "d", SupplierDO::getId,PurchaseOrderMakeDetailDO::getSupplierId)
|
||||||
.leftJoin(ProcedureDO.class, "e", ProcedureDO::getId, PurchaseOrderMakeDetailDO::getProcedureId)
|
.leftJoin(ProcedureDO.class, "e", ProcedureDO::getId, PurchaseOrderMakeDetailDO::getProcedureId)
|
||||||
@ -212,13 +216,13 @@ public interface PurchaseOrderMakeDetailMapper extends BaseMapperX<PurchaseOrder
|
|||||||
.eq(ObjectUtil.isNotEmpty(pageReqVO.getGoodsType()) ,PurchaseOrderMakeDO::getGoodsType, pageReqVO.getGoodsType())
|
.eq(ObjectUtil.isNotEmpty(pageReqVO.getGoodsType()) ,PurchaseOrderMakeDO::getGoodsType, pageReqVO.getGoodsType())
|
||||||
// .like(ObjectUtil.isNotEmpty(pageReqVO.getProjectName()), PurchaseOrderMakeDO::getProjectName, pageReqVO.getProjectName())
|
// .like(ObjectUtil.isNotEmpty(pageReqVO.getProjectName()), PurchaseOrderMakeDO::getProjectName, pageReqVO.getProjectName())
|
||||||
// .like(ObjectUtil.isNotEmpty(pageReqVO.getProjectSubName()), ProjectOrderSubDO::getName, pageReqVO.getProjectSubName())
|
// .like(ObjectUtil.isNotEmpty(pageReqVO.getProjectSubName()), ProjectOrderSubDO::getName, pageReqVO.getProjectSubName())
|
||||||
.like(ObjectUtil.isNotEmpty(pageReqVO.getProjectName()), ProjectOrderDO::getProjectNameSim, pageReqVO.getProjectName())
|
// .like(ObjectUtil.isNotEmpty(pageReqVO.getProjectName()), ProjectOrderDO::getProjectNameSim, pageReqVO.getProjectName())
|
||||||
.like(ObjectUtil.isNotEmpty(pageReqVO.getProjectSubName()), ProjectOrderSubDO::getNameSim, pageReqVO.getProjectSubName())
|
.like(ObjectUtil.isNotEmpty(pageReqVO.getProjectSubName()), ProjectOrderSubDO::getNameSim, pageReqVO.getProjectSubName())
|
||||||
.like(ObjectUtil.isNotEmpty(pageReqVO.getMaterialName()), PurchaseOrderMakeDetailDO::getBoomName, pageReqVO.getMaterialName())
|
.like(ObjectUtil.isNotEmpty(pageReqVO.getMaterialName()), PurchaseOrderMakeDetailDO::getBoomName, pageReqVO.getMaterialName())
|
||||||
.like(ObjectUtil.isNotEmpty(pageReqVO.getStatus()), PurchaseOrderMakeDetailDO::getStatus, pageReqVO.getStatus())
|
.like(ObjectUtil.isNotEmpty(pageReqVO.getStatus()), PurchaseOrderMakeDetailDO::getStatus, pageReqVO.getStatus())
|
||||||
.like(ObjectUtil.isNotEmpty(pageReqVO.getProjectCode()), ProjectOrderDO::getCode, pageReqVO.getProjectCode())
|
// .like(ObjectUtil.isNotEmpty(pageReqVO.getProjectCode()), ProjectOrderDO::getCode, pageReqVO.getProjectCode())
|
||||||
.like(ObjectUtil.isNotEmpty(pageReqVO.getOwnerName()), AdminUserDO::getNickname, pageReqVO.getOwnerName())
|
.like(ObjectUtil.isNotEmpty(pageReqVO.getOwnerName()), AdminUserDO::getNickname, pageReqVO.getOwnerName())
|
||||||
.like(ObjectUtil.isNotEmpty(pageReqVO.getBrief()), PurchaseOrderMakeDO::getBrief, pageReqVO.getBrief())
|
// .like(ObjectUtil.isNotEmpty(pageReqVO.getBrief()), PurchaseOrderMakeDO::getBrief, pageReqVO.getBrief())
|
||||||
.like(ObjectUtil.isNotEmpty(pageReqVO.getBlueprintNo()), ProcessBomDetailDO::getBlueprintNo, pageReqVO.getBlueprintNo())
|
.like(ObjectUtil.isNotEmpty(pageReqVO.getBlueprintNo()), ProcessBomDetailDO::getBlueprintNo, pageReqVO.getBlueprintNo())
|
||||||
.like(ObjectUtil.isNotEmpty(pageReqVO.getProcedureName()), ProcedureDO::getName, pageReqVO.getProcedureName())
|
.like(ObjectUtil.isNotEmpty(pageReqVO.getProcedureName()), ProcedureDO::getName, pageReqVO.getProcedureName())
|
||||||
.eq(ObjectUtil.isNotEmpty(pageReqVO.getReceivingStatus()), "COALESCE(no.receiving_status, 1) ", pageReqVO.getReceivingStatus()) .like(ObjectUtil.isNotEmpty(pageReqVO.getSupplierName()), SupplierDO::getBrief, pageReqVO.getSupplierName());
|
.eq(ObjectUtil.isNotEmpty(pageReqVO.getReceivingStatus()), "COALESCE(no.receiving_status, 1) ", pageReqVO.getReceivingStatus()) .like(ObjectUtil.isNotEmpty(pageReqVO.getSupplierName()), SupplierDO::getBrief, pageReqVO.getSupplierName());
|
||||||
@ -231,6 +235,33 @@ public interface PurchaseOrderMakeDetailMapper extends BaseMapperX<PurchaseOrder
|
|||||||
.withSecond(59);
|
.withSecond(59);
|
||||||
query.between(PurchaseOrderMakeDetailDO::getCreateTime, pageReqVO.getCreateTime()[0], endOfDay);
|
query.between(PurchaseOrderMakeDetailDO::getCreateTime, pageReqVO.getCreateTime()[0], endOfDay);
|
||||||
}
|
}
|
||||||
|
if (ObjectUtil.isNotEmpty(pageReqVO.getProjectName())){
|
||||||
|
if (ObjectUtil.isNotEmpty(pageReqVO.getGoodsType())){
|
||||||
|
if (pageReqVO.getGoodsType() == 1){
|
||||||
|
query.like("b.project_name_sim", pageReqVO.getProjectName());
|
||||||
|
}else if (pageReqVO.getGoodsType() == 2){
|
||||||
|
query.like("o.project_name_sim", pageReqVO.getProjectName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isNotEmpty(pageReqVO.getProjectCode())){
|
||||||
|
if (ObjectUtil.isNotEmpty(pageReqVO.getGoodsType())){
|
||||||
|
if (pageReqVO.getGoodsType() == 1){
|
||||||
|
query.like("b.code", pageReqVO.getProjectCode());
|
||||||
|
}else if (pageReqVO.getGoodsType() == 2){
|
||||||
|
query.like("o.code", pageReqVO.getProjectCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isNotEmpty(pageReqVO.getBrief())){
|
||||||
|
if (ObjectUtil.isNotEmpty(pageReqVO.getGoodsType())){
|
||||||
|
if (pageReqVO.getGoodsType() == 1){
|
||||||
|
query.like( PurchaseOrderMakeDO::getBrief, pageReqVO.getBrief());
|
||||||
|
}else if (pageReqVO.getGoodsType() == 2){
|
||||||
|
query.like( PurchaseOrderMakeDetailDO::getBrief, pageReqVO.getBrief());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return selectPage(pageReqVO, query);
|
return selectPage(pageReqVO, query);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -46,6 +46,7 @@ public interface PurchaseOrderNoMapper extends BaseMapperX<PurchaseOrderNoDO> {
|
|||||||
" WHEN SUM(CASE d.receiving_status WHEN 1 THEN 1 ELSE 0 END) = COUNT(d.id) THEN 1 " + // 全部为1
|
" WHEN SUM(CASE d.receiving_status WHEN 1 THEN 1 ELSE 0 END) = COUNT(d.id) THEN 1 " + // 全部为1
|
||||||
" ELSE 2 " + // 其他情况
|
" ELSE 2 " + // 其他情况
|
||||||
"END AS receivingStatus1")
|
"END AS receivingStatus1")
|
||||||
|
.select("pro.name as procedureName")
|
||||||
.leftJoin(SupplierDO.class, "s", SupplierDO::getId, PurchaseOrderNoDO::getSupplierId)
|
.leftJoin(SupplierDO.class, "s", SupplierDO::getId, PurchaseOrderNoDO::getSupplierId)
|
||||||
.leftJoin(PurchaseOrderNoDetailDO.class,"d", PurchaseOrderNoDetailDO::getPurchaseOrderId, PurchaseOrderNoDO::getId)
|
.leftJoin(PurchaseOrderNoDetailDO.class,"d", PurchaseOrderNoDetailDO::getPurchaseOrderId, PurchaseOrderNoDO::getId)
|
||||||
// .leftJoin(ProcedureDO.class,"pro", ProcedureDO::getId, PurchaseOrderNoDetailDO::getProcedureId)
|
// .leftJoin(ProcedureDO.class,"pro", ProcedureDO::getId, PurchaseOrderNoDetailDO::getProcedureId)
|
||||||
|
|||||||
@ -198,7 +198,6 @@ public interface PurchaseOrderNoDetailMapper extends BaseMapperX<PurchaseOrderNo
|
|||||||
|
|
||||||
return selectPage(pageReqVO, query);
|
return selectPage(pageReqVO, query);
|
||||||
}
|
}
|
||||||
|
|
||||||
default PageResult<PurchaseOrderNoDetailDO> getReceivingGoods(PurchaseOrderNoDetailPageReqVO pageReqVO){
|
default PageResult<PurchaseOrderNoDetailDO> getReceivingGoods(PurchaseOrderNoDetailPageReqVO pageReqVO){
|
||||||
MPJLambdaWrapper<PurchaseOrderNoDetailDO> query = new MPJLambdaWrapper<>();
|
MPJLambdaWrapper<PurchaseOrderNoDetailDO> query = new MPJLambdaWrapper<>();
|
||||||
|
|
||||||
@ -276,7 +275,7 @@ public interface PurchaseOrderNoDetailMapper extends BaseMapperX<PurchaseOrderNo
|
|||||||
.leftJoin(CustomerDO.class,"c", CustomerDO::getId, ProjectOrderDO::getCustomerId)
|
.leftJoin(CustomerDO.class,"c", CustomerDO::getId, ProjectOrderDO::getCustomerId)
|
||||||
.disableSubLogicDel()
|
.disableSubLogicDel()
|
||||||
.groupBy(MaterialPlanDetailDO::getId);
|
.groupBy(MaterialPlanDetailDO::getId);
|
||||||
query.like(!StringUtils.isEmpty(pageReqVO.getPurchaseNo()), PurchaseOrderDO::getPurchaseNo, pageReqVO.getPurchaseNo())
|
query.like(!StringUtils.isEmpty(pageReqVO.getPurchaseNo()), PurchaseOrderNoDO::getPurchaseNo, pageReqVO.getPurchaseNo())
|
||||||
.like(!StringUtils.isEmpty(pageReqVO.getSupplierName()), "s.brief", pageReqVO.getSupplierName())
|
.like(!StringUtils.isEmpty(pageReqVO.getSupplierName()), "s.brief", pageReqVO.getSupplierName())
|
||||||
.like(!StringUtils.isEmpty(pageReqVO.getMaterialPlanNo()), "m.project_material_plan_no", pageReqVO.getMaterialPlanNo())
|
.like(!StringUtils.isEmpty(pageReqVO.getMaterialPlanNo()), "m.project_material_plan_no", pageReqVO.getMaterialPlanNo())
|
||||||
.eq(pageReqVO.getStatus() != null, PurchaseOrderNoDO::getStatus, pageReqVO.getStatus())
|
.eq(pageReqVO.getStatus() != null, PurchaseOrderNoDO::getStatus, pageReqVO.getStatus())
|
||||||
|
|||||||
@ -8,6 +8,7 @@ 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.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.materialplan.vo.MaterialPlanPageReqVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.materialplan.vo.MaterialPlanPageReqVO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.BubbleFeeResult;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskDispatchDetailPageReqVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskDispatchDetailPageReqVO;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskDispatchDetailTotalVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskDispatchDetailTotalVO;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskPlanJDBaoBiaoPageReqVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskPlanJDBaoBiaoPageReqVO;
|
||||||
@ -382,8 +383,11 @@ public interface TaskDispatchDetailMapper extends BaseMapperX<TaskDispatchDetail
|
|||||||
" FROM quality_pg_master_line p\n" +
|
" FROM quality_pg_master_line p\n" +
|
||||||
" LEFT JOIN quality_bg_master_line bg ON bg.zj_mx_id = p.id and p.deleted = 0 AND p.tenant_id = 2\n" +
|
" LEFT JOIN quality_bg_master_line bg ON bg.zj_mx_id = p.id and p.deleted = 0 AND p.tenant_id = 2\n" +
|
||||||
" WHERE p.dispatch_detail_id = t.id) AS bgWorkTime")
|
" WHERE p.dispatch_detail_id = t.id) AS bgWorkTime")
|
||||||
|
.select("bom.id as bomDetailId")
|
||||||
.leftJoin(ProcedureDO.class,"a",ProcedureDO::getId,TaskDispatchDetailDO::getProcedureId)
|
.leftJoin(ProcedureDO.class,"a",ProcedureDO::getId,TaskDispatchDetailDO::getProcedureId)
|
||||||
.leftJoin(TaskReportDO.class,"b",TaskReportDO::getDispatchDetailId,TaskDispatchDetailDO::getId)
|
.leftJoin(TaskReportDO.class,"b",TaskReportDO::getDispatchDetailId,TaskDispatchDetailDO::getId)
|
||||||
|
.leftJoin(TaskDispatchDO.class,"task",TaskDispatchDO::getId,TaskDispatchDetailDO::getDispatchId)
|
||||||
|
.leftJoin(ProcessBomDetailDO.class,"bom",ProcessBomDetailDO::getId,TaskDispatchDO::getBomDetailId)
|
||||||
// .leftJoin(PgMasterLineDO.class,"p",PgMasterLineDO::getDispatchDetailId,TaskDispatchDetailDO::getId)
|
// .leftJoin(PgMasterLineDO.class,"p",PgMasterLineDO::getDispatchDetailId,TaskDispatchDetailDO::getId)
|
||||||
// .leftJoin("quality_pg_master_line p on p.dispatch_detail_id=t.id and p.deleted=0")
|
// .leftJoin("quality_pg_master_line p on p.dispatch_detail_id=t.id and p.deleted=0")
|
||||||
// .leftJoin("quality_bg_master_line bg on bg.zj_mx_id = p.id and bg.deleted=0")
|
// .leftJoin("quality_bg_master_line bg on bg.zj_mx_id = p.id and bg.deleted=0")
|
||||||
@ -881,4 +885,13 @@ public interface TaskDispatchDetailMapper extends BaseMapperX<TaskDispatchDetail
|
|||||||
"</foreach>" +
|
"</foreach>" +
|
||||||
"</script>")
|
"</script>")
|
||||||
void deleteOrderId(@Param("idList") List<Long> idList);
|
void deleteOrderId(@Param("idList") List<Long> idList);
|
||||||
|
|
||||||
|
List<BubbleFeeResult> batchBubbleFees(@Param("bomDetailIds") List<Long> bomDetailIds,
|
||||||
|
@Param("procedureIds") List<Long> procedureIds);
|
||||||
|
|
||||||
|
List<BubbleFeeResult> batchMaterialCosts(@Param("bomDetailIds")List<Long> bomDetailIds,@Param("procedureIds") List<Long> procedureIds);
|
||||||
|
|
||||||
|
Map<Long, BigDecimal> batchInternalLaborCost(@Param("bomDetailIds")List<Long> bomDetailIds);
|
||||||
|
|
||||||
|
Map<Long, BigDecimal> batchProcessInspection(@Param("bomDetailIds")List<Long> bomDetailIds);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,10 +4,12 @@ import cn.hutool.core.util.ObjectUtil;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
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.taskdispatch.vo.BubbleFeeResult;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskDispatchPageReqVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskDispatchPageReqVO;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskPlanJDBaoBiaoPageReqVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskPlanJDBaoBiaoPageReqVO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.composition.CompositionDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.composition.CompositionDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO;
|
||||||
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.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.plantaskbom.PlanTaskBomDO;
|
||||||
@ -16,10 +18,12 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDeta
|
|||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processdesign.ProcessDesignDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processdesign.ProcessDesignDO;
|
||||||
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.purchaseordernodetail.PurchaseOrderNoDetailDO;
|
||||||
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.dataobject.taskdispatch.TaskDispatchDetailDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskreport.TaskReportDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskreport.TaskReportDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.enums.TaskDispatchTypeEnum;
|
import com.chanko.yunxi.mes.module.heli.enums.TaskDispatchTypeEnum;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.service.taskdispatch.TaskDispatchServiceImpl;
|
||||||
import com.chanko.yunxi.mes.module.system.dal.dataobject.dept.PostDO;
|
import com.chanko.yunxi.mes.module.system.dal.dataobject.dept.PostDO;
|
||||||
import com.chanko.yunxi.mes.module.system.dal.dataobject.dept.UserPostDO;
|
import com.chanko.yunxi.mes.module.system.dal.dataobject.dept.UserPostDO;
|
||||||
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
||||||
@ -30,6 +34,7 @@ import org.apache.ibatis.annotations.Param;
|
|||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 派工单 Mapper
|
* 派工单 Mapper
|
||||||
@ -57,6 +62,7 @@ public interface TaskDispatchMapper extends BaseMapperX<TaskDispatchDO> {
|
|||||||
.select("h.task_no as taskCode")
|
.select("h.task_no as taskCode")
|
||||||
.select("i.require_end_date as requiredCompletedDate")
|
.select("i.require_end_date as requiredCompletedDate")
|
||||||
.select("u1.nickname as ownerName,u1.id as ownerId")
|
.select("u1.nickname as ownerName,u1.id as ownerId")
|
||||||
|
|
||||||
.leftJoin(PlanDO.class, "a", PlanDO::getId, ProcessDesignDO::getPlanId)
|
.leftJoin(PlanDO.class, "a", PlanDO::getId, ProcessDesignDO::getPlanId)
|
||||||
.leftJoin("project_plan_sub b on b.project_plan_id = t.plan_id and b.project_sub_id = t.project_sub_id")
|
.leftJoin("project_plan_sub b on b.project_plan_id = t.plan_id and b.project_sub_id = t.project_sub_id")
|
||||||
.leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, ProcessDesignDO::getProjectSubId)
|
.leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, ProcessDesignDO::getProjectSubId)
|
||||||
@ -69,6 +75,7 @@ public interface TaskDispatchMapper extends BaseMapperX<TaskDispatchDO> {
|
|||||||
.leftJoin(AdminUserDO.class, "u1", AdminUserDO::getId, PlanTaskBomDO::getOwner)
|
.leftJoin(AdminUserDO.class, "u1", AdminUserDO::getId, PlanTaskBomDO::getOwner)
|
||||||
.orderByDesc(TaskDispatchDO::getId)
|
.orderByDesc(TaskDispatchDO::getId)
|
||||||
.eq(ProjectOrderSubDO::getDeleted,0)
|
.eq(ProjectOrderSubDO::getDeleted,0)
|
||||||
|
.groupBy(TaskDispatchDO::getId)
|
||||||
.disableSubLogicDel();
|
.disableSubLogicDel();
|
||||||
|
|
||||||
query.like(!StringUtils.isEmpty(reqVO.getCode()), TaskDispatchDO::getCode, reqVO.getCode())
|
query.like(!StringUtils.isEmpty(reqVO.getCode()), TaskDispatchDO::getCode, reqVO.getCode())
|
||||||
@ -84,7 +91,9 @@ public interface TaskDispatchMapper extends BaseMapperX<TaskDispatchDO> {
|
|||||||
.like(!StringUtils.isEmpty(reqVO.getPlanCode()), PlanDO::getPlanNo, reqVO.getPlanCode())
|
.like(!StringUtils.isEmpty(reqVO.getPlanCode()), PlanDO::getPlanNo, reqVO.getPlanCode())
|
||||||
.like(ObjectUtil.isNotEmpty(reqVO.getBlueprintNo()),ProcessBomDetailDO::getBlueprintNo, reqVO.getBlueprintNo())
|
.like(ObjectUtil.isNotEmpty(reqVO.getBlueprintNo()),ProcessBomDetailDO::getBlueprintNo, reqVO.getBlueprintNo())
|
||||||
.like(ObjectUtil.isNotEmpty(reqVO.getBoomName()),ProcessBomDetailDO::getMaterialName, reqVO.getBoomName());
|
.like(ObjectUtil.isNotEmpty(reqVO.getBoomName()),ProcessBomDetailDO::getMaterialName, reqVO.getBoomName());
|
||||||
;
|
if (ObjectUtil.isNotEmpty(reqVO.getFlag())&&"false".equals(reqVO.getFlag())){
|
||||||
|
query.ne(ProjectOrderDO::getDeliveryStatus,3);
|
||||||
|
}
|
||||||
return selectPage(reqVO, query);
|
return selectPage(reqVO, query);
|
||||||
}
|
}
|
||||||
default List<TaskDispatchDO> selectPageNew(TaskDispatchPageReqVO reqVO) {
|
default List<TaskDispatchDO> selectPageNew(TaskDispatchPageReqVO reqVO) {
|
||||||
@ -105,11 +114,14 @@ public interface TaskDispatchMapper extends BaseMapperX<TaskDispatchDO> {
|
|||||||
.leftJoin(ProjectOrderDO.class, "d", ProjectOrderDO::getId, ProcessDesignDO::getProjectId)
|
.leftJoin(ProjectOrderDO.class, "d", ProjectOrderDO::getId, ProcessDesignDO::getProjectId)
|
||||||
.leftJoin(CustomerDO.class, "e", CustomerDO::getId, ProjectOrderDO::getCustomerId)
|
.leftJoin(CustomerDO.class, "e", CustomerDO::getId, ProjectOrderDO::getCustomerId)
|
||||||
.leftJoin(ProcessBomDetailDO.class, "f", ProcessBomDetailDO::getId, TaskDispatchDO::getBomDetailId)
|
.leftJoin(ProcessBomDetailDO.class, "f", ProcessBomDetailDO::getId, TaskDispatchDO::getBomDetailId)
|
||||||
|
.leftJoin(PurchaseOrderNoDetailDO.class,"no", PurchaseOrderNoDetailDO::getBoomDetailId, ProcessBomDetailDO::getId)
|
||||||
.leftJoin(CompositionDO.class,"g", CompositionDO::getId, ProcessBomDetailDO::getCompositionId)
|
.leftJoin(CompositionDO.class,"g", CompositionDO::getId, ProcessBomDetailDO::getCompositionId)
|
||||||
.leftJoin(PlanTaskDO.class, "h", PlanTaskDO::getId, TaskDispatchDO::getTaskId)
|
.leftJoin(PlanTaskDO.class, "h", PlanTaskDO::getId, TaskDispatchDO::getTaskId)
|
||||||
.leftJoin(PlanTaskBomDO.class, "i", wrapper -> wrapper.eq(PlanTaskBomDO::getTaskId, PlanTaskDO::getId).eq(PlanTaskBomDO::getBomDetailId, TaskDispatchDO::getBomDetailId))
|
.leftJoin(PlanTaskBomDO.class, "i", wrapper -> wrapper.eq(PlanTaskBomDO::getTaskId, PlanTaskDO::getId).eq(PlanTaskBomDO::getBomDetailId, TaskDispatchDO::getBomDetailId))
|
||||||
.leftJoin(AdminUserDO.class, "u1", AdminUserDO::getId, PlanTaskBomDO::getOwner)
|
.leftJoin(AdminUserDO.class, "u1", AdminUserDO::getId, PlanTaskBomDO::getOwner)
|
||||||
|
.groupBy(TaskDispatchDetailDO::getId)
|
||||||
.disableSubLogicDel();
|
.disableSubLogicDel();
|
||||||
|
|
||||||
if(reqVO.getPageType() == 2){
|
if(reqVO.getPageType() == 2){
|
||||||
//下一条
|
//下一条
|
||||||
query.lt(TaskDispatchDO::getId, reqVO.getId())
|
query.lt(TaskDispatchDO::getId, reqVO.getId())
|
||||||
@ -134,7 +146,9 @@ public interface TaskDispatchMapper extends BaseMapperX<TaskDispatchDO> {
|
|||||||
.like(!StringUtils.isEmpty(reqVO.getPlanCode()), PlanDO::getPlanNo, reqVO.getPlanCode())
|
.like(!StringUtils.isEmpty(reqVO.getPlanCode()), PlanDO::getPlanNo, reqVO.getPlanCode())
|
||||||
.like(ObjectUtil.isNotEmpty(reqVO.getBlueprintNo()),ProcessBomDetailDO::getBlueprintNo, reqVO.getBlueprintNo());
|
.like(ObjectUtil.isNotEmpty(reqVO.getBlueprintNo()),ProcessBomDetailDO::getBlueprintNo, reqVO.getBlueprintNo());
|
||||||
|
|
||||||
;
|
if (ObjectUtil.isNotEmpty(reqVO.getFlag())&&"false".equals(reqVO.getFlag())){
|
||||||
|
query.ne(ProjectOrderDO::getDeliveryStatus,3);
|
||||||
|
}
|
||||||
return selectList(query);
|
return selectList(query);
|
||||||
}
|
}
|
||||||
default TaskDispatchDO selectById(Long id) {
|
default TaskDispatchDO selectById(Long id) {
|
||||||
@ -209,4 +223,5 @@ public interface TaskDispatchMapper extends BaseMapperX<TaskDispatchDO> {
|
|||||||
}
|
}
|
||||||
@Delete("delete from pro_task_dispatch where project_id=#{id}")
|
@Delete("delete from pro_task_dispatch where project_id=#{id}")
|
||||||
void deleteOrderId(@Param("id") Long id);
|
void deleteOrderId(@Param("id") Long id);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,7 +12,10 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO;
|
|||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO;
|
||||||
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.purchaseordermake.PurchaseOrderMakeDO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermakedetail.PurchaseOrderMakeDetailDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorderno.PurchaseOrderNoDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorderno.PurchaseOrderNoDO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO;
|
||||||
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.storagelogNow.StorageLogNowDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDO;
|
||||||
@ -23,7 +26,10 @@ import com.chanko.yunxi.mes.module.heli.dal.mysql.material.MaterialMapper;
|
|||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom.MaterialPlanBoomMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom.MaterialPlanBoomMapper;
|
||||||
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.processbom.ProcessBomMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomMapper;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermake.PurchaseOrderMakeMapper;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermakedetail.PurchaseOrderMakeDetailMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseorderno.PurchaseOrderNoMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseorderno.PurchaseOrderNoMapper;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordernodetail.PurchaseOrderNoDetailMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetailMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetailMapper;
|
||||||
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.taskdispatchdetaillog.TaskDispatchDetailLogMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatchdetaillog.TaskDispatchDetailLogMapper;
|
||||||
@ -92,6 +98,8 @@ public class MaterialPlanServiceImpl implements MaterialPlanService {
|
|||||||
@Resource
|
@Resource
|
||||||
private PurchaseOrderNoMapper purchaseOrderNoMapper;
|
private PurchaseOrderNoMapper purchaseOrderNoMapper;
|
||||||
@Resource
|
@Resource
|
||||||
|
private PurchaseOrderNoDetailMapper purchaseOrderNoDetailMapper;
|
||||||
|
@Resource
|
||||||
private TaskDispatchDetailMapper taskDispatchDetailMapper;
|
private TaskDispatchDetailMapper taskDispatchDetailMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private TaskDispatchMapper taskDispatchMapper;
|
private TaskDispatchMapper taskDispatchMapper;
|
||||||
@ -101,6 +109,10 @@ public class MaterialPlanServiceImpl implements MaterialPlanService {
|
|||||||
private ProcessBomMapper processBomMapper;
|
private ProcessBomMapper processBomMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private TaskDispatchDetailLogMapper taskDispatchDetailLogMapper;
|
private TaskDispatchDetailLogMapper taskDispatchDetailLogMapper;
|
||||||
|
@Resource
|
||||||
|
private PurchaseOrderMakeMapper purchaseOrderMakeMapper;
|
||||||
|
@Resource
|
||||||
|
private PurchaseOrderMakeDetailMapper purchaseOrderMakeDetailMapper;
|
||||||
@Override
|
@Override
|
||||||
public Long createMaterialPlan(MaterialPlanSaveReqVO createReqVO) {
|
public Long createMaterialPlan(MaterialPlanSaveReqVO createReqVO) {
|
||||||
// 插入
|
// 插入
|
||||||
@ -544,6 +556,27 @@ public class MaterialPlanServiceImpl implements MaterialPlanService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<MaterialPlanBoomDO> getPartPurchasePages(MaterialPlanPageReqVO pageReqVO) {
|
public PageResult<MaterialPlanBoomDO> getPartPurchasePages(MaterialPlanPageReqVO pageReqVO) {
|
||||||
|
if (ObjectUtil.isNotEmpty(pageReqVO.getPurchaseNo())){
|
||||||
|
LambdaQueryWrapper<PurchaseOrderNoDO> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(PurchaseOrderNoDO::getPurchaseNo, pageReqVO.getPurchaseNo());
|
||||||
|
List<PurchaseOrderNoDO> purchaseOrderMakeDOS = purchaseOrderNoMapper.selectList(queryWrapper);
|
||||||
|
if (ObjectUtil.isNotEmpty(purchaseOrderMakeDOS)){
|
||||||
|
List<Long> purchaseOrderMakeIds = purchaseOrderMakeDOS.stream().map(PurchaseOrderNoDO::getId).collect(Collectors.toList());
|
||||||
|
if (ObjectUtil.isNotEmpty(purchaseOrderMakeIds)){
|
||||||
|
LambdaQueryWrapper<PurchaseOrderNoDetailDO> queryWrapper1 = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper1.in(PurchaseOrderNoDetailDO::getPurchaseOrderId, purchaseOrderMakeIds);
|
||||||
|
List<PurchaseOrderNoDetailDO> purchaseOrderMakeDetailDOS = purchaseOrderNoDetailMapper.selectList(queryWrapper1);
|
||||||
|
if (ObjectUtil.isNotEmpty(purchaseOrderMakeDetailDOS)){
|
||||||
|
List<Long> boomDetailIds = purchaseOrderMakeDetailDOS.stream().map(PurchaseOrderNoDetailDO::getBoomDetailId).collect(Collectors.toList());
|
||||||
|
List<Long> projectPlanSubIds = purchaseOrderMakeDetailDOS.stream().map(PurchaseOrderNoDetailDO::getProjectPlanSubId).collect(Collectors.toList());
|
||||||
|
if (ObjectUtil.isNotEmpty(boomDetailIds)) pageReqVO.setBoomDetailIds(boomDetailIds);
|
||||||
|
if (ObjectUtil.isNotEmpty(projectPlanSubIds)) pageReqVO.setProjectPlanSubIds(projectPlanSubIds);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
return new PageResult<>(null, 0L);
|
||||||
|
}
|
||||||
|
}
|
||||||
return materialPlanBoomMapper.getPartsPages(pageReqVO);
|
return materialPlanBoomMapper.getPartsPages(pageReqVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -205,6 +205,7 @@ public class MaterialPlanBoomServiceImpl implements MaterialPlanBoomService {
|
|||||||
|
|
||||||
for (PurchaseOrderMakeDetailDO purchaseOrderMakeDetailDO : makeDetailDOList) {
|
for (PurchaseOrderMakeDetailDO purchaseOrderMakeDetailDO : makeDetailDOList) {
|
||||||
purchaseOrderMakeDetailDO.setPurchaseOrderId(purchaseOrderMakeDO.getId());
|
purchaseOrderMakeDetailDO.setPurchaseOrderId(purchaseOrderMakeDO.getId());
|
||||||
|
|
||||||
}
|
}
|
||||||
purchaseOrderMakeDetailMapper.insertBatch(makeDetailDOList);
|
purchaseOrderMakeDetailMapper.insertBatch(makeDetailDOList);
|
||||||
for (MaterialPlanBoomDO dp : materialPlanBoomDOList) {
|
for (MaterialPlanBoomDO dp : materialPlanBoomDOList) {
|
||||||
|
|||||||
@ -72,4 +72,6 @@ public interface PartPurchaseOrderService {
|
|||||||
Boolean approvals(List<PurchaseOrderMakeDetailDO> list);
|
Boolean approvals(List<PurchaseOrderMakeDetailDO> list);
|
||||||
|
|
||||||
Boolean rejects(Long id);
|
Boolean rejects(Long id);
|
||||||
|
|
||||||
|
CommonResult<Boolean> updateDuEmp(List<MaterialPlanBoomDO> saveReqVOs);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,6 +17,7 @@ import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.Pa
|
|||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.PartPurchaseOrderPageRespVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.PartPurchaseOrderPageRespVO;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.PurchaseOrderMakeSaveReqVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.PurchaseOrderMakeSaveReqVO;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermakedetail.vo.PurchaseOrderMakeDetailRespVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermakedetail.vo.PurchaseOrderMakeDetailRespVO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermakedetail.vo.PurchaseOrderMakeDetailSaveReqVO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO;
|
||||||
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;
|
||||||
@ -27,6 +28,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorderno.PurchaseO
|
|||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO;
|
||||||
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.supplier.SupplierDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.supplier.SupplierDO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom.MaterialPlanBoomMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom.MaterialPlanBoomMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.plan.PlanMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.plan.PlanMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.plansub.PlanSubMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.plansub.PlanSubMapper;
|
||||||
@ -36,7 +38,9 @@ import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermakedetail.Purcha
|
|||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseorderno.PurchaseOrderNoMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseorderno.PurchaseOrderNoMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordernodetail.PurchaseOrderNoDetailMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordernodetail.PurchaseOrderNoDetailMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.supplier.SupplierMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.supplier.SupplierMapper;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetailMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.service.orderyf.OrderYfService;
|
import com.chanko.yunxi.mes.module.heli.service.orderyf.OrderYfService;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.service.purchaseordermakedetail.PurchaseOrderMakeDetailService;
|
||||||
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.supplier.SupplierService;
|
import com.chanko.yunxi.mes.module.heli.service.supplier.SupplierService;
|
||||||
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
||||||
@ -86,7 +90,8 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
|||||||
private SupplierMapper supplierMapper;
|
private SupplierMapper supplierMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProcessBomDetailMapper processBomDetailMapper;
|
private ProcessBomDetailMapper processBomDetailMapper;
|
||||||
|
@Autowired
|
||||||
|
private TaskDispatchDetailMapper taskDispatchDetailMapper;
|
||||||
@Override
|
@Override
|
||||||
public PageResult<PartPurchaseOrderPageRespVO> getPartPurchaseOrderPage(PartPurchaseOrderPageReqVO pageReqVO) {
|
public PageResult<PartPurchaseOrderPageRespVO> getPartPurchaseOrderPage(PartPurchaseOrderPageReqVO pageReqVO) {
|
||||||
|
|
||||||
@ -163,7 +168,75 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
public boolean submitNo(List<PurchaseOrderMakeDetailDO> list) {
|
||||||
|
PurchaseOrderNoDO purchaseOrderNoDO = new PurchaseOrderNoDO();
|
||||||
|
// 返回
|
||||||
|
// 月度流水号
|
||||||
|
SerialNumberDO serialNumberDO = new SerialNumberDO();
|
||||||
|
serialNumberDO = serialNumberService.getSerialNumber(PURCHASE_ORDER.name(), new SimpleDateFormat("yyyyMMdd").format(new Date()));
|
||||||
|
serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1);
|
||||||
|
// 回写序列记录
|
||||||
|
serialNumberService.updateSerialNumber(serialNumberDO);
|
||||||
|
|
||||||
|
purchaseOrderNoDO.setPurchaseNo(PURCHASE_ORDER.getCode(serialNumberDO.getSerialNumber().toString()));
|
||||||
|
purchaseOrderNoDO.setPurchaseType(1);
|
||||||
|
purchaseOrderNoDO.setGoodsType(2);
|
||||||
|
purchaseOrderNoDO.setSupplierId(list.get(0).getSupplierId());
|
||||||
|
purchaseOrderNoDO.setOrdDate(new Date());
|
||||||
|
purchaseOrderNoMapper.insert(purchaseOrderNoDO);
|
||||||
|
long purchaseOrderId = purchaseOrderNoDO.getId();
|
||||||
|
OrderYfSaveReqVO orderYfVO = new OrderYfSaveReqVO();
|
||||||
|
orderYfVO.setCgOrderNum(purchaseOrderNoDO.getPurchaseNo());
|
||||||
|
SupplierDO supplierDO = supplierMapper.selectById(list.get(0).getSupplierId());
|
||||||
|
if (ObjectUtil.isNotEmpty(supplierDO)){
|
||||||
|
orderYfVO.setCgGysname(supplierDO.getName());
|
||||||
|
}
|
||||||
|
BigDecimal sum = list.stream()
|
||||||
|
.filter(Objects::nonNull) // 过滤掉空对象
|
||||||
|
.map(PurchaseOrderMakeDetailDO::getEstimatedPrice)
|
||||||
|
.filter(Objects::nonNull) // 过滤掉空值
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add); // 累加求和
|
||||||
|
orderYfVO.setCgYf(sum);
|
||||||
|
orderYfService.createCg(orderYfVO);
|
||||||
|
list.forEach(detailDO -> {
|
||||||
|
// PurchaseOrderNoDetailDO purchaseOrderNoDetailDO = new PurchaseOrderNoDetailDO();
|
||||||
|
// purchaseOrderNoDetailDO.setPurchaseOrderId(purchaseOrderId);
|
||||||
|
// purchaseOrderNoDetailDO.setBoomDetailId(detailDO.getBoomDetailId());
|
||||||
|
// purchaseOrderNoDetailDO.setBoomName(detailDO.getBoomName());
|
||||||
|
// purchaseOrderNoDetailDO.setBoomUnit(detailDO.getBoomUnit());
|
||||||
|
// purchaseOrderNoDetailDO.setBoomSpec(detailDO.getBoomSpec());
|
||||||
|
PurchaseOrderNoDetailDO purchaseOrderNoDetailDO = BeanUtils.toBean(detailDO, PurchaseOrderNoDetailDO.class);
|
||||||
|
purchaseOrderNoDetailDO.setDuEmpId(detailDO.getDuEmpId());
|
||||||
|
purchaseOrderNoDetailDO.setId(null);
|
||||||
|
purchaseOrderNoDetailDO.setCreateTime(null);
|
||||||
|
purchaseOrderNoDetailDO.setUpdateTime(null);
|
||||||
|
purchaseOrderNoDetailDO.setPurchaseOrderId(purchaseOrderId);
|
||||||
|
purchaseOrderNoDetailDO.setPurchaseRemAmount(detailDO.getPurchaseAmount());
|
||||||
|
// PurchaseOrderMakeDetailDO orderMakeDetailDO = purchaseOrderMakeDetailMapper.selectById(detailDO.getId());
|
||||||
|
// if (ObjectUtil.isNotEmpty(orderMakeDetailDO)){
|
||||||
|
// PurchaseOrderMakeDO orderMakeDO = purchaseOrderMakeMapper.selectById(orderMakeDetailDO.getPurchaseOrderId());
|
||||||
|
// if (ObjectUtil.isNotEmpty(orderMakeDO)){
|
||||||
|
purchaseOrderNoDetailDO.setProjectId(detailDO.getProjectId());
|
||||||
|
purchaseOrderNoDetailDO.setProjectPlanId(detailDO.getProjectPlanId());
|
||||||
|
purchaseOrderNoDetailDO.setCustomerId(detailDO.getCustomerId());
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
purchaseOrderNoDetailMapper.insert(purchaseOrderNoDetailDO);
|
||||||
|
long purchaseOrderDetailId = purchaseOrderNoDetailDO.getId();
|
||||||
|
|
||||||
|
|
||||||
|
PurchaseOrderMakeDetailDO purchaseOrderMakeDetailDO = new PurchaseOrderMakeDetailDO();
|
||||||
|
purchaseOrderMakeDetailDO.setId(detailDO.getId());
|
||||||
|
purchaseOrderMakeDetailDO.setOrderStatus(2);
|
||||||
|
purchaseOrderMakeDetailDO.setPurchaseOrderNoId(purchaseOrderId);
|
||||||
|
purchaseOrderMakeDetailDO.setPurchaseOrderNoDetailId(purchaseOrderDetailId);
|
||||||
|
purchaseOrderMakeDetailDO.setPurchaseNo(purchaseOrderNoDO.getPurchaseNo());
|
||||||
|
purchaseOrderMakeDetailMapper.updateById(purchaseOrderMakeDetailDO);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
public PageResult<PartPurchaseOrderPageRespVO> getPartPurchaseOrderCheckPage(PartPurchaseOrderPageReqVO pageReqVO) {
|
public PageResult<PartPurchaseOrderPageRespVO> getPartPurchaseOrderCheckPage(PartPurchaseOrderPageReqVO pageReqVO) {
|
||||||
return null;
|
return null;
|
||||||
@ -187,6 +260,14 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
|||||||
|
|
||||||
materialPlanBoomMapper.update(updateWrapper);
|
materialPlanBoomMapper.update(updateWrapper);
|
||||||
});
|
});
|
||||||
|
List<TaskDispatchDetailDO> taskDispatchDetailDOs= taskDispatchDetailMapper.selectList("project_purchase_order_make_detail_id", id);
|
||||||
|
taskDispatchDetailDOs.forEach(TaskDispatchDetailDO -> {
|
||||||
|
UpdateWrapper<TaskDispatchDetailDO> updateWrapper = new UpdateWrapper<>();
|
||||||
|
updateWrapper.eq("id", TaskDispatchDetailDO.getId())
|
||||||
|
.set("project_purchase_order_make_detail_id", null)
|
||||||
|
.set("purchase_no", null);
|
||||||
|
taskDispatchDetailMapper.update(updateWrapper);
|
||||||
|
});
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -240,6 +321,15 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
|||||||
.set("mat_rest",null);
|
.set("mat_rest",null);
|
||||||
materialPlanBoomMapper.update(updateWrapper);
|
materialPlanBoomMapper.update(updateWrapper);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
List<TaskDispatchDetailDO> taskDispatchDetailDOs= taskDispatchDetailMapper.selectList("project_purchase_order_make_detail_id", updateReqVO.getId());
|
||||||
|
taskDispatchDetailDOs.forEach(TaskDispatchDetailDO -> {
|
||||||
|
UpdateWrapper<TaskDispatchDetailDO> updateWrapper = new UpdateWrapper<>();
|
||||||
|
updateWrapper.eq("id", TaskDispatchDetailDO.getId())
|
||||||
|
.set("project_purchase_order_make_detail_id", null)
|
||||||
|
.set("purchase_no", null);
|
||||||
|
taskDispatchDetailMapper.update(updateWrapper);
|
||||||
|
});
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -272,6 +362,14 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
|||||||
.set("mat_rest",null);
|
.set("mat_rest",null);
|
||||||
materialPlanBoomMapper.update(updateWrapper);
|
materialPlanBoomMapper.update(updateWrapper);
|
||||||
});
|
});
|
||||||
|
List<TaskDispatchDetailDO> taskDispatchDetailDOs= taskDispatchDetailMapper.selectList("project_purchase_order_make_detail_id",id);
|
||||||
|
taskDispatchDetailDOs.forEach(TaskDispatchDetailDO -> {
|
||||||
|
UpdateWrapper<TaskDispatchDetailDO> updateWrapper = new UpdateWrapper<>();
|
||||||
|
updateWrapper.eq("id", TaskDispatchDetailDO.getId())
|
||||||
|
.set("project_purchase_order_make_detail_id", null)
|
||||||
|
.set("purchase_no", null);
|
||||||
|
taskDispatchDetailMapper.update(updateWrapper);
|
||||||
|
});
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -293,13 +391,26 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
|||||||
materialPlanBoom.setMplanStatus(2);
|
materialPlanBoom.setMplanStatus(2);
|
||||||
materialPlanBoomMapper.updateById(materialPlanBoom);
|
materialPlanBoomMapper.updateById(materialPlanBoom);
|
||||||
});
|
});
|
||||||
|
List<PurchaseOrderMakeDetailDO> list = purchaseOrderMakeDetailMapper.selectList("project_purchase_order_make_id", id);
|
||||||
|
List<Long> ids = list.stream().map(PurchaseOrderMakeDetailDO::getId).collect(Collectors.toList());
|
||||||
|
if (ObjectUtil.isNotEmpty(ids)){
|
||||||
|
LambdaUpdateWrapper<PurchaseOrderMakeDetailDO> updateWrapper = new LambdaUpdateWrapper<>();
|
||||||
|
updateWrapper.in(PurchaseOrderMakeDetailDO::getId, ids);
|
||||||
|
updateWrapper.set(PurchaseOrderMakeDetailDO::getStatus,2);
|
||||||
|
updateWrapper.set(PurchaseOrderMakeDetailDO::getAuditTime, LocalDateTime.now());
|
||||||
|
updateWrapper.set(PurchaseOrderMakeDetailDO::getAuditor, getLoginUser().getId());
|
||||||
|
purchaseOrderMakeDetailMapper.update(updateWrapper);
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isNotEmpty(orderMakeDO)) {
|
||||||
|
if (orderMakeDO.getGoodsType() == 2) {
|
||||||
|
submitNo(list);
|
||||||
|
}
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<PartPurchaseOrderPageRespVO> getDetail(PartPurchaseOrderPageReqVO partPurchaseOrderPageReqVO) {
|
public PageResult<PartPurchaseOrderPageRespVO> getDetail(PartPurchaseOrderPageReqVO partPurchaseOrderPageReqVO) {
|
||||||
return purchaseOrderMakeDetailMapper.getDetail(partPurchaseOrderPageReqVO);
|
return purchaseOrderMakeDetailMapper.getDetail(partPurchaseOrderPageReqVO);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -352,7 +463,7 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
|||||||
processBomDetailMapper.update(lambdaUpdateWrapper);
|
processBomDetailMapper.update(lambdaUpdateWrapper);
|
||||||
});
|
});
|
||||||
updateReqVOs.forEach(updateReq -> {
|
updateReqVOs.forEach(updateReq -> {
|
||||||
createPurchaseOrderMakeAndDetail(updateReq,purchaseOrderMakeId, purchaseOrderMakeDOPurchaseNo,planDO.getId());
|
createPurchaseOrderMakeAndDetail(updateReq,purchaseOrderMakeId, purchaseOrderMakeDOPurchaseNo);
|
||||||
});
|
});
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -424,6 +535,15 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
|||||||
// materialPlanBoom.setMplanStatus(2);
|
// materialPlanBoom.setMplanStatus(2);
|
||||||
// materialPlanBoomMapper.updateById(materialPlanBoom);
|
// materialPlanBoomMapper.updateById(materialPlanBoom);
|
||||||
// });
|
// });
|
||||||
|
PurchaseOrderMakeDO purchaseOrderMakeDO = purchaseOrderMakeMapper.selectById(list.get(0).getPurchaseOrderId());
|
||||||
|
if (ObjectUtil.isNotEmpty(purchaseOrderMakeDO)){
|
||||||
|
if (purchaseOrderMakeDO.getGoodsType() == 2){
|
||||||
|
submitNo(list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -457,10 +577,32 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
|||||||
.set("mat_rest",null);
|
.set("mat_rest",null);
|
||||||
materialPlanBoomMapper.update(updateWrapper);
|
materialPlanBoomMapper.update(updateWrapper);
|
||||||
});
|
});
|
||||||
|
List<TaskDispatchDetailDO> taskDispatchDetailDOs= taskDispatchDetailMapper.selectList("project_purchase_order_make_detail_id", id);
|
||||||
|
taskDispatchDetailDOs.forEach(TaskDispatchDetailDO -> {
|
||||||
|
UpdateWrapper<TaskDispatchDetailDO> updateWrapper = new UpdateWrapper<>();
|
||||||
|
updateWrapper.eq("id", TaskDispatchDetailDO.getId())
|
||||||
|
.set("project_purchase_order_make_detail_id", null)
|
||||||
|
.set("purchase_no", null);
|
||||||
|
taskDispatchDetailMapper.update(updateWrapper);
|
||||||
|
});
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean createPurchaseOrderMakeAndDetail(MaterialPlanBoomDO updateReqVO, long purchaseOrderMakeId, String purchaseOrderMakeDOPurchaseNo,Long planId) {
|
@Override
|
||||||
|
public CommonResult<Boolean> updateDuEmp(List<MaterialPlanBoomDO> saveReqVOs) {
|
||||||
|
boolean b = saveReqVOs.stream()
|
||||||
|
.anyMatch(vo -> vo.getMplanStatus() == 1 || vo.getMplanStatus() == 2);
|
||||||
|
if (b) return CommonResult.error(400,"采购单已送审或已批准,不允许修改责任人");
|
||||||
|
saveReqVOs.forEach(MaterialPlanBoomDO -> {
|
||||||
|
UpdateWrapper<MaterialPlanBoomDO> updateWrapper = new UpdateWrapper<>();
|
||||||
|
updateWrapper.eq("id", MaterialPlanBoomDO.getId())
|
||||||
|
.set("du_emp_id",MaterialPlanBoomDO.getDuEmpId() );
|
||||||
|
materialPlanBoomMapper.update(updateWrapper);
|
||||||
|
});
|
||||||
|
return CommonResult.success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean createPurchaseOrderMakeAndDetail(MaterialPlanBoomDO updateReqVO, long purchaseOrderMakeId, String purchaseOrderMakeDOPurchaseNo) {
|
||||||
PurchaseOrderMakeDetailDO purchaseOrderMakeDetailDO = new PurchaseOrderMakeDetailDO();
|
PurchaseOrderMakeDetailDO purchaseOrderMakeDetailDO = new PurchaseOrderMakeDetailDO();
|
||||||
purchaseOrderMakeDetailDO.setPurchaseOrderId(purchaseOrderMakeId);
|
purchaseOrderMakeDetailDO.setPurchaseOrderId(purchaseOrderMakeId);
|
||||||
purchaseOrderMakeDetailDO.setBoomDetailId(updateReqVO.getBoomDetailId());
|
purchaseOrderMakeDetailDO.setBoomDetailId(updateReqVO.getBoomDetailId());
|
||||||
@ -489,6 +631,16 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
|||||||
purchaseOrderMakeDetailDO.setTheWeight(updateReqVO.getTheWeight());
|
purchaseOrderMakeDetailDO.setTheWeight(updateReqVO.getTheWeight());
|
||||||
purchaseOrderMakeDetailDO.setDuEmpId(updateReqVO.getDuEmpId());
|
purchaseOrderMakeDetailDO.setDuEmpId(updateReqVO.getDuEmpId());
|
||||||
purchaseOrderMakeDetailDO.setIsFoam(updateReqVO.getIsFoam());
|
purchaseOrderMakeDetailDO.setIsFoam(updateReqVO.getIsFoam());
|
||||||
|
purchaseOrderMakeDetailDO.setProjectId(updateReqVO.getProjectId());
|
||||||
|
PlanDO planDO = planMapper.selectOne("project_id", updateReqVO.getProjectId());
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(planDO)) {
|
||||||
|
purchaseOrderMakeDetailDO.setProjectPlanId(planDO.getId());
|
||||||
|
}
|
||||||
|
purchaseOrderMakeDetailDO.setCustomerId(updateReqVO.getCustomerId());
|
||||||
|
purchaseOrderMakeDetailDO.setBrief(updateReqVO.getBrief());
|
||||||
|
purchaseOrderMakeDetailDO.setProjectName(updateReqVO.getProjectName());
|
||||||
|
purchaseOrderMakeDetailDO.setProjectNameSim(updateReqVO.getProjectNameSim());
|
||||||
purchaseOrderMakeDetailMapper.insert(purchaseOrderMakeDetailDO);
|
purchaseOrderMakeDetailMapper.insert(purchaseOrderMakeDetailDO);
|
||||||
long purchaseOrderMakeDetailId = purchaseOrderMakeDetailDO.getId();
|
long purchaseOrderMakeDetailId = purchaseOrderMakeDetailDO.getId();
|
||||||
|
|
||||||
@ -500,6 +652,11 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
|||||||
materialPlanBoomDO.setPurchaseNo(purchaseOrderMakeDOPurchaseNo);
|
materialPlanBoomDO.setPurchaseNo(purchaseOrderMakeDOPurchaseNo);
|
||||||
materialPlanBoomDO.setProjectPurchaseOrderMakeDetailId(purchaseOrderMakeDetailId);
|
materialPlanBoomDO.setProjectPurchaseOrderMakeDetailId(purchaseOrderMakeDetailId);
|
||||||
materialPlanBoomMapper.updateById(materialPlanBoomDO);
|
materialPlanBoomMapper.updateById(materialPlanBoomDO);
|
||||||
|
LambdaUpdateWrapper<TaskDispatchDetailDO> wrapper = new LambdaUpdateWrapper<>();
|
||||||
|
wrapper.eq(TaskDispatchDetailDO::getProjectMaterialPlanDetailId, updateReqVO.getId());
|
||||||
|
wrapper.set(TaskDispatchDetailDO::getPurchaseNo, purchaseOrderMakeDOPurchaseNo);
|
||||||
|
wrapper.set(TaskDispatchDetailDO::getProjectPurchaseOrderMakeDetailId, purchaseOrderMakeDetailId);
|
||||||
|
taskDispatchDetailMapper.update(wrapper);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -30,6 +30,7 @@ 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.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.purchaseordermakedetail.PurchaseOrderMakeDetailDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO;
|
||||||
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.shenhe.ShenheDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.shenhe.ShenheDO;
|
||||||
@ -558,9 +559,9 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
|||||||
for (ProcessBomDetailDO po : processBomDetailDOS) {
|
for (ProcessBomDetailDO po : processBomDetailDOS) {
|
||||||
if (vo.getId().equals(po.getId())) {
|
if (vo.getId().equals(po.getId())) {
|
||||||
if (!vo.getMaterialName().equals(po.getMaterialName())) {
|
if (!vo.getMaterialName().equals(po.getMaterialName())) {
|
||||||
LambdaQueryWrapper<MaterialPlanBoomDO> queryWrapper1 = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<PurchaseOrderMakeDetailDO> queryWrapper1 = new LambdaQueryWrapper<>();
|
||||||
queryWrapper1.in(MaterialPlanBoomDO::getBoomDetailId,vo.getId());
|
queryWrapper1.in(PurchaseOrderMakeDetailDO::getBoomDetailId,vo.getId());
|
||||||
if (materialPlanBoomMapper.selectCount(queryWrapper1)>0) throw exception(new ErrorCode(1_007_9888,"物料"+po.getMaterialName()+"已做需求计划,不允许修改零件名称"));
|
if (purchaseOrderMakeDetailMapper.selectCount(queryWrapper1)>0) throw exception(new ErrorCode(1_007_9888,"物料"+po.getMaterialName()+"已做采购,不允许修改零件名称"));
|
||||||
LambdaQueryWrapper<TaskDispatchDO> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<TaskDispatchDO> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.eq(TaskDispatchDO::getBomDetailId, vo.getId());
|
queryWrapper.eq(TaskDispatchDO::getBomDetailId, vo.getId());
|
||||||
queryWrapper.eq(TaskDispatchDO::getDispatchType,"PRODUCTION" );
|
queryWrapper.eq(TaskDispatchDO::getDispatchType,"PRODUCTION" );
|
||||||
@ -585,9 +586,9 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!vo.getBlueprintNo().equals(po.getBlueprintNo())) {
|
if (!vo.getBlueprintNo().equals(po.getBlueprintNo())) {
|
||||||
LambdaQueryWrapper<MaterialPlanBoomDO> queryWrapper1 = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<PurchaseOrderMakeDetailDO> queryWrapper1 = new LambdaQueryWrapper<>();
|
||||||
queryWrapper1.in(MaterialPlanBoomDO::getBoomDetailId,vo.getId());
|
queryWrapper1.in(PurchaseOrderMakeDetailDO::getBoomDetailId,vo.getId());
|
||||||
if (materialPlanBoomMapper.selectCount(queryWrapper1)>0) throw exception(new ErrorCode(1_007_9888,"物料"+po.getMaterialName()+"已做需求计划,不允许修改图号"));
|
if (purchaseOrderMakeDetailMapper.selectCount(queryWrapper1)>0) throw exception(new ErrorCode(1_007_9888,"物料"+po.getMaterialName()+"已做采购,不允许修改图号"));
|
||||||
LambdaQueryWrapper<TaskDispatchDO> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<TaskDispatchDO> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.eq(TaskDispatchDO::getBomDetailId, vo.getId());
|
queryWrapper.eq(TaskDispatchDO::getBomDetailId, vo.getId());
|
||||||
queryWrapper.eq(TaskDispatchDO::getDispatchType,"PRODUCTION" );
|
queryWrapper.eq(TaskDispatchDO::getDispatchType,"PRODUCTION" );
|
||||||
@ -749,7 +750,6 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
for (ProcessBomDetailDO processBomDetail : processBomDetails) {
|
for (ProcessBomDetailDO processBomDetail : processBomDetails) {
|
||||||
@ -782,12 +782,8 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
|||||||
ShenheDO shenheDO = shenheDOS.get(0);
|
ShenheDO shenheDO = shenheDOS.get(0);
|
||||||
updateObj.setShenheUser(shenheDO.getShenheUser());
|
updateObj.setShenheUser(shenheDO.getShenheUser());
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(operateTypeEnum == OperateTypeEnum.AUDIT){
|
if(operateTypeEnum == OperateTypeEnum.AUDIT){
|
||||||
ShenheDO shenheDO = shenheMapper.serchShenHeRusers("2",updateObj.getShenheUser());
|
ShenheDO shenheDO = shenheMapper.serchShenHeRusers("2",updateObj.getShenheUser());
|
||||||
List<ShenheDO> shenheDOS = new ArrayList<>();
|
List<ShenheDO> shenheDOS = new ArrayList<>();
|
||||||
@ -815,7 +811,6 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
|||||||
List<AttentiontodoDO> attentiontodook1 = attentiontodoService.getAttentiontodolistdaiban(13);
|
List<AttentiontodoDO> attentiontodook1 = attentiontodoService.getAttentiontodolistdaiban(13);
|
||||||
if (attentiontodook1.size()<1){
|
if (attentiontodook1.size()<1){
|
||||||
{
|
{
|
||||||
|
|
||||||
AttentiontodoDO attentiontodoDO = new AttentiontodoDO();
|
AttentiontodoDO attentiontodoDO = new AttentiontodoDO();
|
||||||
attentiontodoDO.setEvent("BOM变更审核通过后");
|
attentiontodoDO.setEvent("BOM变更审核通过后");
|
||||||
attentiontodoDO.setAttr5("1");
|
attentiontodoDO.setAttr5("1");
|
||||||
@ -824,7 +819,6 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
|||||||
attentiontodook.add(attentiontodoDO);
|
attentiontodook.add(attentiontodoDO);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -868,8 +862,6 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
|||||||
BdgzsomthingDO.setAttr4("0");//是否已处理
|
BdgzsomthingDO.setAttr4("0");//是否已处理
|
||||||
// BdgzsomthingDO.setShowname(operateReqVO.getCreateTime());//获取数据当前表的创建事件 改
|
// BdgzsomthingDO.setShowname(operateReqVO.getCreateTime());//获取数据当前表的创建事件 改
|
||||||
bdgzsomthingMapper.insert(BdgzsomthingDO);
|
bdgzsomthingMapper.insert(BdgzsomthingDO);
|
||||||
|
|
||||||
|
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1209,9 +1201,9 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public CommonResult<Boolean> deleteProcessBomDetailNew(Long id){
|
public CommonResult<Boolean> deleteProcessBomDetailNew(Long id){
|
||||||
LambdaQueryWrapper<MaterialPlanBoomDO> boomDOLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<PurchaseOrderMakeDetailDO> boomDOLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
boomDOLambdaQueryWrapper.eq(MaterialPlanBoomDO::getBoomDetailId, id);
|
boomDOLambdaQueryWrapper.eq(PurchaseOrderMakeDetailDO::getBoomDetailId, id);
|
||||||
if (materialPlanBoomMapper.selectCount(boomDOLambdaQueryWrapper) > 0) return CommonResult.error(400,"该零件已做物料需求计划,不允许删除");
|
if (purchaseOrderMakeDetailMapper.selectCount(boomDOLambdaQueryWrapper) > 0) return CommonResult.error(400,"该零件已做采购,不允许删除");
|
||||||
LambdaQueryWrapper<TaskDispatchDO> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<TaskDispatchDO> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.eq(TaskDispatchDO::getBomDetailId, id);
|
queryWrapper.eq(TaskDispatchDO::getBomDetailId, id);
|
||||||
List<TaskDispatchDO> list = taskDispatchMapper.selectList(queryWrapper);
|
List<TaskDispatchDO> list = taskDispatchMapper.selectList(queryWrapper);
|
||||||
@ -1551,7 +1543,6 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
|||||||
processBomDetailMapper.update(lambdaUpdateWrapper);
|
processBomDetailMapper.update(lambdaUpdateWrapper);
|
||||||
return CommonResult.success( true);
|
return CommonResult.success( true);
|
||||||
}
|
}
|
||||||
|
|
||||||
return CommonResult.error(400,"boom明细不存在,请刷新页面");
|
return CommonResult.error(400,"boom明细不存在,请刷新页面");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -390,6 +390,7 @@ public class PurchaseOrderNoServiceImpl implements PurchaseOrderNoService {
|
|||||||
lambdaUpdateWrapper.set(PurchaseOrderMakeDetailDO::getPurchaseOrderNoId, null);
|
lambdaUpdateWrapper.set(PurchaseOrderMakeDetailDO::getPurchaseOrderNoId, null);
|
||||||
lambdaUpdateWrapper.set(PurchaseOrderMakeDetailDO::getPurchaseOrderNoDetailId,null);
|
lambdaUpdateWrapper.set(PurchaseOrderMakeDetailDO::getPurchaseOrderNoDetailId,null);
|
||||||
lambdaUpdateWrapper.set(PurchaseOrderMakeDetailDO::getOrderStatus,1);
|
lambdaUpdateWrapper.set(PurchaseOrderMakeDetailDO::getOrderStatus,1);
|
||||||
|
lambdaUpdateWrapper.set(PurchaseOrderMakeDetailDO::getStatus,1);
|
||||||
lambdaUpdateWrapper.set(PurchaseOrderMakeDetailDO::getPurchaseNo,null);
|
lambdaUpdateWrapper.set(PurchaseOrderMakeDetailDO::getPurchaseNo,null);
|
||||||
purchaseOrderMakeDetailMapper.update(lambdaUpdateWrapper);
|
purchaseOrderMakeDetailMapper.update(lambdaUpdateWrapper);
|
||||||
return CommonResult.success(true);
|
return CommonResult.success(true);
|
||||||
|
|||||||
@ -14,8 +14,11 @@ import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum;
|
|||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.*;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.*;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.ygjx.vo.YgjxPageReqVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.ygjx.vo.YgjxPageReqVO;
|
||||||
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.customer.CustomerDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.equipmanufacture.EquipManufactureDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.equipmanufacture.EquipManufactureDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.fpuserdetail.FpUserDetailDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.fpuserdetail.FpUserDetailDO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplan.MaterialPlanDO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO;
|
||||||
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;
|
||||||
@ -23,6 +26,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.plantaskbom.PlanTaskBomDO
|
|||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.procedure.ProcedureDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.procedure.ProcedureDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.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.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;
|
||||||
@ -30,8 +34,11 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatch
|
|||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatchdetailowner.TaskDispatchDetailOwnerDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatchdetailowner.TaskDispatchDetailOwnerDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskreport.TaskReportDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskreport.TaskReportDO;
|
||||||
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.customer.CustomerMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.equipmanufacture.EquipManufactureMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.equipmanufacture.EquipManufactureMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.fpuserdetail.FpUserDetailMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.fpuserdetail.FpUserDetailMapper;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplan.MaterialPlanMapper;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom.MaterialPlanBoomMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.plan.PlanMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.plan.PlanMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.plansub.PlanSubMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.plansub.PlanSubMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.plantask.PlanTaskMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.plantask.PlanTaskMapper;
|
||||||
@ -39,6 +46,7 @@ import com.chanko.yunxi.mes.module.heli.dal.mysql.plantaskbom.PlanTaskBomMapper;
|
|||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.procedure.ProcedureMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.procedure.ProcedureMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomMapper;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder.ProjectOrderMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder.ProjectOrderSubMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder.ProjectOrderSubMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetailMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetailMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchMapper;
|
||||||
@ -53,6 +61,10 @@ import com.chanko.yunxi.mes.module.heli.service.zjpgmaster.ZjPgMasterService;
|
|||||||
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
||||||
import com.chanko.yunxi.mes.module.system.dal.mysql.user.AdminUserMapper;
|
import com.chanko.yunxi.mes.module.system.dal.mysql.user.AdminUserMapper;
|
||||||
import com.chanko.yunxi.mes.module.system.service.user.AdminUserService;
|
import com.chanko.yunxi.mes.module.system.service.user.AdminUserService;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import org.springframework.expression.spel.ast.OpOr;
|
||||||
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.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
@ -70,6 +82,7 @@ import java.util.function.Function;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
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.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
import static com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
||||||
|
import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.MATERIAL_PLAN;
|
||||||
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*;
|
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -90,6 +103,8 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
|||||||
@Resource
|
@Resource
|
||||||
private ProjectOrderSubMapper projectOrderSubMapper;
|
private ProjectOrderSubMapper projectOrderSubMapper;
|
||||||
@Resource
|
@Resource
|
||||||
|
private ProjectOrderMapper projectOrderMapper;
|
||||||
|
@Resource
|
||||||
private CrossOrderManager crossOrderManager;
|
private CrossOrderManager crossOrderManager;
|
||||||
@Resource
|
@Resource
|
||||||
private SerialNumberService serialNumberService;
|
private SerialNumberService serialNumberService;
|
||||||
@ -123,6 +138,12 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
|||||||
private PlanTaskBomMapper planTaskBomMapper;
|
private PlanTaskBomMapper planTaskBomMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private PlanTaskMapper planTaskMapper;
|
private PlanTaskMapper planTaskMapper;
|
||||||
|
@Resource
|
||||||
|
private MaterialPlanBoomMapper materialPlanBoomMapper;
|
||||||
|
@Resource
|
||||||
|
private MaterialPlanMapper materialPlanMapper;
|
||||||
|
@Resource
|
||||||
|
private CustomerMapper customerMapper;
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Long createTaskDispatch(TaskDispatchSaveReqVO createReqVO) {
|
public Long createTaskDispatch(TaskDispatchSaveReqVO createReqVO) {
|
||||||
@ -224,10 +245,10 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
|||||||
TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(dispatchDetailDO.getId());
|
TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(dispatchDetailDO.getId());
|
||||||
if (ObjectUtil.isNotEmpty(taskDispatchDetailDO)){
|
if (ObjectUtil.isNotEmpty(taskDispatchDetailDO)){
|
||||||
if ("false".equals(dispatchDetailDO.getIsOutsourcing())){
|
if ("false".equals(dispatchDetailDO.getIsOutsourcing())){
|
||||||
if ("Y".equals(taskDispatchDetailDO.getMatPlanProcess())){
|
if (ObjectUtil.isNotEmpty(taskDispatchDetailDO.getPurchaseNo())){
|
||||||
ProcedureDO procedureDO = procedureMapper.selectById(dispatchDetailDO.getProcedureId());
|
ProcedureDO procedureDO = procedureMapper.selectById(dispatchDetailDO.getProcedureId());
|
||||||
if (ObjectUtil.isNotEmpty(procedureDO)){
|
if (ObjectUtil.isNotEmpty(procedureDO)){
|
||||||
throw exception(new ErrorCode(400,"该工序"+procedureDO.getName()+"已做物料需求计划,不允许去掉外协,请确认!"));
|
throw exception(new ErrorCode(400,"该工序"+procedureDO.getName()+"已做零件采购,不允许去掉外协,请确认!"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -244,6 +265,84 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (operateTypeEnum == OperateTypeEnum.SUBMIT) {
|
||||||
|
ArrayList<TaskDispatchDetailDO> taskDispatchDetailDOS = new ArrayList<>();
|
||||||
|
for (TaskDispatchDetailDO taskDispatchDetail : updateReqVO.getTaskDispatchDetails()) {
|
||||||
|
LambdaQueryWrapper<MaterialPlanBoomDO> wrapper = new LambdaQueryWrapper<MaterialPlanBoomDO>().eq(MaterialPlanBoomDO::getBoomDetailId, taskDispatchDetail.getBomDetailId()).eq(MaterialPlanBoomDO::getProcedureId, taskDispatchDetail.getProcedureId());
|
||||||
|
MaterialPlanBoomDO materialPlanBoomDO = materialPlanBoomMapper.selectOne(wrapper);
|
||||||
|
if ("false".equals(taskDispatchDetail.getIsOutsourcing())) {
|
||||||
|
if (ObjectUtil.isNotEmpty(materialPlanBoomDO)) {
|
||||||
|
materialPlanBoomMapper.deletePlanBoom(materialPlanBoomDO.getId());
|
||||||
|
LambdaQueryWrapper<MaterialPlanBoomDO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
lambdaQueryWrapper.eq(MaterialPlanBoomDO::getProjectMaterialPlanId, materialPlanBoomDO.getProjectMaterialPlanId());
|
||||||
|
if (materialPlanBoomMapper.selectCount(lambdaQueryWrapper) <= 0)
|
||||||
|
materialPlanMapper.delMaterialPlan(materialPlanBoomDO.getProjectMaterialPlanId());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ObjectUtil.isEmpty(materialPlanBoomDO)) {
|
||||||
|
taskDispatchDetailDOS.add(taskDispatchDetail);
|
||||||
|
}else {
|
||||||
|
materialPlanBoomDO.setBoomArriveDate(taskDispatchDetail.getEndTime());
|
||||||
|
materialPlanBoomDO.setDuEmpId(taskDispatchDetail.getOwner());
|
||||||
|
materialPlanBoomMapper.updateById(materialPlanBoomDO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isNotEmpty(taskDispatchDetailDOS)) {
|
||||||
|
MaterialPlanDO planDO = new MaterialPlanDO();
|
||||||
|
SerialNumberDO serialNumberDO = new SerialNumberDO();
|
||||||
|
serialNumberDO = serialNumberService.getSerialNumber(MATERIAL_PLAN.name(), new SimpleDateFormat("yyyyMMdd").format(new Date()));
|
||||||
|
serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber() + 1);
|
||||||
|
planDO.setProjectMaterialPlanNo(MATERIAL_PLAN.getCode(serialNumberDO.getSerialNumber().toString()));
|
||||||
|
ProjectOrderDO projectOrderDO = projectOrderMapper.selectById(updateObj.getProjectId());
|
||||||
|
if (ObjectUtil.isNotEmpty(projectOrderDO)){
|
||||||
|
planDO.setProjectId(projectOrderDO.getId());
|
||||||
|
planDO.setProjectName(projectOrderDO.getProjectName());
|
||||||
|
planDO.setProjectNameSim(projectOrderDO.getProjectNameSim());
|
||||||
|
CustomerDO customerDO = customerMapper.selectById(projectOrderDO.getCustomerId());
|
||||||
|
if (ObjectUtil.isNotEmpty(customerDO)){
|
||||||
|
planDO.setCustomerId(customerDO.getId());
|
||||||
|
planDO.setBrief(customerDO.getBrief());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ProjectOrderSubDO projectOrderSubDO = projectOrderSubMapper.selectById(updateObj.getProjectSubId());
|
||||||
|
if (ObjectUtil.isNotEmpty(projectOrderSubDO)){
|
||||||
|
planDO.setProjectPlanSubId(projectOrderSubDO.getId());
|
||||||
|
planDO.setName(projectOrderSubDO.getName());
|
||||||
|
planDO.setNameSim(projectOrderSubDO.getNameSim());
|
||||||
|
}
|
||||||
|
planDO.setProjectPlanId(updateObj.getPlanId());
|
||||||
|
planDO.setMatType(1);
|
||||||
|
planDO.setMatPlanDate(new Date());
|
||||||
|
materialPlanMapper.insert(planDO);
|
||||||
|
// 回写序列记录
|
||||||
|
serialNumberService.updateSerialNumber(serialNumberDO);
|
||||||
|
List<MaterialPlanBoomDO> materialPlanBoomDOList = new ArrayList<>();
|
||||||
|
for (TaskDispatchDetailDO taskDispatchDetailDO : taskDispatchDetailDOS) {
|
||||||
|
MaterialPlanBoomDO boomDO = new MaterialPlanBoomDO();
|
||||||
|
boomDO.setProjectMaterialPlanId(planDO.getId());
|
||||||
|
boomDO.setBoomDetailId(updateObj.getBomDetailId());
|
||||||
|
boomDO.setBoomAmount(new BigDecimal(taskDispatchDetailDO.getAmount()));
|
||||||
|
boomDO.setBoomArriveDate(taskDispatchDetailDO.getEndTime());
|
||||||
|
ProcessBomDetailDO bomDetailDO = processBomDetailMapper.selectById(updateObj.getBomDetailId());
|
||||||
|
if (ObjectUtil.isNotEmpty(bomDetailDO)){
|
||||||
|
boomDO.setMatName(bomDetailDO.getMaterialName());
|
||||||
|
}
|
||||||
|
boomDO.setDuEmpId(taskDispatchDetailDO.getOwner());
|
||||||
|
if (ObjectUtil.isNotEmpty(projectOrderSubDO)){
|
||||||
|
boomDO.setProjectPlanSubId(projectOrderSubDO.getId());
|
||||||
|
boomDO.setName(projectOrderSubDO.getName());
|
||||||
|
}
|
||||||
|
boomDO.setProcedureId(taskDispatchDetailDO.getProcedureId());
|
||||||
|
boomDO.setMplanStatus(0);
|
||||||
|
materialPlanBoomMapper.insert(boomDO);
|
||||||
|
taskDispatchDetailDO.setProjectMaterialPlanDetailId(boomDO.getId());
|
||||||
|
taskDispatchDetailDO.setPlanStatus(1);
|
||||||
|
taskDispatchDetailDO.setMatPlanProcess("Y");
|
||||||
|
taskDispatchDetailDO.setProjectMaterialPlanNo(planDO.getProjectMaterialPlanNo());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (operateTypeEnum == OperateTypeEnum.SAVE){
|
if (operateTypeEnum == OperateTypeEnum.SAVE){
|
||||||
updateObj.setDispatchStatus(1);
|
updateObj.setDispatchStatus(1);
|
||||||
@ -557,16 +656,30 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
|||||||
@Override
|
@Override
|
||||||
public void deleteTaskDispatchDetail(Long id) {
|
public void deleteTaskDispatchDetail(Long id) {
|
||||||
TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(id);
|
TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(id);
|
||||||
if (ObjectUtil.isNotEmpty(taskDispatchDetailDO)&&("Y".equals(taskDispatchDetailDO.getMatPlanProcess())||taskDispatchDetailDO.getReportProcess()!=0)){
|
if (ObjectUtil.isNotEmpty(taskDispatchDetailDO)&&(ObjectUtil.isNotEmpty(taskDispatchDetailDO.getPurchaseNo())||taskDispatchDetailDO.getReportProcess()!=0)){
|
||||||
ProcedureDO procedureDO = procedureMapper.selectById(taskDispatchDetailDO.getProcedureId());
|
ProcedureDO procedureDO = procedureMapper.selectById(taskDispatchDetailDO.getProcedureId());
|
||||||
if (ObjectUtil.isNotEmpty(procedureDO)){
|
if (ObjectUtil.isNotEmpty(procedureDO)){
|
||||||
if ("Y".equals(taskDispatchDetailDO.getMatPlanProcess())){
|
if (ObjectUtil.isNotEmpty(taskDispatchDetailDO.getPurchaseNo())){
|
||||||
throw exception(new ErrorCode(400,"该工序"+procedureDO.getName()+"已做需求计划,不允许删除"));
|
throw exception(new ErrorCode(400,"该工序"+procedureDO.getName()+"已做零件采购,不允许删除"));
|
||||||
}else {
|
}else {
|
||||||
throw exception(new ErrorCode(400,"该工序"+procedureDO.getName()+"已做报工,不允许删除"));
|
throw exception(new ErrorCode(400,"该工序"+procedureDO.getName()+"已做报工,不允许删除"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
LambdaQueryWrapper<TaskDispatchDO> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(TaskDispatchDO::getId, taskDispatchDetailDO.getDispatchId());
|
||||||
|
TaskDispatchDO taskDispatchDO = taskDispatchMapper.selectOne(queryWrapper);
|
||||||
|
if (ObjectUtil.isNotEmpty(taskDispatchDO)){
|
||||||
|
LambdaQueryWrapper<MaterialPlanBoomDO> wrapper = new LambdaQueryWrapper<MaterialPlanBoomDO>().eq(MaterialPlanBoomDO::getBoomDetailId, taskDispatchDO.getBomDetailId()).eq(MaterialPlanBoomDO::getProcedureId, taskDispatchDetailDO.getProcedureId());
|
||||||
|
MaterialPlanBoomDO materialPlanBoomDO = materialPlanBoomMapper.selectOne(wrapper);
|
||||||
|
if (ObjectUtil.isNotEmpty(materialPlanBoomDO)){
|
||||||
|
materialPlanBoomMapper.deletePlanBoom(materialPlanBoomDO.getId());
|
||||||
|
LambdaQueryWrapper<MaterialPlanBoomDO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
lambdaQueryWrapper.eq(MaterialPlanBoomDO::getProjectMaterialPlanId, materialPlanBoomDO.getProjectMaterialPlanId());
|
||||||
|
if (materialPlanBoomMapper.selectCount(lambdaQueryWrapper) <= 0)
|
||||||
|
materialPlanMapper.delMaterialPlan(materialPlanBoomDO.getProjectMaterialPlanId());
|
||||||
|
}
|
||||||
|
}
|
||||||
taskDispatchDetailMapper.deleteByDispatchId(id);
|
taskDispatchDetailMapper.deleteByDispatchId(id);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
@ -1159,41 +1272,240 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<TaskDispatchDO> getListCl(Long id, Long projectSubId) {
|
public List<TaskDispatchDO> getListCl(Long id, Long projectSubId) {
|
||||||
|
// List<TaskDispatchDO> taskDispatchDOS = taskDispatchMapper.getListCl(id, projectSubId);
|
||||||
|
// for (TaskDispatchDO taskDispatchDO : taskDispatchDOS) {
|
||||||
|
// LambdaQueryWrapper<TaskDispatchDetailDO> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
// wrapper.eq(TaskDispatchDetailDO::getDispatchId, taskDispatchDO.getId());
|
||||||
|
// List<TaskDispatchDetailDO> detailDOS = taskDispatchDetailMapper.selectList(wrapper);
|
||||||
|
// Map<String, BigDecimal> map = new HashMap<>();
|
||||||
|
//
|
||||||
|
// BigDecimal assemblyLaborCost = BigDecimal.ZERO;
|
||||||
|
// for (TaskDispatchDetailDO detailDO : detailDOS) {
|
||||||
|
// ProcedureDO procedureDO = procedureMapper.selectById(detailDO.getProcedureId());
|
||||||
|
// BigDecimal procedureCost=taskDispatchDetailMapper.bubbleFees(taskDispatchDO.getBomDetailId(),detailDO.getProcedureId());
|
||||||
|
//// BigDecimal materialCost = taskDispatchDetailMapper.materialCost(detailDO.getId());
|
||||||
|
// BigDecimal materialCost = taskDispatchDetailMapper.materialCosts(taskDispatchDO.getBomDetailId(),detailDO.getProcedureId());
|
||||||
|
// BigDecimal internalLaborCost = taskDispatchDetailMapper.internalLaborCost(detailDO.getId());
|
||||||
|
// BigDecimal processInspection=taskDispatchDetailMapper.processInspection(detailDO.getId());
|
||||||
|
//
|
||||||
|
// if (ObjectUtil.isEmpty(procedureCost)) procedureCost=BigDecimal.ZERO;
|
||||||
|
// if (ObjectUtil.isEmpty(materialCost)) materialCost=BigDecimal.ZERO;
|
||||||
|
// if (ObjectUtil.isEmpty(internalLaborCost)) internalLaborCost=BigDecimal.ZERO;
|
||||||
|
// if (ObjectUtil.isEmpty(processInspection)) processInspection=BigDecimal.ZERO;
|
||||||
|
// BigDecimal sum = procedureCost.add(materialCost).add(internalLaborCost).add(processInspection);
|
||||||
|
// if (ObjectUtil.isNotEmpty(procedureDO)){
|
||||||
|
// map.put(procedureDO.getName(),sum);
|
||||||
|
// }
|
||||||
|
// assemblyLaborCost=assemblyLaborCost.add(sum);
|
||||||
|
// }
|
||||||
|
// taskDispatchDO.setAssemblyLaborSum(assemblyLaborCost);
|
||||||
|
// taskDispatchDO.setMap( map);
|
||||||
|
// taskDispatchDO.setAssemblyLaborCost(assemblyLaborCost.divide(taskDispatchDO.getAmount(),1, RoundingMode.HALF_UP));
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// return taskDispatchDOS;
|
||||||
List<TaskDispatchDO> taskDispatchDOS = taskDispatchMapper.getListCl(id, projectSubId);
|
List<TaskDispatchDO> taskDispatchDOS = taskDispatchMapper.getListCl(id, projectSubId);
|
||||||
for (TaskDispatchDO taskDispatchDO : taskDispatchDOS) {
|
|
||||||
LambdaQueryWrapper<TaskDispatchDetailDO> wrapper = new LambdaQueryWrapper<>();
|
|
||||||
wrapper.eq(TaskDispatchDetailDO::getDispatchId, taskDispatchDO.getId());
|
|
||||||
List<TaskDispatchDetailDO> detailDOS = taskDispatchDetailMapper.selectList(wrapper);
|
|
||||||
Map<String, BigDecimal> map = new HashMap<>();
|
|
||||||
|
|
||||||
BigDecimal assemblyLaborCost = BigDecimal.ZERO;
|
if (taskDispatchDOS.isEmpty()) {
|
||||||
for (TaskDispatchDetailDO detailDO : detailDOS) {
|
return taskDispatchDOS;
|
||||||
ProcedureDO procedureDO = procedureMapper.selectById(detailDO.getProcedureId());
|
|
||||||
BigDecimal procedureCost=taskDispatchDetailMapper.bubbleFees(taskDispatchDO.getBomDetailId(),detailDO.getProcedureId());
|
|
||||||
// BigDecimal materialCost = taskDispatchDetailMapper.materialCost(detailDO.getId());
|
|
||||||
BigDecimal materialCost = taskDispatchDetailMapper.materialCosts(taskDispatchDO.getBomDetailId(),detailDO.getProcedureId());
|
|
||||||
BigDecimal internalLaborCost = taskDispatchDetailMapper.internalLaborCost(detailDO.getId());
|
|
||||||
BigDecimal processInspection=taskDispatchDetailMapper.processInspection(detailDO.getId());
|
|
||||||
|
|
||||||
if (ObjectUtil.isEmpty(procedureCost)) procedureCost=BigDecimal.ZERO;
|
|
||||||
if (ObjectUtil.isEmpty(materialCost)) materialCost=BigDecimal.ZERO;
|
|
||||||
if (ObjectUtil.isEmpty(internalLaborCost)) internalLaborCost=BigDecimal.ZERO;
|
|
||||||
if (ObjectUtil.isEmpty(processInspection)) processInspection=BigDecimal.ZERO;
|
|
||||||
BigDecimal sum = procedureCost.add(materialCost).add(internalLaborCost).add(processInspection);
|
|
||||||
if (ObjectUtil.isNotEmpty(procedureDO)){
|
|
||||||
map.put(procedureDO.getName(),sum);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 1. 批量获取所有dispatchId
|
||||||
|
List<Long> dispatchIds = taskDispatchDOS.stream()
|
||||||
|
.map(TaskDispatchDO::getId)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 2. 批量查询所有TaskDispatchDetailDO
|
||||||
|
List<TaskDispatchDetailDO> allDetailDOS = getTaskDispatchDetailsBatch(dispatchIds);
|
||||||
|
Map<Long, List<TaskDispatchDetailDO>> detailsByDispatchId = allDetailDOS.stream()
|
||||||
|
.collect(Collectors.groupingBy(TaskDispatchDetailDO::getDispatchId));
|
||||||
|
|
||||||
|
// 3. 批量获取所有procedureId
|
||||||
|
Set<Long> procedureIds = allDetailDOS.stream()
|
||||||
|
.map(TaskDispatchDetailDO::getProcedureId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
// 4. 批量查询ProcedureDO
|
||||||
|
Map<Long, ProcedureDO> procedureMap = getProceduresBatch(procedureIds);
|
||||||
|
|
||||||
|
// 5. 批量查询各种成本数据
|
||||||
|
Map<CostQueryKey, BigDecimal> bubbleFeesMap = getBubbleFeesBatch(allDetailDOS, taskDispatchDOS);
|
||||||
|
Map<CostQueryKey, BigDecimal> materialCostsMap = getMaterialCostsBatch(allDetailDOS, taskDispatchDOS);
|
||||||
|
Map<Long, BigDecimal> internalLaborCostMap = getInternalLaborCostBatch(allDetailDOS);
|
||||||
|
Map<Long, BigDecimal> processInspectionMap = getProcessInspectionBatch(allDetailDOS);
|
||||||
|
|
||||||
|
// 6. 处理计算结果
|
||||||
|
for (TaskDispatchDO taskDispatchDO : taskDispatchDOS) {
|
||||||
|
List<TaskDispatchDetailDO> detailDOS = detailsByDispatchId.getOrDefault(taskDispatchDO.getId(), Collections.emptyList());
|
||||||
|
Map<String, BigDecimal> costMap = new HashMap<>();
|
||||||
|
BigDecimal assemblyLaborCost = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
for (TaskDispatchDetailDO detailDO : detailDOS) {
|
||||||
|
ProcedureDO procedureDO = procedureMap.get(detailDO.getProcedureId());
|
||||||
|
if (procedureDO == null) continue;
|
||||||
|
|
||||||
|
// 从批量查询的结果中获取数据
|
||||||
|
BigDecimal procedureCost = getCostValue(bubbleFeesMap,
|
||||||
|
new CostQueryKey(taskDispatchDO.getBomDetailId(), detailDO.getProcedureId()));
|
||||||
|
BigDecimal materialCost = getCostValue(materialCostsMap,
|
||||||
|
new CostQueryKey(taskDispatchDO.getBomDetailId(), detailDO.getProcedureId()));
|
||||||
|
BigDecimal internalLaborCost = getCostValue(internalLaborCostMap, detailDO.getId());
|
||||||
|
BigDecimal processInspection = getCostValue(processInspectionMap, detailDO.getId());
|
||||||
|
|
||||||
|
BigDecimal sum = procedureCost.add(materialCost).add(internalLaborCost).add(processInspection);
|
||||||
|
costMap.put(procedureDO.getName(), sum);
|
||||||
assemblyLaborCost = assemblyLaborCost.add(sum);
|
assemblyLaborCost = assemblyLaborCost.add(sum);
|
||||||
}
|
}
|
||||||
taskDispatchDO.setAssemblyLaborSum(assemblyLaborCost);
|
|
||||||
taskDispatchDO.setMap( map);
|
|
||||||
taskDispatchDO.setAssemblyLaborCost(assemblyLaborCost.divide(taskDispatchDO.getAmount(),1, RoundingMode.HALF_UP));
|
|
||||||
|
|
||||||
|
taskDispatchDO.setAssemblyLaborSum(assemblyLaborCost);
|
||||||
|
taskDispatchDO.setMap(costMap);
|
||||||
|
if (taskDispatchDO.getAmount() != null && taskDispatchDO.getAmount().compareTo(BigDecimal.ZERO) != 0) {
|
||||||
|
taskDispatchDO.setAssemblyLaborCost(assemblyLaborCost.divide(taskDispatchDO.getAmount(), 1, RoundingMode.HALF_UP));
|
||||||
|
} else {
|
||||||
|
taskDispatchDO.setAssemblyLaborCost(BigDecimal.ZERO);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return taskDispatchDOS;
|
return taskDispatchDOS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Map<Long, ProcedureDO> getProceduresBatch(Set<Long> procedureIds){
|
||||||
|
LambdaQueryWrapper<ProcedureDO> lambdaWrapper = new LambdaQueryWrapper<>();
|
||||||
|
lambdaWrapper.in(ProcedureDO::getId, procedureIds);
|
||||||
|
List<ProcedureDO> procedures = procedureMapper.selectList(lambdaWrapper);
|
||||||
|
return procedures.stream()
|
||||||
|
.collect(Collectors.toMap(ProcedureDO::getId, Function.identity()));
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<TaskDispatchDetailDO> getTaskDispatchDetailsBatch(List<Long> dispatchIds) {
|
||||||
|
LambdaQueryWrapper<TaskDispatchDetailDO> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.in(TaskDispatchDetailDO::getDispatchId, dispatchIds);
|
||||||
|
return taskDispatchDetailMapper.selectList(wrapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 批量成本查询方法
|
||||||
|
private Map<CostQueryKey, BigDecimal> getBubbleFeesBatch(List<TaskDispatchDetailDO> details, List<TaskDispatchDO> dispatches) {
|
||||||
|
// 1. 收集所有需要查询的键
|
||||||
|
Set<CostQueryKey> queryKeys = collectBubbleFeeQueryKeys(details, dispatches);
|
||||||
|
|
||||||
|
if (queryKeys.isEmpty()) {
|
||||||
|
return Collections.emptyMap();
|
||||||
|
}
|
||||||
|
// 提取bomDetailIds和procedureIds
|
||||||
|
List<Long> bomDetailIds = queryKeys.stream()
|
||||||
|
.map(CostQueryKey::getBomDetailId)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
List<Long> procedureIds = queryKeys.stream()
|
||||||
|
.map(CostQueryKey::getProcedureId)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
// 2. 批量查询
|
||||||
|
List<BubbleFeeResult> batchResults = taskDispatchDetailMapper.batchBubbleFees(bomDetailIds, procedureIds);
|
||||||
|
|
||||||
|
// 3. 转换为Map返回
|
||||||
|
return convertToBubbleFeeMap(batchResults);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 转换查询结果为Map
|
||||||
|
*/
|
||||||
|
private Map<CostQueryKey, BigDecimal> convertToBubbleFeeMap(List<BubbleFeeResult> results) {
|
||||||
|
Map<CostQueryKey, BigDecimal> resultMap = new HashMap<>();
|
||||||
|
if (ObjectUtil.isNotEmpty(results)){
|
||||||
|
for (BubbleFeeResult result : results) {
|
||||||
|
CostQueryKey key = new CostQueryKey(result.getBomDetailId(), result.getProcedureId());
|
||||||
|
resultMap.put(key, ObjectUtil.isEmpty(result.getCost()) ? BigDecimal.ZERO : result.getCost());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return resultMap;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 收集所有需要查询的键
|
||||||
|
*/
|
||||||
|
private Set<CostQueryKey> collectBubbleFeeQueryKeys(List<TaskDispatchDetailDO> details, List<TaskDispatchDO> dispatches) {
|
||||||
|
Set<CostQueryKey> queryKeys = new HashSet<>();
|
||||||
|
|
||||||
|
// 建立dispatchId到bomDetailId的映射
|
||||||
|
Map<Long, Long> dispatchToBomDetailMap = dispatches.stream()
|
||||||
|
.collect(Collectors.toMap(TaskDispatchDO::getId, TaskDispatchDO::getBomDetailId));
|
||||||
|
|
||||||
|
for (TaskDispatchDetailDO detail : details) {
|
||||||
|
Long bomDetailId = dispatchToBomDetailMap.get(detail.getDispatchId());
|
||||||
|
if (bomDetailId != null && detail.getProcedureId() != null) {
|
||||||
|
queryKeys.add(new CostQueryKey(bomDetailId, detail.getProcedureId()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return queryKeys;
|
||||||
|
}
|
||||||
|
// 其他批量查询方法的类似实现...
|
||||||
|
private Map<CostQueryKey, BigDecimal> getMaterialCostsBatch(List<TaskDispatchDetailDO> details, List<TaskDispatchDO> dispatches) {
|
||||||
|
// 1. 收集所有需要查询的键
|
||||||
|
Set<CostQueryKey> queryKeys = collectBubbleFeeQueryKeys(details, dispatches);
|
||||||
|
|
||||||
|
if (queryKeys.isEmpty()) {
|
||||||
|
return Collections.emptyMap();
|
||||||
|
}
|
||||||
|
// 提取bomDetailIds和procedureIds
|
||||||
|
List<Long> bomDetailIds = queryKeys.stream()
|
||||||
|
.map(CostQueryKey::getBomDetailId)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
List<Long> procedureIds = queryKeys.stream()
|
||||||
|
.map(CostQueryKey::getProcedureId)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
// 2. 批量查询
|
||||||
|
List<BubbleFeeResult> batchResults = taskDispatchDetailMapper.batchMaterialCosts(bomDetailIds, procedureIds);
|
||||||
|
|
||||||
|
// 3. 转换为Map返回
|
||||||
|
return convertToBubbleFeeMap(batchResults);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<Long, BigDecimal> getInternalLaborCostBatch(List<TaskDispatchDetailDO> details) {
|
||||||
|
if (details.isEmpty()) {
|
||||||
|
return Collections.emptyMap();
|
||||||
|
}
|
||||||
|
// 提取bomDetailIds和procedureIds
|
||||||
|
List<Long> bomDetailIds = details.stream()
|
||||||
|
.map(TaskDispatchDetailDO::getId)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
return taskDispatchDetailMapper.batchInternalLaborCost(bomDetailIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<Long, BigDecimal> getProcessInspectionBatch(List<TaskDispatchDetailDO> details) {
|
||||||
|
if (details.isEmpty()) {
|
||||||
|
return Collections.emptyMap();
|
||||||
|
}
|
||||||
|
// 提取bomDetailIds和procedureIds
|
||||||
|
List<Long> bomDetailIds = details.stream()
|
||||||
|
.map(TaskDispatchDetailDO::getId)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
return taskDispatchDetailMapper.batchProcessInspection(bomDetailIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 辅助方法
|
||||||
|
private BigDecimal getCostValue(Map<?, BigDecimal> costMap, Object key) {
|
||||||
|
if (costMap == null || costMap.isEmpty()) {
|
||||||
|
return BigDecimal.ZERO;
|
||||||
|
}
|
||||||
|
return costMap.getOrDefault(key, BigDecimal.ZERO);
|
||||||
|
}
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@EqualsAndHashCode
|
||||||
|
private static class CostQueryKey {
|
||||||
|
private final Long bomDetailId;
|
||||||
|
private final Long procedureId;
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
public List<HashMap<String, String>> getOwners(Long id) {
|
public List<HashMap<String, String>> getOwners(Long id) {
|
||||||
List<FpUserDetailDO> fpUserDetailDOS = fpUserDetailMapper.selectOwnerLists(id);
|
List<FpUserDetailDO> fpUserDetailDOS = fpUserDetailMapper.selectOwnerLists(id);
|
||||||
|
|||||||
@ -179,4 +179,80 @@
|
|||||||
GROUP BY s.id
|
GROUP BY s.id
|
||||||
) AS subquery;
|
) AS subquery;
|
||||||
</select>
|
</select>
|
||||||
|
<select id="batchBubbleFees"
|
||||||
|
resultType="com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.BubbleFeeResult">
|
||||||
|
SELECT
|
||||||
|
p.boom_detail_id AS bomDetailId,
|
||||||
|
p.procedure_id AS procedureId,
|
||||||
|
SUM(COALESCE(p.mat_weight, 0) * COALESCE(c.price, 0)) AS cost
|
||||||
|
FROM
|
||||||
|
pro_process_bom_detail t
|
||||||
|
LEFT JOIN project_material_plan_boom p ON p.boom_detail_id = t.id
|
||||||
|
AND p.deleted = 0
|
||||||
|
AND p.tenant_id = 2
|
||||||
|
LEFT JOIN base_composition c ON t.composition_id = c.id
|
||||||
|
AND c.deleted = 0
|
||||||
|
AND c.tenant_id = 2
|
||||||
|
WHERE
|
||||||
|
t.type = 2
|
||||||
|
AND p.boom_detail_id in
|
||||||
|
<foreach collection="bomDetailIds" item="bomDetailId" open="(" close=")" separator=",">
|
||||||
|
#{bomDetailId}
|
||||||
|
</foreach>
|
||||||
|
and p.procedure_id in
|
||||||
|
<foreach collection="procedureIds" item="procedureId" open="(" close=")" separator=",">
|
||||||
|
#{procedureId}
|
||||||
|
</foreach>
|
||||||
|
GROUP BY p.boom_detail_id, p.procedure_id
|
||||||
|
</select>
|
||||||
|
<select id="batchMaterialCosts"
|
||||||
|
resultType="com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.BubbleFeeResult">
|
||||||
|
SELECT
|
||||||
|
subquery.bomDetailId AS bomDetailId,
|
||||||
|
subquery.procedureId AS procedureId,
|
||||||
|
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,
|
||||||
|
t.boom_detail_id AS bomDetailId,
|
||||||
|
t.procedure_id AS procedureId
|
||||||
|
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
|
||||||
|
where t.deleted=0 and t.tenant_id=2 and d.type=2 and t.boom_detail_id in
|
||||||
|
<foreach collection="bomDetailIds" item="bomDetailId" open="(" close=")" separator=",">
|
||||||
|
#{bomDetailId}
|
||||||
|
</foreach>
|
||||||
|
and t.procedure_id in
|
||||||
|
<foreach collection="procedureIds" item="procedureId" open="(" close=")" separator=",">
|
||||||
|
#{procedureId}
|
||||||
|
</foreach>
|
||||||
|
GROUP BY s.id
|
||||||
|
) AS subquery
|
||||||
|
GROUP BY subquery.bomDetailId, subquery.procedureId;
|
||||||
|
</select>
|
||||||
|
<select id="batchInternalLaborCost" resultType="java.util.Map">
|
||||||
|
SELECT t1.id,sum(COALESCE(r.work_time, 0) * p.grade_cost) cost
|
||||||
|
from pro_task_dispatch t
|
||||||
|
left join pro_task_dispatch_detail t1 on t.id=t1.dispatch_id and t1.deleted=0 and t1.tenant_id=2
|
||||||
|
left join pro_task_report r on r.dispatch_detail_id=t1.id and r.deleted=0 and r.tenant_id=2
|
||||||
|
left join system_user_post u on u.user_id=r.owner and u.deleted=0 and u.tenant_id=2
|
||||||
|
left join system_post p on p.id=u.post_id and u.deleted=0 and p.tenant_id=2 and p.status=0
|
||||||
|
where t1.is_outsourcing='N' and t.deleted=0 and t.dispatch_type='PRODUCTION' and r.work_type=1 and t1.id in
|
||||||
|
<foreach collection="bomDetailIds" item="bomDetailId" open="(" close=")" separator=",">
|
||||||
|
#{bomDetailId}
|
||||||
|
</foreach>
|
||||||
|
</select>
|
||||||
|
<select id="batchProcessInspection" resultType="java.util.Map">
|
||||||
|
SELECT g.dispatch_detail_id,sum(COALESCE(t.work_time, 0) * p.grade_cost) cost
|
||||||
|
FROM quality_pg_master_line g
|
||||||
|
LEFT JOIN quality_bg_master_line t ON t.zj_mx_id = g.id and t.deleted = 0 and t.tenant_id = 2
|
||||||
|
left join system_user_post u on u.user_id=t.bg_user and u.deleted=0 and u.tenant_id=2
|
||||||
|
left join system_post p on p.id=u.post_id and u.deleted=0 and p.tenant_id=2 and p.status=0
|
||||||
|
where g.deleted = 0 and g.dispatch_detail_id in
|
||||||
|
<foreach collection="bomDetailIds" item="bomDetailId" open="(" close=")" separator=",">
|
||||||
|
#{bomDetailId}
|
||||||
|
</foreach>
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@ -79,3 +79,6 @@ export const approvals = async (data) => {
|
|||||||
export const exportOut = async (params) => {
|
export const exportOut = async (params) => {
|
||||||
return await request.download({ url: `/heli/purchase-order-make/exportOut`, params })
|
return await request.download({ url: `/heli/purchase-order-make/exportOut`, params })
|
||||||
}
|
}
|
||||||
|
export const updateDuEmp = async (data) => {
|
||||||
|
return await request.post({ url: `/heli/purchase-order-make/updateDuEmp`, data })
|
||||||
|
}
|
||||||
|
|||||||
@ -11,7 +11,8 @@ const props = defineProps({
|
|||||||
fullscreen: propTypes.bool.def(true),
|
fullscreen: propTypes.bool.def(true),
|
||||||
width: propTypes.oneOfType([String, Number]).def('40%'),
|
width: propTypes.oneOfType([String, Number]).def('40%'),
|
||||||
scroll: propTypes.bool.def(false), // 是否开启滚动条。如果是的话,按照 maxHeight 设置最大高度
|
scroll: propTypes.bool.def(false), // 是否开启滚动条。如果是的话,按照 maxHeight 设置最大高度
|
||||||
maxHeight: propTypes.oneOfType([String, Number]).def('400px')
|
maxHeight: propTypes.oneOfType([String, Number]).def('400px'),
|
||||||
|
isFullscreens: propTypes.bool.def(false)
|
||||||
})
|
})
|
||||||
|
|
||||||
const getBindValue = computed(() => {
|
const getBindValue = computed(() => {
|
||||||
@ -26,8 +27,7 @@ const getBindValue = computed(() => {
|
|||||||
return obj
|
return obj
|
||||||
})
|
})
|
||||||
|
|
||||||
const isFullscreen = ref(false)
|
const isFullscreen = ref(props.isFullscreens)
|
||||||
|
|
||||||
const toggleFull = () => {
|
const toggleFull = () => {
|
||||||
isFullscreen.value = !unref(isFullscreen)
|
isFullscreen.value = !unref(isFullscreen)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -270,7 +270,7 @@
|
|||||||
border
|
border
|
||||||
max-height="400"
|
max-height="400"
|
||||||
>
|
>
|
||||||
<el-table-column fixed label="子项目名称" align="center" prop="name" min-width="120px" />
|
<el-table-column fixed label="子项目编码" align="center" prop="projectSubCode" min-width="150px" />
|
||||||
|
|
||||||
<el-table-column min-width="50px" align="center">
|
<el-table-column min-width="50px" align="center">
|
||||||
<template #header>设计类型</template>
|
<template #header>设计类型</template>
|
||||||
@ -465,7 +465,6 @@ const handlerSelect = (selection, row) => {
|
|||||||
}
|
}
|
||||||
// 当选择项发生变化时会触发该事件
|
// 当选择项发生变化时会触发该事件
|
||||||
const handleSelectionChange = (val) => {
|
const handleSelectionChange = (val) => {
|
||||||
console.log('表格的选中 可以获得当前选中的数据', val)
|
|
||||||
selectedAddRow.value = val
|
selectedAddRow.value = val
|
||||||
}
|
}
|
||||||
// 新增按钮方法
|
// 新增按钮方法
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-card class="hl-card">
|
<el-card class="hl-card">
|
||||||
<template #header>
|
<template #header>
|
||||||
<span>零件需求计划</span>
|
<span></span>
|
||||||
</template>
|
</template>
|
||||||
<ContentWrap class="borderxx">
|
<ContentWrap class="borderxx">
|
||||||
<!-- 搜索工作栏 -->
|
<!-- 搜索工作栏 -->
|
||||||
@ -317,11 +317,9 @@ const singleSubmissions=()=>{
|
|||||||
}
|
}
|
||||||
const submitForm = async () => {
|
const submitForm = async () => {
|
||||||
try {
|
try {
|
||||||
console.log("开始提交"); // 调试点1:确认函数是否触发
|
|
||||||
|
|
||||||
const list = multipleTable.value|| []; // 安全获取数据
|
const list = multipleTable.value|| []; // 安全获取数据
|
||||||
console.log("明细数据:", list);
|
|
||||||
console.log(list.length)
|
|
||||||
// 1. 检查空数据
|
// 1. 检查空数据
|
||||||
if (!list || list.length==null) {
|
if (!list || list.length==null) {
|
||||||
message.error("提交明细不能为空,请确认");
|
message.error("提交明细不能为空,请确认");
|
||||||
|
|||||||
@ -44,8 +44,8 @@
|
|||||||
<el-form-item label="责任人" prop="duEmpName">
|
<el-form-item label="责任人" prop="duEmpName">
|
||||||
<el-input v-model="queryParams.duEmpName" placeholder="请输入责任人" clearable @keyup.enter="handleQuery" class="!w-240px"/>
|
<el-input v-model="queryParams.duEmpName" placeholder="请输入责任人" clearable @keyup.enter="handleQuery" class="!w-240px"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="物料需求单号" prop="projectMaterialPlanNo">
|
<el-form-item label="采购订单号" prop="purchaseNo">
|
||||||
<el-input v-model="queryParams.projectMaterialPlanNo" placeholder="请输入物料需求单号" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
<el-input v-model="queryParams.purchaseNo" placeholder="请输入采购订单号" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item style="margin-left:30px">
|
<el-form-item style="margin-left:30px">
|
||||||
<el-button @click="handleQuery" type="primary">
|
<el-button @click="handleQuery" type="primary">
|
||||||
@ -76,7 +76,8 @@
|
|||||||
<span style="order: 1;">同时操作</span>
|
<span style="order: 1;">同时操作</span>
|
||||||
<el-checkbox class="large-checkbox" v-model="flag" style="order: 2; margin-left: 10px;"/>
|
<el-checkbox class="large-checkbox" v-model="flag" style="order: 2; margin-left: 10px;"/>
|
||||||
</label>
|
</label>
|
||||||
|
<el-button style="margin-left: 18px" @click="updateDuEmp()" type="primary" size="large">责任人修改</el-button>
|
||||||
|
<el-button style="margin-left: 18px" @click="skip" type="primary" size="large">生产任务派工单</el-button>
|
||||||
</template>
|
</template>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col>
|
<el-col>
|
||||||
@ -205,7 +206,20 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="责任人" align="center" prop="duEmpName" min-width="120" />
|
<!-- <el-table-column label="责任人" align="center" prop="duEmpName" min-width="120" />-->
|
||||||
|
<el-table-column min-width="200px" align="center" >
|
||||||
|
<template #header><span class="hl-table_header">*</span>责任人</template>
|
||||||
|
<template #default="{ row, $index }">
|
||||||
|
<el-form-item :prop="`${$index}.duEmpId`" class="mb-0px!" >
|
||||||
|
<!-- <UserSelect v-model="row.duEmpId" class="!w-265px" clearable @update:newValue="handleSelectedUser($index, $event)"/>-->
|
||||||
|
<el-select class="!w-265px" v-model="row.duEmpId" clearable @update:new-value="handleSelectedUsers($index,$event)" @change="change2(row)" filterable>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in userInit" :key="dict.id"
|
||||||
|
:label="dict.username+' '+dict.nickname" :value="dict.id" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="状态" align="center" prop="mplanStatus" min-width="120" >
|
<el-table-column label="状态" align="center" prop="mplanStatus" min-width="120" >
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
{{
|
{{
|
||||||
@ -216,7 +230,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="打回原因" align="center" prop="rejRemark" min-width="120" />
|
<el-table-column label="打回原因" align="center" prop="rejRemark" min-width="120" />
|
||||||
<el-table-column label="采购单号" align="center" prop="purchaseNo" min-width="120" />
|
<el-table-column label="采购单号" align="center" prop="purchaseNo" min-width="180" />
|
||||||
<el-table-column fixed="right" label="操作" align="center" min-width="100" >
|
<el-table-column fixed="right" label="操作" align="center" min-width="100" >
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button
|
<el-button
|
||||||
@ -248,6 +262,7 @@ import * as PartPurchaseOrderApi from "@/api/heli/partpurchaseorder";
|
|||||||
import {ElButton, ElTable, ElTableColumn} from "element-plus";
|
import {ElButton, ElTable, ElTableColumn} from "element-plus";
|
||||||
import {useUserStore} from "@/store/modules/user";
|
import {useUserStore} from "@/store/modules/user";
|
||||||
import * as supplierApi from "@/api/heli/supplier";
|
import * as supplierApi from "@/api/heli/supplier";
|
||||||
|
import * as UserApi from "@/api/system/user";
|
||||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||||
defineOptions({ name: 'PartPurchase' })
|
defineOptions({ name: 'PartPurchase' })
|
||||||
|
|
||||||
@ -288,12 +303,15 @@ const queryParams = reactive({
|
|||||||
blueprintNo:undefined,
|
blueprintNo:undefined,
|
||||||
procedureName:undefined,
|
procedureName:undefined,
|
||||||
supplierName:undefined,
|
supplierName:undefined,
|
||||||
|
purchaseNo:undefined
|
||||||
})
|
})
|
||||||
const queryParams1 = reactive({
|
const queryParams1 = reactive({
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
pageSize: 999,
|
pageSize: 999,
|
||||||
status:1
|
status:1
|
||||||
})
|
})
|
||||||
|
const userInit = ref()
|
||||||
|
|
||||||
const queryFormRef = ref() // 搜索的表单
|
const queryFormRef = ref() // 搜索的表单
|
||||||
const exportLoading = ref(false) // 导出的加载中
|
const exportLoading = ref(false) // 导出的加载中
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
@ -312,6 +330,49 @@ const handleDelete = async (id: number) => {
|
|||||||
await getList()
|
await getList()
|
||||||
} catch {}
|
} catch {}
|
||||||
}
|
}
|
||||||
|
const skip = async () => {
|
||||||
|
const list = multipleTable.value|| []; // 安全获取数据
|
||||||
|
// 1. 检查空数据
|
||||||
|
if (!list || list.length==null) {
|
||||||
|
router.push({ path: '/production/productiondispatch' });
|
||||||
|
tagsViewStore.delVisitedView(router.currentRoute.value);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const result = areAllPropertiesSameWithSet(list, ['matName', 'blueprintNo']);
|
||||||
|
result.then(result => {
|
||||||
|
console.log('Promise 结果:', result); // 这里会输出 false
|
||||||
|
if (result === true) {
|
||||||
|
router.push({ path: '/production/productiondispatch' ,query: { matName: list[0].matName,blueprintNo:list[0].blueprintNo }} );
|
||||||
|
tagsViewStore.delVisitedView(router.currentRoute.value);
|
||||||
|
return;
|
||||||
|
}else {
|
||||||
|
message.error("选择的零件不一样,请确认!")
|
||||||
|
}
|
||||||
|
}).catch(error => {
|
||||||
|
console.error('Promise 错误:', error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const areAllPropertiesSameWithSet= async (list, propertyNames)=> {
|
||||||
|
if (!list || list.length === 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 为每个属性创建一个值的集合
|
||||||
|
const propertySets = {};
|
||||||
|
propertyNames.forEach(prop => {
|
||||||
|
propertySets[prop] = new Set();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 将所有元素的值添加到对应的集合中
|
||||||
|
list.forEach(item => {
|
||||||
|
propertyNames.forEach(prop => {
|
||||||
|
propertySets[prop].add(item[prop]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// 如果任何一个属性的集合大小大于1,说明有不同值
|
||||||
|
return propertyNames.every(prop => propertySets[prop].size === 1);
|
||||||
|
}
|
||||||
/** 查询列表 */
|
/** 查询列表 */
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
@ -326,6 +387,7 @@ const getList = async () => {
|
|||||||
const data = await MaterialPlanApi.getPartPurchasePages(queryParams)
|
const data = await MaterialPlanApi.getPartPurchasePages(queryParams)
|
||||||
history.state.idid=undefined
|
history.state.idid=undefined
|
||||||
list.value = data.list
|
list.value = data.list
|
||||||
|
if ( list.value){
|
||||||
list.value.forEach(item=> {
|
list.value.forEach(item=> {
|
||||||
// if(item.unitPrice == null || item.unitPrice==''){
|
// if(item.unitPrice == null || item.unitPrice==''){
|
||||||
// item.unitPrice=0
|
// item.unitPrice=0
|
||||||
@ -335,6 +397,7 @@ const getList = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
}
|
||||||
// list.value.forEach(item=> {
|
// list.value.forEach(item=> {
|
||||||
// if(item.isFoams == 'Y'){
|
// if(item.isFoams == 'Y'){
|
||||||
// item.isFoams = true
|
// item.isFoams = true
|
||||||
@ -377,13 +440,28 @@ const handleExportDetail = async () => {
|
|||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// }
|
// }
|
||||||
|
const change2 =(row:any)=>{
|
||||||
|
if (flag.value){
|
||||||
|
var bomDetails = list.value;
|
||||||
|
if (row.chkboxEnable){
|
||||||
|
for (let i = 0; i < bomDetails.length; i++) {
|
||||||
|
if (bomDetails[i].chkboxEnable){
|
||||||
|
bomDetails[i].duEmpId=row.duEmpId
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// if (row){
|
||||||
|
// row.type='修改'
|
||||||
|
// MaterialPlanApi.saveLog(row)
|
||||||
|
// }
|
||||||
|
}
|
||||||
const change =(row:any)=>{
|
const change =(row:any)=>{
|
||||||
if (flag.value) {
|
if (flag.value) {
|
||||||
var bomDetails = list.value;
|
var bomDetails = list.value;
|
||||||
if (row.chkboxEnable) {
|
if (row.chkboxEnable) {
|
||||||
for (let i = 0; i < bomDetails.length; i++) {
|
for (let i = 0; i < bomDetails.length; i++) {
|
||||||
if (bomDetails[i].chkboxEnable) {
|
if (bomDetails[i].chkboxEnable) {
|
||||||
|
|
||||||
bomDetails[i].supplierIds = row.supplierIds
|
bomDetails[i].supplierIds = row.supplierIds
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -539,16 +617,42 @@ const handleSelectedUser = (currentIndex, newValue: any) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const handleSelectedUsers = (currentIndex, newValue: any) => {
|
||||||
|
list.value[currentIndex].duEmpId = newValue?.id
|
||||||
|
|
||||||
|
}
|
||||||
const singleSubmissions=()=>{
|
const singleSubmissions=()=>{
|
||||||
submitForm();
|
submitForm();
|
||||||
}
|
}
|
||||||
|
const updateDuEmp= async ()=>{
|
||||||
|
const list = multipleTable.value|| []; // 安全获取数据
|
||||||
|
// 1. 检查空数据
|
||||||
|
if (!list || list.length==null) {
|
||||||
|
message.error("提交明细不能为空,请确认");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
const res = await Promise.race([
|
||||||
|
PartPurchaseOrderApi.updateDuEmp(list),
|
||||||
|
new Promise((_, reject) =>
|
||||||
|
setTimeout(() => reject(new Error("请求超时")), 30000)
|
||||||
|
)
|
||||||
|
]);
|
||||||
|
|
||||||
|
message.success("修改成功");
|
||||||
|
getList(); // 确保刷新完成
|
||||||
|
emit('success');
|
||||||
|
} catch (error) {
|
||||||
|
console.error("修改失败:", error);
|
||||||
|
// message.error(`操作失败: ${error.message || "未知错误"}`);
|
||||||
|
} finally {
|
||||||
|
formLoading.value = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
const submitForm = async () => {
|
const submitForm = async () => {
|
||||||
try {
|
try {
|
||||||
console.log("开始提交"); // 调试点1:确认函数是否触发
|
|
||||||
|
|
||||||
const list = multipleTable.value|| []; // 安全获取数据
|
const list = multipleTable.value|| []; // 安全获取数据
|
||||||
console.log(list);
|
|
||||||
// 1. 检查空数据
|
// 1. 检查空数据
|
||||||
if (!list || list.length==null) {
|
if (!list || list.length==null) {
|
||||||
message.error("提交明细不能为空,请确认");
|
message.error("提交明细不能为空,请确认");
|
||||||
@ -584,18 +688,21 @@ const submitForm = async () => {
|
|||||||
message.error("预估总价为空");
|
message.error("预估总价为空");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if (list[i].duEmpId == null) {
|
||||||
|
message.error("责任人为空");
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (i < list.length){
|
if (i < list.length){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. 检查项目一致性
|
// 2. 检查项目一致性
|
||||||
const firstProjectName = list[0].projectName;
|
// const firstProjectName = list[0].projectName;
|
||||||
if (list.some(item => item.projectName !== firstProjectName)) {
|
// if (list.some(item => item.projectName !== firstProjectName)) {
|
||||||
message.error("不同项目不能同时生成采购单");
|
// message.error("不同项目不能同时生成采购单");
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
|
|
||||||
//3. 检查生成采购订单状态
|
//3. 检查生成采购订单状态
|
||||||
const checkMaterialPlans = async () => {
|
const checkMaterialPlans = async () => {
|
||||||
@ -618,7 +725,6 @@ const submitForm = async () => {
|
|||||||
|
|
||||||
// 4. 添加加载状态(Element Plus 兼容处理)
|
// 4. 添加加载状态(Element Plus 兼容处理)
|
||||||
formLoading.value = true;
|
formLoading.value = true;
|
||||||
console.log(list)
|
|
||||||
// 5. 提交数据(添加超时处理)
|
// 5. 提交数据(添加超时处理)
|
||||||
const res = await Promise.race([
|
const res = await Promise.race([
|
||||||
PartPurchaseOrderApi.createPurchaseOrderMakeAndDetail(list),
|
PartPurchaseOrderApi.createPurchaseOrderMakeAndDetail(list),
|
||||||
@ -664,6 +770,7 @@ const supplier = async() =>{
|
|||||||
}
|
}
|
||||||
/** 初始化 **/
|
/** 初始化 **/
|
||||||
onMounted(async() => {
|
onMounted(async() => {
|
||||||
|
userInit.value=await UserApi.getDeptName("采购部")
|
||||||
await supplier()
|
await supplier()
|
||||||
await getList()
|
await getList()
|
||||||
})
|
})
|
||||||
|
|||||||
@ -120,7 +120,7 @@ v-model="queryParams.ownerName" placeholder="请输入责任人" clearable @keyu
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="要求到货日期" align="center" prop="requireTime" min-width="150px" :formatter="dateFormatter1"/>
|
<el-table-column label="要求到货日期" align="center" prop="requireTime" min-width="150px" :formatter="dateFormatter1"/>
|
||||||
<el-table-column label="客户简称" align="center" prop="brief" min-width="100px" />
|
<el-table-column label="客户简称" align="center" prop="briefs" min-width="100px" />
|
||||||
<el-table-column label="操作" align="center" fixed="right" min-width="180">
|
<el-table-column label="操作" align="center" fixed="right" min-width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button
|
<el-button
|
||||||
@ -235,7 +235,22 @@ const approves = async () => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
formLoading.value = true;
|
formLoading.value = true;
|
||||||
|
const firstSupplierId = list[0].supplierId;
|
||||||
|
// console.log(firstSupplierId)
|
||||||
|
// list.forEach((item, index) => {
|
||||||
|
// console.log(`第${index}个:`, item.supplierId, '类型:', typeof item.supplierId, '相等:', item.supplierId === firstSupplierId);
|
||||||
|
// });
|
||||||
|
if (list.some(item => item.supplierId !== firstSupplierId)) {
|
||||||
|
message.error("零件采购订单不属于同一个供应商,请确认");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (const item of list) {
|
||||||
|
if (item.orderStatus==2) {
|
||||||
|
message.error(`工序${item.procedureName}中零件 ${item.boomName} 已生成采购订单,请确认`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
// 5. 提交数据(添加超时处理)
|
// 5. 提交数据(添加超时处理)
|
||||||
const res = await Promise.race([
|
const res = await Promise.race([
|
||||||
PartPurchaseOrderApi.approvals(list),
|
PartPurchaseOrderApi.approvals(list),
|
||||||
|
|||||||
@ -227,10 +227,10 @@ const submitForm = async () => {
|
|||||||
|
|
||||||
// 2. 检查供应商一致性
|
// 2. 检查供应商一致性
|
||||||
const firstSupplierId = list[0].supplierId;
|
const firstSupplierId = list[0].supplierId;
|
||||||
console.log(firstSupplierId)
|
// console.log(firstSupplierId)
|
||||||
list.forEach((item, index) => {
|
// list.forEach((item, index) => {
|
||||||
console.log(`第${index}个:`, item.supplierId, '类型:', typeof item.supplierId, '相等:', item.supplierId === firstSupplierId);
|
// console.log(`第${index}个:`, item.supplierId, '类型:', typeof item.supplierId, '相等:', item.supplierId === firstSupplierId);
|
||||||
});
|
// });
|
||||||
if (list.some(item => item.supplierId !== firstSupplierId)) {
|
if (list.some(item => item.supplierId !== firstSupplierId)) {
|
||||||
message.error("零件采购订单不属于同一个供应商,请确认");
|
message.error("零件采购订单不属于同一个供应商,请确认");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -171,8 +171,8 @@ ref="multipleTableRef"
|
|||||||
<el-dropdown-item v-if="scope.row.orderStatus == 32 && scope.row.deliveryStatus != 3" command="alter">订单变更</el-dropdown-item>
|
<el-dropdown-item v-if="scope.row.orderStatus == 32 && scope.row.deliveryStatus != 3" command="alter">订单变更</el-dropdown-item>
|
||||||
<el-dropdown-item command="viewArchive">查看归档日志</el-dropdown-item>
|
<el-dropdown-item command="viewArchive">查看归档日志</el-dropdown-item>
|
||||||
<el-dropdown-item v-if="scope.row.orderStatus == 32 && scope.row.deliveryStatus != 3" command="delivery">去发货</el-dropdown-item>
|
<el-dropdown-item v-if="scope.row.orderStatus == 32 && scope.row.deliveryStatus != 3" command="delivery">去发货</el-dropdown-item>
|
||||||
<el-dropdown-item v-if="scope.row.deliveryStatus == 3" command="trialReport">试模报告</el-dropdown-item>
|
<!-- <el-dropdown-item v-if="scope.row.deliveryStatus == 3" command="trialReport">试模报告</el-dropdown-item>-->
|
||||||
<el-dropdown-item v-if="scope.row.deliveryStatus == 3" command="confirmReport">认可报告</el-dropdown-item>
|
<!-- <el-dropdown-item v-if="scope.row.deliveryStatus == 3" command="confirmReport">认可报告</el-dropdown-item>-->
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</template>
|
</template>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
|
|||||||
@ -92,19 +92,21 @@ v-model="queryParams.supplierName" placeholder="供应商" clearable @keyup.ente
|
|||||||
v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" class="hl-table"
|
v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" class="hl-table"
|
||||||
@selection-change="handleSelectionChange" @row-click="clickRow" selection>
|
@selection-change="handleSelectionChange" @row-click="clickRow" selection>
|
||||||
<el-table-column fixed label="序号" type="index" align="center" width="60" />
|
<el-table-column fixed label="序号" type="index" align="center" width="60" />
|
||||||
<el-table-column label="采购单号" align="center" prop="purchaseNo" fixed min-width="190">
|
<el-table-column prop="createTime" min-width="150" label="订单生成日期" align="center" :formatter="dateFormatter1"/>
|
||||||
<template #default="scope">
|
<el-table-column label="采购单号" align="center" prop="purchaseNo" fixed min-width="190"/>
|
||||||
<el-button link type="primary" @click="openForm('detail', scope.row.id)">
|
<!-- <template #default="scope">-->
|
||||||
{{ scope.row.purchaseNo }}
|
<!-- <el-button link type="primary" @click="openForm('detail', scope.row.id)">-->
|
||||||
</el-button>
|
<!-- {{ scope.row.purchaseNo }}-->
|
||||||
</template>
|
<!-- </el-button>-->
|
||||||
</el-table-column>
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
<el-table-column label="采购订单类型" align="center" prop="goodsType" min-width="180">
|
<el-table-column label="采购订单类型" align="center" prop="goodsType" min-width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :type="DICT_TYPE.HELI_PROJECT_PURCHASE_GOODS_TYPE" :value="scope.row.goodsType" />
|
<dict-tag :type="DICT_TYPE.HELI_PROJECT_PURCHASE_GOODS_TYPE" :value="scope.row.goodsType" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="供应商" align="center" min-width="180" prop="supplierName" />
|
<el-table-column label="供应商" align="center" min-width="180" prop="supplierName" />
|
||||||
|
<el-table-column label="工序" align="center" min-width="180" prop="procedureName" />
|
||||||
<el-table-column label="是否打印" align="center" min-width="180" prop="isPrint" >
|
<el-table-column label="是否打印" align="center" min-width="180" prop="isPrint" >
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :type="DICT_TYPE.HELI_IS_PRINT" :value="scope.row.isPrint" />
|
<dict-tag :type="DICT_TYPE.HELI_IS_PRINT" :value="scope.row.isPrint" />
|
||||||
@ -143,6 +145,7 @@ import * as PurchaseOrderNoApi from '@/api/heli/purchaseorderno'
|
|||||||
import { ElTable } from 'element-plus'
|
import { ElTable } from 'element-plus'
|
||||||
import {useUserStore} from "@/store/modules/user";
|
import {useUserStore} from "@/store/modules/user";
|
||||||
import routeParamsCache from '@/utils/routeParamsCache'
|
import routeParamsCache from '@/utils/routeParamsCache'
|
||||||
|
import {dateFormatter1} from "@/utils/formatTime";
|
||||||
defineOptions({ name: 'PurchaseOrder' })
|
defineOptions({ name: 'PurchaseOrder' })
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
const username = userStore.getUser.nickname
|
const username = userStore.getUser.nickname
|
||||||
|
|||||||
@ -6,11 +6,11 @@
|
|||||||
<ContentWrap class="borderxx">
|
<ContentWrap class="borderxx">
|
||||||
<!-- 搜索工作栏 -->
|
<!-- 搜索工作栏 -->
|
||||||
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="120px">
|
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="120px">
|
||||||
<!-- <el-form-item label="采购单号" prop="purchaseNo">-->
|
<el-form-item label="采购订单号" prop="purchaseNo">
|
||||||
<!-- <el-input-->
|
<el-input
|
||||||
<!--v-model="queryParams.purchaseNo" placeholder="采购单号" clearable @keyup.enter="handleQuery"-->
|
v-model="queryParams.purchaseNo" placeholder="采购订单号" clearable @keyup.enter="handleQuery"
|
||||||
<!-- class="!w-240px" />-->
|
class="!w-240px" />
|
||||||
<!-- </el-form-item>-->
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="项目编码" prop="projectCode">
|
<el-form-item label="项目编码" prop="projectCode">
|
||||||
<el-input
|
<el-input
|
||||||
@ -123,8 +123,9 @@ v-model="queryParams.supplierName" placeholder="供应商" clearable @keyup.ente
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column prop="createTime" min-width="150" label="订单生成日期" align="center" :formatter="dateFormatter1"/>
|
||||||
<el-table-column prop="requireTime" min-width="150" label="需要完成日期" align="center" :formatter="dateFormatter1"/>
|
<el-table-column prop="requireTime" min-width="150" label="需要完成日期" align="center" :formatter="dateFormatter1"/>
|
||||||
<el-table-column prop="arriveTime" min-width="150" label="收货日期" align="center" :formatter="dateFormatter1" />
|
<!-- <el-table-column prop="arriveTime" min-width="150" label="收货日期" align="center" :formatter="dateFormatter1" />-->
|
||||||
<el-table-column prop="description" min-width="150" label="技术要求" align="center"/>
|
<el-table-column prop="description" min-width="150" label="技术要求" align="center"/>
|
||||||
<el-table-column prop="theWeight" min-width="100" label="理论重量" align="center"/>
|
<el-table-column prop="theWeight" min-width="100" label="理论重量" align="center"/>
|
||||||
<el-table-column label="操作" align="center" fixed="right" min-width="200">
|
<el-table-column label="操作" align="center" fixed="right" min-width="200">
|
||||||
|
|||||||
@ -139,11 +139,20 @@
|
|||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="下料" min-width="100" align="center">
|
<el-table-column label="下料1" 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['下料1']">
|
||||||
<span >
|
<span >
|
||||||
<span >{{ row.map['下料'] }}</span>
|
<span >{{ row.map['下料1'] }}</span>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="下料2" min-width="100" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<template v-if="row.map && row.map['下料2']">
|
||||||
|
<span >
|
||||||
|
<span >{{ row.map['下料2'] }}</span>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
@ -166,45 +175,101 @@
|
|||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="开粗" min-width="100" align="center">
|
<el-table-column label="开粗1" 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['开粗1']">
|
||||||
<span >
|
<span >
|
||||||
<span >{{ row.map['开粗'] }}</span>
|
<span >{{ row.map['开粗1'] }}</span>
|
||||||
</span>
|
|
||||||
</template>
|
|
||||||
</template>
|
|
||||||
</el-table-column> <el-table-column label="铣床" min-width="100" align="center">
|
|
||||||
<template #default="{ row }">
|
|
||||||
<template v-if="row.map && row.map['铣床']">
|
|
||||||
<span >
|
|
||||||
<span >{{ row.map['铣床'] }}</span>
|
|
||||||
</span>
|
|
||||||
</template>
|
|
||||||
</template>
|
|
||||||
</el-table-column> <el-table-column label="车床" min-width="100" align="center">
|
|
||||||
<template #default="{ row }">
|
|
||||||
<template v-if="row.map && row.map['车床']">
|
|
||||||
<span >
|
|
||||||
<span >{{ row.map['车床'] }}</span>
|
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="热处理" min-width="100" align="center">
|
<el-table-column label="开粗2" 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['开粗2']">
|
||||||
<span >
|
<span >
|
||||||
<span >{{ row.map['热处理'] }}</span>
|
<span >{{ row.map['开粗2'] }}</span>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="磨床" min-width="100" align="center">
|
<el-table-column label="铣床1" 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['铣床1']">
|
||||||
<span >
|
<span >
|
||||||
<span >{{ row.map['磨床'] }}</span>
|
<span >{{ row.map['铣床1'] }}</span>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="铣床2" min-width="100" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<template v-if="row.map && row.map['铣床2']">
|
||||||
|
<span >
|
||||||
|
<span >{{ row.map['铣床2'] }}</span>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="车床1" min-width="100" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<template v-if="row.map && row.map['车床1']">
|
||||||
|
<span >
|
||||||
|
<span >{{ row.map['车床1'] }}</span>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="车床2" min-width="100" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<template v-if="row.map && row.map['车床2']">
|
||||||
|
<span >
|
||||||
|
<span >{{ row.map['车床2'] }}</span>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="热处理1" min-width="100" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<template v-if="row.map && row.map['热处理1']">
|
||||||
|
<span >
|
||||||
|
<span >{{ row.map['热处理1'] }}</span>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="热处理2" min-width="100" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<template v-if="row.map && row.map['热处理2']">
|
||||||
|
<span >
|
||||||
|
<span >{{ row.map['热处理2'] }}</span>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="热处理3" min-width="100" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<template v-if="row.map && row.map['热处理3']">
|
||||||
|
<span >
|
||||||
|
<span >{{ row.map['热处理3'] }}</span>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="磨床1" min-width="100" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<template v-if="row.map && row.map['磨床1']">
|
||||||
|
<span >
|
||||||
|
<span >{{ row.map['磨床1'] }}</span>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="磨床2" min-width="100" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<template v-if="row.map && row.map['磨床2']">
|
||||||
|
<span >
|
||||||
|
<span >{{ row.map['磨床2'] }}</span>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
@ -227,11 +292,29 @@
|
|||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="线切割" min-width="100" align="center">
|
<el-table-column label="数控3" 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['数控3']">
|
||||||
<span >
|
<span >
|
||||||
<span >{{ row.map['线切割'] }}</span>
|
<span >{{ row.map['数控3']}}</span>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="线切割1" min-width="100" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<template v-if="row.map && row.map['线切割1']">
|
||||||
|
<span >
|
||||||
|
<span >{{ row.map['线切割1'] }}</span>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="线切割2" min-width="100" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<template v-if="row.map && row.map['线切割2']">
|
||||||
|
<span >
|
||||||
|
<span >{{ row.map['线切割2'] }}</span>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
@ -245,11 +328,20 @@
|
|||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="火花" min-width="100" align="center">
|
<el-table-column label="火花1" 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['火花1']">
|
||||||
<span >
|
<span >
|
||||||
<span >{{ row.map['火花'] }}</span>
|
<span >{{ row.map['火花1'] }}</span>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="火花2" min-width="100" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<template v-if="row.map && row.map['火花2']">
|
||||||
|
<span >
|
||||||
|
<span >{{ row.map['火花2'] }}</span>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
@ -263,29 +355,56 @@
|
|||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="网格" min-width="100" align="center">
|
<el-table-column label="网格1" 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['网格1']">
|
||||||
<span >
|
<span >
|
||||||
<span >{{ row.map['网格'] }}</span>
|
<span >{{ row.map['网格1'] }}</span>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="深孔钻" min-width="100" align="center">
|
<el-table-column label="网格2" 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['网格2']">
|
||||||
<span >
|
<span >
|
||||||
<span >{{ row.map['深孔钻'] }}</span>
|
<span >{{ row.map['网格2'] }}</span>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="钻孔" min-width="100" align="center">
|
<el-table-column label="深孔钻1" 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['深孔钻1']">
|
||||||
<span >
|
<span >
|
||||||
<span >{{ row.map['钻孔'] }}</span>
|
<span >{{ row.map['深孔钻1'] }}</span>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="深孔钻2" min-width="100" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<template v-if="row.map && row.map['深孔钻2']">
|
||||||
|
<span >
|
||||||
|
<span >{{ row.map['深孔钻2'] }}</span>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="钻孔1" min-width="100" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<template v-if="row.map && row.map['钻孔1']">
|
||||||
|
<span >
|
||||||
|
<span >{{ row.map['钻孔1'] }}</span>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="钻孔2" min-width="100" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<template v-if="row.map && row.map['钻孔2']">
|
||||||
|
<span >
|
||||||
|
<span >{{ row.map['钻孔2'] }}</span>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
@ -418,6 +537,7 @@
|
|||||||
const handleClick = async(tab: TabsPaneContext, event: Event) => {
|
const handleClick = async(tab: TabsPaneContext, event: Event) => {
|
||||||
var tabIndex = tab.props.name;
|
var tabIndex = tab.props.name;
|
||||||
activeIndex.value = tabIndex;
|
activeIndex.value = tabIndex;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//初始化方法
|
//初始化方法
|
||||||
|
|||||||
@ -1048,7 +1048,7 @@ const open = async (id?: number) => {
|
|||||||
// 处理数据
|
// 处理数据
|
||||||
console.log(taskitem.procedureId)
|
console.log(taskitem.procedureId)
|
||||||
console.log(Procedure.name)
|
console.log(Procedure.name)
|
||||||
if (Procedure.name == '下料') {
|
if (Procedure.name == '下料1') {
|
||||||
summarylist.value[0].name = Procedure.name
|
summarylist.value[0].name = Procedure.name
|
||||||
console.log(';s')
|
console.log(';s')
|
||||||
if (!summarylist.value[0].data) {
|
if (!summarylist.value[0].data) {
|
||||||
@ -1164,7 +1164,7 @@ const open = async (id?: number) => {
|
|||||||
if (taskitem.workingHours){
|
if (taskitem.workingHours){
|
||||||
formDataprocess.value.tablename[5].roughmill = taskitem.workingHours
|
formDataprocess.value.tablename[5].roughmill = taskitem.workingHours
|
||||||
}
|
}
|
||||||
} else if (Procedure.name == '铣床') {
|
} else if (Procedure.name == '铣床1') {
|
||||||
summarylist.value[3].name = Procedure.name
|
summarylist.value[3].name = Procedure.name
|
||||||
if (!summarylist.value[3].data) {
|
if (!summarylist.value[3].data) {
|
||||||
summarylist.value[3].data = taskitem.summary
|
summarylist.value[3].data = taskitem.summary
|
||||||
@ -1201,7 +1201,7 @@ const open = async (id?: number) => {
|
|||||||
if (taskitem.workingHours){
|
if (taskitem.workingHours){
|
||||||
formDataprocess.value.tablename[5].finishmill = taskitem.workingHours
|
formDataprocess.value.tablename[5].finishmill = taskitem.workingHours
|
||||||
}
|
}
|
||||||
} else if (Procedure.name == '车床') {
|
} else if (Procedure.name == '车床1') {
|
||||||
summarylist.value[4].name = Procedure.name
|
summarylist.value[4].name = Procedure.name
|
||||||
if (!summarylist.value[4].data) {
|
if (!summarylist.value[4].data) {
|
||||||
summarylist.value[4].data = taskitem.summary
|
summarylist.value[4].data = taskitem.summary
|
||||||
@ -1238,7 +1238,7 @@ const open = async (id?: number) => {
|
|||||||
if (taskitem.workingHours){
|
if (taskitem.workingHours){
|
||||||
formDataprocess.value.tablename[5].lathe = taskitem.workingHours
|
formDataprocess.value.tablename[5].lathe = taskitem.workingHours
|
||||||
}
|
}
|
||||||
} else if (Procedure.name == '开粗') {
|
} else if (Procedure.name == '开粗1') {
|
||||||
summarylist.value[5].name = Procedure.name
|
summarylist.value[5].name = Procedure.name
|
||||||
if (!summarylist.value[5].data) {
|
if (!summarylist.value[5].data) {
|
||||||
summarylist.value[5].data = taskitem.summary
|
summarylist.value[5].data = taskitem.summary
|
||||||
@ -1275,7 +1275,7 @@ const open = async (id?: number) => {
|
|||||||
if (taskitem.workingHours){
|
if (taskitem.workingHours){
|
||||||
formDataprocess.value.tablename[5].treatment = taskitem.workingHours
|
formDataprocess.value.tablename[5].treatment = taskitem.workingHours
|
||||||
}
|
}
|
||||||
} else if (Procedure.name == '热处理') {
|
} else if (Procedure.name == '热处理1') {
|
||||||
summarylist.value[5].name = Procedure.name
|
summarylist.value[5].name = Procedure.name
|
||||||
if (!summarylist.value[5].data) {
|
if (!summarylist.value[5].data) {
|
||||||
summarylist.value[5].data = taskitem.summary
|
summarylist.value[5].data = taskitem.summary
|
||||||
@ -1387,7 +1387,7 @@ const open = async (id?: number) => {
|
|||||||
if (taskitem.workingHours){
|
if (taskitem.workingHours){
|
||||||
formDataprocess.value.tablename[5].rough = taskitem.workingHours
|
formDataprocess.value.tablename[5].rough = taskitem.workingHours
|
||||||
}
|
}
|
||||||
} else if (Procedure.name == '火花') {
|
} else if (Procedure.name == '火花1') {
|
||||||
summarylist.value[8].name = Procedure.name
|
summarylist.value[8].name = Procedure.name
|
||||||
if (!summarylist.value[8].data) {
|
if (!summarylist.value[8].data) {
|
||||||
summarylist.value[8].data = taskitem.summary
|
summarylist.value[8].data = taskitem.summary
|
||||||
@ -1461,7 +1461,7 @@ const open = async (id?: number) => {
|
|||||||
if (taskitem.workingHours){
|
if (taskitem.workingHours){
|
||||||
formDataprocess.value.tablename[5].spark = taskitem.workingHours
|
formDataprocess.value.tablename[5].spark = taskitem.workingHours
|
||||||
}
|
}
|
||||||
} else if (Procedure.name == '网格') {
|
} else if (Procedure.name == '网格1') {
|
||||||
summarylist.value[9].name = Procedure.name
|
summarylist.value[9].name = Procedure.name
|
||||||
if (!summarylist.value[9].data) {
|
if (!summarylist.value[9].data) {
|
||||||
summarylist.value[9].data = taskitem.summary
|
summarylist.value[9].data = taskitem.summary
|
||||||
@ -1498,7 +1498,7 @@ const open = async (id?: number) => {
|
|||||||
if (taskitem.workingHours){
|
if (taskitem.workingHours){
|
||||||
formDataprocess.value.tablename[5].lettering = taskitem.workingHours
|
formDataprocess.value.tablename[5].lettering = taskitem.workingHours
|
||||||
}
|
}
|
||||||
} else if (Procedure.name == '深孔钻') {
|
} else if (Procedure.name == '深孔钻1') {
|
||||||
summarylist.value[10].name = Procedure.name
|
summarylist.value[10].name = Procedure.name
|
||||||
if (!summarylist.value[10].data) {
|
if (!summarylist.value[10].data) {
|
||||||
summarylist.value[10].data = taskitem.summary
|
summarylist.value[10].data = taskitem.summary
|
||||||
@ -1535,7 +1535,7 @@ const open = async (id?: number) => {
|
|||||||
if (taskitem.workingHours){
|
if (taskitem.workingHours){
|
||||||
formDataprocess.value.tablename[5].electrowelding = taskitem.workingHours
|
formDataprocess.value.tablename[5].electrowelding = taskitem.workingHours
|
||||||
}
|
}
|
||||||
} else if (Procedure.name == '钻孔') {
|
} else if (Procedure.name == '钻孔1') {
|
||||||
summarylist.value[11].name = Procedure.name
|
summarylist.value[11].name = Procedure.name
|
||||||
if (!summarylist.value[11].data) {
|
if (!summarylist.value[11].data) {
|
||||||
summarylist.value[11].data = taskitem.summary
|
summarylist.value[11].data = taskitem.summary
|
||||||
@ -1572,7 +1572,7 @@ const open = async (id?: number) => {
|
|||||||
if (taskitem.workingHours){
|
if (taskitem.workingHours){
|
||||||
formDataprocess.value.tablename[5].drill = taskitem.workingHours
|
formDataprocess.value.tablename[5].drill = taskitem.workingHours
|
||||||
}
|
}
|
||||||
} else if (Procedure.name == '磨床') {
|
} else if (Procedure.name == '磨床1') {
|
||||||
summarylist.value[12].name = Procedure.name
|
summarylist.value[12].name = Procedure.name
|
||||||
if (!summarylist.value[12].data) {
|
if (!summarylist.value[12].data) {
|
||||||
summarylist.value[12].data = taskitem.summary
|
summarylist.value[12].data = taskitem.summary
|
||||||
@ -1610,7 +1610,7 @@ const open = async (id?: number) => {
|
|||||||
if (taskitem.workingHours){
|
if (taskitem.workingHours){
|
||||||
formDataprocess.value.tablename[5].polishing = taskitem.workingHours
|
formDataprocess.value.tablename[5].polishing = taskitem.workingHours
|
||||||
}
|
}
|
||||||
}else if (Procedure.name == '线切割') {
|
}else if (Procedure.name == '线切割1') {
|
||||||
summarylist.value[13].name = Procedure.name
|
summarylist.value[13].name = Procedure.name
|
||||||
if (!summarylist.value[13].data) {
|
if (!summarylist.value[13].data) {
|
||||||
summarylist.value[13].data = taskitem.summary
|
summarylist.value[13].data = taskitem.summary
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<Dialog v-model="dialogVisible" :before-close="handleClose" :title="totalTital" style="width: 70%">
|
<Dialog v-model="dialogVisible" :before-close="handleClose" :title="totalTital" style="width: 70%" :isFullscreens="parentFullscreen"
|
||||||
|
>
|
||||||
<el-card class="hl-card">
|
<el-card class="hl-card">
|
||||||
<el-form ref="formRef" label-width="140px" :rules="formRules" :model="formData" v-loading="formLoading">
|
<el-form ref="formRef" label-width="140px" :rules="formRules" :model="formData" v-loading="formLoading">
|
||||||
<!-- 基础信息 横向布局 -->
|
<!-- 基础信息 横向布局 -->
|
||||||
@ -195,23 +196,36 @@ class="!w-260px" v-model="formData.requiredCompletedDate" type="date" value-form
|
|||||||
<el-col>
|
<el-col>
|
||||||
<el-checkbox-group v-if="active != 'detail' && (formData.dispatchStatus == 1||formData.dispatchStatus == 0) " v-model="checkList" @change="onAddItem()">
|
<el-checkbox-group v-if="active != 'detail' && (formData.dispatchStatus == 1||formData.dispatchStatus == 0) " v-model="checkList" @change="onAddItem()">
|
||||||
<el-checkbox label="泡沫" size="large" border :disabled="disabledLabels.includes('泡沫')"/>
|
<el-checkbox label="泡沫" size="large" border :disabled="disabledLabels.includes('泡沫')"/>
|
||||||
<el-checkbox label="下料" size="large" border :disabled="disabledLabels.includes('下料')"/>
|
<el-checkbox label="下料1" size="large" border :disabled="disabledLabels.includes('下料1')"/>
|
||||||
|
<el-checkbox label="下料2" size="large" border :disabled="disabledLabels.includes('下料2')"/>
|
||||||
<el-checkbox label="电焊" size="large" border :disabled="disabledLabels.includes('电焊')"/>
|
<el-checkbox label="电焊" size="large" border :disabled="disabledLabels.includes('电焊')"/>
|
||||||
<el-checkbox label="编程" size="large" border :disabled="disabledLabels.includes('编程')"/>
|
<el-checkbox label="编程" size="large" border :disabled="disabledLabels.includes('编程')"/>
|
||||||
<el-checkbox label="开粗" size="large" border :disabled="disabledLabels.includes('开粗')"/>
|
<el-checkbox label="开粗1" size="large" border :disabled="disabledLabels.includes('开粗1')"/>
|
||||||
<el-checkbox label="铣床" size="large" border :disabled="disabledLabels.includes('铣床')"/>
|
<el-checkbox label="开粗2" size="large" border :disabled="disabledLabels.includes('开粗2')"/>
|
||||||
<el-checkbox label="车床" size="large" border :disabled="disabledLabels.includes('车床')"/>
|
<el-checkbox label="铣床1" size="large" border :disabled="disabledLabels.includes('铣床1')"/>
|
||||||
<el-checkbox label="热处理" size="large" border :disabled="disabledLabels.includes('热处理')" />
|
<el-checkbox label="铣床2" size="large" border :disabled="disabledLabels.includes('铣床2')"/>
|
||||||
<el-checkbox label="磨床" size="large" border :disabled="disabledLabels.includes('磨床')" />
|
<el-checkbox label="车床1" size="large" border :disabled="disabledLabels.includes('车床1')"/>
|
||||||
|
<el-checkbox label="车床2" size="large" border :disabled="disabledLabels.includes('车床2')"/>
|
||||||
|
<el-checkbox label="热处理1" size="large" border :disabled="disabledLabels.includes('热处理1')" />
|
||||||
|
<el-checkbox label="热处理2" size="large" border :disabled="disabledLabels.includes('热处理2')" />
|
||||||
|
<el-checkbox label="热处理3" size="large" border :disabled="disabledLabels.includes('热处理3')" />
|
||||||
|
<el-checkbox label="磨床1" size="large" border :disabled="disabledLabels.includes('磨床1')" />
|
||||||
|
<el-checkbox label="磨床2" size="large" border :disabled="disabledLabels.includes('磨床2')" />
|
||||||
<el-checkbox label="数控1" size="large" border :disabled="disabledLabels.includes('数控1')"/>
|
<el-checkbox label="数控1" size="large" border :disabled="disabledLabels.includes('数控1')"/>
|
||||||
<el-checkbox label="数控2" size="large" border :disabled="disabledLabels.includes('数控2')"/>
|
<el-checkbox label="数控2" size="large" border :disabled="disabledLabels.includes('数控2')"/>
|
||||||
<el-checkbox label="线切割" size="large" border :disabled="disabledLabels.includes('线切割')"/>
|
<el-checkbox label="数控3" size="large" border :disabled="disabledLabels.includes('数控3')"/>
|
||||||
|
<el-checkbox label="线切割1" size="large" border :disabled="disabledLabels.includes('线切割1')"/>
|
||||||
|
<el-checkbox label="线切割2" size="large" border :disabled="disabledLabels.includes('线切割2')"/>
|
||||||
<el-checkbox label="电极" size="large" border :disabled="disabledLabels.includes('电极')"/>
|
<el-checkbox label="电极" size="large" border :disabled="disabledLabels.includes('电极')"/>
|
||||||
<el-checkbox label="火花" size="large" border :disabled="disabledLabels.includes('火花')"/>
|
<el-checkbox label="火花1" size="large" border :disabled="disabledLabels.includes('火花1')"/>
|
||||||
|
<el-checkbox label="火花2" size="large" border :disabled="disabledLabels.includes('火花2')"/>
|
||||||
<el-checkbox label="刻字" size="large" border :disabled="disabledLabels.includes('刻字')"/>
|
<el-checkbox label="刻字" size="large" border :disabled="disabledLabels.includes('刻字')"/>
|
||||||
<el-checkbox label="网格" size="large" border :disabled="disabledLabels.includes('网格')"/>
|
<el-checkbox label="网格1" size="large" border :disabled="disabledLabels.includes('网格1')"/>
|
||||||
<el-checkbox label="深孔钻" size="large" border :disabled="disabledLabels.includes('深孔钻')" />
|
<el-checkbox label="网格2" size="large" border :disabled="disabledLabels.includes('网格2')"/>
|
||||||
<el-checkbox label="钻孔" size="large" border :disabled="disabledLabels.includes('钻孔')"/>
|
<el-checkbox label="深孔钻1" size="large" border :disabled="disabledLabels.includes('深孔钻1')" />
|
||||||
|
<el-checkbox label="深孔钻2" size="large" border :disabled="disabledLabels.includes('深孔钻2')" />
|
||||||
|
<el-checkbox label="钻孔1" size="large" border :disabled="disabledLabels.includes('钻孔1')"/>
|
||||||
|
<el-checkbox label="钻孔2" size="large" border :disabled="disabledLabels.includes('钻孔2')"/>
|
||||||
<el-checkbox label="定制" size="large" border :disabled="disabledLabels.includes('定制')"/>
|
<el-checkbox label="定制" size="large" border :disabled="disabledLabels.includes('定制')"/>
|
||||||
|
|
||||||
<!-- 2025 06 01 以下工序关闭 更新为上面的-->
|
<!-- 2025 06 01 以下工序关闭 更新为上面的-->
|
||||||
@ -303,7 +317,7 @@ style=" display: flex;
|
|||||||
<el-table-column fixed label="派工类型" align="center" prop="dispatchType" width="145px">
|
<el-table-column fixed label="派工类型" align="center" prop="dispatchType" width="145px">
|
||||||
<template #header>派工类型</template>
|
<template #header>派工类型</template>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-radio-group size="small" :disabled="getDisabledState(row)" v-model="row.dispatchType" @change="()=>dispatchTypeHasChange(row)">
|
<el-radio-group size="small" :disabled="getDisabledState(row) || row.isOutsourcing" v-model="row.dispatchType" @change="()=>dispatchTypeHasChange(row)">
|
||||||
<el-radio-button :label="1">人员</el-radio-button>
|
<el-radio-button :label="1">人员</el-radio-button>
|
||||||
<el-radio-button :label="2">岗位</el-radio-button>
|
<el-radio-button :label="2">岗位</el-radio-button>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
@ -451,7 +465,7 @@ v-model="row.deviceModel"
|
|||||||
<el-table-column fixed="right" label="操作" align="center" min-width="90">
|
<el-table-column fixed="right" label="操作" align="center" min-width="90">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button
|
<el-button
|
||||||
v-if="'detail' != active && (scope.row.matPlanProcess == 'N' && scope.row.reportProcess == 0&&formData.dispatchStatus != 2)" link type="danger"
|
v-if="'detail' != active && ((scope.row.purchaseNo ==null || scope.row.purchaseNo=='') && scope.row.reportProcess == 0&&formData.dispatchStatus != 2)" link type="danger"
|
||||||
size="small" @click.prevent="onDeleteItem(scope.row,scope.$index)">
|
size="small" @click.prevent="onDeleteItem(scope.row,scope.$index)">
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
@ -637,7 +651,7 @@ const queryParams = {
|
|||||||
defineOptions({
|
defineOptions({
|
||||||
name: 'TaskDispatchDetail'
|
name: 'TaskDispatchDetail'
|
||||||
})
|
})
|
||||||
|
const parentFullscreen = ref(true)
|
||||||
// const reload = inject('reload')
|
// const reload = inject('reload')
|
||||||
const {
|
const {
|
||||||
t
|
t
|
||||||
@ -675,7 +689,7 @@ const changeChange = ( row) =>{
|
|||||||
|
|
||||||
}
|
}
|
||||||
const getDisabledState2 = (row) => {
|
const getDisabledState2 = (row) => {
|
||||||
const isDisabled = detailDisabled.value || row.reportProcess == 2||row.matPlanProcess=='Y'
|
const isDisabled = detailDisabled.value || row.reportProcess == 2||row.purchaseNo!=null
|
||||||
|
|
||||||
return isDisabled
|
return isDisabled
|
||||||
}
|
}
|
||||||
@ -1019,8 +1033,6 @@ const open = async (id ,actives,dispatchParamss,ownerId,taskCode) => {
|
|||||||
const showNext = ref(0)
|
const showNext = ref(0)
|
||||||
const showBefore = ref(0)
|
const showBefore = ref(0)
|
||||||
const judge =(item1,item2)=>{
|
const judge =(item1,item2)=>{
|
||||||
console.log(item1)
|
|
||||||
console.log(item2)
|
|
||||||
if(item1 == null && item2 == null){
|
if(item1 == null && item2 == null){
|
||||||
return false
|
return false
|
||||||
}else if(item1 == null && item2 == ''){
|
}else if(item1 == null && item2 == ''){
|
||||||
@ -1555,9 +1567,8 @@ const checkList = ref([])
|
|||||||
const disabledLabels = ref([])
|
const disabledLabels = ref([])
|
||||||
const checkListTemp = ref([])
|
const checkListTemp = ref([])
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
const procedureArrary = ['下料','电焊','编程','开粗','铣床','车床','磨床','数控1','数控2','刻字','网格','深钻孔','钻孔','热处理','火花','线切割','泡沫','电极','定制']
|
const procedureArrary = ['下料1','下料2','电焊','编程','开粗1','开粗2','铣床1','铣床2','车床1','车床2','磨床1','磨床2','数控1','数控2','数控3','刻字','网格1','网格2','深钻孔1','深钻孔2','钻孔1','钻孔2','热处理1','热处理2','热处理3','火花1','火花2','线切割1','线切割2','泡沫','电极','定制']
|
||||||
const onAddItem = () => {
|
const onAddItem = () => {
|
||||||
console.log(formData.value.taskDispatchDetails)
|
|
||||||
//取消勾选删除逻辑
|
//取消勾选删除逻辑
|
||||||
//添加时,保留现有的
|
//添加时,保留现有的
|
||||||
if(checkList.value!=null&&checkList.value.length>0){
|
if(checkList.value!=null&&checkList.value.length>0){
|
||||||
@ -1625,7 +1636,8 @@ const onAddItem = () => {
|
|||||||
}
|
}
|
||||||
if (items.name=='定制'){
|
if (items.name=='定制'){
|
||||||
row.isOutsourcing=true
|
row.isOutsourcing=true
|
||||||
row.postId=1
|
row.dispatchType=1
|
||||||
|
row.postId=''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1721,15 +1733,15 @@ const getStartTime = ( element : string) =>{
|
|||||||
return ''; // 如果为空,直接返回空字符串
|
return ''; // 如果为空,直接返回空字符串
|
||||||
}
|
}
|
||||||
|
|
||||||
if(element == '下料' || element == '电焊'|| element =='泡沫'){
|
if(element == '下料1' ||element == '下料2' || element == '电焊'|| element =='泡沫'){
|
||||||
return craftInfos.value[0]?.startDate || '';
|
return craftInfos.value[0]?.startDate || '';
|
||||||
}else if(element == '编程' || element == '开粗' || element == '铣床' || element == '车床' || element == '磨床' || element == '数控1' || element == '数控2' ||element == '刻字' ||
|
}else if(element == '编程' || element == '开粗1' ||element == '开粗2' || element == '铣床1' || element == '铣床2'|| element == '车床1'|| element == '车床2' || element == '磨床1' || element == '磨床2'|| element == '数控1' || element == '数控2' || element == '数控3' ||element == '刻字' ||
|
||||||
element == '网格' || element == '深钻孔' || element == '钻孔'
|
element == '网格1' ||element == '网格2' || element == '深钻孔1' || element == '深钻孔2' || element == '钻孔1'|| element == '钻孔2'
|
||||||
){
|
){
|
||||||
return craftInfos.value[1]?.startDate || '';
|
return craftInfos.value[1]?.startDate || '';
|
||||||
}else if(element == '热处理'){
|
}else if(element == '热处理1' || element == '热处理2'|| element == '热处理3'){
|
||||||
return craftInfos.value[2]?.startDate|| '';
|
return craftInfos.value[2]?.startDate|| '';
|
||||||
}else if(element == '火花'|| element =='电极'){
|
}else if(element == '火花1'|| element == '火花2'|| element =='电极'){
|
||||||
return craftInfos.value[3]?.startDate|| '';
|
return craftInfos.value[3]?.startDate|| '';
|
||||||
}else{
|
}else{
|
||||||
return ''
|
return ''
|
||||||
@ -1753,15 +1765,15 @@ if (craftInfos.value==null ) {
|
|||||||
return ''; // 如果为空,直接返回空字符串
|
return ''; // 如果为空,直接返回空字符串
|
||||||
}
|
}
|
||||||
|
|
||||||
if(element == '下料' || element == '电焊'|| element =='泡沫'){
|
if(element == '下料1' ||element == '下料2' || element == '电焊'|| element =='泡沫'){
|
||||||
return craftInfos.value[0]?.endDate || '';
|
return craftInfos.value[0]?.endDate || '';
|
||||||
}else if(element == '编程' || element == '开粗' || element == '铣床' || element == '车床' || element == '磨床' || element == '数控1' || element == '数控2' ||element == '刻字' ||
|
}else if(element == '编程' || element == '开粗1' ||element == '开粗2' || element == '铣床1' || element == '铣床2'|| element == '车床1'|| element == '车床2' || element == '磨床1' || element == '磨床2'|| element == '数控1' || element == '数控2' || element == '数控3' ||element == '刻字' ||
|
||||||
element == '网格' || element == '深钻孔' || element == '钻孔'
|
element == '网格1' ||element == '网格2' || element == '深钻孔1' || element == '深钻孔2' || element == '钻孔1'|| element == '钻孔2'
|
||||||
){
|
){
|
||||||
return craftInfos.value[0]?.endDate || '';
|
return craftInfos.value[0]?.endDate || '';
|
||||||
}else if(element == '热处理'){
|
}else if(element == '热处理1' || element == '热处理2'|| element == '热处理3'){
|
||||||
return craftInfos.value[0]?.endDate || '';
|
return craftInfos.value[0]?.endDate || '';
|
||||||
}else if(element == '火花'|| element =='电极'){
|
}else if(element == '火花1'|| element == '火花2'|| element =='电极'){
|
||||||
return craftInfos.value[0]?.endDate || '';
|
return craftInfos.value[0]?.endDate || '';
|
||||||
}else{
|
}else{
|
||||||
return ''
|
return ''
|
||||||
@ -1847,12 +1859,12 @@ const handleOutsourcingChange= async (row: any) => {
|
|||||||
if(row.isOutsourcing == false){
|
if(row.isOutsourcing == false){
|
||||||
row.dispatchType = 2
|
row.dispatchType = 2
|
||||||
row.owner = ''
|
row.owner = ''
|
||||||
|
|
||||||
row.postId = '2'
|
row.postId = '2'
|
||||||
}else{
|
}else{
|
||||||
row.dispatchType = 2
|
console.log(222)
|
||||||
|
row.dispatchType = 1
|
||||||
row.owner = ''
|
row.owner = ''
|
||||||
row.postId = '1'
|
// row.postId = '1'
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -49,6 +49,12 @@
|
|||||||
<Icon icon="ep:refresh" class="mr-5px" /> 重置
|
<Icon icon="ep:refresh" class="mr-5px" /> 重置
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<label style="display: inline-flex; align-items: center; margin-left: 20px;">
|
||||||
|
<el-checkbox class="large-checkbox" v-model="queryParams.flag" style="order: 2; margin-left: 10px;"/>
|
||||||
|
<span style="order: 1;">已发货零件显示</span>
|
||||||
|
</label>
|
||||||
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
|
|
||||||
@ -116,6 +122,7 @@ import * as TaskDispatchApi from '@/api/heli/taskdispatch'
|
|||||||
import { useCommonStore } from '@/store/modules/common'
|
import { useCommonStore } from '@/store/modules/common'
|
||||||
import { useUserStore } from '@/store/modules/user'
|
import { useUserStore } from '@/store/modules/user'
|
||||||
import Dispatchdialog from './detailDialog.vue'
|
import Dispatchdialog from './detailDialog.vue'
|
||||||
|
import {ref} from "vue";
|
||||||
defineOptions({ name: 'TaskDispatch' })
|
defineOptions({ name: 'TaskDispatch' })
|
||||||
|
|
||||||
const message = useMessage() // 消息弹窗
|
const message = useMessage() // 消息弹窗
|
||||||
@ -146,6 +153,7 @@ const queryParams = reactive({
|
|||||||
ownerName: username,
|
ownerName: username,
|
||||||
blueprintNo:undefined,
|
blueprintNo:undefined,
|
||||||
boomName:undefined,
|
boomName:undefined,
|
||||||
|
flag:false
|
||||||
})
|
})
|
||||||
const queryFormRef = ref() // 搜索的表单
|
const queryFormRef = ref() // 搜索的表单
|
||||||
const exportLoading = ref(false) // 导出的加载中
|
const exportLoading = ref(false) // 导出的加载中
|
||||||
@ -160,6 +168,8 @@ const getList = async () => {
|
|||||||
if(route){
|
if(route){
|
||||||
const idid = route.query.idid;
|
const idid = route.query.idid;
|
||||||
queryParams.taskCode=idid
|
queryParams.taskCode=idid
|
||||||
|
queryParams.blueprintNo=route.query.blueprintNo
|
||||||
|
queryParams.boomName=route.query.matName
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -239,3 +249,12 @@ onMounted(() => {
|
|||||||
getList()
|
getList()
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
<style>
|
||||||
|
.large-checkbox {
|
||||||
|
transform: scale(1.5); /* 方法1:使用scale放大 */
|
||||||
|
/* 或者 */
|
||||||
|
/* 方法2:通过调整字体大小 */
|
||||||
|
/* font-size: 18px; */
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user