whycxzp
2022-08-25 8353919bb565899a535d1cd633dfa3fd87f629a2
产品bom审批更新
7个文件已修改
55 ■■■■ 已修改文件
src/main/java/com/whyc/controller/WorksheetMainController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/MaterialMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/MaterialService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/ProductService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/WorksheetLinkService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/WorksheetMainService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/MaterialMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/WorksheetMainController.java
@@ -27,7 +27,7 @@
    @PostMapping("submit")
    @ApiOperation("产品图纸及bom提交")
    public Response submit(@RequestBody WorksheetMain main){
    public Response submit(@RequestBody WorksheetMain main) throws IOException {
        DocUser user = ActionUtil.getUser();
        boolean res = service.submit(main,user);
        if(res) {
src/main/java/com/whyc/mapper/MaterialMapper.java
@@ -18,4 +18,6 @@
    List<String> getListByCodeList(List<String> codeList);
    void updateDwgUrl(List<Material> materialDwgUrlNameList);
}
src/main/java/com/whyc/service/MaterialService.java
@@ -71,4 +71,8 @@
    public List<String> getListByCodeList(List<String> codeList) {
        return mapper.getListByCodeList(codeList);
    }
    public void updateDwgUrl(List<Material> materialDwgUrlNameList) {
        mapper.updateDwgUrl(materialDwgUrlNameList);
    }
}
src/main/java/com/whyc/service/ProductService.java
@@ -55,4 +55,8 @@
        query.select("id").eq("parent_code",parentCode).eq("custom_code",customCode);
        return mapper.selectOne(query).getId();
    }
    public Product getById(Integer id) {
        return mapper.selectById(id);
    }
}
src/main/java/com/whyc/service/WorksheetLinkService.java
@@ -164,9 +164,7 @@
                //存于产品下,bom内没对应
                List<String> productUrlList = new LinkedList<>();
                List<String> productUrlNameList = new LinkedList<>();
                List<String> materialUrlNameList = new LinkedList<>();
                List<String> picUrlNameList = new LinkedList<>();
                List<Material> materialDwgUrlNameList = new LinkedList<>();
                fileUrlList = FileUtil.getStaticFilePath(file,fileUrlList);
                //图纸dwg 子件/产品
@@ -177,9 +175,16 @@
                    boolean existFlag = false;
                    for (ProductBomApproving approving :approvingList){
                        String filename = dwgUrl.substring(dwgUrl.lastIndexOf(File.separator) + 1, dwgUrl.length() - 4);
                        String fileFullName = dwgUrl.substring(dwgUrl.lastIndexOf(File.separator) + 1);
                        if(approving.getSubModel().toUpperCase().equals(filename.toUpperCase())){
                            materialUrlList.add(dwgUrl);
                            existFlag = true;
                            Material temp = new Material();
                            temp.setSubModel(approving.getSubModel());
                            temp.setNotes(CommonUtil.getProjectDir() + File.separator + "doc_file" + File.separator + "material"
                                    + File.separator + fileFullName);
                            materialDwgUrlNameList.add(temp);
                            break;
                        }
                    }
@@ -192,8 +197,10 @@
                picUrlList.forEach(picUrl->{
                    for (ProductBomApproving approving :approvingList){
                        String filename = picUrl.substring(picUrl.lastIndexOf(File.separator) + 1, picUrl.length() - 4);
                        String fileFullName = picUrl.substring(picUrl.lastIndexOf(File.separator) + 1);
                        if(approving.getSubModel().toUpperCase().equals(filename.toUpperCase())){
                            picUrlNameList.add(picUrl);
                            approving.setPictureUrl(CommonUtil.getProjectDir() + File.separator + "doc_file" + File.separator + "material"
                            + File.separator + fileFullName);
                            break;
                        }
                    }
@@ -222,7 +229,7 @@
                }
                productUrlList.forEach(productUrl->{
                    String dwgName = productUrl.substring(productUrl.lastIndexOf(File.separator) + 1, productUrl.length() - 4);
                    productUrlNameList.add(dwgName);
                    try {
                        FileCopyUtils.copy(new File(productUrl),new File(productDir+File.separator+dwgName+".dwg"));
                    } catch (IOException e) {
@@ -232,7 +239,6 @@
                materialUrlList.forEach(materialUrl->{
                    String dwgName = materialUrl.substring(materialUrl.lastIndexOf(File.separator) + 1, materialUrl.length() - 4);
                    materialUrlNameList.add(dwgName);
                    try {
                        FileCopyUtils.copy(new File(materialUrl),new File(materialDir+File.separator+dwgName+".dwg"));
                    } catch (IOException e) {
@@ -336,8 +342,8 @@
                });
                mService.insertBatch(materialList);
                //将dwg图纸和pic图片,全部更新到对应的记录url中 TODO
                //将dwg图纸,全部更新到对应的记录url中
                mService.updateDwgUrl(materialDwgUrlNameList);
                /*List<ProductBomApproving> fileBomApprovingList = approvingList.stream()
                        .filter(productBomApproving ->
                                productBomApproving.getPictureUrl() != null || productBomApproving.getDwgUrl() != null
src/main/java/com/whyc/service/WorksheetMainService.java
@@ -18,6 +18,7 @@
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
@@ -71,8 +72,11 @@
    @Autowired
    private ProductSoftwareService productSoftwareService;
    @Autowired
    private ProductService productService;
    @Transactional
    public boolean submit(WorksheetMain main, DocUser user) {
    public boolean submit(WorksheetMain main, DocUser user) throws IOException {
        main.setType(1);
        ProductApproving productApproving = main.getProductApproving();
        List<ProductBomApproving> bomList = productApproving.getBomApprovingList();
@@ -122,8 +126,18 @@
        }
        //产品bom/图纸图片提交
        if(productApproving.getCustomCode()!=null && bomList.get(0).getId()!=null) { //与前端约定 定制表单号关联产品,则关联的产品id写入id
            Product product = productService.getById(bomList.get(0).getId());
            List<ProductBom> productBomList = pbService.getBomByProductId(bomList.get(0).getId());
            //product下的图纸复制到新的审批路径
            String rootFile = CommonUtil.getRootFile();
            String dateFormat = new SimpleDateFormat("YYYY-MM").format(new Date());
            long timeStamp = System.currentTimeMillis();
            String filePath = rootFile + "product_approving" + File.separator + user.getName() + File.separator + dateFormat+ File.separator + timeStamp;
            String inFilePath = rootFile + "product" + File.separator + product.getParentModel() + File.separator + "standard"+ File.separator;
            File parentFile = new File(filePath);
            FileCopyUtils.copy(new File(inFilePath),parentFile);
            productApproving.setFileUrl(filePath);
            bomList.clear();
            productBomList.forEach(bom->{
                ProductBomApproving approving = new ProductBomApproving();
src/main/resources/mapper/MaterialMapper.xml
@@ -159,6 +159,11 @@
        <collection property="products" javaType="java.util.ArrayList" ofType="com.whyc.pojo.Product" column="{subCode=sub_code}" select="selectMaterialInProduct">
        </collection>
    </resultMap>
    <update id="updateDwgUrl">
        <foreach collection="list" item="item" separator=";">
            update db_doc.tb_material set dwg_url = #{item.notes} where sub_model = #{item.subModel}
        </foreach>
    </update>
    <select id="getMaterialLimit" resultMap="materialList">
         select * from tb_Material