whycxzp
2023-03-13 fcdb42dcfda2adccfd8cf42e16c2d6fa73732f1d
Revert "旧数据类别可以修复的(物料只对应1个类别的),填充物料类别"

This reverts commit 910095795601d29fdee7e82479688a8d7062de96.
4个文件已修改
61 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/MaterialController.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/MaterialMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/MaterialService.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/MaterialMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/MaterialController.java
@@ -97,29 +97,4 @@
        Material material = ActionUtil.getGson().fromJson(materialStr, Material.class);
        return service.updatePicOrDwg(file,material);
    }
    /**
     * 1.bom解析时就追加特定的(什么时候追加? 解析过后,从系统查询,型号相同类别不同,则型号变更)
     * 示例:
     * 存在 类A 型A,
     * 追加 类A 型A,则型号不变,也不会重复添加
     * 追加 类B 型A,则型号改变,检查也不会被去重,允许添加
     * 追加 类B 型A,
     * 2.物料新增
     * 必须新增类别
     * 3.修复原来数据中可以变更的部分,下面示例中1386无法修复,不处理,因为一种物料对应了两种类别,填充任意一种会导致误解
     * material_id category
     *     1384    组装类
     *     1385    组装类
     *     1386    组装类
     *     1386    出货配件类
     *     1387    组装类
     * @param sign 输入简易签名
     * @return
     */
    @GetMapping("fillCategory")
    public Response updateFillCategory(@RequestParam String sign){
        service.updateFillCategory(sign);
        return new Response().set(1,"完成物料类别自动填充");
    }
}
src/main/java/com/whyc/mapper/MaterialMapper.java
@@ -38,6 +38,4 @@
    List<Material> getSameSubCodeAndModel(List<ProductBom> bomList);
    List<Material> getCategory();
}
src/main/java/com/whyc/service/MaterialService.java
@@ -1,7 +1,6 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@@ -30,7 +29,10 @@
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
@Service
@@ -521,30 +523,5 @@
    public List<Material> getSameSubCodeAndModel(List<ProductBom> bomList) {
        return mapper.getSameSubCodeAndModel(bomList);
    }
    public void updateFillCategory(String sign) {
        if(sign.equals("perryhsu")){ //允许操作
            //联查产品物料历史表,获取物料对应的类别
            List<Material> materialList = mapper.getCategory();
            List<Material> materialWithOneCategoryList = new LinkedList<>();
            Map<Integer, List<Material>> materialIdMap = materialList.stream().collect(Collectors.groupingBy(Material::getId));
            Set<Integer> materialIdSet = materialIdMap.keySet();
            for (Integer materialId : materialIdSet) {
                List<Material> temp = materialIdMap.get(materialId);
                if(temp.size()==1){
                    materialWithOneCategoryList.add(temp.get(0));
                }else{
                    System.err.println("物料id:"+materialId+"对应"+temp.size()+"个类别"+temp.get(0).getCategory()+"/"+temp.get(1).getCategory());
                }
            }
            //将类别回填到物料表
            for (int i = 0; i < materialWithOneCategoryList.size(); i++) {
                Material material = materialWithOneCategoryList.get(i);
                UpdateWrapper<Material> update = Wrappers.update();
                update.set("category",material.getCategory()).eq("id",material.getId());
                mapper.update(null,update);
            }
        }
    }
}
src/main/resources/mapper/MaterialMapper.xml
@@ -302,7 +302,4 @@
            (sub_code = #{item.subCode} and sub_model = #{item.subModel})
        </foreach>
    </select>
    <select id="getCategory" resultType="com.whyc.pojo.Material">
        SELECT distinct m.id,h.category FROM db_doc1.tb_product_bom_history h,db_doc1.tb_material m where h.material_id = m.id order by m.id ;
    </select>
</mapper>