| | |
| | | import com.baomidou.mybatisplus.mapper.Wrapper; |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.core.common.DateUtils; |
| | | import com.zy.crm.manager.entity.Item; |
| | | import com.zy.crm.manager.entity.Pri; |
| | | import com.zy.crm.manager.entity.PriOnline; |
| | | import com.zy.crm.manager.service.ItemService; |
| | | import com.zy.crm.manager.service.PriOnlineService; |
| | | import com.zy.crm.manager.entity.*; |
| | | import com.zy.crm.manager.service.*; |
| | | import com.core.annotations.ManagerAuth; |
| | | import com.core.common.BaseRes; |
| | | import com.core.common.Cools; |
| | | import com.core.common.R; |
| | | import com.core.domain.KeyValueVo; |
| | | import com.zy.crm.common.web.BaseController; |
| | | import com.zy.crm.manager.service.PriService; |
| | | import com.zy.crm.system.entity.Role; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.core.io.ClassPathResource; |
| | | import org.springframework.util.ClassUtils; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.*; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | |
| | |
| | | private PriService priService; |
| | | |
| | | @Autowired |
| | | private ItemService itemService; |
| | | private PlanService planService; |
| | | |
| | | @RequestMapping(value = "/priOnline/{id}/auth") |
| | | @ManagerAuth |
| | |
| | | @RequestParam(required = false)String condition, |
| | | @RequestParam Map<String, Object> param){ |
| | | EntityWrapper<PriOnline> wrapper = new EntityWrapper<>(); |
| | | wrapper.setSqlSelect("id,title,create_time as createTime,filepath,item_id as itemId,order_num as orderNum,template_name as templateName,user_id as userId,status,update_time as updateTime,check_data as checkData,update_user_id as updateUserId,member_id as memberId"); |
| | | wrapper.setSqlSelect("id,title,create_time as createTime,filepath,item_id as itemId,order_num as orderNum,template_name as templateName,user_id as userId,dept_id as deptId,status,update_time as updateTime,check_data as checkData,update_user_id as updateUserId,member_id as memberId"); |
| | | wrapper.in("member_id", getUserRoleBelongsToUserId("allopen")); |
| | | excludeTrash(param); |
| | | convert(param, wrapper); |
| | |
| | | } |
| | | |
| | | private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ |
| | | Long deptId = getDeptId(); |
| | | boolean signUserId = false; |
| | | boolean signDeptId = false; |
| | | for (Map.Entry<String, Object> entry : map.entrySet()){ |
| | | if (entry.getKey().equals("dept_id")){ |
| | | signDeptId = true; |
| | | } |
| | | } |
| | | for (Map.Entry<String, Object> entry : map.entrySet()){ |
| | | String val = String.valueOf(entry.getValue()); |
| | | if (val.contains(RANGE_TIME_LINK)){ |
| | | String[] dates = val.split(RANGE_TIME_LINK); |
| | | wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); |
| | | wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); |
| | | } else if (entry.getKey().equals("dept_id")){ |
| | | if (!val.equals("19")){ |
| | | wrapper.eq(entry.getKey(), val); |
| | | } |
| | | } else if (entry.getKey().equals("user_id") && !signDeptId){ |
| | | signUserId = true; |
| | | wrapper.eq(entry.getKey(), val); |
| | | } else { |
| | | wrapper.like(entry.getKey(), val); |
| | | } |
| | | } |
| | | if (!signUserId && !signDeptId){ |
| | | wrapper.eq("user_id", getUserId()); |
| | | } |
| | | } |
| | | |
| | |
| | | priOnline.setOrderNum(format.format(new Date())); |
| | | //创建人员 |
| | | priOnline.setUserId(getUserId()); |
| | | //创建人员部门 |
| | | priOnline.setDeptId(getDeptId()); |
| | | //更新时间 |
| | | priOnline.setUpdateTime(new Date()); |
| | | //更新人员 |
| | |
| | | //状态,未完成 |
| | | priOnline.setStatus(0); |
| | | //业务员 |
| | | Item item = itemService.selectById(priOnline.getItemId()); |
| | | priOnline.setMemberId(item.getMember()); |
| | | // Item item = itemService.selectById(priOnline.getItemId()); |
| | | Plan plan = planService.selectById(priOnline.getItemId()); |
| | | priOnline.setMemberId(plan.getUserId()); |
| | | |
| | | |
| | | //设置项目流程 |
| | | item.setStep(2); |
| | | itemService.updateById(item); |
| | | plan.setStep(2); |
| | | planService.updateById(plan); |
| | | |
| | | priOnlineService.insert(priOnline); |
| | | return R.ok(); |
| | |
| | | priOnline.setUpdateUserId(getUserId()); |
| | | //状态,未完成 |
| | | priOnline.setStatus(0); |
| | | priOnline.setDeptId(getDeptId()); |
| | | //业务员 |
| | | Item item = itemService.selectById(priOnline.getItemId()); |
| | | priOnline.setMemberId(item.getMember()); |
| | | // Item item = itemService.selectById(priOnline.getItemId()); |
| | | Plan plan = planService.selectById(priOnline.getItemId()); |
| | | priOnline.setMemberId(plan.getUserId()); |
| | | |
| | | priOnlineService.insert(priOnline); |
| | | return R.ok(); |
| | |
| | | |
| | | @RequestMapping(value = "/priOnline/uploadCheck/auth") |
| | | @ManagerAuth |
| | | public R uploadCheck(@RequestBody Map<String,Object> map){ |
| | | PriOnline priOnline = priOnlineService.selectById(Long.parseLong(map.get("id").toString())); |
| | | public R uploadCheck(@RequestParam("id") Integer id, |
| | | @RequestParam("checkData") String checkData, |
| | | @RequestParam("file") MultipartFile[] files){ |
| | | PriOnline priOnline = priOnlineService.selectById(id); |
| | | if (priOnline.getStatus() == 1) { |
| | | return R.error("核价已完成,禁止上传"); |
| | | } |
| | | priOnline.setCheckData(map.get("checkData").toString()); |
| | | priOnline.setCheckData(checkData); |
| | | |
| | | |
| | | MultipartFile file = files[0]; |
| | | SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd_HHmmss"); |
| | | String path = ClassUtils.getDefaultClassLoader().getResource("excel/uploadCheckData").getPath(); |
| | | //文件后缀名 |
| | | String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); |
| | | //上传文件名 |
| | | String filename = format.format(new Date()) + suffix; |
| | | //最终文件路径 |
| | | String filepath = path + "/" + filename; |
| | | |
| | | |
| | | //服务器端保存的文件对象 |
| | | File serverFile = new File(filepath); |
| | | if(!serverFile.exists()) { |
| | | try { |
| | | //创建文件 |
| | | serverFile.createNewFile(); |
| | | //将上传的文件写入到服务器端文件内 |
| | | file.transferTo(serverFile); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | //保存文件名 |
| | | priOnline.setCheckDataFile(filename); |
| | | priOnlineService.updateById(priOnline); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @GetMapping("/priOnline/checkDataDownload/{filename}") |
| | | public void download(@PathVariable String filename, HttpServletResponse response) { |
| | | try { |
| | | ClassPathResource pathResource = new ClassPathResource("excel/uploadCheckData/" + filename); |
| | | File file = pathResource.getFile(); |
| | | InputStream inputStream = pathResource.getInputStream(); |
| | | //输出文件 |
| | | InputStream fis = new BufferedInputStream(inputStream); |
| | | byte[] buffer = new byte[fis.available()]; |
| | | fis.read(buffer); |
| | | fis.close(); |
| | | response.reset(); |
| | | |
| | | //获取文件的名字再浏览器下载页面 |
| | | String name = file.getName(); |
| | | response.addHeader("Content-Disposition", "attachment;filename=" + new String(name.getBytes(), "iso-8859-1")); |
| | | response.addHeader("Content-Length", "" + file.length()); |
| | | OutputStream out = new BufferedOutputStream(response.getOutputStream()); |
| | | response.setContentType("application/octet-stream"); |
| | | out.write(buffer); |
| | | out.flush(); |
| | | out.close(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | @RequestMapping(value = "/priOnline/delete/auth") |
| | |
| | | for (PriOnline priOnline : page.getRecords()){ |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("id", priOnline.getId()); |
| | | map.put("value", priOnline.getOrderNum() + "/" + priOnline.getItemId$() + "/" + priOnline.getMemberId$()); |
| | | map.put("value", priOnline.getOrderNum() + "/" + priOnline.getPlanId$() + "/" + priOnline.getMemberId$()); |
| | | result.add(map); |
| | | } |
| | | return R.ok(result); |