| | |
| | | util.exportExcel(response, list, "生产订单数据"); |
| | | } |
| | | |
| | | @ApiOperation("查询生产订单对应的BOM") |
| | | @GetMapping("/listProcessBom") |
| | | public R listProcessBom(Long orderId) { |
| | | return R.ok(productOrderService.listProcessBom(orderId)); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "工艺路线编号") |
| | | @Excel(name = "工艺路线编号") |
| | | private String processRouteCode; |
| | | |
| | | @ApiModelProperty(value = "完成状态") |
| | | @Excel(name = "完成状态") |
| | | private BigDecimal completionStatus; |
| | | |
| | | @ApiModelProperty(value = "BOM编号") |
| | | @Excel(name = "BOM编号") |
| | | private String bomNo; |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.production.dto.ProductBomDto; |
| | | import com.ruoyi.production.dto.ProductOrderDto; |
| | | import com.ruoyi.production.dto.ProductStructureDto; |
| | | import com.ruoyi.production.pojo.ProcessRoute; |
| | | import com.ruoyi.production.pojo.ProductOrder; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | |
| | | ProductOrderDto productMainByOrderId(@Param("c") ProductOrder productOrder); |
| | | |
| | | List<ProcessRoute> listProcessRoute(@Param("productModelId") Long productModelId); |
| | | |
| | | List<ProductStructureDto> listProcessBom(@Param("orderId") Long orderId); |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.ruoyi.production.dto.ProductBomDto; |
| | | import com.ruoyi.production.dto.ProductOrderDto; |
| | | import com.ruoyi.production.dto.ProductStructureDto; |
| | | import com.ruoyi.production.pojo.ProcessRoute; |
| | | import com.ruoyi.production.pojo.ProductOrder; |
| | | |
| | |
| | | |
| | | List<ProcessRoute> listProcessRoute(Long productModelId); |
| | | |
| | | List<ProductStructureDto> listProcessBom(Long orderId); |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | 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.mapper.*; |
| | | import com.ruoyi.production.pojo.*; |
| | | import com.ruoyi.production.service.ProcessRouteService; |
| | |
| | | public List<ProcessRoute> listProcessRoute(Long productModelId) { |
| | | return productOrderMapper.listProcessRoute(productModelId); |
| | | } |
| | | |
| | | @Override |
| | | public List<ProductStructureDto> listProcessBom(Long orderId) { |
| | | return productOrderMapper.listProcessBom(orderId); |
| | | } |
| | | } |
| | |
| | | ProductWorkOrder productWorkOrder = new ProductWorkOrder(); |
| | | productWorkOrder.setProductProcessRouteItemId(productProcessRouteItem.getId()); |
| | | productWorkOrder.setProductOrderId(productOrder.getId()); |
| | | productWorkOrder.setQuantity(salesLedgerProduct.getQuantity()); |
| | | productWorkOrder.setPlanQuantity(salesLedgerProduct.getQuantity()); |
| | | productWorkOrder.setPlanQuantity(salesLedgerProduct.getQuantity()); |
| | | productWorkOrder.setWorkOrderNo(workOrderNoStr); |
| | | productWorkOrder.setStatus(1); |
| | |
| | | ProductWorkOrder productWorkOrder = new ProductWorkOrder(); |
| | | productStructureDtos.stream().forEach(productStructureDto -> { |
| | | if (productStructureDto.getProductModelId().equals(productProcessRouteItem.getProductModelId())){ |
| | | productWorkOrder.setQuantity(productStructureDto.getUnitQuantity().multiply(salesLedgerProduct.getQuantity())); |
| | | productWorkOrder.setPlanQuantity(productWorkOrder.getQuantity()); |
| | | productWorkOrder.setPlanQuantity(productStructureDto.getUnitQuantity().multiply(salesLedgerProduct.getQuantity())); |
| | | } |
| | | }); |
| | | if (Objects.equals(productProcessRouteItem.getProductModelId(), salesLedgerProduct.getProductModelId())) { |
| | | productWorkOrder.setQuantity(salesLedgerProduct.getQuantity()); |
| | | productWorkOrder.setPlanQuantity(salesLedgerProduct.getQuantity()); |
| | | } |
| | | productWorkOrder.setProductProcessRouteItemId(productProcessRouteItem.getId()); |
| | |
| | | slp.product_category, |
| | | slp.specification_model, |
| | | ppr.process_route_code, |
| | | pb.bom_no, |
| | | ROUND(po.complete_quantity / po.quantity * 100, 2) AS completionStatus |
| | | from product_order po |
| | | left join sales_ledger sl on po.sales_ledger_id = sl.id |
| | | left join sales_ledger_product slp on po.product_model_id = slp.id |
| | | left join product_process_route ppr on po.id = ppr.product_order_id |
| | | left join product_bom pb on pb.id = ppr.bom_id |
| | | <where> |
| | | <if test="c.npsNo != null and c.npsNo != ''"> |
| | | and po.nps_no like concat('%',#{c.npsNo},'%') |
| | |
| | | left join sales_ledger_product slp on pm.id = slp.product_model_id |
| | | where slp.id = #{productModelId} |
| | | </select> |
| | | <select id="listProcessBom" resultType="com.ruoyi.production.dto.ProductStructureDto"> |
| | | select ps.id, |
| | | ps.product_model_id, |
| | | ps.process_id, |
| | | ps.unit_quantity, |
| | | ps.unit_quantity * po.quantity as demandedQuantity, |
| | | ps.unit, |
| | | p.product_name, |
| | | pp.name as process_name, |
| | | pm.product_id, |
| | | pm.model |
| | | from |
| | | product_structure ps |
| | | left join product_model pm on ps.product_model_id = pm.id |
| | | left join product p on pm.product_id = p.id |
| | | left join product_process pp on ps.process_id = pp.id |
| | | left join product_process_route ppr on ps.bom_id = ppr.bom_id |
| | | left join product_order po on po.id = ppr.product_order_id |
| | | where ppr.product_order_id = #{orderId} |
| | | order by ps.id |
| | | </select> |
| | | |
| | | |
| | | </mapper> |