whycxzp
4 小时以前 ac30fef411f7e61a9c4bbedaf338fbf26396cd2e
工单审批完善
3个文件已修改
83 ■■■■ 已修改文件
src/main/java/com/whyc/controller/WorkflowMainController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/web_site/WorkflowMain.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/WorkflowMainService.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/WorkflowMainController.java
@@ -15,6 +15,7 @@
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;
import java.util.Map;
@@ -32,10 +33,10 @@
        return service.submit(main);
    }*/
    @PostMapping("submit")
    @ApiOperation(value = "提交单据", notes = "传参:taskDesc,mainType,mainTypeCN,mainTypeEn,dealRoleId,processLevel")
    public Response<Integer> submit(@RequestParam String mainJsonStr, @RequestPart List<MultipartFile> fileList, @RequestPart List<MultipartFile>  picList){
    @ApiOperation(value = "提交单据", notes = "")
    public Response<Integer> submit(@RequestParam String mainJsonStr, @RequestPart(required = false) List<MultipartFile> fileList, @RequestPart(required = false) List<MultipartFile>  picList) throws IOException {
        WorkflowMain  main = JsonUtil.getGson().fromJson(mainJsonStr, WorkflowMain.class);
        return service.submit(main);
        return service.submit(main,fileList,picList);
    }
src/main/java/com/whyc/pojo/web_site/WorkflowMain.java
@@ -69,16 +69,16 @@
    @ApiModelProperty("工单状态")
    private Integer status;
    /**附件名称*/
    @ApiModelProperty("附件名称")
    @ApiModelProperty("附件名称,多个用逗号隔开")
    private String fileName;
    /**附件地址*/
    @ApiModelProperty("附件地址")
    @ApiModelProperty("附件地址,多个用逗号隔开")
    private String fileUrl;
    /**图片名称*/
    @ApiModelProperty("图片名称")
    @ApiModelProperty("图片名称,多个用逗号隔开")
    private String picName;
    /**图片地址*/
    @ApiModelProperty("图片地址")
    @ApiModelProperty("图片地址,多个用逗号隔开")
    private String picUrl;
    /**归档意见*/
    @ApiModelProperty("归档意见")
@@ -103,9 +103,4 @@
    @TableField(exist = false)
    private List<WorkflowDevice> deviceList;
    @TableField(exist = false)
    private List<MultipartFile> fileList;
    @TableField(exist = false)
    private List<MultipartFile> picList;
}
src/main/java/com/whyc/service/WorkflowMainService.java
@@ -20,9 +20,12 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.ServletContext;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -244,7 +247,7 @@
     */
    @Transactional
    public Response submit(WorkflowMain main){
    public Response submit(WorkflowMain main, List<MultipartFile> fileList, List<MultipartFile> picList) throws IOException {
        //1.提交到单据审批流程
        //如果存在关联单据id,首先校验提交的数量
        Date now = new Date();
@@ -299,6 +302,64 @@
                deviceList.get(i).setQuantityUnprocessed(deviceList.get(i).getQuantity());
            }
        }
        //如果存在附件和图片,则存入对应字段
        //对存储路径进行定义
        String timeFormat = ThreadLocalUtil.format(ThreadLocalUtil.TIME_YYYY_MM_DD_HH_MM_SS_UNION, now);
        String dirMonth = ThreadLocalUtil.format(ThreadLocalUtil.TIME_YYYY_MM, now);
        String fileDirPath = CommonUtil.getRootFile() + "workflow" + File.separator + dirMonth;
        File fileDir = new File(fileDirPath);
        //如果文件夹不存在则创建
        if (!fileDir.exists()) {
            fileDir.mkdirs();
        }
        StringBuilder fileUrlSb = new StringBuilder();
        StringBuilder fileNameSb = new StringBuilder();
        if (fileList != null && fileList.size() > 0) {
            for (int i = 0; i < fileList.size(); i++) {
                MultipartFile multipartFile = fileList.get(i);
                String fileName = multipartFile.getOriginalFilename();
                //将fileName中可能存在的,去掉
                fileName = fileName.replace(",","");
                String filePath = fileDirPath + File.separator + timeFormat+"_"+fileName;
                multipartFile.transferTo(new File(filePath));
                String split = "pis_file"+File.separator+"workflow";
                String fileUrl = File.separator + filePath.substring(filePath.indexOf(split));
                if(i == fileList.size()-1) {
                    fileUrlSb.append(fileUrl);
                    fileNameSb.append(fileName);
                }else {
                    fileUrlSb.append(fileUrl).append(",");
                    fileNameSb.append(fileName).append(",");
                }
            }
        }
        main.setFileUrl(fileUrlSb.toString());
        main.setFileName(fileNameSb.toString());
        StringBuilder picUrlSb = new StringBuilder();
        StringBuilder picNameSb = new StringBuilder();
        if (picList != null && picList.size() > 0) {
            for (int i = 0; i < picList.size(); i++) {
                MultipartFile multipartFile = picList.get(i);
                String picName = multipartFile.getOriginalFilename();
                //将picName中可能存在的,去掉
                picName = picName.replace(",","");
                String picPath = fileDirPath + File.separator + picName;
                multipartFile.transferTo(new File(picPath));
                String split = "pis_file"+File.separator+"workflow";
                String picUrl = File.separator + picPath.substring(picPath.indexOf(split));
                if(i == picList.size()-1) {
                    picUrlSb.append(picUrl);
                    picNameSb.append(picName);
                }else {
                    picUrlSb.append(picUrl).append(",");
                    picNameSb.append(picName).append(",");
                }
            }
        }
        main.setPicUrl(picUrlSb.toString());
        main.setPicName(picNameSb.toString());
        add(main);
        //主表关联的物料插入
        for (WorkflowDevice device : deviceList) {