diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusItemsListVo.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusItemsListVo.java
index e670361682..d5fcdb91d5 100644
--- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusItemsListVo.java
+++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusItemsListVo.java
@@ -16,4 +16,6 @@ public class BusItemsListVo implements Vo {
private String vinNo;
@ApiModelProperty("发动机号")
private String engineNo;
+
+ private String vinSid;
}
diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverMapper.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverMapper.java
index 6bd16251bf..df91c8e600 100644
--- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverMapper.java
+++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverMapper.java
@@ -11,6 +11,8 @@ import com.yxt.anrui.buscenter.api.bushandover.BusHandoverVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
/**
* Project: anrui-buscenter(业务中心)
* File: BusHandoverMapper.java
@@ -34,6 +36,8 @@ public interface BusHandoverMapper extends BaseMapper {
BusHandoverDetailsVo details(String sid);
+ int selectByCount(@Param("contractNo") String contractNo, @Param("vinSidList") List vinSidList);
+
/*//@Update("update bus_handover set name=#{msg} where id=#{id}")
//IPage voPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw);
diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverMapper.xml b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverMapper.xml
index c75e7fa20d..f5764f3bc7 100644
--- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverMapper.xml
+++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverMapper.xml
@@ -87,4 +87,15 @@
from bus_handover bh
where bh.sid = #{sid}
+
+
\ No newline at end of file
diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java
index 5c8a5eb614..5905e4a339 100644
--- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java
+++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java
@@ -7,7 +7,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.base.api.basemodelconfig.BaseModelConfigFeign;
import com.yxt.anrui.base.api.basemodelconfig.BaseModelConfigSelectVo;
-import com.yxt.anrui.base.api.basevehiclemodel.BaseVehicleModelFeign;
+import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
+import com.yxt.anrui.base.api.basevehicle.BaseVehicleSelectVo;
import com.yxt.anrui.base.api.commoncontract.CommonContract;
import com.yxt.anrui.base.api.commoncontract.CommonContractFeign;
import com.yxt.anrui.base.common.enums.DictCommonEnum;
@@ -40,6 +41,7 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import java.io.File;
import java.io.InputStream;
@@ -87,13 +89,24 @@ public class BusHandoverService extends MybatisBaseService> saveDeliverybill(BusHandoverDto dto) {
ResultBean> rb = ResultBean.fireFail();
//ToDo:验证是否包含已存在的车辆
+ String contractNo = dto.getContractNo();
+ List vinList = dto.getVinList();
+ if(vinList.size() == 0){
+ return rb.setMsg("请选择车辆");
+ }
+ List vinSidList = vinList.stream().map(v -> v.getVinSid()).collect(Collectors.toList());
+ int count = baseMapper.selectByCount(contractNo,vinSidList);
+ if(count>0){
+ return rb.setMsg("选择的车辆包含已存在交车确认记录的数据");
+ }
BusHandover busHandover = new BusHandover();
BeanUtil.copyProperties(dto, busHandover, "sid");
String userSid = dto.getUserSid();
@@ -265,49 +278,78 @@ public class BusHandoverService extends MybatisBaseService map = new HashMap<>();
//组装数据
BusHandover busHandover = fetchBySid(sid);
+ //合同相关信息
ResultBean resultBean = commonContractFeign.selectByNo(busHandover.getContractNo());
CommonContract commonContract = resultBean.getData();
- map.put("useOrgName", commonContract.getPartyA());
- map.put("contractNo", busHandover.getContractNo());
+ //人员相关信息
ResultBean voResultBean = sysStaffinfoFeign.fetchBySid(busHandover.getStaffSid());
SysStaffinfoDetailsVo staffinfoDetailsVo = voResultBean.getData();
+ //客户相关信息
+ ResultBean customerTempResultBean = crmCustomerTempFeign.getAppCustomerTempDetailsBySid(commonContract.getCustomerSid());
+ AppCrmCustomerTempInfoVo appCrmCustomerTempInfoVo = customerTempResultBean.getData();
+ //销售订单相关信息
+ ResultBean orderDetailsVoResultBean = busSalesOrderService.getSaleOrderDetails(busHandover.getOrderSid());
+ AppOrderDetailsVo appOrderDetailsVo = orderDetailsVoResultBean.getData();
+ AppOrderModelInfoVo appOrderModelInfoVo = appOrderDetailsVo.getModelInfo();
+ //车型配置相关信息
+ ResultBean baseVehicleConfigVoResultBean = baseModelConfigFeign.details(appOrderModelInfoVo.getConfigSid());
+ BaseModelConfigSelectVo baseModelConfigSelectVo = baseVehicleConfigVoResultBean.getData();
+ List busItemsListVoList = busHandoverItemsService.getListOne(sid);
+ busItemsListVoList.removeAll(Collections.singleton(null));
+ for (BusItemsListVo v : busItemsListVoList) {
+ String vinSid = v.getVinSid();
+ //根据车辆sid查询车辆信息获取发动机号
+ ResultBean baseVehicleSelectVoResultBean = baseVehicleFeign.details(vinSid);
+ if (baseVehicleSelectVoResultBean.getSuccess()) {
+ BaseVehicleSelectVo baseVehicleSelectVo = baseVehicleSelectVoResultBean.getData();
+ if (baseVehicleSelectVo != null) {
+ v.setEngineNo(baseVehicleSelectVo.getEngineNo());
+ }
+ }
+ }
+ //分公司名称
+ map.put("useOrgName", commonContract.getPartyA());
+ //合同编号
+ map.put("contractNo", busHandover.getContractNo());
if (staffinfoDetailsVo != null) {
+ //业务员
map.put("staffName", staffinfoDetailsVo.getName());
}
+ //客户名称
map.put("customerName", busHandover.getCustomerName());
- ResultBean customerTempResultBean = crmCustomerTempFeign.getAppCustomerTempDetailsBySid(commonContract.getCustomerSid());
- AppCrmCustomerTempInfoVo appCrmCustomerTempInfoVo = customerTempResultBean.getData();
+ //客户身份证号
map.put("idNo", appCrmCustomerTempInfoVo.getIdNumber());
+ //接收人
map.put("name", busHandover.getRecipient());
+ //接收人身份证号
map.put("idNumber", busHandover.getIdNo());
+ //接收时间
map.put("date", busHandover.getDeliverDate());
+ //接收地点
map.put("address", busHandover.getDeliverAddress());
- ResultBean orderDetailsVoResultBean = busSalesOrderService.getSaleOrderDetails(busHandover.getOrderSid());
- AppOrderDetailsVo appOrderDetailsVo = orderDetailsVoResultBean.getData();
- AppOrderModelInfoVo appOrderModelInfoVo = appOrderDetailsVo.getModelInfo();
+ //品牌
map.put("brandName", appOrderModelInfoVo.getBrand());
+ //车型
map.put("model", appOrderModelInfoVo.getModelName());
- ResultBean baseVehicleConfigVoResultBean = baseModelConfigFeign.details(appOrderModelInfoVo.getConfigSid());
- BaseModelConfigSelectVo baseModelConfigSelectVo = baseVehicleConfigVoResultBean.getData();
+ //车辆型号
+// map.put("config","");
+ //颜色
map.put("color", baseModelConfigSelectVo.getCarColor());
- List busItemsListVoList = busHandoverItemsService.getListOne(sid);
map.put("busItemsListVoList", busItemsListVoList);
-// File file = new File(getClass().getClassLoader().getResource("ftl/receiveCar.ftl").getFile());
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/receiveCar.ftl");
-// String dir = getClassLoader().getResource("ftl").getPath();
//生成word文件名
String targetPath = docPdfComponent.getUploadTemplateUrl();
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
long seconds = System.currentTimeMillis();
String typeName = dateStr + seconds + ".doc";
- File file = new File(targetPath + "receiveCar"+seconds+".ftl");
+ File file = new File(targetPath + "receiveCar" + seconds + ".ftl");
File dir = new File(targetPath);
WordConvertUtils.inputStreamToFile(inputStream, file);
WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir);
//新生成的word路径
String wordPath = targetPath + typeName;
- //生成出门证文件名
- String pdfName = "接收车辆确认书_"+dateStr + seconds + ".pdf";
+ //生成文件名
+ String pdfName = "接收车辆确认书_" + dateStr + seconds + ".pdf";
WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName);
return pdfName;
}
@@ -325,33 +367,31 @@ public class BusHandoverService extends MybatisBaseService resultBean = commonContractFeign.selectByNo(busHandover.getContractNo());
CommonContract commonContract = resultBean.getData();
- map.put("orgName", commonContract.getPartyA());
- map.put("customerName", commonContract.getPartyB());
ResultBean customerTempResultBean = crmCustomerTempFeign.getAppCustomerTempDetailsBySid(commonContract.getCustomerSid());
AppCrmCustomerTempInfoVo appCrmCustomerTempInfoVo = customerTempResultBean.getData();
+ List list = busHandoverItemsService.getList(sid);
+ List stringList = list.stream().map(v -> v.getVinNo()).collect(Collectors.toList());
+ map.put("orgName", commonContract.getPartyA());
+ map.put("customerName", commonContract.getPartyB());
map.put("idNo", appCrmCustomerTempInfoVo.getIdNumber());
map.put("name", busHandover.getRecipient());
map.put("idNumber", busHandover.getIdNo());
map.put("contractNo", busHandover.getContractNo());
- List list = busHandoverItemsService.getList(sid);
- List stringList = list.stream().map(v -> v.getVinNo()).collect(Collectors.toList());
map.put("vinNo", String.join(",", stringList));
-// File file = new File(getClass().getClassLoader().getResource("ftl/entrust.ftl").getFile());
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/entrust.ftl");
-// String dir = getClassLoader().getResource("ftl").getPath();
//生成word文件名
String targetPath = docPdfComponent.getUploadTemplateUrl();
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
long seconds = System.currentTimeMillis();
String typeName = dateStr + seconds + ".doc";
- File file = new File(targetPath + "entrust"+seconds+".ftl");
+ File file = new File(targetPath + "entrust" + seconds + ".ftl");
File dir = new File(targetPath);
WordConvertUtils.inputStreamToFile(inputStream, file);
WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir);
//新生成的word路径
String wordPath = targetPath + typeName;
//生成文件名
- String pdfName = "委托提车授权书_"+dateStr + seconds + ".pdf";
+ String pdfName = "委托提车授权书_" + dateStr + seconds + ".pdf";
WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName);
return pdfName;
}
@@ -370,22 +410,20 @@ public class BusHandoverService extends MybatisBaseService list = busHandoverItemsService.getList(sid);
map.put("list", list);
-// File file = new File(getClass().getClassLoader().getResource("ftl/entrustConfirm.ftl").getFile());
-// String dir = getClassLoader().getResource("ftl").getPath();
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/entrustConfirm.ftl");
//生成word文件名
String targetPath = docPdfComponent.getUploadTemplateUrl();
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
long seconds = System.currentTimeMillis();
String typeName = dateStr + seconds + ".doc";
- File file = new File(targetPath + "entrustConfirm"+seconds+".ftl");
+ File file = new File(targetPath + "entrustConfirm" + seconds + ".ftl");
File dir = new File(targetPath);
WordConvertUtils.inputStreamToFile(inputStream, file);
WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir);
//新生成的word路径
String wordPath = targetPath + typeName;
//生成文件名
- String pdfName = "交车资料确认单_"+dateStr + seconds + ".pdf";
+ String pdfName = "交车资料确认单_" + dateStr + seconds + ".pdf";
WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName);
return pdfName;
}
@@ -396,11 +434,14 @@ public class BusHandoverService extends MybatisBaseService voResultBean = sysStaffinfoFeign.fetchBySid(busHandover.getStaffSid());
SysStaffinfoDetailsVo staffinfoDetailsVo = voResultBean.getData();
+ ResultBean resultBean = commonContractFeign.selectByNo(busHandover.getContractNo());
+ CommonContract commonContract = resultBean.getData();
+ ResultBean orderDetailsVoResultBean = busSalesOrderService.getSaleOrderDetails(busHandover.getOrderSid());
+ AppOrderDetailsVo appOrderDetailsVo = orderDetailsVoResultBean.getData();
+ AppOrderModelInfoVo appOrderModelInfoVo = appOrderDetailsVo.getModelInfo();
if (staffinfoDetailsVo != null) {
map.put("apply", staffinfoDetailsVo.getName());
}
- ResultBean resultBean = commonContractFeign.selectByNo(busHandover.getContractNo());
- CommonContract commonContract = resultBean.getData();
map.put("orgName", commonContract.getPartyA());
map.put("name", busHandover.getCustomerName());
List list = busHandoverItemsService.getList(sid);
@@ -411,26 +452,21 @@ public class BusHandoverService extends MybatisBaseService orderDetailsVoResultBean = busSalesOrderService.getSaleOrderDetails(busHandover.getOrderSid());
- AppOrderDetailsVo appOrderDetailsVo = orderDetailsVoResultBean.getData();
- AppOrderModelInfoVo appOrderModelInfoVo = appOrderDetailsVo.getModelInfo();
map.put("modelName", appOrderModelInfoVo.getModelName());
-// File file = new File(getClass().getClassLoader().getResource("ftl/outdoor.ftl").getFile());
-// String dir = getClassLoader().getResource("ftl").getPath();
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/outdoor.ftl");
//生成word文件名
String targetPath = docPdfComponent.getUploadTemplateUrl();
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
long seconds = System.currentTimeMillis();
String typeName = dateStr + seconds + ".doc";
- File file = new File(targetPath + "outdoor"+seconds+".ftl");
+ File file = new File(targetPath + "outdoor" + seconds + ".ftl");
File dir = new File(targetPath);
WordConvertUtils.inputStreamToFile(inputStream, file);
WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir);
//新生成的word路径
String wordPath = targetPath + typeName;
//生成出门证文件名
- String pdfName = "出门证_"+dateStr + seconds + ".pdf";
+ String pdfName = "出门证_" + dateStr + seconds + ".pdf";
WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName);
return pdfName;
}
@@ -470,7 +506,7 @@ public class BusHandoverService extends MybatisBaseService
diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/resources/application-pro.yml b/anrui-buscenter/anrui-buscenter-biz/src/main/resources/application-pro.yml
index 26108f2eb1..10e2282ed8 100644
--- a/anrui-buscenter/anrui-buscenter-biz/src/main/resources/application-pro.yml
+++ b/anrui-buscenter/anrui-buscenter-biz/src/main/resources/application-pro.yml
@@ -25,4 +25,7 @@ image:
path: D:\\anrui\\upload\\
url:
prefix: http://120.46.172.184/api/upload/
+templateUrl:
+ uploadUrl: D:\anrui\upload\template\
+ prefixUrl: http://120.46.172.184/api/upload/template/