src/main/java/com/ruoyi/production/controller/ProductOrderController.java
@@ -64,4 +64,14 @@ } /** * 生产订单流转卡显示内容 */ @ApiOperation("生产订单流转卡显示内容") @GetMapping("/getProductOrderFlowCard") public R getProductOrderFlowCard(Long orderId) { return R.ok(productOrderService.getProductOrderFlowCard(orderId)); } } src/main/java/com/ruoyi/production/controller/ProductWorkOrderController.java
@@ -43,4 +43,13 @@ return R.ok(productWorkOrderservice.getById(id)); } /** * 生产工单流转卡显示内容 */ @ApiOperation("生产工单流转卡显示内容") @GetMapping("/getProductWorkOrderFlowCard") public R getProductWorkOrderFlowCard(Long id) { return R.ok(productWorkOrderservice.getProductWorkOrderFlowCard(id)); } } src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java
@@ -2,11 +2,13 @@ import com.ruoyi.framework.aspectj.lang.annotation.Excel; import com.ruoyi.production.pojo.ProductWorkOrder; import com.ruoyi.production.pojo.ProductWorkOrderFile; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import java.math.BigDecimal; import java.util.List; @EqualsAndHashCode(callSuper = true) @Data @@ -35,4 +37,7 @@ @ApiModelProperty(value = "完成进度") private BigDecimal completionStatus; @ApiModelProperty(value = "附件详情") private List<ProductWorkOrderFile> productWorkOrderFiles; } src/main/java/com/ruoyi/production/mapper/ProductWorkOrderMapper.java
@@ -17,4 +17,5 @@ IPage<ProductWorkOrderDto> pageProductWorkOrder(Page<ProductWorkOrderDto> page, @Param("c") ProductWorkOrderDto productWorkOrder); ProductWorkOrderDto getProductWorkOrderFlowCard(@Param("id") Long id); } src/main/java/com/ruoyi/production/service/ProductOrderService.java
@@ -6,6 +6,7 @@ import com.ruoyi.production.dto.ProductBomDto; import com.ruoyi.production.dto.ProductOrderDto; import com.ruoyi.production.dto.ProductStructureDto; import com.ruoyi.production.dto.ProductWorkOrderDto; import com.ruoyi.production.pojo.ProcessRoute; import com.ruoyi.production.pojo.ProductOrder; @@ -21,4 +22,6 @@ List<ProcessRoute> listProcessRoute(Long productModelId); List<ProductStructureDto> listProcessBom(Long orderId); List<ProductWorkOrderDto> getProductOrderFlowCard(Long orderId); } src/main/java/com/ruoyi/production/service/ProductWorkOrderService.java
@@ -12,4 +12,5 @@ int updateProductWorkOrder(ProductWorkOrderDto productWorkOrderDto); ProductWorkOrderDto getProductWorkOrderFlowCard(Long id); } src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
@@ -2,11 +2,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.production.dto.ProductBomDto; import com.ruoyi.production.dto.ProductOrderDto; import com.ruoyi.production.dto.ProductStructureDto; import com.ruoyi.production.dto.ProductWorkOrderDto; import com.ruoyi.production.mapper.*; import com.ruoyi.production.pojo.*; import com.ruoyi.production.service.ProcessRouteService; @@ -17,6 +19,7 @@ import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.List; import java.util.stream.Collectors; @Service public class ProductOrderServiceImpl extends ServiceImpl<ProductOrderMapper, ProductOrder> implements ProductOrderService { @@ -38,6 +41,9 @@ @Autowired private ProductWorkOrderMapper productWorkOrderMapper; @Autowired private ProductWorkOrderFileMapper productWorkOrderFileMapper; @Override @@ -110,4 +116,21 @@ public List<ProductStructureDto> listProcessBom(Long orderId) { return productOrderMapper.listProcessBom(orderId); } @Override public List<ProductWorkOrderDto> getProductOrderFlowCard(Long orderId) { //查询订单下的所有工单并按照工序的顺序 List<ProductWorkOrder> productWorkOrders = productWorkOrderMapper.selectList(Wrappers.<ProductWorkOrder>lambdaQuery() .eq(ProductWorkOrder::getProductOrderId, orderId)); if (productWorkOrders.size()==0){ return null; } List<ProductWorkOrderDto> productWorkOrderDtos = productWorkOrders.stream().map(productWorkOrder -> { ProductWorkOrderDto productWorkOrderFlowCard = productWorkOrderMapper.getProductWorkOrderFlowCard(productWorkOrder.getId()); List<ProductWorkOrderFile> productWorkOrderFiles = productWorkOrderFileMapper.selectList(Wrappers.<ProductWorkOrderFile>lambdaQuery().eq(ProductWorkOrderFile::getWorkOrderId, productWorkOrder.getId())); productWorkOrderFlowCard.setProductWorkOrderFiles(productWorkOrderFiles); return productWorkOrderFlowCard; }).collect(Collectors.toList()); return productWorkOrderDtos; } } src/main/java/com/ruoyi/production/service/impl/ProductWorkOrderServiceImpl.java
@@ -2,15 +2,20 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.production.dto.ProductWorkOrderDto; import com.ruoyi.production.mapper.ProductWorkOrderFileMapper; import com.ruoyi.production.mapper.ProductWorkOrderMapper; import com.ruoyi.production.pojo.ProductWorkOrder; import com.ruoyi.production.pojo.ProductWorkOrderFile; import com.ruoyi.production.service.ProductWorkOrderService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; @Service @AllArgsConstructor @@ -18,6 +23,7 @@ public class ProductWorkOrderServiceImpl extends ServiceImpl<ProductWorkOrderMapper, ProductWorkOrder> implements ProductWorkOrderService { private ProductWorkOrderMapper productWorkOrdermapper; private ProductWorkOrderFileMapper productWorkOrderFileMapper; @Override public IPage<ProductWorkOrderDto> listPage(Page<ProductWorkOrderDto> page, ProductWorkOrderDto productWorkOrder) { @@ -29,4 +35,12 @@ return productWorkOrdermapper.updateById(productWorkOrderDto); } @Override public ProductWorkOrderDto getProductWorkOrderFlowCard(Long id) { ProductWorkOrderDto productWorkOrderFlowCard = productWorkOrdermapper.getProductWorkOrderFlowCard(id); List<ProductWorkOrderFile> productWorkOrderFiles = productWorkOrderFileMapper.selectList(Wrappers.<ProductWorkOrderFile>lambdaQuery().eq(ProductWorkOrderFile::getWorkOrderId, id)); productWorkOrderFlowCard.setProductWorkOrderFiles(productWorkOrderFiles); return productWorkOrderFlowCard; } } src/main/resources/mapper/production/ProductWorkOrderMapper.xml
@@ -34,13 +34,33 @@ LEFT JOIN product_process pp ON pp.id = ppri.process_id LEFT JOIN product_model pm ON pm.id = ppri.product_model_id LEFT JOIN product p ON p.id = pm.product_id <where> where 1=1 <if test="c.workOrderNo != null and c.workOrderNo != ''"> pwo.work_order_no like concat('%',#{c.workOrderNo},'%') and pwo.work_order_no like concat('%',#{c.workOrderNo},'%') </if> <if test="c.planStartTime != null and c.planEndTime != null"> and DATE(pwo.create_time) between #{c.planStartTime} and #{c.planEndTime} </if> </where> <if test="c.orderId != null and c.orderId != ''"> and pwo.product_order_id = #{c.orderId} </if> </select> <select id="getProductWorkOrderFlowCard" resultType="com.ruoyi.production.dto.ProductWorkOrderDto"> SELECT pwo.*, pp.NAME as processName, pm.model, pm.unit, p.product_name AS productName, po.nps_no AS productOrderNpsNo, ROUND(pwo.complete_quantity / pwo.plan_quantity * 100, 2) AS completionStatus FROM product_work_order pwo LEFT JOIN product_process_route_item ppri ON ppri.id = pwo.product_process_route_item_id LEFT JOIN product_order po ON po.id = pwo.product_order_id LEFT JOIN product_process pp ON pp.id = ppri.process_id LEFT JOIN product_model pm ON pm.id = ppri.product_model_id LEFT JOIN product p ON p.id = pm.product_id WHERE pwo.id = #{id} </select> </mapper>