中扬CRM客户关系管理系统
#
Junjie
2023-09-08 2439c81ef23336c119eb755db0d0d1d0fff4ada5
src/main/java/com/zy/crm/manager/controller/PlanController.java
@@ -12,9 +12,14 @@
import com.core.common.R;
import com.core.domain.KeyValueVo;
import com.core.exception.CoolException;
import com.zy.crm.common.entity.RouteCollectCountType;
import com.zy.crm.common.model.SettleDto;
import com.zy.crm.common.service.OssService;
import com.zy.crm.common.utils.FileSaveExampleUtil;
import com.zy.crm.common.utils.SetOfUtils;
import com.zy.crm.common.web.BaseController;
import com.zy.crm.manager.controller.result.FollowerTableVo;
import com.zy.crm.manager.entity.Order;
import com.zy.crm.manager.entity.Plan;
import com.zy.crm.manager.entity.PlanFoll;
import com.zy.crm.manager.entity.PlanType;
@@ -33,11 +38,20 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.core.io.Resource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
import static java.util.stream.Collectors.toList;
@RestController
public class PlanController extends BaseController {
@@ -48,6 +62,8 @@
    private PlanTypeService planTypeService;
    @Autowired
    private DeptService deptService;
    @Autowired
    private OssService ossService;
    @GetMapping(value = "/plan/{id}/auth")
    @ManagerAuth
@@ -94,7 +110,7 @@
    }
    @RequestMapping(value = "/plan/add/auth")
    @ManagerAuth
    @ManagerAuth(memo = "添加规划申请单")
    @Transactional
    public R add(@RequestParam Map<String, Object> param) {
        // pre
@@ -143,13 +159,46 @@
    }
   @RequestMapping(value = "/plan/update/auth")
   @ManagerAuth
   @ManagerAuth(memo = "更新规划申请单")
    @Transactional
    public R update(@RequestParam Map<String, Object> param){
//        String planNeed = null;
//        Integer id = null;
//        for (Map.Entry<String, Object> entry : param.entrySet()){
//            String val = String.valueOf(entry.getValue());
//            if (Cools.isEmpty(val)){
//                continue;
//            }
//            if (entry.getKey().equals("planNeed")){
//                planNeed = val;
//            }
//            if (entry.getKey().equals("id")){
//                try{
//                    id = Integer.parseInt(val);
//                }catch (Exception e){
//                    return R.error();
//                }
//            }
//        }
        if (Cools.isEmpty(param) || Cools.isEmpty(param.get("id"))){
            return R.error();
        }
//        List<String> planNeedbs = new ArrayList<>(Arrays.asList(planNeed.split("-")));
//        if (planNeedbs.get(0).equals("[object Object]")){
//            planNeedbs.remove(0);
//            Plan plan1 = planService.selectById(id);
//            List<String> planNeedas = Arrays.asList(plan1.getPlanNeed().split("-"));
//            List<String> routeIntersectionString = SetOfUtils.getRouteIntersectionString(planNeedas, planNeedbs, RouteCollectCountType.DEDUPLICATIONUNION);
//            planNeed="";
//            for (String planNeedss:routeIntersectionString){
//                planNeed=planNeed==""? planNeedss:planNeed + "-" + planNeedss;
//            }
//        }
        // pre
        Plan plan = JSON.parseObject(JSON.toJSONString(param), Plan.class);
//        plan.setPlanNeed(planNeed);
        param.entrySet().removeIf(next -> this.fields.contains(next.getKey()));
        plan.setUpdateBy(getUserId());
        plan.setUpdateTime(new Date());
@@ -163,7 +212,7 @@
    }
    @RequestMapping(value = "/plan/delete/auth")
    @ManagerAuth
    @ManagerAuth(memo = "删除规划申请单")
    public R delete(@RequestParam(value="ids[]") Long[] ids){
         for (Long id : ids){
            planService.deleteById(id);
@@ -171,8 +220,106 @@
        return R.ok();
    }
    @RequestMapping(value = "/plan/insert/file/auth")
//    @ManagerAuth
    public R insertFile(@RequestParam("planId") String planId,@RequestParam MultipartFile file){
        try{
            InputStream inputStream = file.getInputStream();
            // 获取文件的内容类型
            String contentType = file.getContentType();
            String suffix = getFileSuffix(file.getOriginalFilename());
            String url = ossService.upload(inputStream, suffix,contentType);
//            String url = "http://tjdt.oss-cn-hangzhou.aliyuncs.com/"+file.getOriginalFilename();
            String[] names = url.split("com/");
            String name= names[1];
            String[] split = planId.split("-");
            int id = Integer.parseInt(split[1]);
            planService.increasePlanUrl(id,url,name,file.getSize());
            /*String[] split = planId.split("-");
            int id = Integer.parseInt(split[1]);
            System.out.println("---开始---");
            String savePath = "D:/crm/plan/file/"+id+"/"; // 指定保存文件的路径
            try{
                FileSaveExampleUtil.saveFile(file, savePath);
            }catch (Exception e){
                return R.error();
            }*/
            return R.ok();
        }catch (Exception e){
            System.out.println(e);
            return R.error();
        }
    }
    private String getFileSuffix(String filename) {
        int dotIndex = filename.lastIndexOf(".");
        if (dotIndex > 0 && dotIndex < filename.length() - 1) {
            return filename.substring(dotIndex + 1);
        }
        return "";
    }
    @RequestMapping(value = "/plan/delete/file/auth")
//    @ManagerAuth
    public R deleteFile(@RequestParam("planId") String planId,@RequestParam MultipartFile file){
        planId="上传文件-20";
        String[] split = planId.split("-");
        int id = Integer.parseInt(split[1]);
        System.out.println("---开始---");
        String savePath = "D:/crm/plan/file/"+id+"/"+file.getName(); // 指定保存文件的路径
        try{
            FileSaveExampleUtil.deleteFilesInDirectory(savePath);
        }catch (Exception e){
            return R.error();
        }
        return R.ok();
    }
    @RequestMapping(value = "/plan/view/file/auth")
//    @ManagerAuth
    public R viewFile(@RequestParam("planId") String planId){
        int id = Integer.parseInt(planId);
//        String savePath = "D:/crm/plan/file/"+id+"/"; // 指定保存文件的路径
        try{
            List<Integer> ids = planService.selectPlanUrlId(id);
            List<FileSaveExampleUtil.FileDTO> fileDTOS = new ArrayList<>();
            for (int id2 : ids){
                String url = planService.selectPlanUrlPlanIdUrl(id2);
                String name = planService.selectPlanUrlPlanIdName(id2);
                Long size = planService.selectPlanUrlPlanIdSize(id2);
                FileSaveExampleUtil.FileDTO dto = new FileSaveExampleUtil.FileDTO(name,size,url);
                fileDTOS.add(dto);
            }
//            List<FileSaveExampleUtil.FileDTO> fileDTOS = FileSaveExampleUtil.viewFileList(savePath);
            return R.ok(fileDTOS);
        }catch (Exception e){
            return R.error();
        }
    }
    @RequestMapping(value = "/plan/download/file/auth")
//    @ManagerAuth
    public R downloadFile(@RequestParam("downloadUrl") String downloadUrl,HttpServletResponse response){
//        System.out.println("---开始---");
//        MultipartFile
        try{
            String[] names = downloadUrl.split("com/");
            String name= names[1];
//            ResponseEntity<Resource> resourceResponseEntity = FileSaveExampleUtil.downloadFile(downloadUrl, response);
//            return R.ok(resourceResponseEntity);
            String download = ossService.download(name);
            return R.ok().add(download);
        }catch (Exception e){
        }
        return R.error();
    }
    @PostMapping(value = "/plan/approval/auth")
    @ManagerAuth
    @ManagerAuth(memo = "审批申请单")
    public R approval(@RequestParam Long planId,
                      @RequestParam(required = false) Long plannerId){
        Plan plan = planService.selectById(planId);
@@ -410,6 +557,30 @@
        return R.ok(result);
    }
    @RequestMapping(value = "/planQueryName/auth")
    @ManagerAuth
    public R queryName(String condition) {
        EntityWrapper<Plan> wrapper = new EntityWrapper<>();
        wrapper.like("name", condition);
        Long id = getRole().getId();
        if (id.equals(1L)) {
            wrapper.eq("host_id", 1);
        } else if (id.equals(2L)) {
            wrapper.eq("dept_id", getDeptId());
        } else {
            wrapper.eq("user_id", getUserId());
        }
        Page<Plan> page = planService.selectPage(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (Plan plan : page.getRecords()){
            Map<String, Object> map = new HashMap<>();
            map.put("id", plan.getId());
            map.put("value", plan.getName()+"---"+plan.getId());
            result.add(map);
        }
        return R.ok(result);
    }
    @RequestMapping(value = "/plan/check/column/auth")
    @ManagerAuth
    public R query(@RequestBody JSONObject param) {