zhuo
2025-04-14 8b1afe3fe677ed94888c72cbf0287abfa07349de
费用统计调整
已修改3个文件
63 ■■■■■ 文件已修改
inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleOrderDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsOrderRatesMapper.xml 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleOrderDto.java
@@ -89,6 +89,10 @@
    private String sampleStr;
    @ApiModelProperty("总价")
    private String totalPrice;
}
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -876,22 +876,8 @@
            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.添加订单费用统计信息
        // 12.添加订单费用统计信息
        List<InsProduct> productList = insProductMapper.selectProductByOrderId(orderId);
        // 删除原本费用信息
        insOrderRatesService.remove(Wrappers.<InsOrderRates>lambdaQuery()
@@ -914,7 +900,7 @@
        insOrderRatesService.saveBatch(orderRatesList);
        // 14.发送企业微信通知
        // 13.发送企业微信通知
        // 查询原材料
        IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(order.getIfsInventoryId());
        // 查询样品信息
@@ -939,14 +925,14 @@
            }
        });
        // 15.ifs移库(原材料需要进行移库操作) --> 最后执行,因为失败无法回滚
        // 14.ifs移库(原材料需要进行移库操作) --> 最后执行,因为失败无法回滚
        if (ifsInventoryQuantity != null) {
            // 登记检验结果
            // 判断是否有不合格, 有不合格不能移库
            // todo: ifs移库
            insReportService.isRawMaterial(order);
            // 16 判断当前样品是否为原材料, 原材料需要进行数据分析, 判断之前10条数据同一个供应商, 同一个检验项的偏差是否超过10%
            // 15 判断当前样品是否为原材料, 原材料需要进行数据分析, 判断之前10条数据同一个供应商, 同一个检验项的偏差是否超过10%
            // 查询ifs信息获取获取前10个供应商一样的, 检验项一样信息
            threadPoolTaskExecutor.execute(() -> {
                // 添加分析数据
@@ -1320,7 +1306,6 @@
    /**
     * 新增不合格复测内容
     * @param ids
     * @return
     */
    @Override
@@ -1336,6 +1321,20 @@
        // 查询不合格内容
        List<InsUnqualifiedRetestProduct> list = insUnqualifiedRetestProductMapper.selectRetestProduct(ids);
        // 循环判断是否是绑定值, 绑定值修改检验要求
        for (InsUnqualifiedRetestProduct insUnqualifiedRetestProduct : list) {
            for (InsProduct insProduct : insProductsList) {
                if (insProduct.getIsBinding().equals(1)) {
                    insUnqualifiedRetestProduct.setIsBinding(1);
                    insUnqualifiedRetestProduct.setAsk(null);
                    insUnqualifiedRetestProduct.setTell(null);
                    insUnqualifiedRetestProduct.setPrice(null);
                    insUnqualifiedRetestProduct.setManHour(null);
                    insUnqualifiedRetestProduct.setSection(null);
                }
            }
        }
        // 新增不合格内容
        insUnqualifiedRetestProductService.saveBatch(list);
        list.forEach(insUnqualifiedRetestProduct -> {
@@ -2154,7 +2153,6 @@
     * @param
     */
    private void addBitReport(Integer orderId, InsOrder insOrder) {
        Map<String, String> user = insProductMapper.selectUserById(insOrder.getUserId());
        //samples是不包括带有"/"的样品
        List<SampleProductDto> samples = insSampleMapper.selectSampleProductListByOrderId(orderId);
        InsReport insReport = new InsReport();
@@ -2173,7 +2171,6 @@
        boolean isOneSample = samples.size() == 1 ? true : false;
        /*基础报告(根据绘制的原始记录模版形成)*/
        samples.forEach(a -> {
            Map<Integer, String> map2 = new HashMap<>();
            models.add(a.getModel());
            String standardMethodCode = baseMapper.getStandardMethodCode(a.getStandardMethodListId());
            if (StrUtil.isNotBlank(a.getSpecialStandardMethod())) {
inspect-server/src/main/resources/mapper/InsOrderRatesMapper.xml
@@ -10,12 +10,24 @@
        io.type_source = 0
        then io.sample_view
        else io.sample end                            sampleStr,
        GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model
        GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model,
        sum(tempior.rates) + 200 total_price
        from ins_order io
        LEFT JOIN ins_sample isa ON isa.ins_order_id = io.id
        left join ins_order_rates ior on ior.ins_order_id = io.id
        where ior.id is not null
        group by  io.id) a
        left join (
        select ior.id, ior.ins_order_id, ior.rates from
        ins_order_rates ior
        left join ins_product ip on ip.id = ior.ins_product_id
        left join ins_order io2 on ior.ins_order_id = io2.id
        GROUP BY CASE
        WHEN ior.man_hour_group IS NOT NULL AND ior.man_hour_group != '' THEN ior.man_hour_group
        ELSE ior.id END,
        CASE WHEN ior.man_hour_group IS NOT NULL AND ior.man_hour_group != '' THEN ior.ins_sample_id ELSE ior.id END,
        CASE WHEN ior.man_hour_group IS NOT NULL AND ior.man_hour_group != '' THEN ip.radius ELSE ior.id END,
        CASE WHEN ior.man_hour_group IS NOT NULL AND ior.man_hour_group != '' THEN ip.cable_tag ELSE ior.id END,
        CASE WHEN ior.man_hour_group IS NOT NULL AND ior.man_hour_group != '' THEN ior.ins_order_id ELSE ior.id END) tempior on tempior.ins_order_id = io.id
        where tempior.id is not null
        group by io.id) a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>