zhuo
2025-02-28 ccf76f68d7cd916cff6af0726228db24a51f0847
添加标准费用创建
已修改20个文件
已添加5个文件
559 ■■■■ 文件已修改
basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/controller/StandardMethodController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceCalibrationPlanController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceDocumentsController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceExaminePlanController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceExternalApplyController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceMaintenancePlanController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceTraceabilityManagementController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMaintenancePlanMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceRecordMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceStateMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceTraceabilityManagementMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceDocuments.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/DeviceMaintenancePlanService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/DeviceTraceabilityManagementService.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenancePlanServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceTraceabilityManagementServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderRatesController.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderRatesMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderRates.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderRatesService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java 276 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderRatesServiceImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsProductMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java
@@ -61,7 +61,7 @@
    @ApiOperation(value = "获取项目检验参数列表")
    @GetMapping("/selectItemParameterList")
    public Result selectItemParameterList(Page page,StructureItemParameter itemParameter) throws Exception {
    public Result selectItemParameterList(Page page,StructureItemParameter itemParameter) {
        return Result.success(capacityScopeService.selectItemParameterList(page, itemParameter));
    }
@@ -85,7 +85,7 @@
    @ApiOperation(value = "获取检验对象")
    @GetMapping("/selectTestObjectList")
    public Result selectTestObjectList(Page page,PageTestObjectDto pageTestObjectDto) throws Exception {
    public Result selectTestObjectList(Page page,PageTestObjectDto pageTestObjectDto) {
        return Result.success(capacityScopeService.selectTestObjectList(page, pageTestObjectDto));
    }
@@ -121,7 +121,7 @@
    @ApiOperation(value = "维护检验对象的产品")
    @GetMapping("/selectProductListByObjectId")
    public Result selectProductListByObjectId(Page page,ProductDTO1 productDTO) throws Exception {
    public Result selectProductListByObjectId(Page page,ProductDTO1 productDTO) {
        return Result.success(productService.selectProductListByObjectId(page, productDTO));
    }
basic-server/src/main/java/com/ruoyi/basic/controller/StandardMethodController.java
@@ -22,7 +22,7 @@
    @ApiOperation(value = "获取标准方法列表")
    @GetMapping("/selectStandardMethodList")
    public Result selectStandardMethodList(Page page,StandardMethod standardMethod) throws Exception {
    public Result selectStandardMethodList(Page page,StandardMethod standardMethod)  {
        return Result.success(standardMethodService.selectStandardMethodList(page, standardMethod));
    }
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceCalibrationPlanController.java
@@ -81,8 +81,8 @@
     * @return
     */
    @ApiOperation(value = "设备校准计划删除")
    @DeleteMapping("/delQualitySupervise")
    public Result delQualitySupervise(Integer planId){
    @DeleteMapping("/delDeviceCalibrationPlan")
    public Result delDeviceCalibrationPlan(Integer planId){
        return Result.success(deviceCalibrationPlanService.removeById(planId));
    }
@@ -122,7 +122,7 @@
     * @return
     */
    @ApiOperation(value = "设备校准计划详情列表")
    @PostMapping("/pageDeviceCalibrationPlanDetail")
    @GetMapping("/pageDeviceCalibrationPlanDetail")
    public Result<IPage<DeviceCalibrationPlanDetail>> pageDeviceCalibrationPlanDetail(Page page, DeviceCalibrationPlanDetail deviceCalibrationPlanDetails) {
        return Result.success(deviceCalibrationPlanService.pageDeviceCalibrationPlanDetail(page, deviceCalibrationPlanDetails));
    }
@@ -155,7 +155,7 @@
     * @return
     */
    @ApiOperation(value = "删除设备校准计划详情")
    @GetMapping("/delDeviceCalibrationPlanDetail")
    @DeleteMapping("/delDeviceCalibrationPlanDetail")
    public Result delDeviceCalibrationPlanDetail(Integer planDetailsId){
        return Result.success(deviceCalibrationPlanDetailService.removeById(planDetailsId));
    }
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceDocumentsController.java
@@ -34,7 +34,7 @@
     */
    @ApiOperation(value = "新增设备档案")
    @PostMapping("/addDocument")
    public Result addDocument(DeviceDocuments document) {
    public Result addDocument(@RequestBody DeviceDocuments document) {
        if (document.getDeviceId() == null) {
            throw new RuntimeException("设备id为空");
        }
@@ -48,7 +48,7 @@
     * @return
     */
    @ApiOperation(value = "查询设备档案信息")
    @GetMapping("/id")
    @GetMapping("/getDocumentById")
    public Result getDocumentById(Integer id) {
        return Result.success(deviceDocumentsService.getById(id));
    }
@@ -77,14 +77,14 @@
    /**
     * æŸ¥è¯¢è®¾å¤‡æ¡£æ¡ˆåˆ—表
     * @param id
     * @param deviceId
     * @return
     */
    @ApiOperation(value = "查询设备档案列表")
    @GetMapping("/getAllDocuments")
    public Result getAllDocuments(Integer id) {
    public Result getAllDocuments(Integer deviceId) {
        LambdaQueryWrapper<DeviceDocuments> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(DeviceDocuments::getDeviceId, id);
        lambdaQueryWrapper.eq(DeviceDocuments::getDeviceId, deviceId);
        return Result.success(deviceDocumentsService.list(lambdaQueryWrapper));
    }
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceExaminePlanController.java
@@ -90,8 +90,8 @@
     * @return
     */
    @ApiOperation(value = "设备核查计划删除")
    @DeleteMapping("/delQualitySupervise")
    public Result delQualitySupervise(Integer planId){
    @DeleteMapping("/delDeviceExaminePlan")
    public Result delDeviceExaminePlan(Integer planId){
        return Result.success(deviceExaminePlanService.removeById(planId));
    }
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceExternalApplyController.java
@@ -55,7 +55,7 @@
     * @return
     */
    @ApiOperation(value = "删除利用外部设备申请")
    @GetMapping("/delDeviceExternalApply")
    @DeleteMapping("/delDeviceExternalApply")
    public Result delDeviceExternalApply(Integer externalApplyId){
        return Result.success(deviceExternalApplyService.removeById(externalApplyId));
    }
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceMaintenancePlanController.java
@@ -36,7 +36,7 @@
     */
    @ApiOperation("分页查询设备保养计划")
    @GetMapping("selectDeviceMaintenancePlanByPage")
    public Result<IPage<DeviceMaintenancePlan>> selectDeviceMaintenancePlanByPage(IPage page, DeviceMaintenancePlanDto itemParameter){
    public Result<IPage<DeviceMaintenancePlan>> selectDeviceMaintenancePlanByPage(Page page, DeviceMaintenancePlanDto itemParameter){
        return deviceMaintenancePlanService.selectDeviceMaintenancePlanByPage(page, itemParameter);
    }
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceTraceabilityManagementController.java
@@ -1,6 +1,7 @@
package com.ruoyi.device.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.device.dto.DeviceTraceabilityManagementDto;
import com.ruoyi.device.pojo.DeviceTraceabilityManagement;
@@ -33,7 +34,7 @@
     */
    @ApiOperation("分页查询量值溯源计划")
    @GetMapping("selectDeviceTraceabilityManagementByPage")
    public Result<IPage<DeviceTraceabilityManagement>> selectDeviceTraceabilityManagementByPage(IPage page, DeviceTraceabilityManagementDto itemParameter){
    public Result<IPage<DeviceTraceabilityManagement>> selectDeviceTraceabilityManagementByPage(Page page, DeviceTraceabilityManagementDto itemParameter){
        return deviceTraceabilityManagementService.selectDeviceTraceabilityManagementByPage(page, itemParameter);
    }
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMaintenancePlanMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.device.dto.DeviceMaintenancePlanDto;
import com.ruoyi.device.pojo.DeviceMaintenancePlan;
import org.apache.ibatis.annotations.Param;
@@ -23,7 +24,7 @@
     * @param queryWrappers æŸ¥è¯¢æ¡ä»¶
     * @return
     */
    IPage<DeviceMaintenancePlan> selectDeviceParameterPage(IPage page, @Param("ew") QueryWrapper<DeviceMaintenancePlanDto> queryWrappers);
    IPage<DeviceMaintenancePlan> selectDeviceParameterPage(Page page, @Param("ew") QueryWrapper<DeviceMaintenancePlanDto> queryWrappers);
    /**
     * æ ¹æ®ä¿å…»è®¡åˆ’id查询设备保养计划
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceRecordMapper.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.device.dto.DeviceRecordDto;
import com.ruoyi.device.pojo.DeviceRecord;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -18,7 +19,7 @@
 */
public interface DeviceRecordMapper extends BaseMapper<DeviceRecord> {
    IPage<DeviceRecordDto> deviceRecordPage(Integer deviceId, Page page, String sampleCode, String managementNumber, Integer userId);
    IPage<DeviceRecordDto> deviceRecordPage(@Param("deviceId") Integer deviceId, @Param("page") Page page, @Param("sampleCode") String sampleCode, @Param("managementNumber") String managementNumber, @Param("userId") Integer userId);
    /**
@@ -33,5 +34,5 @@
     * @param exportDate
     * @return
     */
    List<DeviceRecord> selectExportList(Integer deviceId, String exportDate);
    List<DeviceRecord> selectExportList(@Param("deviceId") Integer deviceId, @Param("exportDate") String exportDate);
}
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceStateMapper.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.device.dto.DeviceStateDto;
import com.ruoyi.device.pojo.DeviceState;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
@@ -16,5 +17,5 @@
 */
public interface DeviceStateMapper extends BaseMapper<DeviceState> {
    IPage<DeviceStateDto> getDeviceStatePage(Integer deviceId, Page page, String processNumber);
    IPage<DeviceStateDto> getDeviceStatePage(@Param("deviceId") Integer deviceId, @Param("page") Page page, @Param("processNumber") String processNumber);
}
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceTraceabilityManagementMapper.java
@@ -23,7 +23,7 @@
     * @param queryWrappers
     * @return
     */
    IPage<DeviceTraceabilityManagement> selectDeviceParameterPage(IPage page, @Param("ew") QueryWrapper<DeviceTraceabilityManagementDto> queryWrappers);
    IPage<DeviceTraceabilityManagement> selectDeviceParameterPage(IPage page, @Param("ew") QueryWrapper<DeviceTraceabilityManagementDto> ew);
    /**
     * æ ¹æ®id查询设备量值溯源计划
cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceDocuments.java
@@ -67,7 +67,7 @@
    /**
     * åˆ›å»ºæ—¶é—´
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime createTime;
cnas-device/src/main/java/com/ruoyi/device/service/DeviceMaintenancePlanService.java
@@ -1,6 +1,7 @@
package com.ruoyi.device.service;
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.common.core.domain.Result;
import com.ruoyi.device.dto.DeviceMaintenancePlanDto;
@@ -24,7 +25,7 @@
     * @param deviceMaintenancePlanDto è®¾å¤‡ä¿å…»è®¡åˆ’
     * @return
     */
    Result<IPage<DeviceMaintenancePlan>> selectDeviceMaintenancePlanByPage(IPage page, DeviceMaintenancePlanDto deviceMaintenancePlanDto);
    Result<IPage<DeviceMaintenancePlan>> selectDeviceMaintenancePlanByPage(Page page, DeviceMaintenancePlanDto deviceMaintenancePlanDto);
    /**
     * æ–°å¢žè®¾å¤‡ä¿å…»è®¡åˆ’
cnas-device/src/main/java/com/ruoyi/device/service/DeviceTraceabilityManagementService.java
@@ -1,10 +1,12 @@
package com.ruoyi.device.service;
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.common.core.domain.Result;
import com.ruoyi.device.dto.DeviceTraceabilityManagementDto;
import com.ruoyi.device.pojo.DeviceTraceabilityManagement;
import org.apache.ibatis.annotations.Param;
import javax.servlet.http.HttpServletResponse;
@@ -24,7 +26,7 @@
     * @param itemParameter é‡å€¼æº¯æºè®¡åˆ’
     * @return
     */
    Result<IPage<DeviceTraceabilityManagement>> selectDeviceTraceabilityManagementByPage(IPage page, DeviceTraceabilityManagementDto itemParameter);
    Result<IPage<DeviceTraceabilityManagement>> selectDeviceTraceabilityManagementByPage(@Param("page") Page page, @Param("itemParameter") DeviceTraceabilityManagementDto itemParameter);
    /**
     * æ–°å¢žé‡å€¼æº¯æºè®¡åˆ’
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenancePlanServiceImpl.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
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.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
@@ -68,7 +69,7 @@
     * @return
     */
    @Override
    public Result<IPage<DeviceMaintenancePlan>> selectDeviceMaintenancePlanByPage(IPage page, DeviceMaintenancePlanDto deviceMaintenancePlanDto) {
    public Result<IPage<DeviceMaintenancePlan>> selectDeviceMaintenancePlanByPage(Page page, DeviceMaintenancePlanDto deviceMaintenancePlanDto) {
        IPage<DeviceMaintenancePlan> iPage = baseMapper.selectDeviceParameterPage(page, QueryWrappers.queryWrappers(deviceMaintenancePlanDto));
        return Result.success(iPage);
    }
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceTraceabilityManagementServiceImpl.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
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.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
@@ -70,7 +71,7 @@
     * @return
     */
    @Override
    public Result<IPage<DeviceTraceabilityManagement>> selectDeviceTraceabilityManagementByPage(IPage page, DeviceTraceabilityManagementDto deviceTraceabilityManagementDto) {
    public Result<IPage<DeviceTraceabilityManagement>> selectDeviceTraceabilityManagementByPage(Page page, DeviceTraceabilityManagementDto deviceTraceabilityManagementDto) {
        IPage<DeviceTraceabilityManagement> iPage = baseMapper.selectDeviceParameterPage(page, QueryWrappers.queryWrappers(deviceTraceabilityManagementDto));
        return Result.success(iPage);
    }
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderRatesController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
package com.ruoyi.inspect.controller;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.inspect.dto.SampleOrderDto;
import com.ruoyi.inspect.pojo.InsOrderRates;
import com.ruoyi.inspect.service.InsOrderRatesService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
 * è®¢å•费用表
 *
 * @author zhuo
 * @since 2025-02-28
 */
@Api(tags = "订单费用信息")
@RestController
@RequestMapping("/insOrderRates")
public class InsOrderRatesController  {
    @Resource
    private InsOrderRatesService insOrderRatesService;
    /**
     * æŸ¥è¯¢è®¢å•列表
     * @param page
     * @param sampleOrderDto
     * @return
     */
    @ApiOperation(value = "查询订单列表")
    @GetMapping("/selectRatesPage")
    public Result selectInsOrderRates(Page page, SampleOrderDto sampleOrderDto) {
        return Result.success(insOrderRatesService.selectInsOrderRates(page, sampleOrderDto));
    }
    /**
     * æŸ¥è¯¢è®¢å•列表
     * @param insOrderId
     * @return
     */
    @ApiOperation(value = "查询订单费用详情")
    @GetMapping("/selectRatesDetail")
    public Result selectRatesDetail(Integer insOrderId) {
        return Result.success(insOrderRatesService.list(Wrappers.<InsOrderRates>lambdaQuery()
                .eq(InsOrderRates::getInsOrderId, insOrderId)));
    }
}
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderRatesMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package com.ruoyi.inspect.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.inspect.pojo.InsOrderRates;
/**
 * è®¢å•费用表
 *
 * @author zhuo
 * @since 2025-02-28
 */
public interface InsOrderRatesMapper extends BaseMapper<InsOrderRates> {
}
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductMapper.java
@@ -60,6 +60,13 @@
     * @return
     */
    int selectNoJudge(@Param("orderId") Integer orderId);
    /**
     * æ ¹æ®è®¢å•查询产品信息
     * @param orderId
     * @return
     */
    List<InsProduct> selectProductByOrderId(Integer orderId);
}
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderRates.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,72 @@
package com.ruoyi.inspect.pojo;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * è®¢å•费用表
 *
 * @author zhuo
 * @since 2025-02-28
 */
@Data
@TableName("ins_order_rates")
public class InsOrderRates {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty("订单id")
    private Integer insOrderId;
    @ApiModelProperty("样品id")
    private Integer insSampleId;
    @ApiModelProperty("检验项id")
    private Integer insProductId;
    @ApiModelProperty("样品编号")
    private String sampleCode;
    @ApiModelProperty("样品编号")
    private String entrustCode;
    @ApiModelProperty("检验项分类")
    private String inspectionItemClass;
    @ApiModelProperty("检测项目")
    private String inspectionItem;
    @ApiModelProperty("检验项子类")
    private String inspectionItemSubclass;
    @ApiModelProperty("电缆标识")
    private String cableTag;
    @ApiModelProperty("标准价格")
    private String rates;
    @ApiModelProperty("分组")
    private String manHourGroup;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @ApiModelProperty("创建人id")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("修改人id")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
}
inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderRatesService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.ruoyi.inspect.service;
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.inspect.dto.SampleOrderDto;
import com.ruoyi.inspect.pojo.InsOrderRates;
/**
 * è®¢å•费用表
 *
 * @author zhuo
 * @since 2025-02-28
 */
public interface InsOrderRatesService extends IService<InsOrderRates> {
    /**
     *
     * @param page
     * @param sampleOrderDto
     * @return
     */
    IPage<SampleOrderDto> selectInsOrderRates(Page page, SampleOrderDto sampleOrderDto);
}
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -2,8 +2,6 @@
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
@@ -44,7 +42,6 @@
import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
import com.ruoyi.inspect.vo.InsOrderPlanTaskSwitchVo;
import com.ruoyi.inspect.vo.InsOrderPlanVO;
import com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursMapper;
import com.ruoyi.performance.mapper.PerformanceShiftMapper;
import com.ruoyi.performance.mapper.ShiftTimeMapper;
import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours;
@@ -57,7 +54,6 @@
import com.ruoyi.system.service.InformationNotificationService;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xwpf.usermodel.*;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@@ -71,13 +67,10 @@
import java.math.RoundingMode;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
@@ -160,7 +153,8 @@
    private InsOrderDeviceRecordService insOrderDeviceRecordService;
    @Resource
    private ISysDictTypeService iSysDictTypeService;
    @Resource
    private InsOrderRatesService insOrderRatesService;
    @Override
    public IPage<InsOrderPlanVO> selectInsOrderPlanList(Page page, InsOrderPlanDTO insOrderPlanDTO) {
@@ -749,7 +743,7 @@
    @Transactional(rollbackFor = Exception.class)
    public int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode) {
        InsOrder order = insOrderMapper.selectById(orderId);
        // åˆ¤æ–­æ˜¯å¦æœ‰é‡å¤ç¼–号, æœ‰é‡å¤ç¼–号做提醒
        // 1. åˆ¤æ–­æ˜¯å¦æœ‰é‡å¤ç¼–号, æœ‰é‡å¤ç¼–号做提醒
        Long codeCount = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery()
                .ne(InsOrder::getState, -1)
                .ne(InsOrder::getIfsInventoryId, order.getIfsInventoryId())
@@ -758,7 +752,7 @@
            throw new ErrorException("当前编号有重复, è¯·å…ˆåŽ»ä¿®æ”¹é‡å¤ç¼–å·");
        }
        // åˆ¤æ–­è¯¥è®¢å•是否是第一次生产
        // 2. åˆ¤æ–­è¯¥è®¢å•是否是第一次生产(后续报告生成只取第一次提交时间)
        if (!(order.getIsFirstSubmit() != null && order.getIsFirstSubmit().equals(1))) {
            insOrderMapper.update(null, Wrappers.<InsOrder>lambdaUpdate()
                    .eq(InsOrder::getId, orderId)
@@ -766,11 +760,12 @@
                    .set(InsOrder::getFirstSubmitDate, LocalDateTime.now()));
        }
        // 3. åˆ¤æ–­æ˜¯å¦æœ‰æœªæ£€é¡¹
        List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
                .eq(InsSample::getInsOrderId, orderId).select(InsSample::getId));
        List<Integer> ids = insSamples.stream().map(a -> a.getId()).collect(Collectors.toList());
        List<Integer> InsSampleIds = insSamples.stream().map(InsSample::getId).collect(Collectors.toList());
        List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                .in(InsProduct::getInsSampleId, ids)
                .in(InsProduct::getInsSampleId, InsSampleIds)
                .eq(InsProduct::getSonLaboratory, laboratory)
                .eq(InsProduct::getState, 1)
                .and(wrapper -> wrapper
@@ -778,10 +773,8 @@
                        .or()
                        .eq(InsProduct::getInsResult, 2)
                )
                .isNull(InsProduct::getInsFiberId)
                .isNull(InsProduct::getInsFibersId)
                .ne(InsProduct::getIsBinding, 1));
        insProducts.addAll(insProductMapper.selectFiberInsProduct(ids, laboratory));
        insProducts.addAll(insProductMapper.selectFiberInsProduct(InsSampleIds, laboratory));
        if (insProducts.size() > 0) {
            String str = "";
            int count = 0;
@@ -794,21 +787,21 @@
                throw new ErrorException("<strong>存在待检验的项目:</strong><br/>" + str);
            }
        }
        // 4.修改检测结果
        insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate().eq(InsOrderState::getInsOrderId, orderId)
                .eq(InsOrderState::getLaboratory, laboratory)
                .set(InsOrderState::getInsTime, LocalDateTime.now())
                .set(InsOrderState::getInsState, 3)
                .set(InsOrderState::getVerifyUser, verifyUser));
        // å‘送消息
        // 5.发送消息通知给复核人
        // æŸ¥è¯¢å½“前人信息
        Integer userId = SecurityUtils.getUserId().intValue();
        String userName = insProductMapper.selectUserById(userId).get("name");
        // æŸ¥è¯¢å‘送人信息
        String sendUserAccount = insProductMapper.selectUserById(verifyUser).get("account");
        InformationNotification info = new InformationNotification();
        info.setCreateUser(userName);
        info.setMessageType("2");
@@ -820,15 +813,16 @@
        info.setJumpPath("b1-inspect-orderPlan-review");
        informationNotificationService.addInformationNotification(info);
        //复核人--检验单相关负责人
        // 6.复核人--新增检验单相关负责人
        InsSampleUser insSampleUser = new InsSampleUser();
        insSampleUser.setUserId(verifyUser);
        insSampleUser.setInsSampleId(orderId);
        insSampleUser.setState(1);
        insSampleUser.setSonLaboratory(laboratory);
        insSampleUserMapper.insert(insSampleUser);
        /*校验一下result表*/
        CompletableFuture.supplyAsync(() -> {
        // 7.校验一下result表(避免出现多个检验项结果)
        threadPoolTaskExecutor.execute(() -> {
            List<Integer> ips = insProducts.stream().map(InsProduct::getId).distinct().collect(Collectors.toList());
            for (Integer ip : ips) {
                List<InsProductResult> insProductResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery()
@@ -839,26 +833,116 @@
                    }
                }
            }
            return null;
        });
        // æäº¤ç”ŸæˆæŠ¥å‘Š
        // 8.提交生成报告
        this.generateReport(orderId);
        // æ·»åŠ ä¸´æ—¶pdf生成地址
        // 9.添加临时pdf生成地址
        InsReport report = insReportMapper.selectOne(Wrappers.<InsReport>lambdaQuery()
                .eq(InsReport::getInsOrderId, orderId));
        String tempUrlPdf = this.wordToPdfTemp(report.getUrl().replace("/word", wordUrl));
        report.setTempUrlPdf("/word/" + tempUrlPdf);
        insReportMapper.updateById(report);
        // æŸ¥è¯¢è®¢å•
        // 10.原始记录模板复制(添加备份, é¿å…ä¿®æ”¹åŽŸå§‹æ¨¡æ¿å½±å“åˆ°å·²ç»å®Œæˆçš„å•å­)
        this.templateCopy(orderId, InsSampleIds);
        // 11.成品抽样添加合格状态
        // åˆ¤æ–­æ˜¯å¦æœ‰æŠ½æ ·ä¿¡æ¯
        if (order.getQuarterItemId() != null) {
            // åˆ¤æ–­æ˜¯å¦æœ‰ä¸åˆæ ¼
            this.addProductSpotCheck(insSamples, order);
        }
        // 12.添加工时
        // åˆ é™¤åŽŸæœ¬è®¢å•å·¥æ—¶
        auxiliaryOutputWorkingHoursService.remove(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
                .eq(AuxiliaryOutputWorkingHours::getOrderId, orderId));
        // æŸ¥è¯¢å·¥æ—¶æš‚å­˜
        List<AuxiliaryOutputWorkingHoursTemporary> hoursTemporaries = auxiliaryOutputWorkingHoursTemporaryService.list(Wrappers.<AuxiliaryOutputWorkingHoursTemporary>lambdaQuery()
                .eq(AuxiliaryOutputWorkingHoursTemporary::getOrderId, orderId));
        List<AuxiliaryOutputWorkingHours> outputWorkingHours = hoursTemporaries.stream().map(hoursTemporary -> {
            AuxiliaryOutputWorkingHours workingHours = new AuxiliaryOutputWorkingHours();
            BeanUtil.copyProperties(hoursTemporary, workingHours);
            workingHours.setId(null);
            return workingHours;
        }).collect(Collectors.toList());
        auxiliaryOutputWorkingHoursService.saveBatch(outputWorkingHours);
        // 13.添加订单费用统计信息
        List<InsProduct> productList = insProductMapper.selectProductByOrderId(orderId);
        // åˆ é™¤åŽŸæœ¬è´¹ç”¨ä¿¡æ¯
        insOrderRatesService.remove(Wrappers.<InsOrderRates>lambdaQuery()
                .eq(InsOrderRates::getInsOrderId, orderId));
        List<InsOrderRates> orderRatesList = productList.stream().map(insProduct -> {
            InsOrderRates insOrderRates = new InsOrderRates();
            insOrderRates.setInsOrderId(orderId);
            insOrderRates.setInsSampleId(insProduct.getInsSampleId());
            insOrderRates.setInsProductId(insProduct.getId());
            insOrderRates.setSampleCode(insProduct.getSampleCode());
            insOrderRates.setEntrustCode(order.getEntrustCode());
            insOrderRates.setInspectionItemClass(insProduct.getInspectionItemClass());
            insOrderRates.setInspectionItem(insProduct.getInspectionItem());
            insOrderRates.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());
            insOrderRates.setCableTag(insProduct.getCableTag());
            insOrderRates.setRates(insProduct.getRates());
            insOrderRates.setManHourGroup(insProduct.getManHourGroup());
            return insOrderRates;
        }).collect(Collectors.toList());
        insOrderRatesService.saveBatch(orderRatesList);
        // 14.发送企业微信通知
        // æŸ¥è¯¢åŽŸææ–™
        IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(order.getIfsInventoryId());
        // æŸ¥è¯¢æ ·å“ä¿¡æ¯
        InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery()
                .eq(InsSample::getInsOrderId, orderId)
                .last("limit 1"));
        // æŸ¥è¯¢åŽŸææ–™
        IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(order.getIfsInventoryId());
        threadPoolTaskExecutor.execute(() -> {
            String message = "";
            message += "检验任务复核通知";
            message += "\n提交人: " + userName;
            message += "\n委托编号: " + order.getEntrustCode();
            message += "\n样品名称: " + insSample.getModel();
            message += "\n规格型号: " + order.getPartDetail();
            if (ifsInventoryQuantity != null) {
                message += "\n批次号: " + ifsInventoryQuantity.getUpdateBatchNo();
            }
            //发送企业微信消息通知  æäº¤å¤æ ¸
            try {
                WxCpUtils.inform(sendUserAccount, message, null);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        });
        // 15.ifs移库(原材料需要进行移库操作) --> æœ€åŽæ‰§è¡Œ,因为失败无法回滚
        if (ifsInventoryQuantity != null) {
            // ç™»è®°æ£€éªŒç»“æžœ
            // åˆ¤æ–­æ˜¯å¦æœ‰ä¸åˆæ ¼, æœ‰ä¸åˆæ ¼ä¸èƒ½ç§»åº“
            // todo: ifs移库
            insReportService.isRawMaterial(order);
        } else {
            // ä¿®æ”¹æˆå“çŠ¶æ€
            // åˆ¤æ–­æ˜¯å¦æœ‰ä¸åˆæ ¼
            Long unqualifiedCount = insReportService.getUnqualifiedCount(order);
            if (unqualifiedCount.equals(0L)) {
                insOrderMapper.update(null, Wrappers.<InsOrder>lambdaUpdate()
                        .eq(InsOrder::getId, order.getId())
                        .set(InsOrder::getInsResult, 1));
            } else {
                insOrderMapper.update(null, Wrappers.<InsOrder>lambdaUpdate()
                        .eq(InsOrder::getId, order.getId())
                        .set(InsOrder::getInsResult, 0));
            }
        }
        return 1;
    }
    private void templateCopy(Integer orderId, List<Integer> ids) {
        // åˆ é™¤åŽŸæœ¬æ¨¡æ¿
        insOrderStandardTemplateService.remove(Wrappers.<InsOrderStandardTemplate>lambdaQuery()
                .eq(InsOrderStandardTemplate::getInsOrderId, orderId));
@@ -883,99 +967,6 @@
                }
            }
        }
        // æ·»åŠ å·¥æ—¶
        // åˆ é™¤åŽŸæœ¬è®¢å•å·¥æ—¶
        auxiliaryOutputWorkingHoursService.remove(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
                .eq(AuxiliaryOutputWorkingHours::getOrderId, orderId));
        // æŸ¥è¯¢å·¥æ—¶æš‚å­˜
        List<AuxiliaryOutputWorkingHoursTemporary> hoursTemporaries = auxiliaryOutputWorkingHoursTemporaryService.list(Wrappers.<AuxiliaryOutputWorkingHoursTemporary>lambdaQuery()
                .eq(AuxiliaryOutputWorkingHoursTemporary::getOrderId, orderId));
        List<AuxiliaryOutputWorkingHours> outputWorkingHours = hoursTemporaries.stream().map(hoursTemporary -> {
            AuxiliaryOutputWorkingHours workingHours = new AuxiliaryOutputWorkingHours();
            BeanUtil.copyProperties(hoursTemporary, workingHours);
            workingHours.setId(null);
            return workingHours;
        }).collect(Collectors.toList());
        auxiliaryOutputWorkingHoursService.saveBatch(outputWorkingHours);
        // æˆå“æŠ½æ ·æ·»åŠ åˆæ ¼çŠ¶æ€
        // åˆ¤æ–­æ˜¯å¦æœ‰æŠ½æ ·ä¿¡æ¯
        if (order.getQuarterItemId() != null) {
            // åˆ¤æ–­æ˜¯å¦æœ‰ä¸åˆæ ¼
            Long unqualifiedCount = 0L;
            if (CollectionUtils.isNotEmpty(insSamples)) {
                unqualifiedCount = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
                        .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).collect(Collectors.toList()))
                        .eq(InsProduct::getInsResult, 0));
                // åˆ¤æ–­å¦‚果有不合格的检验项, åˆ¤æ–­æœ‰æ²¡æœ‰æ£€éªŒé¡¹å¤æµ‹, å¤æ ¸åˆæ ¼ä¹Ÿç®—合格通过
                if (!unqualifiedCount.equals(0L)) {
                    List<InsProduct> productList = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                            .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).collect(Collectors.toList()))
                            .eq(InsProduct::getInsResult, 0));
                    boolean flag = true;
                    for (InsProduct insProduct : productList) {
                        Long unqualifiedProductCount = insUnqualifiedRetestProductMapper.selectCount(Wrappers.<InsUnqualifiedRetestProduct>lambdaQuery()
                                .eq(InsUnqualifiedRetestProduct::getInsProductId, insProduct.getId())
                                .ne(InsUnqualifiedRetestProduct::getInsResult, 0));
                        if (unqualifiedProductCount != 2) {
                            flag = false;
                        }
                    }
                    if (flag) {
                        unqualifiedCount = 0L;
                    }
                }
            }
            spotCheckQuarterItemMapper.update(null, Wrappers.<SpotCheckQuarterItem>lambdaUpdate()
                    .eq(SpotCheckQuarterItem::getQuarterItemId, order.getQuarterItemId())
                    .set(SpotCheckQuarterItem::getResult, unqualifiedCount.equals(0L) ? "合格" : "不合格"));
        }
        // å‘送企业微信通知
        threadPoolTaskExecutor.execute(() -> {
            String message = "";
            message += "检验任务复核通知";
            message += "\n提交人: " + userName;
            message += "\n委托编号: " + order.getEntrustCode();
            message += "\n样品名称: " + insSample.getModel();
            message += "\n规格型号: " + order.getPartDetail();
            if (ifsInventoryQuantity != null) {
                message += "\n批次号: " + ifsInventoryQuantity.getUpdateBatchNo();
            }
            //发送企业微信消息通知  æäº¤å¤æ ¸
            try {
                WxCpUtils.inform(sendUserAccount, message, null);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        });
        // ifs移库
        if (ifsInventoryQuantity != null) {
            // ç™»è®°æ£€éªŒç»“æžœ
            // åˆ¤æ–­æ˜¯å¦æœ‰ä¸åˆæ ¼, æœ‰ä¸åˆæ ¼ä¸èƒ½ç§»åº“
            // todo: ifs移库
            insReportService.isRawMaterial(order);
        } else {
            // ä¿®æ”¹æˆå“çŠ¶æ€
            // åˆ¤æ–­æ˜¯å¦æœ‰ä¸åˆæ ¼
            Long unqualifiedCount = insReportService.getUnqualifiedCount(order);
            if (unqualifiedCount.equals(0L)) {
                insOrderMapper.update(null, Wrappers.<InsOrder>lambdaUpdate()
                        .eq(InsOrder::getId, order.getId())
                        .set(InsOrder::getInsResult, 1));
            } else {
                insOrderMapper.update(null, Wrappers.<InsOrder>lambdaUpdate()
                        .eq(InsOrder::getId, order.getId())
                        .set(InsOrder::getInsResult, 0));
            }
        }
        return 1;
    }
