diff --git a/oms/src/main/java/com/yxt/oms/apiadmin/aggregation/CrmFileRest.java b/oms/src/main/java/com/yxt/oms/apiadmin/aggregation/CrmFileRest.java new file mode 100644 index 0000000..375a3a0 --- /dev/null +++ b/oms/src/main/java/com/yxt/oms/apiadmin/aggregation/CrmFileRest.java @@ -0,0 +1,35 @@ +package com.yxt.oms.apiadmin.aggregation; + +import com.yxt.common.core.result.ResultBean; +import com.yxt.oms.biz.func.crmfile.CommonAppendixSelectQuery; +import com.yxt.oms.biz.func.crmfile.CommonAppendixVo; +import com.yxt.oms.biz.func.crmfile.CrmFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author Fan + * @description + * @date 2024/7/29 10:08 + */ +@Api(tags = "客户跟进记录") +@RestController +@RequestMapping("v1/crmfile") +public class CrmFileRest { + + @Autowired + private CrmFileService crmFileService; + + @ApiOperation("Pc端查询附件") + @PostMapping("/getPcAppendix") + public ResultBean> getPcAppendix(@RequestBody CommonAppendixSelectQuery query) { + return crmFileService.getPcAppendix(query); + } +} diff --git a/oms/src/main/java/com/yxt/oms/apiadmin/aggregation/CrmVisitRest.java b/oms/src/main/java/com/yxt/oms/apiadmin/aggregation/CrmVisitRest.java index 7523d31..d2a40d1 100644 --- a/oms/src/main/java/com/yxt/oms/apiadmin/aggregation/CrmVisitRest.java +++ b/oms/src/main/java/com/yxt/oms/apiadmin/aggregation/CrmVisitRest.java @@ -61,6 +61,7 @@ public class CrmVisitRest { @ApiOperation("Pc查看详情及修改回显") @GetMapping("/fetchSid/{sid}") + @ResponseBody public ResultBean fetchSid(@PathVariable("sid") String sid){ return crmVisitService.fetchSid(sid); } @@ -125,11 +126,11 @@ public class CrmVisitRest { public ResultBean update(@RequestBody CrmVisitDto dto, @PathVariable("sid") String sid){ ResultBean rb = ResultBean.fireFail(); - int i = crmVisitService.updateBySid(dto, sid); - if (i == 0) { - return rb.fail().setMsg("修改失败"); + boolean b = crmVisitService.updateBySid(dto, sid); + if (!b) { + return rb.setMsg("修改失败"); } - ResultBean delFiles = crmFileFeign.deleteFiles(sid); + ResultBean delFiles = crmFileFeign.deleteFiles(sid,"0004"); if (delFiles != null) { List pcCrmvisitAppendixDtos = dto.getList(); for (PcCrmVisitAppendixDto pcCrmvisitAppendixDto : pcCrmvisitAppendixDtos) { diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempDto.java b/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempDto.java index bbe35a3..edc609e 100644 --- a/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempDto.java +++ b/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempDto.java @@ -4,6 +4,7 @@ package com.yxt.oms.biz.func.crmcustomer; import com.yxt.common.core.dto.Dto; import com.yxt.oms.biz.func.crmvisit.PcCrmVisitAppendixDto; +import com.yxt.oms.utils.FileQueryUrl; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -135,6 +136,9 @@ public class CrmCustomerTempDto implements Dto { @ApiModelProperty(value = "见证材料的集合,编辑保存时无此字段") private List crmVisitAppendixDtoList = new ArrayList<>(); + //客户档案 + @ApiModelProperty(value = "客户档案") + private List customerFiles = new ArrayList<>(); private String orgPath; private String useOrgSid; diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempService.java b/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempService.java index e2b1f67..fb81c9d 100644 --- a/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempService.java +++ b/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempService.java @@ -7,6 +7,9 @@ import com.yxt.common.base.utils.HttpStatusEnum; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; +import com.yxt.oms.biz.func.crmfile.CommonAppendixSelectQuery; +import com.yxt.oms.biz.func.crmfile.CommonAppendixVo; +import com.yxt.oms.biz.func.crmfile.CommonAttachTypeEnum; import com.yxt.oms.biz.func.crmfile.PcCommonAppendixDto; import com.yxt.oms.biz.func.crmvisit.CrmVisitService; import com.yxt.oms.biz.func.crmvisit.PcCrmVisitAppendixDto; @@ -20,6 +23,7 @@ import com.yxt.oms.feign.portal.sysorganization.SysOrganizationFeign; import com.yxt.oms.feign.portal.sysstafforg.SysStaffOrgFeign; import com.yxt.oms.feign.portal.sysuser.SysUserFeign; import com.yxt.oms.feign.portal.sysuser.SysUserVo; +import com.yxt.oms.utils.FileQueryUrl; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -189,6 +193,22 @@ public class CrmCustomerTempService { } crmFileFeign.saveCommonAppendix(visitSid, pcCommonAppendixDtoList); } + // 增加客户档案附件信息 + if (dto.getCustomerFiles().size() != 0) { + List pcCommonAppendixDtoList = new ArrayList<>(); + List list = dto.getCustomerFiles(); + for (int i = 0; i < list.size(); i++) { + PcCommonAppendixDto pcCommonAppendixDto = new PcCommonAppendixDto(); + FileQueryUrl url = list.get(i); + if (StringUtils.isNotBlank(dto.getUserSid())) { + pcCommonAppendixDto.setCreateBySid(dto.getUserSid()); + } + pcCommonAppendixDto.setFilePath(url.getUrl()); + pcCommonAppendixDtoList.add(pcCommonAppendixDto); + } + crmFileFeign.saveAppendix(visitSid, CommonAttachTypeEnum.CUSTOMER_FILE.getAttachType(), pcCommonAppendixDtoList); + } + return crmCustomerTemp; } @@ -255,6 +275,23 @@ public class CrmCustomerTempService { customerTemp.setUseOrgSid(dto.getUseOrgSid()); } crmCustomerTempFeign.updateEntity(customerTemp); + crmFileFeign.deleteFiles(sid, CommonAttachTypeEnum.CUSTOMER_FILE.getAttachType()); + // 增加客户档案附件信息 + if (dto.getCustomerFiles().size() != 0) { + List pcCommonAppendixDtoList = new ArrayList<>(); + List list = dto.getCustomerFiles(); + for (int i = 0; i < list.size(); i++) { + PcCommonAppendixDto pcCommonAppendixDto = new PcCommonAppendixDto(); + FileQueryUrl url = list.get(i); + if (StringUtils.isNotBlank(dto.getUserSid())) { + pcCommonAppendixDto.setCreateBySid(dto.getUserSid()); + } + pcCommonAppendixDto.setFilePath(url.getUrl()); + pcCommonAppendixDtoList.add(pcCommonAppendixDto); + } + crmFileFeign.saveAppendix(sid, CommonAttachTypeEnum.CUSTOMER_FILE.getAttachType(), pcCommonAppendixDtoList); + } + return rb.success(); } @@ -267,6 +304,19 @@ public class CrmCustomerTempService { CrmCustomerTempVo vo = new CrmCustomerTempVo(); CrmCustomerTemp crmCustomerTemp = this.fetchBySid(sid); BeanUtil.copyProperties(crmCustomerTemp, vo); + CommonAppendixSelectQuery appendixSelectQuery = new CommonAppendixSelectQuery(); + appendixSelectQuery.setLinkSid(sid); + appendixSelectQuery.setAttachType(CommonAttachTypeEnum.CUSTOMER_FILE.getAttachType()); + List appendixVos = crmFileFeign.getPcAppendix(appendixSelectQuery).getData(); + if (!appendixVos.isEmpty() && appendixVos.size() > 0) { + List list = new ArrayList<>(); + for (CommonAppendixVo appendixVo : appendixVos) { + FileQueryUrl queryUrl = new FileQueryUrl(); + queryUrl.setUrl(appendixVo.getFilePath()); + list.add(queryUrl); + } + vo.setCustomerFiles(list); + } return vo; } } diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempUpdateDto.java b/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempUpdateDto.java index 8957ce4..bb1e8e4 100644 --- a/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempUpdateDto.java +++ b/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempUpdateDto.java @@ -1,11 +1,14 @@ package com.yxt.oms.biz.func.crmcustomer; import com.yxt.common.core.dto.Dto; +import com.yxt.oms.utils.FileQueryUrl; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Pattern; +import java.util.ArrayList; +import java.util.List; /** * @Author dimengzhe @@ -107,6 +110,10 @@ public class CrmCustomerTempUpdateDto implements Dto { @ApiModelProperty(value = "备注") private String remarks; + //客户档案 + @ApiModelProperty(value = "客户档案") + private List customerFiles = new ArrayList<>(); + private String orgPath; private String useOrgSid; private String customerOrgSid; diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempVo.java b/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempVo.java index 753353f..aa422ce 100644 --- a/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempVo.java +++ b/oms/src/main/java/com/yxt/oms/biz/func/crmcustomer/CrmCustomerTempVo.java @@ -3,11 +3,14 @@ package com.yxt.oms.biz.func.crmcustomer; import com.fasterxml.jackson.annotation.JsonFormat; import com.yxt.common.core.vo.Vo; +import com.yxt.oms.utils.FileQueryUrl; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.ArrayList; import java.util.Date; +import java.util.List; /** * Project: anrui-crm(客户管理)
@@ -183,7 +186,9 @@ public class CrmCustomerTempVo implements Vo { @ApiModelProperty("跟进记录数量") private String gjcounts; - + //客户档案 + @ApiModelProperty(value = "客户档案") + private List customerFiles = new ArrayList<>(); private String useOrgSid; private String customerOrgSid; diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmfile/CommonAppendixSelectQuery.java b/oms/src/main/java/com/yxt/oms/biz/func/crmfile/CommonAppendixSelectQuery.java new file mode 100644 index 0000000..5154644 --- /dev/null +++ b/oms/src/main/java/com/yxt/oms/biz/func/crmfile/CommonAppendixSelectQuery.java @@ -0,0 +1,31 @@ +package com.yxt.oms.biz.func.crmfile; + + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: anrui-base(安瑞基础信息模块)
+ * File: CommonAppendixQuery.java
+ * Class: com.yxt.anrui.base.api.commonappendix.CommonAppendixQuery
+ * Description: 公共附件表 查询条件.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-10-28 08:59:25
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "公共附件表 查询条件", description = "公共附件表 查询条件") +@Data +public class CommonAppendixSelectQuery implements Query { + + @ApiModelProperty("关联业务对象sid") + private String linkSid; + + @ApiModelProperty("附件类型") + private String attachType; +} diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmfile/CommonAppendixVo.java b/oms/src/main/java/com/yxt/oms/biz/func/crmfile/CommonAppendixVo.java new file mode 100644 index 0000000..8bcfdc8 --- /dev/null +++ b/oms/src/main/java/com/yxt/oms/biz/func/crmfile/CommonAppendixVo.java @@ -0,0 +1,62 @@ +package com.yxt.oms.biz.func.crmfile; + + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: anrui-base(安瑞基础信息模块)
+ * File: CommonAppendixVo.java
+ * Class: com.yxt.anrui.base.api.commonappendix.CommonAppendixVo
+ * Description: 公共附件表 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-10-28 08:59:25
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "公共附件表 视图数据对象", description = "公共附件表 视图数据对象") +@Data +public class CommonAppendixVo implements Vo { + + @ApiModelProperty("sid") + private String sid; + + @ApiModelProperty("上传人姓名") + private String name; + + @ApiModelProperty("文件名") + private String fileName; + + @ApiModelProperty("文件类型") + private String fileType; + + @ApiModelProperty("关联业务对象sid") + private String linkSid; + + @ApiModelProperty("附件类型") + private String attachType; + + @ApiModelProperty("文件大小") + private String fileSize; + + @ApiModelProperty("文件的路径") + private String filePath; + + @ApiModelProperty("文件的路径") + private String fileUrl; + + @ApiModelProperty("备注") + private String remarks; + + @ApiModelProperty("上传人sid") + private String createBySid; + + @ApiModelProperty("上传时间") +// @DateTimeFormat(pattern = "yyyy-MM-dd") + private String createTime; +} diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmfile/CrmFileService.java b/oms/src/main/java/com/yxt/oms/biz/func/crmfile/CrmFileService.java new file mode 100644 index 0000000..57d86eb --- /dev/null +++ b/oms/src/main/java/com/yxt/oms/biz/func/crmfile/CrmFileService.java @@ -0,0 +1,71 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.oms.biz.func.crmfile; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.common.base.config.component.FileUploadComponent; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.base.utils.StringUtils; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.oms.feign.customer.crmfile.CrmFileFeign; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +/** + * Project: anrui-crm(客户信息)
+ * File: CrmFileService.java
+ * Class: com.yxt.anrui.crm.biz.crmfile.CrmFileService
+ * Description: 客户资料表 业务逻辑.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-01-24 09:15:29
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Service +public class CrmFileService { + + + @Autowired + private CrmFileFeign crmFileFeign; + + + public ResultBean> getPcAppendix(CommonAppendixSelectQuery query) { + return crmFileFeign.getPcAppendix(query); + } +} diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitService.java b/oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitService.java index bb662e9..e0094e1 100644 --- a/oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitService.java +++ b/oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.DateUtils; import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.base.utils.StringUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -92,19 +93,27 @@ public class CrmVisitService { String staffSid = pagerQuery.getParams().getStaffSid(); ResultBean sysUserVoResultBean = sysUserFeign.selectByStaffsid(staffSid); String name = sysUserVoResultBean.getData().getName(); - IPage page = crmVisitFeign.pageList(pagerQuery); - PagerVo pv = new PagerVo<>(); - PagerVo pv1 = PagerUtil.pageToVo(page, pv); - List list = pv1.getRecords(); - for (CrmVisitVo crmVisitVo : list) { - crmVisitVo.setStaffName(name); + ResultBean > resultBean = crmVisitFeign.pageList(pagerQuery); + if (resultBean.getSuccess()) { + PagerVo data = resultBean.getData(); + List records = data.getRecords(); + if (!records.isEmpty()) { + for (CrmVisitVo record : records) { + if (StringUtils.isNotBlank(name)) { + record.setStaffName(name); + } + } + data.setRecords(records); + } + return rb.success().setData(data); } - return rb.success().setData(pv1); + return rb.success(); } public ResultBean fetchSid(String sid) { - return crmVisitFeign.fetchSid(sid); + ResultBean crmVisitVoResultBean = crmVisitFeign.fetchSid(sid); + return crmVisitVoResultBean; } public boolean save(CrmVisit entity) { @@ -112,7 +121,7 @@ public class CrmVisitService { } - public int updateBySid(CrmVisitDto dto, String sid) { + public boolean updateBySid(CrmVisitDto dto, String sid) { return crmVisitFeign.update(dto,sid); } diff --git a/oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitVo.java b/oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitVo.java index 6286e83..3124209 100644 --- a/oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitVo.java +++ b/oms/src/main/java/com/yxt/oms/biz/func/crmvisit/CrmVisitVo.java @@ -4,7 +4,9 @@ package com.yxt.oms.biz.func.crmvisit; import com.yxt.common.core.vo.Vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** * Project: anrui-crm(客户管理)
diff --git a/oms/src/main/java/com/yxt/oms/feign/customer/crmfile/CrmFileFeign.java b/oms/src/main/java/com/yxt/oms/feign/customer/crmfile/CrmFileFeign.java index af41b2c..0984607 100644 --- a/oms/src/main/java/com/yxt/oms/feign/customer/crmfile/CrmFileFeign.java +++ b/oms/src/main/java/com/yxt/oms/feign/customer/crmfile/CrmFileFeign.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.common.base.utils.StringUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; +import com.yxt.oms.biz.func.crmfile.CommonAppendixSelectQuery; +import com.yxt.oms.biz.func.crmfile.CommonAppendixVo; import com.yxt.oms.biz.func.crmfile.CommonAttachTypeEnum; import com.yxt.oms.biz.func.crmfile.PcCommonAppendixDto; import com.yxt.oms.biz.func.crmvisit.CrmVisit; @@ -47,8 +49,14 @@ public interface CrmFileFeign { @ApiOperation(value = "批量删除文件") @PostMapping("/deleteFiles") - ResultBean deleteFiles(@RequestParam(value = "linkSid") String linkSid); + ResultBean deleteFiles(@RequestParam(value = "linkSid") String linkSid,@RequestParam(value = "attachType") String attachType); + @ApiOperation("Pc端查询附件") + @PostMapping("/getPcAppendix") + public ResultBean> getPcAppendix(@RequestBody CommonAppendixSelectQuery query); + @ApiOperation("附件保存") + @PostMapping("/saveAppendix") + ResultBean saveAppendix(@RequestParam(value = "linkSid") String linkSid,@RequestParam(value = "attachType") String attachType, @RequestBody List list); } diff --git a/oms/src/main/java/com/yxt/oms/feign/customer/crmvisit/CrmVisitFeign.java b/oms/src/main/java/com/yxt/oms/feign/customer/crmvisit/CrmVisitFeign.java index 77c9796..06d3234 100644 --- a/oms/src/main/java/com/yxt/oms/feign/customer/crmvisit/CrmVisitFeign.java +++ b/oms/src/main/java/com/yxt/oms/feign/customer/crmvisit/CrmVisitFeign.java @@ -48,17 +48,18 @@ public interface CrmVisitFeign { */ @ApiOperation("客户跟进记录分页列表") @PostMapping("/pageList") - public IPage pageList(PagerQuery pagerQuery); + public ResultBean> pageList(@RequestBody PagerQuery pagerQuery); @ApiOperation("Pc查看详情及修改回显") @GetMapping("/fetchSid/{sid}") + @ResponseBody public ResultBean fetchSid(@PathVariable("sid") String sid); @ApiOperation("修改") - @PostMapping("/update") - public int update(@RequestBody CrmVisitDto dto, @PathVariable("sid") String sid); + @PostMapping("/update/{sid}") + public boolean update(@RequestBody CrmVisitDto dto, @PathVariable("sid") String sid); @ApiOperation("删除记录") @DeleteMapping("/del")