From 8e4456bfa6dc84a1c37c13ee515fa9d6347cc480 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 23 四月 2026 16:27:45 +0800
Subject: [PATCH] fix:1.生产计划 2.生产订单
---
src/main/java/com/ruoyi/production/bean/dto/ProductionOrderDto.java | 2
src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java | 7 +
src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java | 94 ++++++++++++-
src/main/java/com/ruoyi/production/pojo/ProductionPlan.java | 10 -
src/main/java/com/ruoyi/production/mapper/ProductionPlanMapper.java | 3
src/main/java/com/ruoyi/production/pojo/ProductionOrder.java | 2
src/main/java/com/ruoyi/production/service/impl/ProductionOrderServiceImpl.java | 52 +------
src/main/resources/mapper/production/ProductionOrderMapper.xml | 113 ++++++++++++++++
src/main/resources/mapper/production/ProductionPlanMapper.xml | 57 ++-----
src/main/java/com/ruoyi/production/bean/vo/ProductionOrderVo.java | 8 +
src/main/java/com/ruoyi/production/bean/vo/ProductionPlanVo.java | 16 ++
11 files changed, 262 insertions(+), 102 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/bean/dto/ProductionOrderDto.java b/src/main/java/com/ruoyi/production/bean/dto/ProductionOrderDto.java
index c171f2e..9921344 100644
--- a/src/main/java/com/ruoyi/production/bean/dto/ProductionOrderDto.java
+++ b/src/main/java/com/ruoyi/production/bean/dto/ProductionOrderDto.java
@@ -1,10 +1,12 @@
package com.ruoyi.production.bean.dto;
import com.ruoyi.production.pojo.ProductionOrder;
+import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
+@Schema(name = "ProductionOrderDto", description = "鐢熶骇璁㈠崟鏌ヨ瀵硅薄")
public class ProductionOrderDto extends ProductionOrder {
}
diff --git a/src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java b/src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java
index b7adae6..3f6ef76 100644
--- a/src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java
+++ b/src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java
@@ -31,6 +31,13 @@
private String productName;
/**
+ * 瀹㈡埛鍚嶇О
+ */
+ @Schema(description = "瀹㈡埛鍚嶇О")
+ @Excel(name = "瀹㈡埛鍚嶇О")
+ private String customerName;
+
+ /**
* 浜у搧瑙勬牸
*/
@Schema(description = "浜у搧瑙勬牸")
diff --git a/src/main/java/com/ruoyi/production/bean/vo/ProductionOrderVo.java b/src/main/java/com/ruoyi/production/bean/vo/ProductionOrderVo.java
index 05ca96d..81e6c3e 100644
--- a/src/main/java/com/ruoyi/production/bean/vo/ProductionOrderVo.java
+++ b/src/main/java/com/ruoyi/production/bean/vo/ProductionOrderVo.java
@@ -2,21 +2,29 @@
import com.ruoyi.basic.dto.StorageBlobVO;
import com.ruoyi.production.pojo.ProductionOrder;
+import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Data
+@Schema(name = "ProductionOrderVo", description = "鐢熶骇璁㈠崟杩斿洖瀵硅薄")
public class ProductionOrderVo extends ProductionOrder {
+ @Schema(description = "閿�鍞悎鍚屽彿")
private String salesContractNo;
+ @Schema(description = "瀹㈡埛鍚嶇О")
private String customerName;
+ @Schema(description = "浜у搧鍚嶇О")
private String productName;
+ @Schema(description = "瑙勬牸鍨嬪彿")
private String model;
+ @Schema(description = "宸ヨ壓璺嚎缂栫爜")
private String processRouteCode;
+ @Schema(description = "浜у搧鍥剧墖")
private List<StorageBlobVO> productImages;
}
diff --git a/src/main/java/com/ruoyi/production/bean/vo/ProductionPlanVo.java b/src/main/java/com/ruoyi/production/bean/vo/ProductionPlanVo.java
index 54326de..4c0dbe3 100644
--- a/src/main/java/com/ruoyi/production/bean/vo/ProductionPlanVo.java
+++ b/src/main/java/com/ruoyi/production/bean/vo/ProductionPlanVo.java
@@ -1,10 +1,26 @@
package com.ruoyi.production.bean.vo;
import com.ruoyi.production.pojo.ProductionPlan;
+import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
+@Schema(name = "ProductionPlanVo", description = "鐢熶骇璁″垝杩斿洖瀵硅薄")
public class ProductionPlanVo extends ProductionPlan {
+ @Schema(description = "鐗╂枡缂栫爜")
+ private String materialCode;
+
+ @Schema(description = "浜у搧鍚嶇О")
+ private String productName;
+
+ @Schema(description = "瑙勬牸鍨嬪彿")
+ private String model;
+
+ @Schema(description = "鍗曚綅")
+ private String unit;
+
+ @Schema(description = "鍏宠仈浜у搧鐗╂枡ID")
+ private Long productMaterialId;
}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionPlanMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionPlanMapper.java
index 892c633..9810b6e 100644
--- a/src/main/java/com/ruoyi/production/mapper/ProductionPlanMapper.java
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionPlanMapper.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.production.bean.dto.ProductionPlanDto;
+import com.ruoyi.production.bean.vo.ProductionPlanVo;
import com.ruoyi.production.pojo.ProductionPlan;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -21,7 +22,7 @@
@Mapper
public interface ProductionPlanMapper extends BaseMapper<ProductionPlan> {
- IPage<ProductionPlanDto> listPage(Page page, @Param("c") ProductionPlanDto productionPlanDto);
+ IPage<ProductionPlanVo> listPage(Page<ProductionPlanDto> page, @Param("c") ProductionPlanDto productionPlanDto);
List<ProductionPlanDto> selectWithMaterialByIds(@Param("ids") List<Long> ids);
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionOrder.java b/src/main/java/com/ruoyi/production/pojo/ProductionOrder.java
index cb801b5..145fad6 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProductionOrder.java
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionOrder.java
@@ -75,7 +75,7 @@
@TableField(fill = FieldFill.INSERT)
private Long deptId;
- @Schema(description = "璁″垝瀹屾垚鏃堕棿銆傞�夊~锛涙寜鐢熶骇璁″垝鐢熸垚璁㈠崟鏃讹紝绯荤粺浼氫紭鍏堣嚜鍔ㄥ甫鍑轰氦鏈熴��")
+ @Schema(description = "璁″垝瀹屾垚鏃堕棿")
@JsonFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate planCompleteTime;
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionPlan.java b/src/main/java/com/ruoyi/production/pojo/ProductionPlan.java
index 868367c..eb0ef6d 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProductionPlan.java
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionPlan.java
@@ -1,13 +1,13 @@
package com.ruoyi.production.pojo;
import com.baomidou.mybatisplus.annotation.*;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.math.BigDecimal;
+import java.time.LocalDate;
import java.time.LocalDateTime;
/**
@@ -34,7 +34,7 @@
private String mpsNo;
@Schema(description = "闇�姹傛棩鏈�")
- private LocalDateTime requiredDate;
+ private LocalDate requiredDate;
@Schema(description = "澶囨敞")
private String remark;
@@ -61,10 +61,6 @@
@Schema(description = "闇�姹傛暟閲�")
private BigDecimal qtyRequired;
- @Schema(description = "鐘舵��")
- @TableLogic
- private String state;
-
@Schema(description = "鏄惁涓嬪彂鍒堕�犺鍗�")
private Boolean issued;
@@ -75,7 +71,7 @@
private String isAudit;
@Schema(description = "鎵胯鏃ユ湡")
- private LocalDateTime promisedDeliveryDate;
+ private LocalDate promisedDeliveryDate;
@Schema(description = "鐢宠鍗曠紪鍙�")
private String applyNo;
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderServiceImpl.java
index e48509e..c6d90cf 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderServiceImpl.java
@@ -15,60 +15,24 @@
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.production.bean.dto.ProductionOrderDto;
import com.ruoyi.production.bean.vo.ProductionOrderVo;
-import com.ruoyi.production.mapper.ProductionBomStructureMapper;
-import com.ruoyi.production.mapper.ProductionOperationTaskMapper;
-import com.ruoyi.production.mapper.ProductionOrderBomMapper;
-import com.ruoyi.production.mapper.ProductionOrderMapper;
-import com.ruoyi.production.mapper.ProductionOrderPickMapper;
-import com.ruoyi.production.mapper.ProductionOrderPickRecordMapper;
-import com.ruoyi.production.mapper.ProductionOrderRoutingMapper;
-import com.ruoyi.production.mapper.ProductionOrderRoutingOperationMapper;
-import com.ruoyi.production.mapper.ProductionOrderRoutingOperationParamMapper;
-import com.ruoyi.production.mapper.ProductionPlanMapper;
-import com.ruoyi.production.mapper.ProductionProductMainMapper;
-import com.ruoyi.production.pojo.ProductionOrderPick;
-import com.ruoyi.production.pojo.ProductionOrderPickRecord;
-import com.ruoyi.production.pojo.ProductionBomStructure;
-import com.ruoyi.production.pojo.ProductionOperationTask;
-import com.ruoyi.production.pojo.ProductionOrder;
-import com.ruoyi.production.pojo.ProductionOrderBom;
-import com.ruoyi.production.pojo.ProductionOrderRouting;
-import com.ruoyi.production.pojo.ProductionOrderRoutingOperation;
-import com.ruoyi.production.pojo.ProductionOrderRoutingOperationParam;
-import com.ruoyi.production.pojo.ProductionPlan;
-import com.ruoyi.production.pojo.ProductionProductMain;
import com.ruoyi.production.enums.ProductOrderStatusEnum;
+import com.ruoyi.production.mapper.*;
+import com.ruoyi.production.pojo.*;
+import com.ruoyi.production.service.ProductionOrderService;
import com.ruoyi.sales.mapper.SalesLedgerMapper;
import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
import com.ruoyi.sales.pojo.SalesLedger;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
-import com.ruoyi.production.service.ProductionOrderService;
-import com.ruoyi.technology.mapper.TechnologyBomMapper;
-import com.ruoyi.technology.mapper.TechnologyBomStructureMapper;
-import com.ruoyi.technology.mapper.TechnologyRoutingMapper;
-import com.ruoyi.technology.mapper.TechnologyRoutingOperationMapper;
-import com.ruoyi.technology.mapper.TechnologyRoutingOperationParamMapper;
-import com.ruoyi.technology.pojo.TechnologyBom;
-import com.ruoyi.technology.pojo.TechnologyBomStructure;
-import com.ruoyi.technology.pojo.TechnologyRouting;
-import com.ruoyi.technology.pojo.TechnologyRoutingOperation;
-import com.ruoyi.technology.pojo.TechnologyRoutingOperationParam;
+import com.ruoyi.technology.mapper.*;
+import com.ruoyi.technology.pojo.*;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDate;
-import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
+import java.util.*;
import java.util.stream.Collectors;
@Service
@@ -591,10 +555,10 @@
return null;
}
if (productionPlan.getPromisedDeliveryDate() != null) {
- return productionPlan.getPromisedDeliveryDate().toLocalDate();
+ return productionPlan.getPromisedDeliveryDate();
}
if (productionPlan.getRequiredDate() != null) {
- return productionPlan.getRequiredDate().toLocalDate();
+ return productionPlan.getRequiredDate();
}
return null;
}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java
index 2f9d675..f9e4008 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java
@@ -13,7 +13,6 @@
import com.ruoyi.production.bean.dto.ProductionPlanDto;
import com.ruoyi.production.bean.dto.ProductionPlanImportDto;
import com.ruoyi.production.bean.vo.ProductionPlanVo;
-import com.ruoyi.production.enums.ProductOrderStatusEnum;
import com.ruoyi.production.mapper.ProductionOrderMapper;
import com.ruoyi.production.mapper.ProductionPlanMapper;
import com.ruoyi.production.pojo.ProductionOrder;
@@ -42,14 +41,7 @@
@Override
public IPage<ProductionPlanVo> listPage(Page<ProductionPlanDto> page, ProductionPlanDto productionPlanDto) {
-
- IPage<ProductionPlanVo> planVoIPage = productionPlanMapper.listPage(page, productionPlanDto)
- .convert(dto -> {
- ProductionPlanVo vo = new ProductionPlanVo();
- BeanUtils.copyProperties(dto, vo);
- return vo;
- });
- return planVoIPage;
+ return productionPlanMapper.listPage(page, productionPlanDto);
}
/**
@@ -85,7 +77,89 @@
ProductionOrder productionOrder = new ProductionOrder();
productionOrder.setQuantity(productionPlanDto.getTotalAssignedQuantity());
productionOrder.setPlanCompleteTime(productionPlanDto.getPlanCompleteTime());
- productionOrder.setStatus(ProductOrderStatusEnum.WAIT.getCode());
+// // 鍙犲姞鍓╀綑鏂规暟
+// BigDecimal totalRemainingVolume = plans.stream()
+// .map(ProductionPlan::getRemainingVolume)
+// .filter(Objects::nonNull)
+// .reduce(BigDecimal.ZERO, BigDecimal::add);
+// // 鍒ゆ柇涓嬪彂鏁伴噺鏄惁澶т簬绛変簬鍓╀綑鏂规暟
+// if (productionPlanDto.getTotalAssignedQuantity().compareTo(totalRemainingVolume) > 0) {
+// throw new BaseException("鎿嶄綔澶辫触锛屼笅鍙戞暟閲忎笉鑳藉ぇ浜庡墿浣欐柟鏁�");
+// }
+//
+// // 鍒涘缓鐢熶骇璁㈠崟
+// ProductOrder productOrder = new ProductOrder();
+// productOrder.setQuantity(productionPlanDto.getTotalAssignedQuantity());
+// productOrder.setPlanCompleteTime(productionPlanDto.getPlanCompleteTime());
+// productOrder.setStatus(ProductOrderStatusEnum.WAIT.getCode());
+// productOrder.setStrength(productionPlanDto.getStrength());
+// productOrder.setProductMaterialSkuId(plans.get(0).getProductMaterialSkuId());
+//
+// Long orderId = productOrderService.insertProductOrder(productOrder);
+//
+// // 褰撲笅鍙戠殑浜у搧涓虹爩鍧楁垨鏉挎潗锛屽氨鎷夊彇BOM瀛愰泦涓庡伐鑹鸿矾绾垮瓙闆嗘暟鎹瓨鍏ュ埌闄勮〃涓�
+// if ("鐮屽潡".equals(productionPlanDto.getProductName())) {
+// productOrder.setRouteId(productionOrderAppendixService.populateBlocks(orderId, productionPlanDto));
+// }
+// if ("鏉挎潗".equals(productionPlanDto.getProductName())) {
+// productOrder.setRouteId(productionOrderAppendixService.populatePlates(orderId, productionPlanDto));
+// }
+// // 鏇存柊缁戝畾鐨勫伐鑹鸿矾绾�
+// productOrderService.updateById(productOrder);
+//
+// // 鏍规嵁涓嬪彂鏁伴噺锛屼粠绗竴涓敓浜ц鍒掑紑濮嬪垎閰嶆柟鏁�
+// BigDecimal assignedVolume = BigDecimal.ZERO;
+// for (ProductionPlan plan : plans) {
+// BigDecimal volume = plan.getVolume();
+// if (volume == null) {
+// continue;
+// }
+// // 璁$畻鍓╀綑鏂规暟
+// BigDecimal remainingVolume = plan.getRemainingVolume();
+// if (remainingVolume.compareTo(BigDecimal.ZERO) <= 0) {
+// continue;
+// }
+//
+// ProductOrderPlan productOrderPlan = new ProductOrderPlan();
+// productOrderPlan.setProductOrderId(productOrder.getId());
+// productOrderPlan.setProductionPlanId(plan.getId());
+//
+// if (assignedVolume.add(remainingVolume).compareTo(productionPlanDto.getTotalAssignedQuantity()) >= 0) {
+// // 鏈�鍚庝竴涓鍒掞紝鍒嗛厤鍓╀綑鏂规暟
+// BigDecimal lastRemainingVolume = productionPlanDto.getTotalAssignedQuantity().subtract(assignedVolume);
+// BigDecimal assignedQuantity = Optional.ofNullable(plan.getAssignedQuantity()).orElse(BigDecimal.ZERO).add(lastRemainingVolume);
+// plan.setAssignedQuantity(assignedQuantity);
+// plan.setStatus(assignedQuantity.compareTo(plan.getVolume()) >= 0 ? 2 : 1);
+// productOrderPlan.setAssignedQuantity(lastRemainingVolume);
+// productionPlanMapper.updateById(plan);
+// productOrderPlanMapper.insert(productOrderPlan);
+// break;
+// }
+//
+// // 鍒嗛厤褰撳墠璁″垝鏂规暟
+// BigDecimal assignedQuantity = Optional.ofNullable(plan.getAssignedQuantity()).orElse(BigDecimal.ZERO).add(remainingVolume);
+// plan.setAssignedQuantity(assignedQuantity);
+// plan.setStatus(assignedQuantity.compareTo(plan.getVolume()) >= 0 ? 2 : 1);
+// productOrderPlan.setAssignedQuantity(remainingVolume);
+// // 鏇存柊鐢熶骇璁″垝
+// productionPlanMapper.updateById(plan);
+// // 鍒涘缓鍏宠仈鍏崇郴
+// productOrderPlanMapper.insert(productOrderPlan);
+// assignedVolume = assignedVolume.add(remainingVolume);
+// }
+//
+// for (ProductionPlan plan : plans) {
+// BigDecimal assignedQuantity = Optional.ofNullable(plan.getAssignedQuantity()).orElse(BigDecimal.ZERO);
+// BigDecimal volume = Optional.ofNullable(plan.getVolume()).orElse(BigDecimal.ZERO);
+// if (assignedQuantity.compareTo(BigDecimal.ZERO) <= 0) {
+// plan.setStatus(0);
+// } else if (assignedQuantity.compareTo(volume) >= 0) {
+// plan.setStatus(2);
+// } else {
+// plan.setStatus(1);
+// }
+// productionPlanMapper.updateById(plan);
+// }
return true;
}
diff --git a/src/main/resources/mapper/production/ProductionOrderMapper.xml b/src/main/resources/mapper/production/ProductionOrderMapper.xml
index 3c26d4e..b2f895d 100644
--- a/src/main/resources/mapper/production/ProductionOrderMapper.xml
+++ b/src/main/resources/mapper/production/ProductionOrderMapper.xml
@@ -19,8 +19,121 @@
<result column="sale_ledger_product_id" property="saleLedgerProductId" />
<result column="create_user" property="createUser" />
<result column="dept_id" property="deptId" />
+ <result column="plan_complete_time" property="planCompleteTime" />
+ <result column="status" property="status" />
</resultMap>
+ <resultMap id="ProductionOrderVoResultMap" type="com.ruoyi.production.bean.vo.ProductionOrderVo" extends="BaseResultMap">
+ <result column="salesContractNo" property="salesContractNo" />
+ <result column="customerName" property="customerName" />
+ <result column="productName" property="productName" />
+ <result column="model" property="model" />
+ <result column="processRouteCode" property="processRouteCode" />
+ </resultMap>
+
+ <sql id="ProductionOrderVoColumns">
+ po.id,
+ po.sales_ledger_id,
+ po.production_plan_ids,
+ po.product_model_id,
+ po.nps_no,
+ po.create_time,
+ po.update_time,
+ po.technology_routing_id,
+ po.quantity,
+ po.complete_quantity,
+ po.start_time,
+ po.end_time,
+ po.sale_ledger_product_id,
+ po.create_user,
+ po.dept_id,
+ po.plan_complete_time,
+ po.status,
+ sl.sales_contract_no as salesContractNo,
+ sl.customer_name as customerName,
+ p.product_name as productName,
+ pm.model as model,
+ tr.process_route_code as processRouteCode
+ </sql>
+
+ <sql id="ProductionOrderVoFrom">
+ from production_order po
+ left join sales_ledger sl on po.sales_ledger_id = sl.id
+ left join product_model pm on po.product_model_id = pm.id
+ left join product p on pm.product_id = p.id
+ left join technology_routing tr on po.technology_routing_id = tr.id
+ </sql>
+
+ <sql id="ProductionOrderWhere">
+ <where>
+ <if test="c != null">
+ <if test="c.id != null">
+ and po.id = #{c.id}
+ </if>
+ <if test="c.salesLedgerId != null">
+ and po.sales_ledger_id = #{c.salesLedgerId}
+ </if>
+ <if test="c.productModelId != null">
+ and po.product_model_id = #{c.productModelId}
+ </if>
+ <if test="c.technologyRoutingId != null">
+ and po.technology_routing_id = #{c.technologyRoutingId}
+ </if>
+ <if test="c.saleLedgerProductId != null">
+ and po.sale_ledger_product_id = #{c.saleLedgerProductId}
+ </if>
+ <if test="c.status != null">
+ and po.status = #{c.status}
+ </if>
+ <if test="c.createUser != null">
+ and po.create_user = #{c.createUser}
+ </if>
+ <if test="c.deptId != null">
+ and po.dept_id = #{c.deptId}
+ </if>
+ <if test="c.npsNo != null and c.npsNo != ''">
+ and po.nps_no like concat('%', #{c.npsNo}, '%')
+ </if>
+ <if test="c.productionPlanIds != null and c.productionPlanIds != ''">
+ and po.production_plan_ids like concat('%', #{c.productionPlanIds}, '%')
+ </if>
+ <if test="c.planCompleteTime != null">
+ and po.plan_complete_time = #{c.planCompleteTime}
+ </if>
+ <if test="c.startTime != null">
+ and po.start_time >= #{c.startTime}
+ </if>
+ <if test="c.endTime != null">
+ and po.end_time <= #{c.endTime}
+ </if>
+ </if>
+ </where>
+ </sql>
+
+ <select id="pageProductionOrder" resultMap="ProductionOrderVoResultMap">
+ select
+ <include refid="ProductionOrderVoColumns" />
+ <include refid="ProductionOrderVoFrom" />
+ <include refid="ProductionOrderWhere" />
+ order by po.id desc
+ </select>
+
+ <select id="listProductionOrder" resultMap="ProductionOrderVoResultMap">
+ select
+ <include refid="ProductionOrderVoColumns" />
+ <include refid="ProductionOrderVoFrom" />
+ <include refid="ProductionOrderWhere" />
+ order by po.id desc
+ </select>
+
+ <select id="getProductionOrderInfo" resultMap="ProductionOrderVoResultMap">
+ select
+ <include refid="ProductionOrderVoColumns" />
+ <include refid="ProductionOrderVoFrom" />
+ where po.id = #{id}
+ limit 1
+ </select>
+
<select id="selectProgressOrders" resultType="com.ruoyi.home.dto.ProductionProgressOrderDto">
select po.nps_no,
sl.sales_contract_no,
diff --git a/src/main/resources/mapper/production/ProductionPlanMapper.xml b/src/main/resources/mapper/production/ProductionPlanMapper.xml
index fee9fcc..a7ad8f7 100644
--- a/src/main/resources/mapper/production/ProductionPlanMapper.xml
+++ b/src/main/resources/mapper/production/ProductionPlanMapper.xml
@@ -14,49 +14,25 @@
<result column="update_user" property="updateUser"/>
<result column="product_model_id" property="productModelId"/>
<result column="qty_required" property="qtyRequired"/>
- <result column="state" property="state"/>
<result column="issued" property="issued"/>
<result column="source" property="source"/>
<result column="is_audit" property="isAudit"/>
<result column="promised_delivery_date" property="promisedDeliveryDate"/>
</resultMap>
- <select id="listPage" resultType="com.ruoyi.production.bean.dto.ProductionPlanDto">
+ <select id="listPage" resultType="com.ruoyi.production.bean.vo.ProductionPlanVo">
SELECT
pp.*,
pms.material_code AS materialCode,
- pms.model,
+ pmdl.model,
pms.product_id AS productMaterialId,
- pm.product_name AS productName,
- pm.unit
+ p.product_name AS productName,
+ pmdl.unit
FROM production_plan pp
left join product_material_sku pms on pp.product_material_sku_id = pms.id
- left join product_material pm on pms.product_id = pm.id
- WHERE 1 = 1
- <if test="c.customerName != null and c.customerName != '' ">
- AND pp.customer_name LIKE CONCAT('%',#{c.customerName},'%')
- </if>
- <if test="c.productName != null and c.productName != '' ">
- AND pm.product_name LIKE CONCAT('%',#{c.productName},'%')
- </if>
- <if test="c.materialCode != null and c.materialCode != '' ">
- AND pms.material_code LIKE CONCAT('%',#{c.materialCode},'%')
- </if>
- <if test="c.model != null and c.model != '' ">
- AND pms.model LIKE CONCAT('%',#{c.model},'%')
- </if>
- <if test="c.status != null">
- AND pp.status =#{c.status}
- </if>
- <if test="c.applyNo != null and c.applyNo != '' ">
- AND pp.apply_no LIKE CONCAT('%',#{c.applyNo},'%')
- </if>
- <if test="c.startDate != null">
- AND pp.start_date >= DATE_FORMAT(#{c.startDate},'%Y-%m-%d')
- </if>
- <if test="c.endDate != null">
- AND pp.end_date <= DATE_FORMAT(#{c.endDate},'%Y-%m-%d')
- </if>
+ left join product_model pmdl on pp.product_model_id = pmdl.id
+ left join product p on pmdl.product_id = p.id
+
ORDER BY COALESCE(pp.form_modified_time, pp.id) DESC
</select>
@@ -64,12 +40,14 @@
SELECT
pp.*,
pms.material_code AS materialCode,
- pms.model,
- pm.product_name AS productName,
- pm.unit
+ pmdl.model,
+ p.product_name AS productName,
+ pmdl.unit,
+ pms.product_id AS productMaterialId
FROM production_plan pp
LEFT JOIN product_material_sku pms ON pp.product_material_sku_id = pms.id
- LEFT JOIN product_material pm ON pms.product_id = pm.id
+ LEFT JOIN product_model pmdl ON pp.product_model_id = pmdl.id
+ LEFT JOIN product p ON pmdl.product_id = p.id
WHERE pp.id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
@@ -80,13 +58,14 @@
SELECT
pp.*,
pms.material_code AS materialCode,
- pms.model,
+ pmdl.model,
pms.product_id AS productMaterialId,
- pm.product_name AS productName,
- pm.unit
+ p.product_name AS productName,
+ pmdl.unit
FROM production_plan pp
left join product_material_sku pms on pp.product_material_sku_id = pms.id
- left join product_material pm on pms.product_id = pm.id
+ left join product_model pmdl on pp.product_model_id = pmdl.id
+ left join product p on pmdl.product_id = p.id
WHERE pp.id = #{productionPlanId}
</select>
</mapper>
--
Gitblit v1.9.3