近期修改
This commit is contained in:
parent
a38727d8f0
commit
5107396ebd
@ -83,4 +83,10 @@ public class MaterialPlanPageReqVO extends PageParam {
|
||||
private String supplierName;
|
||||
@Schema(description = "客户简称")
|
||||
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) {
|
||||
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")
|
||||
@Operation(summary = "小程序采购单审核分页")
|
||||
@PreAuthorize("@ss.hasPermission('heli:purchase-order-make:query')")
|
||||
|
||||
@ -18,7 +18,6 @@ public class PurchaseOrderMakeDetailSaveReqVO {
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "采购单id", requiredMode = Schema.RequiredMode.REQUIRED, example = "13340")
|
||||
@NotNull(message = "采购单id不能为空")
|
||||
private Long purchaseOrderId;
|
||||
|
||||
private Integer buyType;
|
||||
|
||||
@ -112,4 +112,6 @@ public class PurchaseOrderNoRespVO {
|
||||
private Integer receivingStatus1;
|
||||
@Schema(description = "创建人")
|
||||
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;
|
||||
@Schema(description = "零件名称")
|
||||
private String boomName;
|
||||
@Schema(description = "已发货零件显示")
|
||||
private String flag;
|
||||
}
|
||||
|
||||
@ -182,12 +182,35 @@ public class PurchaseOrderMakeDetailDO extends BaseDO {
|
||||
* 泡沫
|
||||
*/
|
||||
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 projectNameSim;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String matName;
|
||||
@TableField(exist = false)
|
||||
private String brief;
|
||||
private String briefs;
|
||||
@TableField(exist = false)
|
||||
private String blueprintNo;
|
||||
@TableField(exist = false)
|
||||
|
||||
@ -140,6 +140,8 @@ public class PurchaseOrderNoDO extends BaseDO {
|
||||
@TableField(exist = false)
|
||||
private String userMobile;
|
||||
@TableField(exist = false)
|
||||
private String procedureName;
|
||||
@TableField(exist = false)
|
||||
private String contactName;
|
||||
@TableField(exist = false)
|
||||
private String contactMobile;
|
||||
|
||||
@ -96,6 +96,8 @@ public class TaskDispatchDetailDO extends BaseDO {
|
||||
private LocalDateTime endTime;
|
||||
private Long dispatchType;
|
||||
private String postId;
|
||||
private String purchaseNo;
|
||||
private String projectPurchaseOrderMakeDetailId;
|
||||
private String isOutsourcing;
|
||||
private String projectMaterialPlanNo;
|
||||
private Long projectMaterialPlanDetailId;
|
||||
|
||||
@ -3,6 +3,7 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom;
|
||||
import java.util.*;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
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.projectorder.ProjectOrderDO;
|
||||
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.rg.RgDO;
|
||||
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.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import com.google.common.collect.Lists;
|
||||
import org.apache.ibatis.annotations.Delete;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.materialplanboom.vo.*;
|
||||
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.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.du_emp_id, t.du_emp_id) as duEmpId")
|
||||
.select("m.is_foam as isFoams","m.foam_price as foamPrice")
|
||||
.select("CASE \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(ProjectOrderSubDO.class,"sub",ProjectOrderSubDO::getId,MaterialPlanBoomDO::getProjectPlanSubId)
|
||||
.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(CompositionDO.class, "e", CompositionDO::getId, ProcessBomDetailDO::getCompositionId)
|
||||
.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.getMatName()), MaterialPlanBoomDO::getMatName, pageReqVO.getMatName())
|
||||
.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())
|
||||
.eq(!StringUtils.isEmpty(pageReqVO.getMatType()), MaterialPlanDO::getMatType, pageReqVO.getMatType())
|
||||
.eq(!StringUtils.isEmpty(pageReqVO.getStatus()), MaterialPlanBoomDO::getIsPurYard, pageReqVO.getStatus())
|
||||
.like(ObjectUtil.isNotEmpty(pageReqVO.getSupplierName()), SupplierDO::getBrief, pageReqVO.getSupplierName())
|
||||
.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))
|
||||
.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())) {
|
||||
// 根据 mplanStatus 的值动态设置排序字段
|
||||
if (pageReqVO.getMplanStatus() == 0){
|
||||
query.orderByAsc(MaterialPlanDO::getProjectName);
|
||||
query.orderByAsc(ProcessBomDetailDO::getBlueprintNo);
|
||||
|
||||
}else if (pageReqVO.getMplanStatus() == 1 || pageReqVO.getMplanStatus() == 2) {
|
||||
query.orderByDesc(MaterialPlanBoomDO::getPurchaseNo);
|
||||
query.orderByAsc(ProcessBomDetailDO::getBlueprintNo);
|
||||
@ -292,6 +309,8 @@ public interface MaterialPlanBoomMapper extends BaseMapperX<MaterialPlanBoomDO>
|
||||
PageResult<MaterialPlanBoomDO> pageResult = selectPage(pageReqVO, query);
|
||||
return pageResult;
|
||||
}
|
||||
@Delete("DELETE FROM project_material_plan_boom WHERE id= #{id}")
|
||||
void deletePlanBoom(@Param("id") Long id);
|
||||
|
||||
|
||||
// default PageResult<MaterialPlanBoomDO> selectPage(MaterialPlanBoomPageReqVO reqVO) {
|
||||
|
||||
@ -189,7 +189,10 @@ public interface PurchaseOrderMakeDetailMapper extends BaseMapperX<PurchaseOrder
|
||||
MPJLambdaWrapper<PurchaseOrderMakeDetailDO> query = new MPJLambdaWrapper<>();
|
||||
query.selectAll(PurchaseOrderMakeDetailDO.class)
|
||||
.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("bom.blueprint_no as blueprintNo")
|
||||
.select("CASE \n" +
|
||||
@ -202,6 +205,7 @@ public interface PurchaseOrderMakeDetailMapper extends BaseMapperX<PurchaseOrder
|
||||
.select("DATE_FORMAT(t.require_time, '%Y-%m-%d') AS requir")
|
||||
.leftJoin(PurchaseOrderMakeDO.class,"a",PurchaseOrderMakeDO::getId,PurchaseOrderMakeDetailDO::getPurchaseOrderId)
|
||||
.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(SupplierDO.class, "d", SupplierDO::getId,PurchaseOrderMakeDetailDO::getSupplierId)
|
||||
.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())
|
||||
// .like(ObjectUtil.isNotEmpty(pageReqVO.getProjectName()), PurchaseOrderMakeDO::getProjectName, pageReqVO.getProjectName())
|
||||
// .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.getMaterialName()), PurchaseOrderMakeDetailDO::getBoomName, pageReqVO.getMaterialName())
|
||||
.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.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.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());
|
||||
@ -231,6 +235,33 @@ public interface PurchaseOrderMakeDetailMapper extends BaseMapperX<PurchaseOrder
|
||||
.withSecond(59);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
" ELSE 2 " + // 其他情况
|
||||
"END AS receivingStatus1")
|
||||
.select("pro.name as procedureName")
|
||||
.leftJoin(SupplierDO.class, "s", SupplierDO::getId, PurchaseOrderNoDO::getSupplierId)
|
||||
.leftJoin(PurchaseOrderNoDetailDO.class,"d", PurchaseOrderNoDetailDO::getPurchaseOrderId, PurchaseOrderNoDO::getId)
|
||||
// .leftJoin(ProcedureDO.class,"pro", ProcedureDO::getId, PurchaseOrderNoDetailDO::getProcedureId)
|
||||
|
||||
@ -198,7 +198,6 @@ public interface PurchaseOrderNoDetailMapper extends BaseMapperX<PurchaseOrderNo
|
||||
|
||||
return selectPage(pageReqVO, query);
|
||||
}
|
||||
|
||||
default PageResult<PurchaseOrderNoDetailDO> getReceivingGoods(PurchaseOrderNoDetailPageReqVO pageReqVO){
|
||||
MPJLambdaWrapper<PurchaseOrderNoDetailDO> query = new MPJLambdaWrapper<>();
|
||||
|
||||
@ -276,7 +275,7 @@ public interface PurchaseOrderNoDetailMapper extends BaseMapperX<PurchaseOrderNo
|
||||
.leftJoin(CustomerDO.class,"c", CustomerDO::getId, ProjectOrderDO::getCustomerId)
|
||||
.disableSubLogicDel()
|
||||
.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.getMaterialPlanNo()), "m.project_material_plan_no", pageReqVO.getMaterialPlanNo())
|
||||
.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.query.LambdaQueryWrapperX;
|
||||
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.TaskDispatchDetailTotalVO;
|
||||
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" +
|
||||
" 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")
|
||||
.select("bom.id as bomDetailId")
|
||||
.leftJoin(ProcedureDO.class,"a",ProcedureDO::getId,TaskDispatchDetailDO::getProcedureId)
|
||||
.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("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")
|
||||
@ -881,4 +885,13 @@ public interface TaskDispatchDetailMapper extends BaseMapperX<TaskDispatchDetail
|
||||
"</foreach>" +
|
||||
"</script>")
|
||||
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.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
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.TaskPlanJDBaoBiaoPageReqVO;
|
||||
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.deliverorder.DeliverOrderDO;
|
||||
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.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.projectorder.ProjectOrderDO;
|
||||
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.TaskDispatchDetailDO;
|
||||
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.service.taskdispatch.TaskDispatchServiceImpl;
|
||||
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.user.AdminUserDO;
|
||||
@ -30,6 +34,7 @@ import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 派工单 Mapper
|
||||
@ -57,6 +62,7 @@ public interface TaskDispatchMapper extends BaseMapperX<TaskDispatchDO> {
|
||||
.select("h.task_no as taskCode")
|
||||
.select("i.require_end_date as requiredCompletedDate")
|
||||
.select("u1.nickname as ownerName,u1.id as ownerId")
|
||||
|
||||
.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(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)
|
||||
.orderByDesc(TaskDispatchDO::getId)
|
||||
.eq(ProjectOrderSubDO::getDeleted,0)
|
||||
.groupBy(TaskDispatchDO::getId)
|
||||
.disableSubLogicDel();
|
||||
|
||||
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(ObjectUtil.isNotEmpty(reqVO.getBlueprintNo()),ProcessBomDetailDO::getBlueprintNo, reqVO.getBlueprintNo())
|
||||
.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);
|
||||
}
|
||||
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(CustomerDO.class, "e", CustomerDO::getId, ProjectOrderDO::getCustomerId)
|
||||
.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(PlanTaskDO.class, "h", PlanTaskDO::getId, TaskDispatchDO::getTaskId)
|
||||
.leftJoin(PlanTaskBomDO.class, "i", wrapper -> wrapper.eq(PlanTaskBomDO::getTaskId, PlanTaskDO::getId).eq(PlanTaskBomDO::getBomDetailId, TaskDispatchDO::getBomDetailId))
|
||||
.leftJoin(AdminUserDO.class, "u1", AdminUserDO::getId, PlanTaskBomDO::getOwner)
|
||||
.groupBy(TaskDispatchDetailDO::getId)
|
||||
.disableSubLogicDel();
|
||||
|
||||
if(reqVO.getPageType() == 2){
|
||||
//下一条
|
||||
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(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);
|
||||
}
|
||||
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}")
|
||||
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.processbom.ProcessBomDO;
|
||||
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.purchaseordernodetail.PurchaseOrderNoDetailDO;
|
||||
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.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.processbom.ProcessBomDetailMapper;
|
||||
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.purchaseordernodetail.PurchaseOrderNoDetailMapper;
|
||||
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.taskdispatchdetaillog.TaskDispatchDetailLogMapper;
|
||||
@ -92,6 +98,8 @@ public class MaterialPlanServiceImpl implements MaterialPlanService {
|
||||
@Resource
|
||||
private PurchaseOrderNoMapper purchaseOrderNoMapper;
|
||||
@Resource
|
||||
private PurchaseOrderNoDetailMapper purchaseOrderNoDetailMapper;
|
||||
@Resource
|
||||
private TaskDispatchDetailMapper taskDispatchDetailMapper;
|
||||
@Resource
|
||||
private TaskDispatchMapper taskDispatchMapper;
|
||||
@ -101,6 +109,10 @@ public class MaterialPlanServiceImpl implements MaterialPlanService {
|
||||
private ProcessBomMapper processBomMapper;
|
||||
@Resource
|
||||
private TaskDispatchDetailLogMapper taskDispatchDetailLogMapper;
|
||||
@Resource
|
||||
private PurchaseOrderMakeMapper purchaseOrderMakeMapper;
|
||||
@Resource
|
||||
private PurchaseOrderMakeDetailMapper purchaseOrderMakeDetailMapper;
|
||||
@Override
|
||||
public Long createMaterialPlan(MaterialPlanSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
@ -544,6 +556,27 @@ public class MaterialPlanServiceImpl implements MaterialPlanService {
|
||||
|
||||
@Override
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@ -205,6 +205,7 @@ public class MaterialPlanBoomServiceImpl implements MaterialPlanBoomService {
|
||||
|
||||
for (PurchaseOrderMakeDetailDO purchaseOrderMakeDetailDO : makeDetailDOList) {
|
||||
purchaseOrderMakeDetailDO.setPurchaseOrderId(purchaseOrderMakeDO.getId());
|
||||
|
||||
}
|
||||
purchaseOrderMakeDetailMapper.insertBatch(makeDetailDOList);
|
||||
for (MaterialPlanBoomDO dp : materialPlanBoomDOList) {
|
||||
|
||||
@ -72,4 +72,6 @@ public interface PartPurchaseOrderService {
|
||||
Boolean approvals(List<PurchaseOrderMakeDetailDO> list);
|
||||
|
||||
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.PurchaseOrderMakeSaveReqVO;
|
||||
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.plan.PlanDO;
|
||||
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.serialnumber.SerialNumberDO;
|
||||
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.plan.PlanMapper;
|
||||
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.purchaseordernodetail.PurchaseOrderNoDetailMapper;
|
||||
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.purchaseordermakedetail.PurchaseOrderMakeDetailService;
|
||||
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.system.dal.dataobject.user.AdminUserDO;
|
||||
@ -86,7 +90,8 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
||||
private SupplierMapper supplierMapper;
|
||||
@Autowired
|
||||
private ProcessBomDetailMapper processBomDetailMapper;
|
||||
|
||||
@Autowired
|
||||
private TaskDispatchDetailMapper taskDispatchDetailMapper;
|
||||
@Override
|
||||
public PageResult<PartPurchaseOrderPageRespVO> getPartPurchaseOrderPage(PartPurchaseOrderPageReqVO pageReqVO) {
|
||||
|
||||
@ -163,7 +168,75 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
||||
|
||||
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
|
||||
public PageResult<PartPurchaseOrderPageRespVO> getPartPurchaseOrderCheckPage(PartPurchaseOrderPageReqVO pageReqVO) {
|
||||
return null;
|
||||
@ -187,6 +260,14 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@ -240,6 +321,15 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
||||
.set("mat_rest",null);
|
||||
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;
|
||||
|
||||
}
|
||||
@ -272,13 +362,21 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
||||
.set("mat_rest",null);
|
||||
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;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean approval(Long id) {
|
||||
PurchaseOrderMakeDO orderMakeDO = purchaseOrderMakeMapper.selectById(id);
|
||||
if (orderMakeDO.getStatus() != 1) throw exception(new ErrorCode(400,"该单据状态非待审核,请刷新界面!"));
|
||||
if (orderMakeDO.getStatus() != 1) throw exception(new ErrorCode(400, "该单据状态非待审核,请刷新界面!"));
|
||||
PurchaseOrderMakeDO purchaseOrderMakeDO = new PurchaseOrderMakeDO();
|
||||
purchaseOrderMakeDO.setId(id);
|
||||
purchaseOrderMakeDO.setStatus(2);
|
||||
@ -286,20 +384,33 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
||||
purchaseOrderMakeDO.setAuditor(getLoginUser().getId());
|
||||
purchaseOrderMakeMapper.updateById(purchaseOrderMakeDO);
|
||||
|
||||
List<MaterialPlanBoomDO> materialPlanBoomDOs= materialPlanBoomMapper.selectList("project_purchase_order_make_id", id);
|
||||
List<MaterialPlanBoomDO> materialPlanBoomDOs = materialPlanBoomMapper.selectList("project_purchase_order_make_id", id);
|
||||
materialPlanBoomDOs.forEach(materialPlanBoomDO -> {
|
||||
MaterialPlanBoomDO materialPlanBoom = new MaterialPlanBoomDO();
|
||||
materialPlanBoom.setId(materialPlanBoomDO.getId());
|
||||
materialPlanBoom.setMplanStatus(2);
|
||||
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;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<PartPurchaseOrderPageRespVO> getDetail(PartPurchaseOrderPageReqVO partPurchaseOrderPageReqVO) {
|
||||
return purchaseOrderMakeDetailMapper.getDetail(partPurchaseOrderPageReqVO);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -352,7 +463,7 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
||||
processBomDetailMapper.update(lambdaUpdateWrapper);
|
||||
});
|
||||
updateReqVOs.forEach(updateReq -> {
|
||||
createPurchaseOrderMakeAndDetail(updateReq,purchaseOrderMakeId, purchaseOrderMakeDOPurchaseNo,planDO.getId());
|
||||
createPurchaseOrderMakeAndDetail(updateReq,purchaseOrderMakeId, purchaseOrderMakeDOPurchaseNo);
|
||||
});
|
||||
|
||||
return true;
|
||||
@ -424,6 +535,15 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
||||
// materialPlanBoom.setMplanStatus(2);
|
||||
// materialPlanBoomMapper.updateById(materialPlanBoom);
|
||||
// });
|
||||
PurchaseOrderMakeDO purchaseOrderMakeDO = purchaseOrderMakeMapper.selectById(list.get(0).getPurchaseOrderId());
|
||||
if (ObjectUtil.isNotEmpty(purchaseOrderMakeDO)){
|
||||
if (purchaseOrderMakeDO.getGoodsType() == 2){
|
||||
submitNo(list);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -457,10 +577,32 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
||||
.set("mat_rest",null);
|
||||
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;
|
||||
}
|
||||
|
||||
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.setPurchaseOrderId(purchaseOrderMakeId);
|
||||
purchaseOrderMakeDetailDO.setBoomDetailId(updateReqVO.getBoomDetailId());
|
||||
@ -489,6 +631,16 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
||||
purchaseOrderMakeDetailDO.setTheWeight(updateReqVO.getTheWeight());
|
||||
purchaseOrderMakeDetailDO.setDuEmpId(updateReqVO.getDuEmpId());
|
||||
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);
|
||||
long purchaseOrderMakeDetailId = purchaseOrderMakeDetailDO.getId();
|
||||
|
||||
@ -500,6 +652,11 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
||||
materialPlanBoomDO.setPurchaseNo(purchaseOrderMakeDOPurchaseNo);
|
||||
materialPlanBoomDO.setProjectPurchaseOrderMakeDetailId(purchaseOrderMakeDetailId);
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
@ -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.processbom.ProcessBomDO;
|
||||
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.serialnumber.SerialNumberDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.shenhe.ShenheDO;
|
||||
@ -558,9 +559,9 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
||||
for (ProcessBomDetailDO po : processBomDetailDOS) {
|
||||
if (vo.getId().equals(po.getId())) {
|
||||
if (!vo.getMaterialName().equals(po.getMaterialName())) {
|
||||
LambdaQueryWrapper<MaterialPlanBoomDO> queryWrapper1 = new LambdaQueryWrapper<>();
|
||||
queryWrapper1.in(MaterialPlanBoomDO::getBoomDetailId,vo.getId());
|
||||
if (materialPlanBoomMapper.selectCount(queryWrapper1)>0) throw exception(new ErrorCode(1_007_9888,"物料"+po.getMaterialName()+"已做需求计划,不允许修改零件名称"));
|
||||
LambdaQueryWrapper<PurchaseOrderMakeDetailDO> queryWrapper1 = new LambdaQueryWrapper<>();
|
||||
queryWrapper1.in(PurchaseOrderMakeDetailDO::getBoomDetailId,vo.getId());
|
||||
if (purchaseOrderMakeDetailMapper.selectCount(queryWrapper1)>0) throw exception(new ErrorCode(1_007_9888,"物料"+po.getMaterialName()+"已做采购,不允许修改零件名称"));
|
||||
LambdaQueryWrapper<TaskDispatchDO> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(TaskDispatchDO::getBomDetailId, vo.getId());
|
||||
queryWrapper.eq(TaskDispatchDO::getDispatchType,"PRODUCTION" );
|
||||
@ -585,9 +586,9 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
||||
}
|
||||
}
|
||||
if (!vo.getBlueprintNo().equals(po.getBlueprintNo())) {
|
||||
LambdaQueryWrapper<MaterialPlanBoomDO> queryWrapper1 = new LambdaQueryWrapper<>();
|
||||
queryWrapper1.in(MaterialPlanBoomDO::getBoomDetailId,vo.getId());
|
||||
if (materialPlanBoomMapper.selectCount(queryWrapper1)>0) throw exception(new ErrorCode(1_007_9888,"物料"+po.getMaterialName()+"已做需求计划,不允许修改图号"));
|
||||
LambdaQueryWrapper<PurchaseOrderMakeDetailDO> queryWrapper1 = new LambdaQueryWrapper<>();
|
||||
queryWrapper1.in(PurchaseOrderMakeDetailDO::getBoomDetailId,vo.getId());
|
||||
if (purchaseOrderMakeDetailMapper.selectCount(queryWrapper1)>0) throw exception(new ErrorCode(1_007_9888,"物料"+po.getMaterialName()+"已做采购,不允许修改图号"));
|
||||
LambdaQueryWrapper<TaskDispatchDO> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(TaskDispatchDO::getBomDetailId, vo.getId());
|
||||
queryWrapper.eq(TaskDispatchDO::getDispatchType,"PRODUCTION" );
|
||||
@ -749,7 +750,6 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}else {
|
||||
for (ProcessBomDetailDO processBomDetail : processBomDetails) {
|
||||
@ -782,12 +782,8 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
||||
ShenheDO shenheDO = shenheDOS.get(0);
|
||||
updateObj.setShenheUser(shenheDO.getShenheUser());
|
||||
}else{
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if(operateTypeEnum == OperateTypeEnum.AUDIT){
|
||||
ShenheDO shenheDO = shenheMapper.serchShenHeRusers("2",updateObj.getShenheUser());
|
||||
List<ShenheDO> shenheDOS = new ArrayList<>();
|
||||
@ -815,7 +811,6 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
||||
List<AttentiontodoDO> attentiontodook1 = attentiontodoService.getAttentiontodolistdaiban(13);
|
||||
if (attentiontodook1.size()<1){
|
||||
{
|
||||
|
||||
AttentiontodoDO attentiontodoDO = new AttentiontodoDO();
|
||||
attentiontodoDO.setEvent("BOM变更审核通过后");
|
||||
attentiontodoDO.setAttr5("1");
|
||||
@ -824,7 +819,6 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
||||
attentiontodook.add(attentiontodoDO);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -868,8 +862,6 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
||||
BdgzsomthingDO.setAttr4("0");//是否已处理
|
||||
// BdgzsomthingDO.setShowname(operateReqVO.getCreateTime());//获取数据当前表的创建事件 改
|
||||
bdgzsomthingMapper.insert(BdgzsomthingDO);
|
||||
|
||||
|
||||
// }
|
||||
}
|
||||
}
|
||||
@ -1209,9 +1201,9 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public CommonResult<Boolean> deleteProcessBomDetailNew(Long id){
|
||||
LambdaQueryWrapper<MaterialPlanBoomDO> boomDOLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
boomDOLambdaQueryWrapper.eq(MaterialPlanBoomDO::getBoomDetailId, id);
|
||||
if (materialPlanBoomMapper.selectCount(boomDOLambdaQueryWrapper) > 0) return CommonResult.error(400,"该零件已做物料需求计划,不允许删除");
|
||||
LambdaQueryWrapper<PurchaseOrderMakeDetailDO> boomDOLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
boomDOLambdaQueryWrapper.eq(PurchaseOrderMakeDetailDO::getBoomDetailId, id);
|
||||
if (purchaseOrderMakeDetailMapper.selectCount(boomDOLambdaQueryWrapper) > 0) return CommonResult.error(400,"该零件已做采购,不允许删除");
|
||||
LambdaQueryWrapper<TaskDispatchDO> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(TaskDispatchDO::getBomDetailId, id);
|
||||
List<TaskDispatchDO> list = taskDispatchMapper.selectList(queryWrapper);
|
||||
@ -1551,7 +1543,6 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
||||
processBomDetailMapper.update(lambdaUpdateWrapper);
|
||||
return CommonResult.success( true);
|
||||
}
|
||||
|
||||
return CommonResult.error(400,"boom明细不存在,请刷新页面");
|
||||
}
|
||||
|
||||
|
||||
@ -390,6 +390,7 @@ public class PurchaseOrderNoServiceImpl implements PurchaseOrderNoService {
|
||||
lambdaUpdateWrapper.set(PurchaseOrderMakeDetailDO::getPurchaseOrderNoId, null);
|
||||
lambdaUpdateWrapper.set(PurchaseOrderMakeDetailDO::getPurchaseOrderNoDetailId,null);
|
||||
lambdaUpdateWrapper.set(PurchaseOrderMakeDetailDO::getOrderStatus,1);
|
||||
lambdaUpdateWrapper.set(PurchaseOrderMakeDetailDO::getStatus,1);
|
||||
lambdaUpdateWrapper.set(PurchaseOrderMakeDetailDO::getPurchaseNo,null);
|
||||
purchaseOrderMakeDetailMapper.update(lambdaUpdateWrapper);
|
||||
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.ygjx.vo.YgjxPageReqVO;
|
||||
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.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.plansub.PlanSubDO;
|
||||
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.processbom.ProcessBomDO;
|
||||
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.serialnumber.SerialNumberDO;
|
||||
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.taskreport.TaskReportDO;
|
||||
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.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.plansub.PlanSubMapper;
|
||||
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.processbom.ProcessBomDetailMapper;
|
||||
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.taskdispatch.TaskDispatchDetailMapper;
|
||||
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.mysql.user.AdminUserMapper;
|
||||
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.transaction.annotation.Transactional;
|
||||
import org.springframework.util.StringUtils;
|
||||
@ -70,6 +82,7 @@ import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
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.module.heli.enums.CodeEnum.MATERIAL_PLAN;
|
||||
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
@ -90,6 +103,8 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
||||
@Resource
|
||||
private ProjectOrderSubMapper projectOrderSubMapper;
|
||||
@Resource
|
||||
private ProjectOrderMapper projectOrderMapper;
|
||||
@Resource
|
||||
private CrossOrderManager crossOrderManager;
|
||||
@Resource
|
||||
private SerialNumberService serialNumberService;
|
||||
@ -123,6 +138,12 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
||||
private PlanTaskBomMapper planTaskBomMapper;
|
||||
@Resource
|
||||
private PlanTaskMapper planTaskMapper;
|
||||
@Resource
|
||||
private MaterialPlanBoomMapper materialPlanBoomMapper;
|
||||
@Resource
|
||||
private MaterialPlanMapper materialPlanMapper;
|
||||
@Resource
|
||||
private CustomerMapper customerMapper;
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Long createTaskDispatch(TaskDispatchSaveReqVO createReqVO) {
|
||||
@ -224,10 +245,10 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
||||
TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(dispatchDetailDO.getId());
|
||||
if (ObjectUtil.isNotEmpty(taskDispatchDetailDO)){
|
||||
if ("false".equals(dispatchDetailDO.getIsOutsourcing())){
|
||||
if ("Y".equals(taskDispatchDetailDO.getMatPlanProcess())){
|
||||
if (ObjectUtil.isNotEmpty(taskDispatchDetailDO.getPurchaseNo())){
|
||||
ProcedureDO procedureDO = procedureMapper.selectById(dispatchDetailDO.getProcedureId());
|
||||
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){
|
||||
updateObj.setDispatchStatus(1);
|
||||
@ -557,16 +656,30 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
||||
@Override
|
||||
public void deleteTaskDispatchDetail(Long 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());
|
||||
if (ObjectUtil.isNotEmpty(procedureDO)){
|
||||
if ("Y".equals(taskDispatchDetailDO.getMatPlanProcess())){
|
||||
throw exception(new ErrorCode(400,"该工序"+procedureDO.getName()+"已做需求计划,不允许删除"));
|
||||
if (ObjectUtil.isNotEmpty(taskDispatchDetailDO.getPurchaseNo())){
|
||||
throw exception(new ErrorCode(400,"该工序"+procedureDO.getName()+"已做零件采购,不允许删除"));
|
||||
}else {
|
||||
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);
|
||||
}
|
||||
@Override
|
||||
@ -1159,41 +1272,240 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
||||
|
||||
@Override
|
||||
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);
|
||||
|
||||
if (taskDispatchDOS.isEmpty()) {
|
||||
return taskDispatchDOS;
|
||||
}
|
||||
|
||||
// 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) {
|
||||
LambdaQueryWrapper<TaskDispatchDetailDO> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(TaskDispatchDetailDO::getDispatchId, taskDispatchDO.getId());
|
||||
List<TaskDispatchDetailDO> detailDOS = taskDispatchDetailMapper.selectList(wrapper);
|
||||
Map<String, BigDecimal> map = new HashMap<>();
|
||||
|
||||
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 = 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());
|
||||
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());
|
||||
|
||||
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);
|
||||
costMap.put(procedureDO.getName(), 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;
|
||||
}
|
||||
|
||||
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
|
||||
public List<HashMap<String, String>> getOwners(Long id) {
|
||||
List<FpUserDetailDO> fpUserDetailDOS = fpUserDetailMapper.selectOwnerLists(id);
|
||||
|
||||
@ -179,4 +179,80 @@
|
||||
GROUP BY s.id
|
||||
) AS subquery;
|
||||
</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>
|
||||
|
||||
@ -79,3 +79,6 @@ export const approvals = async (data) => {
|
||||
export const exportOut = async (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),
|
||||
width: propTypes.oneOfType([String, Number]).def('40%'),
|
||||
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(() => {
|
||||
@ -26,8 +27,7 @@ const getBindValue = computed(() => {
|
||||
return obj
|
||||
})
|
||||
|
||||
const isFullscreen = ref(false)
|
||||
|
||||
const isFullscreen = ref(props.isFullscreens)
|
||||
const toggleFull = () => {
|
||||
isFullscreen.value = !unref(isFullscreen)
|
||||
}
|
||||
|
||||
@ -270,7 +270,7 @@
|
||||
border
|
||||
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">
|
||||
<template #header>设计类型</template>
|
||||
@ -465,7 +465,6 @@ const handlerSelect = (selection, row) => {
|
||||
}
|
||||
// 当选择项发生变化时会触发该事件
|
||||
const handleSelectionChange = (val) => {
|
||||
console.log('表格的选中 可以获得当前选中的数据', val)
|
||||
selectedAddRow.value = val
|
||||
}
|
||||
// 新增按钮方法
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<el-card class="hl-card">
|
||||
<template #header>
|
||||
<span>零件需求计划</span>
|
||||
<span></span>
|
||||
</template>
|
||||
<ContentWrap class="borderxx">
|
||||
<!-- 搜索工作栏 -->
|
||||
@ -317,11 +317,9 @@ const singleSubmissions=()=>{
|
||||
}
|
||||
const submitForm = async () => {
|
||||
try {
|
||||
console.log("开始提交"); // 调试点1:确认函数是否触发
|
||||
|
||||
const list = multipleTable.value|| []; // 安全获取数据
|
||||
console.log("明细数据:", list);
|
||||
console.log(list.length)
|
||||
|
||||
// 1. 检查空数据
|
||||
if (!list || list.length==null) {
|
||||
message.error("提交明细不能为空,请确认");
|
||||
|
||||
@ -44,8 +44,8 @@
|
||||
<el-form-item label="责任人" prop="duEmpName">
|
||||
<el-input v-model="queryParams.duEmpName" placeholder="请输入责任人" clearable @keyup.enter="handleQuery" class="!w-240px"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="物料需求单号" prop="projectMaterialPlanNo">
|
||||
<el-input v-model="queryParams.projectMaterialPlanNo" placeholder="请输入物料需求单号" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
||||
<el-form-item label="采购订单号" prop="purchaseNo">
|
||||
<el-input v-model="queryParams.purchaseNo" placeholder="请输入采购订单号" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
||||
</el-form-item>
|
||||
<el-form-item style="margin-left:30px">
|
||||
<el-button @click="handleQuery" type="primary">
|
||||
@ -76,7 +76,8 @@
|
||||
<span style="order: 1;">同时操作</span>
|
||||
<el-checkbox class="large-checkbox" v-model="flag" style="order: 2; margin-left: 10px;"/>
|
||||
</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>
|
||||
<el-row>
|
||||
<el-col>
|
||||
@ -143,7 +144,7 @@
|
||||
clearable
|
||||
filterable
|
||||
@change="change(scope.row)"
|
||||
style="width: 165 px"
|
||||
style="width: 165px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in supplierList"
|
||||
@ -162,8 +163,8 @@
|
||||
v-model="row.unitPrice"
|
||||
type="number"
|
||||
placeholder="两位小数"
|
||||
@change="changeUnitPrice(row)"
|
||||
|
||||
@change="changeUnitPrice(row)"
|
||||
|
||||
/>
|
||||
</el-form-item>
|
||||
</template>
|
||||
@ -174,7 +175,7 @@
|
||||
<el-form-item :prop="`${$index}.estimatedPrices`" class="mb-0px!" >
|
||||
<el-input
|
||||
v-model="row.estimatedPrices"
|
||||
type="number"
|
||||
type="number"
|
||||
@change="changeEstimatedPrices(row)"
|
||||
placeholder="两位小数"
|
||||
/>
|
||||
@ -205,7 +206,20 @@
|
||||
</el-form-item>
|
||||
</template>
|
||||
</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" >
|
||||
<template #default="scope">
|
||||
{{
|
||||
@ -216,7 +230,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<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" >
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
@ -248,6 +262,7 @@ import * as PartPurchaseOrderApi from "@/api/heli/partpurchaseorder";
|
||||
import {ElButton, ElTable, ElTableColumn} from "element-plus";
|
||||
import {useUserStore} from "@/store/modules/user";
|
||||
import * as supplierApi from "@/api/heli/supplier";
|
||||
import * as UserApi from "@/api/system/user";
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||
defineOptions({ name: 'PartPurchase' })
|
||||
|
||||
@ -288,12 +303,15 @@ const queryParams = reactive({
|
||||
blueprintNo:undefined,
|
||||
procedureName:undefined,
|
||||
supplierName:undefined,
|
||||
purchaseNo:undefined
|
||||
})
|
||||
const queryParams1 = reactive({
|
||||
pageNo: 1,
|
||||
pageSize: 999,
|
||||
status:1
|
||||
})
|
||||
const userInit = ref()
|
||||
|
||||
const queryFormRef = ref() // 搜索的表单
|
||||
const exportLoading = ref(false) // 导出的加载中
|
||||
/** 删除按钮操作 */
|
||||
@ -312,6 +330,49 @@ const handleDelete = async (id: number) => {
|
||||
await getList()
|
||||
} 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 () => {
|
||||
loading.value = true
|
||||
@ -326,15 +387,17 @@ const getList = async () => {
|
||||
const data = await MaterialPlanApi.getPartPurchasePages(queryParams)
|
||||
history.state.idid=undefined
|
||||
list.value = data.list
|
||||
list.value.forEach(item=> {
|
||||
// if(item.unitPrice == null || item.unitPrice==''){
|
||||
// item.unitPrice=0
|
||||
// }
|
||||
if(item.estimatedPrices == null || item.estimatedPrices==''){
|
||||
item.estimatedPrices=0
|
||||
}
|
||||
if ( list.value){
|
||||
list.value.forEach(item=> {
|
||||
// if(item.unitPrice == null || item.unitPrice==''){
|
||||
// item.unitPrice=0
|
||||
// }
|
||||
if(item.estimatedPrices == null || item.estimatedPrices==''){
|
||||
item.estimatedPrices=0
|
||||
}
|
||||
|
||||
})
|
||||
})
|
||||
}
|
||||
// list.value.forEach(item=> {
|
||||
// if(item.isFoams == 'Y'){
|
||||
// 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)=>{
|
||||
if (flag.value) {
|
||||
var bomDetails = list.value;
|
||||
if (row.chkboxEnable) {
|
||||
for (let i = 0; i < bomDetails.length; i++) {
|
||||
if (bomDetails[i].chkboxEnable) {
|
||||
|
||||
bomDetails[i].supplierIds = row.supplierIds
|
||||
}
|
||||
}
|
||||
@ -456,11 +534,11 @@ const floatMul = (a, b) => {
|
||||
} catch (f) {}
|
||||
return Number(d.replace(".", "")) * Number(e.replace(".", "")) / Math.pow(10, c);
|
||||
}
|
||||
const changeUnitPrice =(row:any)=>{
|
||||
const changeUnitPrice =(row:any)=>{
|
||||
row.estimatedPrices=parseFloat((row.unitPrice* row.purchaseAmounts).toFixed(1))
|
||||
|
||||
}
|
||||
const changeEstimatedPrices =(row:any)=>{
|
||||
const changeEstimatedPrices =(row:any)=>{
|
||||
row.unitPrice=parseFloat((row.estimatedPrices/row.purchaseAmounts).toFixed(1))
|
||||
}
|
||||
const change1 =(row:any)=>{
|
||||
@ -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();
|
||||
}
|
||||
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 () => {
|
||||
try {
|
||||
console.log("开始提交"); // 调试点1:确认函数是否触发
|
||||
|
||||
const list = multipleTable.value|| []; // 安全获取数据
|
||||
console.log(list);
|
||||
// 1. 检查空数据
|
||||
if (!list || list.length==null) {
|
||||
message.error("提交明细不能为空,请确认");
|
||||
@ -584,18 +688,21 @@ const submitForm = async () => {
|
||||
message.error("预估总价为空");
|
||||
break;
|
||||
}
|
||||
|
||||
if (list[i].duEmpId == null) {
|
||||
message.error("责任人为空");
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (i < list.length){
|
||||
return;
|
||||
}
|
||||
|
||||
// 2. 检查项目一致性
|
||||
const firstProjectName = list[0].projectName;
|
||||
if (list.some(item => item.projectName !== firstProjectName)) {
|
||||
message.error("不同项目不能同时生成采购单");
|
||||
return;
|
||||
}
|
||||
// const firstProjectName = list[0].projectName;
|
||||
// if (list.some(item => item.projectName !== firstProjectName)) {
|
||||
// message.error("不同项目不能同时生成采购单");
|
||||
// return;
|
||||
// }
|
||||
|
||||
//3. 检查生成采购订单状态
|
||||
const checkMaterialPlans = async () => {
|
||||
@ -618,7 +725,6 @@ const submitForm = async () => {
|
||||
|
||||
// 4. 添加加载状态(Element Plus 兼容处理)
|
||||
formLoading.value = true;
|
||||
console.log(list)
|
||||
// 5. 提交数据(添加超时处理)
|
||||
const res = await Promise.race([
|
||||
PartPurchaseOrderApi.createPurchaseOrderMakeAndDetail(list),
|
||||
@ -664,6 +770,7 @@ const supplier = async() =>{
|
||||
}
|
||||
/** 初始化 **/
|
||||
onMounted(async() => {
|
||||
userInit.value=await UserApi.getDeptName("采购部")
|
||||
await supplier()
|
||||
await getList()
|
||||
})
|
||||
|
||||
@ -120,7 +120,7 @@ v-model="queryParams.ownerName" placeholder="请输入责任人" clearable @keyu
|
||||
</template>
|
||||
</el-table-column>
|
||||
<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">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
@ -235,7 +235,22 @@ const approves = async () => {
|
||||
return;
|
||||
}
|
||||
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. 提交数据(添加超时处理)
|
||||
const res = await Promise.race([
|
||||
PartPurchaseOrderApi.approvals(list),
|
||||
|
||||
@ -227,10 +227,10 @@ const submitForm = async () => {
|
||||
|
||||
// 2. 检查供应商一致性
|
||||
const firstSupplierId = list[0].supplierId;
|
||||
console.log(firstSupplierId)
|
||||
list.forEach((item, index) => {
|
||||
console.log(`第${index}个:`, item.supplierId, '类型:', typeof item.supplierId, '相等:', item.supplierId === firstSupplierId);
|
||||
});
|
||||
// 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;
|
||||
|
||||
@ -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 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.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="trialReport">试模报告</el-dropdown-item>-->
|
||||
<!-- <el-dropdown-item v-if="scope.row.deliveryStatus == 3" command="confirmReport">认可报告</el-dropdown-item>-->
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</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"
|
||||
@selection-change="handleSelectionChange" @row-click="clickRow" selection>
|
||||
<el-table-column fixed label="序号" type="index" align="center" width="60" />
|
||||
<el-table-column label="采购单号" align="center" prop="purchaseNo" fixed min-width="190">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="openForm('detail', scope.row.id)">
|
||||
{{ scope.row.purchaseNo }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="createTime" min-width="150" label="订单生成日期" align="center" :formatter="dateFormatter1"/>
|
||||
<el-table-column label="采购单号" align="center" prop="purchaseNo" fixed min-width="190"/>
|
||||
<!-- <template #default="scope">-->
|
||||
<!-- <el-button link type="primary" @click="openForm('detail', scope.row.id)">-->
|
||||
<!-- {{ scope.row.purchaseNo }}-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column label="采购订单类型" align="center" prop="goodsType" min-width="180">
|
||||
<template #default="scope">
|
||||
<dict-tag :type="DICT_TYPE.HELI_PROJECT_PURCHASE_GOODS_TYPE" :value="scope.row.goodsType" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<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" >
|
||||
<template #default="scope">
|
||||
<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 {useUserStore} from "@/store/modules/user";
|
||||
import routeParamsCache from '@/utils/routeParamsCache'
|
||||
import {dateFormatter1} from "@/utils/formatTime";
|
||||
defineOptions({ name: 'PurchaseOrder' })
|
||||
const userStore = useUserStore()
|
||||
const username = userStore.getUser.nickname
|
||||
|
||||
@ -6,11 +6,11 @@
|
||||
<ContentWrap class="borderxx">
|
||||
<!-- 搜索工作栏 -->
|
||||
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="120px">
|
||||
<!-- <el-form-item label="采购单号" prop="purchaseNo">-->
|
||||
<!-- <el-input-->
|
||||
<!--v-model="queryParams.purchaseNo" placeholder="采购单号" clearable @keyup.enter="handleQuery"-->
|
||||
<!-- class="!w-240px" />-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="采购订单号" prop="purchaseNo">
|
||||
<el-input
|
||||
v-model="queryParams.purchaseNo" placeholder="采购订单号" clearable @keyup.enter="handleQuery"
|
||||
class="!w-240px" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="项目编码" prop="projectCode">
|
||||
<el-input
|
||||
@ -123,8 +123,9 @@ v-model="queryParams.supplierName" placeholder="供应商" clearable @keyup.ente
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<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="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="arriveTime" min-width="150" label="收货日期" align="center" :formatter="dateFormatter1" />-->
|
||||
<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 label="操作" align="center" fixed="right" min-width="200">
|
||||
|
||||
@ -139,11 +139,20 @@
|
||||
</template>
|
||||
</template>
|
||||
</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 v-if="row.map && row.map['下料']">
|
||||
<template v-if="row.map && row.map['下料1']">
|
||||
<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>
|
||||
@ -166,45 +175,101 @@
|
||||
</template>
|
||||
</template>
|
||||
</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 v-if="row.map && row.map['开粗']">
|
||||
<template v-if="row.map && row.map['开粗1']">
|
||||
<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>
|
||||
</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 >{{ row.map['开粗1'] }}</span>
|
||||
</span>
|
||||
</template>
|
||||
</template>
|
||||
</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 v-if="row.map && row.map['磨床']">
|
||||
<template v-if="row.map && row.map['开粗2']">
|
||||
<span >
|
||||
<span >{{ row.map['磨床'] }}</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="热处理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>
|
||||
</template>
|
||||
</template>
|
||||
@ -227,11 +292,29 @@
|
||||
</template>
|
||||
</template>
|
||||
</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 v-if="row.map && row.map['线切割']">
|
||||
<template v-if="row.map && row.map['数控3']">
|
||||
<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>
|
||||
</template>
|
||||
</template>
|
||||
@ -245,11 +328,20 @@
|
||||
</template>
|
||||
</template>
|
||||
</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 v-if="row.map && row.map['火花']">
|
||||
<template v-if="row.map && row.map['火花1']">
|
||||
<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>
|
||||
@ -263,29 +355,56 @@
|
||||
</template>
|
||||
</template>
|
||||
</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 v-if="row.map && row.map['网格']">
|
||||
<template v-if="row.map && row.map['网格1']">
|
||||
<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">
|
||||
<el-table-column label="网格2" min-width="100" align="center">
|
||||
<template #default="{ row }">
|
||||
<template v-if="row.map && row.map['深孔钻']">
|
||||
<template v-if="row.map && row.map['网格2']">
|
||||
<span >
|
||||
<span >{{ row.map['深孔钻'] }}</span>
|
||||
<span >{{ row.map['网格2'] }}</span>
|
||||
</span>
|
||||
</template>
|
||||
</template>
|
||||
</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 v-if="row.map && row.map['钻孔']">
|
||||
<template v-if="row.map && row.map['深孔钻1']">
|
||||
<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>
|
||||
@ -418,6 +537,7 @@
|
||||
const handleClick = async(tab: TabsPaneContext, event: Event) => {
|
||||
var tabIndex = tab.props.name;
|
||||
activeIndex.value = tabIndex;
|
||||
|
||||
}
|
||||
|
||||
//初始化方法
|
||||
|
||||
@ -1048,7 +1048,7 @@ const open = async (id?: number) => {
|
||||
// 处理数据
|
||||
console.log(taskitem.procedureId)
|
||||
console.log(Procedure.name)
|
||||
if (Procedure.name == '下料') {
|
||||
if (Procedure.name == '下料1') {
|
||||
summarylist.value[0].name = Procedure.name
|
||||
console.log(';s')
|
||||
if (!summarylist.value[0].data) {
|
||||
@ -1164,7 +1164,7 @@ const open = async (id?: number) => {
|
||||
if (taskitem.workingHours){
|
||||
formDataprocess.value.tablename[5].roughmill = taskitem.workingHours
|
||||
}
|
||||
} else if (Procedure.name == '铣床') {
|
||||
} else if (Procedure.name == '铣床1') {
|
||||
summarylist.value[3].name = Procedure.name
|
||||
if (!summarylist.value[3].data) {
|
||||
summarylist.value[3].data = taskitem.summary
|
||||
@ -1201,7 +1201,7 @@ const open = async (id?: number) => {
|
||||
if (taskitem.workingHours){
|
||||
formDataprocess.value.tablename[5].finishmill = taskitem.workingHours
|
||||
}
|
||||
} else if (Procedure.name == '车床') {
|
||||
} else if (Procedure.name == '车床1') {
|
||||
summarylist.value[4].name = Procedure.name
|
||||
if (!summarylist.value[4].data) {
|
||||
summarylist.value[4].data = taskitem.summary
|
||||
@ -1238,7 +1238,7 @@ const open = async (id?: number) => {
|
||||
if (taskitem.workingHours){
|
||||
formDataprocess.value.tablename[5].lathe = taskitem.workingHours
|
||||
}
|
||||
} else if (Procedure.name == '开粗') {
|
||||
} else if (Procedure.name == '开粗1') {
|
||||
summarylist.value[5].name = Procedure.name
|
||||
if (!summarylist.value[5].data) {
|
||||
summarylist.value[5].data = taskitem.summary
|
||||
@ -1275,7 +1275,7 @@ const open = async (id?: number) => {
|
||||
if (taskitem.workingHours){
|
||||
formDataprocess.value.tablename[5].treatment = taskitem.workingHours
|
||||
}
|
||||
} else if (Procedure.name == '热处理') {
|
||||
} else if (Procedure.name == '热处理1') {
|
||||
summarylist.value[5].name = Procedure.name
|
||||
if (!summarylist.value[5].data) {
|
||||
summarylist.value[5].data = taskitem.summary
|
||||
@ -1387,7 +1387,7 @@ const open = async (id?: number) => {
|
||||
if (taskitem.workingHours){
|
||||
formDataprocess.value.tablename[5].rough = taskitem.workingHours
|
||||
}
|
||||
} else if (Procedure.name == '火花') {
|
||||
} else if (Procedure.name == '火花1') {
|
||||
summarylist.value[8].name = Procedure.name
|
||||
if (!summarylist.value[8].data) {
|
||||
summarylist.value[8].data = taskitem.summary
|
||||
@ -1461,7 +1461,7 @@ const open = async (id?: number) => {
|
||||
if (taskitem.workingHours){
|
||||
formDataprocess.value.tablename[5].spark = taskitem.workingHours
|
||||
}
|
||||
} else if (Procedure.name == '网格') {
|
||||
} else if (Procedure.name == '网格1') {
|
||||
summarylist.value[9].name = Procedure.name
|
||||
if (!summarylist.value[9].data) {
|
||||
summarylist.value[9].data = taskitem.summary
|
||||
@ -1498,7 +1498,7 @@ const open = async (id?: number) => {
|
||||
if (taskitem.workingHours){
|
||||
formDataprocess.value.tablename[5].lettering = taskitem.workingHours
|
||||
}
|
||||
} else if (Procedure.name == '深孔钻') {
|
||||
} else if (Procedure.name == '深孔钻1') {
|
||||
summarylist.value[10].name = Procedure.name
|
||||
if (!summarylist.value[10].data) {
|
||||
summarylist.value[10].data = taskitem.summary
|
||||
@ -1535,7 +1535,7 @@ const open = async (id?: number) => {
|
||||
if (taskitem.workingHours){
|
||||
formDataprocess.value.tablename[5].electrowelding = taskitem.workingHours
|
||||
}
|
||||
} else if (Procedure.name == '钻孔') {
|
||||
} else if (Procedure.name == '钻孔1') {
|
||||
summarylist.value[11].name = Procedure.name
|
||||
if (!summarylist.value[11].data) {
|
||||
summarylist.value[11].data = taskitem.summary
|
||||
@ -1572,7 +1572,7 @@ const open = async (id?: number) => {
|
||||
if (taskitem.workingHours){
|
||||
formDataprocess.value.tablename[5].drill = taskitem.workingHours
|
||||
}
|
||||
} else if (Procedure.name == '磨床') {
|
||||
} else if (Procedure.name == '磨床1') {
|
||||
summarylist.value[12].name = Procedure.name
|
||||
if (!summarylist.value[12].data) {
|
||||
summarylist.value[12].data = taskitem.summary
|
||||
@ -1610,7 +1610,7 @@ const open = async (id?: number) => {
|
||||
if (taskitem.workingHours){
|
||||
formDataprocess.value.tablename[5].polishing = taskitem.workingHours
|
||||
}
|
||||
}else if (Procedure.name == '线切割') {
|
||||
}else if (Procedure.name == '线切割1') {
|
||||
summarylist.value[13].name = Procedure.name
|
||||
if (!summarylist.value[13].data) {
|
||||
summarylist.value[13].data = taskitem.summary
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
<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-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-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="下料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="热处理" 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="铣床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="热处理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="数控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="火花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="网格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="钻孔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('定制')"/>
|
||||
|
||||
<!-- 2025 06 01 以下工序关闭 更新为上面的-->
|
||||
@ -303,7 +317,7 @@ style=" display: flex;
|
||||
<el-table-column fixed label="派工类型" align="center" prop="dispatchType" width="145px">
|
||||
<template #header>派工类型</template>
|
||||
<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="2">岗位</el-radio-button>
|
||||
</el-radio-group>
|
||||
@ -451,7 +465,7 @@ v-model="row.deviceModel"
|
||||
<el-table-column fixed="right" label="操作" align="center" min-width="90">
|
||||
<template #default="scope">
|
||||
<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)">
|
||||
删除
|
||||
</el-button>
|
||||
@ -637,7 +651,7 @@ const queryParams = {
|
||||
defineOptions({
|
||||
name: 'TaskDispatchDetail'
|
||||
})
|
||||
|
||||
const parentFullscreen = ref(true)
|
||||
// const reload = inject('reload')
|
||||
const {
|
||||
t
|
||||
@ -675,7 +689,7 @@ const changeChange = ( 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
|
||||
}
|
||||
@ -1019,8 +1033,6 @@ const open = async (id ,actives,dispatchParamss,ownerId,taskCode) => {
|
||||
const showNext = ref(0)
|
||||
const showBefore = ref(0)
|
||||
const judge =(item1,item2)=>{
|
||||
console.log(item1)
|
||||
console.log(item2)
|
||||
if(item1 == null && item2 == null){
|
||||
return false
|
||||
}else if(item1 == null && item2 == ''){
|
||||
@ -1555,9 +1567,8 @@ const checkList = ref([])
|
||||
const disabledLabels = 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 = () => {
|
||||
console.log(formData.value.taskDispatchDetails)
|
||||
//取消勾选删除逻辑
|
||||
//添加时,保留现有的
|
||||
if(checkList.value!=null&&checkList.value.length>0){
|
||||
@ -1625,7 +1636,8 @@ const onAddItem = () => {
|
||||
}
|
||||
if (items.name=='定制'){
|
||||
row.isOutsourcing=true
|
||||
row.postId=1
|
||||
row.dispatchType=1
|
||||
row.postId=''
|
||||
}
|
||||
}
|
||||
|
||||
@ -1721,15 +1733,15 @@ const getStartTime = ( element : string) =>{
|
||||
return ''; // 如果为空,直接返回空字符串
|
||||
}
|
||||
|
||||
if(element == '下料' || element == '电焊'|| element =='泡沫'){
|
||||
if(element == '下料1' ||element == '下料2' || element == '电焊'|| element =='泡沫'){
|
||||
return craftInfos.value[0]?.startDate || '';
|
||||
}else if(element == '编程' || element == '开粗' || element == '铣床' || element == '车床' || element == '磨床' || element == '数控1' || element == '数控2' ||element == '刻字' ||
|
||||
element == '网格' || element == '深钻孔' || 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 == '网格1' ||element == '网格2' || element == '深钻孔1' || element == '深钻孔2' || element == '钻孔1'|| element == '钻孔2'
|
||||
){
|
||||
return craftInfos.value[1]?.startDate || '';
|
||||
}else if(element == '热处理'){
|
||||
}else if(element == '热处理1' || element == '热处理2'|| element == '热处理3'){
|
||||
return craftInfos.value[2]?.startDate|| '';
|
||||
}else if(element == '火花'|| element =='电极'){
|
||||
}else if(element == '火花1'|| element == '火花2'|| element =='电极'){
|
||||
return craftInfos.value[3]?.startDate|| '';
|
||||
}else{
|
||||
return ''
|
||||
@ -1753,15 +1765,15 @@ if (craftInfos.value==null ) {
|
||||
return ''; // 如果为空,直接返回空字符串
|
||||
}
|
||||
|
||||
if(element == '下料' || element == '电焊'|| element =='泡沫'){
|
||||
if(element == '下料1' ||element == '下料2' || element == '电焊'|| element =='泡沫'){
|
||||
return craftInfos.value[0]?.endDate || '';
|
||||
}else if(element == '编程' || element == '开粗' || element == '铣床' || element == '车床' || element == '磨床' || element == '数控1' || element == '数控2' ||element == '刻字' ||
|
||||
element == '网格' || element == '深钻孔' || 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 == '网格1' ||element == '网格2' || element == '深钻孔1' || element == '深钻孔2' || element == '钻孔1'|| element == '钻孔2'
|
||||
){
|
||||
return craftInfos.value[0]?.endDate || '';
|
||||
}else if(element == '热处理'){
|
||||
}else if(element == '热处理1' || element == '热处理2'|| element == '热处理3'){
|
||||
return craftInfos.value[0]?.endDate || '';
|
||||
}else if(element == '火花'|| element =='电极'){
|
||||
}else if(element == '火花1'|| element == '火花2'|| element =='电极'){
|
||||
return craftInfos.value[0]?.endDate || '';
|
||||
}else{
|
||||
return ''
|
||||
@ -1847,12 +1859,12 @@ const handleOutsourcingChange= async (row: any) => {
|
||||
if(row.isOutsourcing == false){
|
||||
row.dispatchType = 2
|
||||
row.owner = ''
|
||||
|
||||
row.postId = '2'
|
||||
}else{
|
||||
row.dispatchType = 2
|
||||
console.log(222)
|
||||
row.dispatchType = 1
|
||||
row.owner = ''
|
||||
row.postId = '1'
|
||||
// row.postId = '1'
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -49,6 +49,12 @@
|
||||
<Icon icon="ep:refresh" class="mr-5px" /> 重置
|
||||
</el-button>
|
||||
</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>
|
||||
</ContentWrap>
|
||||
|
||||
@ -116,6 +122,7 @@ import * as TaskDispatchApi from '@/api/heli/taskdispatch'
|
||||
import { useCommonStore } from '@/store/modules/common'
|
||||
import { useUserStore } from '@/store/modules/user'
|
||||
import Dispatchdialog from './detailDialog.vue'
|
||||
import {ref} from "vue";
|
||||
defineOptions({ name: 'TaskDispatch' })
|
||||
|
||||
const message = useMessage() // 消息弹窗
|
||||
@ -146,6 +153,7 @@ const queryParams = reactive({
|
||||
ownerName: username,
|
||||
blueprintNo:undefined,
|
||||
boomName:undefined,
|
||||
flag:false
|
||||
})
|
||||
const queryFormRef = ref() // 搜索的表单
|
||||
const exportLoading = ref(false) // 导出的加载中
|
||||
@ -160,6 +168,8 @@ const getList = async () => {
|
||||
if(route){
|
||||
const idid = route.query.idid;
|
||||
queryParams.taskCode=idid
|
||||
queryParams.blueprintNo=route.query.blueprintNo
|
||||
queryParams.boomName=route.query.matName
|
||||
}
|
||||
|
||||
|
||||
@ -239,3 +249,12 @@ onMounted(() => {
|
||||
getList()
|
||||
})
|
||||
</script>
|
||||
<style>
|
||||
.large-checkbox {
|
||||
transform: scale(1.5); /* 方法1:使用scale放大 */
|
||||
/* 或者 */
|
||||
/* 方法2:通过调整字体大小 */
|
||||
/* font-size: 18px; */
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user