@@ -4040,7 +4031,7 @@
    }
    /**
     * ä¿å­˜å…ƒæ­¤é˜¿é‡Œè¿›è´§éªŒè¯åŽŸå§‹è®°å½•
     * *****保存元此阿里进货验证原始记录*****
     * @param insOrderId è®¢å•Id
     * @param examineUserId  å¤æ ¸äººId
     * @param writeUserId  æ£€éªŒå‘˜Id
@@ -4190,7 +4181,7 @@
    /**
     * æ ¼å¼åŒ–进厂验证内容
     * ***格式化进厂验证内容****
     * @param basicType
     * @return
     */
@@ -4219,7 +4210,7 @@
    }
    /**
     * word转换pdf
     * ***word转换pdf***
     * @param path
     * @return
     */
@@ -4266,4 +4257,41 @@
        return null;
    }
    /**
     * *****修改成品抽样状态******
     * @param insSamples
     * @param order
     */
    private void addProductSpotCheck(List<InsSample> insSamples, InsOrder order) {
        Long unqualifiedCount = 0L;
        if (CollectionUtils.isNotEmpty(insSamples)) {
            unqualifiedCount = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
                    .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).collect(Collectors.toList()))
                    .eq(InsProduct::getInsResult, 0));
            // åˆ¤æ–­å¦‚果有不合格的检验项, åˆ¤æ–­æœ‰æ²¡æœ‰æ£€éªŒé¡¹å¤æµ‹, å¤æ ¸åˆæ ¼ä¹Ÿç®—合格通过
            if (!unqualifiedCount.equals(0L)) {
                List<InsProduct> productList = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                        .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).collect(Collectors.toList()))
                        .eq(InsProduct::getInsResult, 0));
                boolean flag = true;
                for (InsProduct insProduct : productList) {
                    Long unqualifiedProductCount = insUnqualifiedRetestProductMapper.selectCount(Wrappers.<InsUnqualifiedRetestProduct>lambdaQuery()
                            .eq(InsUnqualifiedRetestProduct::getInsProductId, insProduct.getId())
                            .ne(InsUnqualifiedRetestProduct::getInsResult, 0));
                    if (unqualifiedProductCount != 2) {
                        flag = false;
                    }
                }
                if (flag) {
                    unqualifiedCount = 0L;
                }
            }
        }
        spotCheckQuarterItemMapper.update(null, Wrappers.<SpotCheckQuarterItem>lambdaUpdate()
                .eq(SpotCheckQuarterItem::getQuarterItemId, order.getQuarterItemId())
                .set(SpotCheckQuarterItem::getResult, unqualifiedCount.equals(0L) ? "合格" : "不合格"));
    }
}
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderRatesServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
package com.ruoyi.inspect.service.impl;
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.inspect.dto.SampleOrderDto;
import com.ruoyi.inspect.mapper.InsOrderRatesMapper;
import com.ruoyi.inspect.pojo.InsOrderRates;
import com.ruoyi.inspect.service.InsOrderRatesService;
import org.springframework.stereotype.Service;
/**
 * è®¢å•费用表
 *
 * @author zhuo
 * @since 2025-02-28
 */
@Service
public class InsOrderRatesServiceImpl extends ServiceImpl<InsOrderRatesMapper, InsOrderRates> implements InsOrderRatesService {
    /**
     * æŸ¥è¯¢è®¢å•费用列表
     * @param page
     * @param sampleOrderDto
     * @return
     */
    @Override
    public IPage<SampleOrderDto> selectInsOrderRates(Page page, SampleOrderDto sampleOrderDto) {
        return null;
    }
}
inspect-server/src/main/resources/mapper/InsProductMapper.xml
@@ -141,4 +141,12 @@
        where io2.id = #{orderId}
        and ip.is_binding != 1
    </select>
    <!-- æ ¹æ®è®¢å•查询产品id -->
    <select id="selectProductByOrderId" resultType="com.ruoyi.inspect.pojo.InsProduct">
        select ip.*, is2.sample_code
        from ins_product ip
                 left join ins_sample is2 on is2.id = ip.ins_sample_id
        where is2.ins_order_id = #{orderId}
    </select>
</mapper>