diff --git a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmdockingpeople/CrmDockingPeopleFeign.java b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmdockingpeople/CrmDockingPeopleFeign.java index 74466ccbbb..0ea86f3eb2 100644 --- a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmdockingpeople/CrmDockingPeopleFeign.java +++ b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmdockingpeople/CrmDockingPeopleFeign.java @@ -84,4 +84,11 @@ public interface CrmDockingPeopleFeign { @ApiOperation("对接人批量启用") @PostMapping("/enable") public ResultBean enable(@RequestBody String[] sid); + + + @ApiOperation("根据客户SID获取一条记录") + @GetMapping("/getListByCustomerSid") + @ResponseBody + public ResultBean> getListByCustomerSid(@RequestParam("customerSid") String customerSid); + } diff --git a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmdockingpeople/CrmDockingPeopleFeignFallback.java b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmdockingpeople/CrmDockingPeopleFeignFallback.java index 20f92a804a..5df5f49006 100644 --- a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmdockingpeople/CrmDockingPeopleFeignFallback.java +++ b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmdockingpeople/CrmDockingPeopleFeignFallback.java @@ -79,4 +79,9 @@ public class CrmDockingPeopleFeignFallback implements CrmDockingPeopleFeign { public ResultBean enable(String[] sid) { return null; } + + @Override + public ResultBean> getListByCustomerSid(String customerSid) { + return null; + } } diff --git a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmdockingpeople/PeopleList.java b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmdockingpeople/PeopleList.java new file mode 100644 index 0000000000..797f18f838 --- /dev/null +++ b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmdockingpeople/PeopleList.java @@ -0,0 +1,19 @@ +package com.yxt.anrui.crm.api.crmdockingpeople; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/7/31 14:33 + */ +@Data +public class PeopleList { + + private String sid; + @ApiModelProperty("对接人") + private String name; // 对接人 + @ApiModelProperty("手机号码") + private String mobile; // 手机号码 +} diff --git a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleMapper.java b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleMapper.java index 44cd48ef45..360480b124 100644 --- a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleMapper.java +++ b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleMapper.java @@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.anrui.crm.api.crmdockingpeople.PeopleList; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -55,11 +56,13 @@ public interface CrmDockingPeopleMapper extends BaseMapper { //@Update("update crm_docking_people set name=#{msg} where id=#{id}") //IPage voPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); - + IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw); - + List selectListAllVo(@Param(Constants.WRAPPER) Wrapper qw); - + @Select("select * from crm_docking_people") List selectListVo(); -} \ No newline at end of file + + List getListByCustomerSid(@Param("customerSid") String customerSid); +} diff --git a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleMapper.xml b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleMapper.xml index c35de1298f..e187c3ba49 100644 --- a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleMapper.xml +++ b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleMapper.xml @@ -6,8 +6,11 @@ - + - \ No newline at end of file + + diff --git a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleRest.java b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleRest.java index 59b06ad0ef..0e927fabdc 100644 --- a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleRest.java +++ b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleRest.java @@ -25,6 +25,7 @@ *********************************************************/ package com.yxt.anrui.crm.biz.crmdockingpeople; +import com.yxt.anrui.crm.api.crmdockingpeople.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -34,12 +35,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; -import com.yxt.anrui.crm.api.crmdockingpeople.CrmDockingPeople; -import com.yxt.anrui.crm.api.crmdockingpeople.CrmDockingPeopleQuery; -import com.yxt.anrui.crm.api.crmdockingpeople.CrmDockingPeopleVo; -import com.yxt.anrui.crm.api.crmdockingpeople.CrmDockingPeopleDetailsVo; -import com.yxt.anrui.crm.api.crmdockingpeople.CrmDockingPeopleDto; -import com.yxt.anrui.crm.api.crmdockingpeople.CrmDockingPeopleFeign; /** * Project: anrui-crm(crm)
@@ -107,4 +102,11 @@ public class CrmDockingPeopleRest implements CrmDockingPeopleFeign { public ResultBean enable(String[] sid) { return crmDockingPeopleService.enable(sid); } + + @Override + public ResultBean> getListByCustomerSid(String customerSid) { + ResultBean rb = ResultBean.fireFail(); + List list = crmDockingPeopleService.getListByCustomerSid(customerSid); + return rb.success().setData(list); + } } diff --git a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleService.java b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleService.java index 7eee69798a..40a786e8aa 100644 --- a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleService.java +++ b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleService.java @@ -28,18 +28,13 @@ package com.yxt.anrui.crm.biz.crmdockingpeople; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.crm.api.crmdockingpeople.*; import org.apache.commons.lang3.StringUtils; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; -import com.yxt.anrui.crm.api.crmdockingpeople.CrmDockingPeople; -import com.yxt.anrui.crm.api.crmdockingpeople.CrmDockingPeopleQuery; -import com.yxt.anrui.crm.api.crmdockingpeople.CrmDockingPeopleVo; -import com.yxt.anrui.crm.api.crmdockingpeople.CrmDockingPeopleDetailsVo; -import com.yxt.anrui.crm.api.crmdockingpeople.CrmDockingPeopleDto; -import com.yxt.anrui.crm.api.crmdockingpeople.CrmDockingPeopleFeign; import org.springframework.stereotype.Service; @@ -127,4 +122,8 @@ public class CrmDockingPeopleService extends MybatisBaseService getListByCustomerSid(String customerSid) { + return baseMapper.getListByCustomerSid(customerSid); + } } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/InvoiceVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/InvoiceVo.java index ed59b52457..acb73550c8 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/InvoiceVo.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/InvoiceVo.java @@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; /** * @author Fan @@ -31,4 +33,6 @@ public class InvoiceVo { private String invoiceCompanySid; @ApiModelProperty("开票单位") private String invoiceCompany; + @ApiModelProperty("加税点项目“,”英文逗号拼接") + private List taxItems = new ArrayList<>(); } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillinvoice/AsBusrepairBillInvoice.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillinvoice/AsBusrepairBillInvoice.java index d69d4620e3..6a5b7a6231 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillinvoice/AsBusrepairBillInvoice.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillinvoice/AsBusrepairBillInvoice.java @@ -36,5 +36,7 @@ public class AsBusrepairBillInvoice extends BaseEntity { private String invoiceCompanySid; @ApiModelProperty("开票单位") private String invoiceCompany; + @ApiModelProperty("加税点项目“,”英文逗号拼接") + private String taxItems; } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java index 2f3abe459e..b26786d74c 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java @@ -39,6 +39,8 @@ import com.yxt.anrui.as.biz.asbusrepairbillsitemrepairer.AsBusrepairBillSitemRep import com.yxt.anrui.as.biz.asbusrepairbillvech.AsBusrepairBillVechService; import com.yxt.anrui.as.biz.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetailService; import com.yxt.anrui.as.biz.astrackbill.AsTrackBillService; +import com.yxt.anrui.as.feign.crm.CrmCustomerTemp; +import com.yxt.anrui.as.feign.crm.CrmCustomerTempFeign; import com.yxt.anrui.as.feign.file.AsFileEnum; import com.yxt.anrui.as.feign.fin.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedDto; import com.yxt.anrui.as.feign.fin.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedFeign; @@ -69,6 +71,8 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.ZoneId; import java.util.*; /** @@ -121,7 +125,8 @@ public class AsBusrepairBillService extends MybatisBaseService taxItems = dto.getInvoiceVo().getTaxItems(); + if (!taxItems.isEmpty()) { + String taxItem = String.join(",", taxItems); + invoice.setTaxItems(taxItem); + } asBusrepairBillInvoiceService.insert(invoice); } //保险信息 @@ -469,6 +479,12 @@ public class AsBusrepairBillService extends MybatisBaseService list = Arrays.asList(taxItems); + invoiceVo.setTaxItems(list); + } vo.setInvoiceVo(invoiceVo); } AsBusrepairBillInsurance insurance = asBusrepairBillInsuranceService.fetchByBillSid(sid); @@ -711,6 +727,32 @@ public class AsBusrepairBillService extends MybatisBaseService 4) { return rb.setMsg("当前已完成竣工环节,无需提交"); } + String customerSid = dto.getCustomerSid(); + CrmCustomerTemp customerTemp = crmCustomerTempFeign.fetchEntity(customerSid).getData(); + if (null != customerTemp) { + if (dto.getBillType().equals("欠款月结")) { + if (customerTemp.getIsDesignatedEnterprise().intValue() == 1) { + Date filingIndate = customerTemp.getFilingIndate(); + if (null != filingIndate) { + LocalDate date = LocalDate.now(); // get the current date + Date dateNow = Date.from(date.atStartOfDay(ZoneId.systemDefault()).toInstant()); + int result = filingIndate.compareTo(dateNow); + if (result < 0) { + return rb.setMsg("请选择备案有效期内的欠款月结客户"); + } + } else { + return rb.setMsg("请选择备案有效期内的欠款月结客户"); + } + } else { + return rb.setMsg("请选择备案有效期内的欠款月结客户"); + } + } + if (dto.getBillType().equals("常规维修")) { + if (customerTemp.getIsDesignatedEnterprise().intValue() != 0) { + return rb.setMsg("请选择非欠款月结客户"); + } + } + } } ResultBean resultBean = saveBill(dto); if (resultBean.getSuccess()) { diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/crm/CrmCustomerTemp.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/crm/CrmCustomerTemp.java new file mode 100644 index 0000000000..e56c005ecd --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/crm/CrmCustomerTemp.java @@ -0,0 +1,171 @@ +package com.yxt.anrui.as.feign.crm; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * Project: anrui-crm(客户管理)
+ * File: CrmCustomerTemp.java
+ * Class: com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp
+ * Description: 潜在客户信息.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-01-12 11:21:16
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "潜在客户信息", description = "潜在客户信息") +@TableName("crm_customer_temp") +@Data +public class CrmCustomerTemp extends BaseEntity { + private static final long serialVersionUID = 1L; + + + @ApiModelProperty("客户编号(部门编码+客户类型(1位,0个人,1企业)+部门内部流水号(6位))") + private String customerNo; + + @ApiModelProperty("客户类型(自然人/法人)") + private String customerType; + + @ApiModelProperty("客户类型key") + private String customerTypeKey; + + @ApiModelProperty("客户分类(个人:司机/个体老板/其他。企业:企业型客户/一级经销商/二级经销商/终端物流客户)") + private String customerClass; + + @ApiModelProperty("客户分类key") + private String customerClassKey; + + @ApiModelProperty("客户来源(公司资源/自主开发/交接客户/转介绍客户/集团内销)") + private String source; + + @ApiModelProperty("客户来源key") + private String sourceKey; + + @ApiModelProperty("客户级别(意向客户/准客户/成交客户/集团内销/黑名单客户)") + private String level; + + @ApiModelProperty("客户级别key") + private String levelKey; + + @ApiModelProperty("客户名称") + private String name; + + @ApiModelProperty("证件类型key") + private String certificateTypeKey; + + @ApiModelProperty("证件类型(个人为身份证/企业为营业执照)") + private String certificateType; + + @ApiModelProperty("证件号码(个人为身份证号/企业为统一社会信用代码)") + private String IDNumber; + + @ApiModelProperty("证件有效期") + private String endDate; + + @ApiModelProperty("行政区划代码(省)") + private String address_province; + + @ApiModelProperty("行政区划代码(市)") + private String address_city; + + @ApiModelProperty("行政区划代码(县)") + private String address_county; + + @ApiModelProperty("省") + private String province; + + @ApiModelProperty("市") + private String city; + + @ApiModelProperty("县") + private String county; + + @ApiModelProperty("详细地址") + private String address; + + @ApiModelProperty("邮编") + private String zipCode; + + @ApiModelProperty("电子邮箱") + private String e_mail; + + @ApiModelProperty("联系人") + private String contacts; + + @ApiModelProperty("联系电话") + private String mobile; + + @ApiModelProperty("紧急联系电话") + private String emergencyContact; + + @ApiModelProperty("紧急联系电话") + private String emergencyMobile; + + @ApiModelProperty("微信号码") + private String weixin; + + @ApiModelProperty("业务人员sid") + private String staffSid; + + @ApiModelProperty("创建组织sid") + private String createOrgSid; + + @ApiModelProperty("创建部门sid") + private String useOrgSid; + + @ApiModelProperty("性别") + private String sex; + + @ApiModelProperty("性别key") + private String sexKey; + + @ApiModelProperty("生日") + private String birthday; + + @ApiModelProperty("所在公司名称") + private String companyName; + + @ApiModelProperty("跟进状态key") + private String follow_state_key; + + @ApiModelProperty("跟进状态") + private String follow_state; + + @ApiModelProperty("是否开启提醒key(1开启,0不开启)") + private String isOnRemindkey; + + @ApiModelProperty("是否开启提醒(1开启,0不开启)") + private String isOnRemind; + + @ApiModelProperty("提醒日期") + private String remind_day; + + @ApiModelProperty("提醒备注") + private String remind_remark; + + @ApiModelProperty("客户头像") + private String customerPhoto; + + @ApiModelProperty("见面方式key") + private String visitWayKey; + + @ApiModelProperty("见面方式(到店/电话/拜访)") + private String visitWay; + + @ApiModelProperty("证件地址") + private String certificateAddress; + + @ApiModelProperty("是否为定点企业(1是0否)") + private Integer isDesignatedEnterprise; + + @ApiModelProperty("定点企业备案有效期") + private Date filingIndate; +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/crm/CrmCustomerTempFeign.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/crm/CrmCustomerTempFeign.java index 62efa46193..c9196863b8 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/feign/crm/CrmCustomerTempFeign.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/crm/CrmCustomerTempFeign.java @@ -4,8 +4,7 @@ import com.yxt.common.core.result.ResultBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; @@ -32,4 +31,10 @@ public interface CrmCustomerTempFeign { @PostMapping("/save") public ResultBean save(@Valid @RequestBody CrmCustomerTempDto dto); + + @ApiOperation("根据sid查询实体") + @GetMapping("/fetchEntity/{sid}") + @ResponseBody + public ResultBean fetchEntity(@PathVariable("sid") String sid); + }