9ea99f6d46caf6d5c896c6ea07a835933f23867c..b41aff58a0c2a4f8463db66ebba44a05a43a7f10
2025-06-13 whyclxw
产品验收管理
b41aff 对比 | 目录
2025-06-13 whyclxw
产品验收管理
4d325f 对比 | 目录
4个文件已添加
273 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/BomAcceptanceController.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/BomAcceptanceMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/BomAcceptance.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BomAcceptanceService.java 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/BomAcceptanceController.java
New file
@@ -0,0 +1,42 @@
package com.whyc.controller;
import com.whyc.dto.Response;
import com.whyc.pojo.AttachLock;
import com.whyc.pojo.BOMFeedback;
import com.whyc.pojo.BomAcceptance;
import com.whyc.service.AttachLockService;
import com.whyc.service.BomAcceptanceService;
import com.whyc.util.ActionUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;
@Api(tags = "产品验收管理")
@RestController
@RequestMapping("acceptance")
public class BomAcceptanceController {
    @Autowired
    private BomAcceptanceService service;
    @ApiOperation(value = "上传产品验收信息")
    @PostMapping("uploadBomAcceptance")
    public Response uploadBomAcceptance(@RequestParam(required = false) MultipartFile fileLeft,@RequestParam(required = false) MultipartFile fileRight
            ,@RequestParam(required = false) MultipartFile fileFront,@RequestParam(required = false) MultipartFile fileBack,
            @RequestPart(required = false) List<MultipartFile> multipartFileList, @RequestParam String feedbackJson) throws IOException {
        BomAcceptance bomAcceptance = ActionUtil.getGson().fromJson(feedbackJson, BomAcceptance.class);
        return service.uploadBomAcceptance(fileLeft,fileRight,fileFront,fileBack,multipartFileList,bomAcceptance);
    }
    @ApiOperation("查询产品验收信息")
    @PostMapping("getBomAcceptance")
    public Response getBomAcceptance(@RequestBody BomAcceptance bomAcceptance,@RequestParam int pageNum,@RequestParam int pageSize){
        return service.getBomAcceptance(bomAcceptance,pageNum,pageSize);
    }
}
src/main/java/com/whyc/mapper/BomAcceptanceMapper.java
New file
@@ -0,0 +1,6 @@
package com.whyc.mapper;
import com.whyc.pojo.BomAcceptance;
public interface BomAcceptanceMapper extends CustomMapper<BomAcceptance>{
}
src/main/java/com/whyc/pojo/BomAcceptance.java
New file
@@ -0,0 +1,90 @@
package com.whyc.pojo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
 * <p>
 * 产品验收信息表
 * </p>
 *
 * @author lxw
 * @since 2025-06-13
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_bom_acceptance")
@ApiModel(value="BomAcceptance对象", description="产品验收信息表")
public class BomAcceptance implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "num", type = IdType.AUTO)
    private Integer num;
    @ApiModelProperty(value = "研发负责人")
    private String directName;
    @ApiModelProperty(value = "产品系列")
    private String bomSeries;
    @ApiModelProperty(value = "产品型号")
    private String bomModel;
    @ApiModelProperty(value = "设备真实参数(电压电流范围放开后的参数)")
    private String devParam;
    @ApiModelProperty(value = "标准机参数(对外的)")
    private String standParam;
    @ApiModelProperty(value = "长x宽x高(mm)")
    private String bomSize;
    @ApiModelProperty(value = "主机净重(KG)")
    private String devWeight;
    @ApiModelProperty(value = "整机全重(含包装箱,配件)(KG)")
    private String devWeightAll;
    @ApiModelProperty(value = "左侧图")
    private String devPicleft;
    @ApiModelProperty(value = "右侧图")
    private String devPicright;
    @ApiModelProperty(value = "正面图")
    private String devPicfront;
    @ApiModelProperty(value = "后面图")
    private String devPicback;
    @ApiModelProperty(value = "配件图")
    private String sparePicpart;
    @TableField(exist = false)
    private List<String> nameList;
    @ApiModelProperty(value = "配件型号规格")
    private String sparePartmodel;
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date createTime;
    @ApiModelProperty("创建时间")
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date createTime1;
}
src/main/java/com/whyc/service/BomAcceptanceService.java
New file
@@ -0,0 +1,135 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.dto.Response;
import com.whyc.mapper.BomAcceptanceMapper;
import com.whyc.pojo.BOMFeedback;
import com.whyc.pojo.BomAcceptance;
import com.whyc.pojo.DefectiveProducts;
import com.whyc.util.CommonUtil;
import com.whyc.util.FileUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import static com.whyc.util.ActionUtil.createFilefolderIFNotExist;
@Service
public class BomAcceptanceService {
    @Autowired(required = false)
    private BomAcceptanceMapper mapper;
    //上传产品验收信息
    public Response uploadBomAcceptance(MultipartFile fileLeft, MultipartFile fileRight, MultipartFile fileFront, MultipartFile fileBack, List<MultipartFile> multipartFileList, BomAcceptance bomAcceptance) throws IOException {
        Date date = new Date();
        long time = date.getTime();
        String rootFile = CommonUtil.getRootFile();
        //配件存储
        if(multipartFileList!=null && multipartFileList.size()!=0){
            String spareDirSuffix = "acceptance_bom" + File.separator + time + File.separator+ "spare" + File.separator;
            String spareDir = rootFile + spareDirSuffix;
            File fileDir = new File(spareDir);
            if (!fileDir.exists()) {
                fileDir.mkdirs();
            }
            for (int i = 0; i < multipartFileList.size(); i++) {
                MultipartFile multipartFile = multipartFileList.get(i);
                //存储文件
                String originalFilename = multipartFile.getOriginalFilename();
                String fileName = originalFilename.substring(0, originalFilename.lastIndexOf("."));
                String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
                String sparePath = spareDir + fileName + suffix;
                File file = new File(sparePath);
                multipartFile.transferTo(file);
            }
            bomAcceptance.setSparePicpart(spareDirSuffix);
        }
        String devDirSuffix = "acceptance_bom" + File.separator + time + File.separator+ "dev" + File.separator;
        String devDir = rootFile + devDirSuffix;
        //左视图
        if(fileLeft!=null){
            //存储文件
            String originalFilename = fileLeft.getOriginalFilename();
            String fileName = originalFilename.substring(0, originalFilename.lastIndexOf("."));
            String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
            String path = devDir + fileName + suffix;
            createFilefolderIFNotExist(path);
            fileLeft.transferTo(new File(path));
            bomAcceptance.setDevPicleft("doc_file" + File.separator + devDirSuffix+originalFilename);
        }
        //右视图
        if(fileRight!=null){
            //存储文件
            String originalFilename = fileRight.getOriginalFilename();
            String fileName = originalFilename.substring(0, originalFilename.lastIndexOf("."));
            String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
            String path = devDir + fileName + suffix;
            createFilefolderIFNotExist(path);
            fileRight.transferTo(new File(path));
            bomAcceptance.setDevPicright("doc_file" + File.separator + devDirSuffix+originalFilename);
        }
        //正面图
        if(fileFront!=null){
            //存储文件
            String originalFilename = fileFront.getOriginalFilename();
            String fileName = originalFilename.substring(0, originalFilename.lastIndexOf("."));
            String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
            String path = devDir + fileName + suffix;
            createFilefolderIFNotExist(path);
            fileFront.transferTo(new File(path));
            bomAcceptance.setDevPicfront("doc_file" + File.separator + devDirSuffix+originalFilename);
        }
        //左视图
        if(fileBack!=null){
            //存储文件
            String originalFilename = fileBack.getOriginalFilename();
            String fileName = originalFilename.substring(0, originalFilename.lastIndexOf("."));
            String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
            String path = devDir + fileName + suffix;
            createFilefolderIFNotExist(path);
            fileBack.transferTo(new File(path));
            bomAcceptance.setDevPicback("doc_file" + File.separator + devDirSuffix+originalFilename);
        }
        mapper.insert(bomAcceptance);
        return new Response().set(1,true,"上传成功");
    }
    //查询产品验收信息
    public Response getBomAcceptance(BomAcceptance bomAcceptance, int pageNum, int pageSize) {
        PageHelper.startPage(pageNum,pageSize);
        QueryWrapper wrapper=new QueryWrapper();
        if(bomAcceptance.getDirectName()!=null){
            wrapper.like("direct_name",bomAcceptance.getDirectName());
        }
        if(bomAcceptance.getBomSeries()!=null){
            wrapper.like("bom_series",bomAcceptance.getBomSeries());
        }
        if(bomAcceptance.getBomModel()!=null){
            wrapper.like("bom_model",bomAcceptance.getBomModel());
        }
        if(bomAcceptance.getCreateTime()!=null){
            wrapper.ge("create_time",bomAcceptance.getCreateTime());
        }
        if(bomAcceptance.getCreateTime1()!=null){
            wrapper.le("create_time",bomAcceptance.getCreateTime1());
        }
        List<BomAcceptance> list = mapper.selectList(wrapper);
        String rootFile = CommonUtil.getRootFile();//主路径
        if(list!=null&&list.size()>0){
            for (BomAcceptance acceptance:list) {
                acceptance.setSparePicpart("doc_file"+File.separator+acceptance.getSparePicpart());
                String filePath=rootFile+acceptance.getSparePicpart();
                //获取文件夹下所有的图片名
                acceptance.setNameList(FileUtil.getFileNameWithOutDirectory(filePath));
            }
        }
        PageInfo  pageInfo=new PageInfo(list);
        return new Response().setII(1,list.size()>0,pageInfo,"查询产品验收信息");
    }
}