Browse Source

完善维修工单

master
fanzongzhe 9 months ago
parent
commit
3ae232ded2
  1. 7
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmdockingpeople/CrmDockingPeopleFeign.java
  2. 5
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmdockingpeople/CrmDockingPeopleFeignFallback.java
  3. 19
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmdockingpeople/PeopleList.java
  4. 3
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleMapper.java
  5. 3
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleMapper.xml
  6. 14
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleRest.java
  7. 11
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleService.java
  8. 4
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/InvoiceVo.java
  9. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillinvoice/AsBusrepairBillInvoice.java
  10. 44
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java
  11. 171
      yxt-as/src/main/java/com/yxt/anrui/as/feign/crm/CrmCustomerTemp.java
  12. 9
      yxt-as/src/main/java/com/yxt/anrui/as/feign/crm/CrmCustomerTempFeign.java

7
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<List<PeopleList>> getListByCustomerSid(@RequestParam("customerSid") String customerSid);
}

5
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<List<PeopleList>> getListByCustomerSid(String customerSid) {
return null;
}
}

19
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; // 手机号码
}

3
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;
@ -62,4 +63,6 @@ public interface CrmDockingPeopleMapper extends BaseMapper<CrmDockingPeople> {
@Select("select * from crm_docking_people")
List<CrmDockingPeopleVo> selectListVo();
List<PeopleList> getListByCustomerSid(@Param("customerSid") String customerSid);
}

3
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmdockingpeople/CrmDockingPeopleMapper.xml

@ -10,4 +10,7 @@
<select id="selectListAllVo" resultType="com.yxt.anrui.crm.api.crmdockingpeople.CrmDockingPeopleVo">
SELECT * FROM crm_docking_people <where> ${ew.sqlSegment} </where>
</select>
<select id="getListByCustomerSid" resultType="com.yxt.anrui.crm.api.crmdockingpeople.PeopleList">
SELECT * FROM crm_docking_people where customerSid =#{customerSid}
</select>
</mapper>

14
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) <br/>
@ -107,4 +102,11 @@ public class CrmDockingPeopleRest implements CrmDockingPeopleFeign {
public ResultBean enable(String[] sid) {
return crmDockingPeopleService.enable(sid);
}
@Override
public ResultBean<List<PeopleList>> getListByCustomerSid(String customerSid) {
ResultBean rb = ResultBean.fireFail();
List<PeopleList> list = crmDockingPeopleService.getListByCustomerSid(customerSid);
return rb.success().setData(list);
}
}

11
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<CrmDockingPeople
}
return rb.success();
}
public List<PeopleList> getListByCustomerSid(String customerSid) {
return baseMapper.getListByCustomerSid(customerSid);
}
}

4
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<String> taxItems = new ArrayList<>();
}

2
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;
}

44
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<AsBusrepairBillMa
private WmsOldInventoryFeign wmsOldInventoryFeign;
@Autowired
private SmsGoodsFeign smsGoodsFeign;
@Autowired
private CrmCustomerTempFeign crmCustomerTempFeign;
/**
* 维修领料获取派工单
*
@ -276,6 +281,11 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
AsBusrepairBillInvoice invoice = new AsBusrepairBillInvoice();
BeanUtil.copyProperties(dto.getInvoiceVo(), invoice, "id", "sid");
invoice.setBillSid(sid);
List<String> 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<AsBusrepairBillMa
AsBusrepairBillInvoice invoice = asBusrepairBillInvoiceService.fetchByBillSid(sid);
if (null != invoice) {
BeanUtil.copyProperties(invoice, invoiceVo);
if (StringUtils.isNotBlank(invoice.getTaxItems())) {
String taxItem = invoice.getTaxItems();
String[] taxItems = taxItem.split(",");
List<String> list = Arrays.asList(taxItems);
invoiceVo.setTaxItems(list);
}
vo.setInvoiceVo(invoiceVo);
}
AsBusrepairBillInsurance insurance = asBusrepairBillInsuranceService.fetchByBillSid(sid);
@ -711,6 +727,32 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
if (asBusrepairBill.getNodeCode() > 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<String> resultBean = saveBill(dto);
if (resultBean.getSuccess()) {

171
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(客户管理) <br/>
* File: CrmCustomerTemp.java <br/>
* Class: com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp <br/>
* Description: 潜在客户信息. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-01-12 11:21:16 <br/>
*
* @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;
}

9
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<CrmCustomerTemp> fetchEntity(@PathVariable("sid") String sid);
}

Loading…
Cancel
Save