|
|
@ -31,6 +31,10 @@ import com.alibaba.fastjson.JSON; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.yxt.anrui.base.common.utils.Rule; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorderreturnveh.BusSalesOrderReturnVehDetailsVo; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorderreturnvehapply.BusSalesOrderReturnVehApplyDetailsVo; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorderreturnvehapply.BusSalesOrderReturnVehPdfVo; |
|
|
|
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordSourceLCVo; |
|
|
|
import com.yxt.anrui.flowable.api.flow.FlowProcessMapQuery; |
|
|
|
import com.yxt.anrui.flowable.api.flow.FlowableFeign; |
|
|
|
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; |
|
|
@ -41,6 +45,7 @@ import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; |
|
|
|
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; |
|
|
|
import com.yxt.anrui.flowable.api.utils.ProcDefEnum; |
|
|
|
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; |
|
|
|
import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList; |
|
|
|
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; |
|
|
|
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; |
|
|
@ -64,9 +69,14 @@ import com.yxt.anrui.riskcenter.biz.loansecondarysalescost.LoanSecondarySalesCos |
|
|
|
import com.yxt.anrui.riskcenter.biz.loansecondarysalesnotveh.LoanSecondarySalesNotVehService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loansecondarysalesveh.LoanSecondarySalesVehService; |
|
|
|
import com.yxt.common.base.config.component.FileUploadComponent; |
|
|
|
import com.yxt.common.base.utils.ConstantUtils; |
|
|
|
import com.yxt.common.base.utils.WordUtils; |
|
|
|
import com.yxt.messagecenter.api.message.Message; |
|
|
|
import com.yxt.messagecenter.api.message.MessageFeign; |
|
|
|
import com.yxt.messagecenter.api.message.MessageFlowVo; |
|
|
|
import com.yxt.messagecenter.api.message.MessageFlowableQuery; |
|
|
|
import com.yxt.messagecenter.api.messagelist.MessageList; |
|
|
|
import com.yxt.messagecenter.api.messagelist.MessageListFeign; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import com.yxt.common.base.service.MybatisBaseService; |
|
|
|
import com.yxt.common.base.utils.PagerUtil; |
|
|
@ -82,6 +92,8 @@ import java.math.BigInteger; |
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
import static java.util.Comparator.comparing; |
|
|
|
|
|
|
|
@Service |
|
|
|
public class LoanSecondarySalesNotApplyService extends MybatisBaseService<LoanSecondarySalesNotApplyMapper, LoanSecondarySalesNotApply> { |
|
|
|
|
|
|
@ -113,6 +125,10 @@ public class LoanSecondarySalesNotApplyService extends MybatisBaseService<LoanSe |
|
|
|
private LoanSecondarySalesCostService loanSecondarySalesCostService; |
|
|
|
@Autowired |
|
|
|
private LoanRestoreReportApplyService loanRestoreReportApplyService; |
|
|
|
@Autowired |
|
|
|
private MessageListFeign messageListFeign; |
|
|
|
@Autowired |
|
|
|
private com.yxt.anrui.portal.api.flow.FlowableFeign flowableFeignSp; |
|
|
|
|
|
|
|
public PagerVo<LoanSecondarySalesNotApplyVo> listPageVo(PagerQuery<LoanSecondarySalesNotApplyQuery> pq) { |
|
|
|
LoanSecondarySalesNotApplyQuery query = pq.getParams(); |
|
|
@ -714,4 +730,120 @@ public class LoanSecondarySalesNotApplyService extends MybatisBaseService<LoanSe |
|
|
|
flowFeign.delegate(delegateQuery); |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
|
|
|
|
public String createPdf(String sid, String userName) { |
|
|
|
LoanSecondarySalesNotApplyDetailsVo data = fetchDetailsVoBySid(sid); |
|
|
|
Map<String, Object> dataMap = new HashMap<String, Object>(); |
|
|
|
//分公司
|
|
|
|
dataMap.put("orgName", data.getUseOrgName()); |
|
|
|
//创建部门
|
|
|
|
String deptName = ""; |
|
|
|
List<String> split = Arrays.asList(data.getOrgSidPath().split("/")); |
|
|
|
if (split.size() > 1) { |
|
|
|
//获取本级sid获取本级部门信息
|
|
|
|
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(split.size() - 2)).getData(); |
|
|
|
SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData(); |
|
|
|
deptName = sysOrganization.getName() + "/" + sysOrganization1.getName(); |
|
|
|
deptName = sysOrganization1.getName(); |
|
|
|
} else { |
|
|
|
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData(); |
|
|
|
deptName = sysOrganization.getName(); |
|
|
|
deptName = sysOrganization.getName(); |
|
|
|
} |
|
|
|
dataMap.put("deptName", deptName); |
|
|
|
//创建人
|
|
|
|
dataMap.put("createName", data.getCreateByName()); |
|
|
|
//创建日期
|
|
|
|
dataMap.put("createTime", data.getCreateTime()); |
|
|
|
//办结日期
|
|
|
|
dataMap.put("finishTime", data.getCloseDate()); |
|
|
|
//审批编号
|
|
|
|
dataMap.put("billNo", data.getBillNo()); |
|
|
|
List<LoanSecondarySalesNotApplyPdfVo> loanSecondarySalesNotApplyPdfVos = new ArrayList<>(); |
|
|
|
//循环获取车辆信息
|
|
|
|
Integer i = 1; |
|
|
|
for (LoanSecondarySalesNotVehDetailsVo loanSecondarySalesNotVehDetailsVo : data.getLoanSecondarySalesNotVehList()) { |
|
|
|
LoanSecondarySalesNotApplyPdfVo loanSecondarySalesNotApplyPdfVo = new LoanSecondarySalesNotApplyPdfVo(); |
|
|
|
loanSecondarySalesNotApplyPdfVo.setId(i); |
|
|
|
i = i + 1; |
|
|
|
loanSecondarySalesNotApplyPdfVo.setVinNo(loanSecondarySalesNotVehDetailsVo.getVinNo()); |
|
|
|
loanSecondarySalesNotApplyPdfVo.setCph(loanSecondarySalesNotVehDetailsVo.getVehMark()); |
|
|
|
loanSecondarySalesNotApplyPdfVo.setLx(loanSecondarySalesNotVehDetailsVo.getVehType()); |
|
|
|
loanSecondarySalesNotApplyPdfVo.setCx(loanSecondarySalesNotVehDetailsVo.getModelName()); |
|
|
|
loanSecondarySalesNotApplyPdfVos.add(loanSecondarySalesNotApplyPdfVo); |
|
|
|
} |
|
|
|
dataMap.put("wlList", loanSecondarySalesNotApplyPdfVos); |
|
|
|
dataMap.put("name", data.getCustomerName()); |
|
|
|
dataMap.put("dkr", data.getLoanName()); |
|
|
|
dataMap.put("dkbh", data.getLoanContractNo()); |
|
|
|
dataMap.put("zf", data.getBankName()); |
|
|
|
dataMap.put("zfbh", data.getBankContractNo()); |
|
|
|
dataMap.put("qkhj", data.getArrearsAll()); |
|
|
|
dataMap.put("cdfy", data.getComBearMoney()); |
|
|
|
dataMap.put("ksje", data.getLossPrice()); |
|
|
|
dataMap.put("remarks", data.getRemarks()); |
|
|
|
//获取审批记录
|
|
|
|
List<PCHistTaskListAndCommentList> flowRecordVo = flowableFeignSp.flowRecordAndComment(data.getProcInstId(), "1").getData(); |
|
|
|
List<FinPaymentrecordSourceLCVo> finPaymentrecordSourceLCVos = new ArrayList<>(); |
|
|
|
for (PCHistTaskListAndCommentList flowTask : flowRecordVo) { |
|
|
|
if (flowTask.getFlowableRecordVo() != null) { |
|
|
|
Map<String, Object> flowableRecordVo = flowTask.getFlowableRecordVo(); |
|
|
|
FinPaymentrecordSourceLCVo finPaymentrecordSourceLCVo = new FinPaymentrecordSourceLCVo(); |
|
|
|
List<Map<String, Object>> taskUserInfos = ConstantUtils.getListData(flowableRecordVo, "taskUserInfos"); |
|
|
|
Map<String, Object> comment = ConstantUtils.getMap(flowableRecordVo, "comment"); |
|
|
|
String assigneeName = (String) taskUserInfos.get(0).get("assigneeName"); |
|
|
|
String comment1 = (String) comment.get("comment"); |
|
|
|
finPaymentrecordSourceLCVo.setName(assigneeName); |
|
|
|
finPaymentrecordSourceLCVo.setComment(comment1); |
|
|
|
finPaymentrecordSourceLCVo.setSpsj(flowableRecordVo.get("finishTime").toString()); |
|
|
|
finPaymentrecordSourceLCVos.add(finPaymentrecordSourceLCVo); |
|
|
|
} else { |
|
|
|
Map<String, Object> processCommentVo = flowTask.getProcessCommentVo(); |
|
|
|
FinPaymentrecordSourceLCVo finPaymentrecordSourceLCVo = new FinPaymentrecordSourceLCVo(); |
|
|
|
finPaymentrecordSourceLCVo.setName(processCommentVo.get("title").toString()); |
|
|
|
finPaymentrecordSourceLCVo.setComment(processCommentVo.get("content").toString()); |
|
|
|
finPaymentrecordSourceLCVo.setSpsj(processCommentVo.get("time").toString()); |
|
|
|
finPaymentrecordSourceLCVos.add(finPaymentrecordSourceLCVo); |
|
|
|
} |
|
|
|
} |
|
|
|
List<Message> messages = messageFeign.selectByBusinessSid(data.getSid()).getData(); |
|
|
|
if (messages.size() > 0) { |
|
|
|
for (Message message : messages) { |
|
|
|
FinPaymentrecordSourceLCVo finPaymentrecordSourceLCVo = new FinPaymentrecordSourceLCVo(); |
|
|
|
String receiverNames = ""; |
|
|
|
List<MessageList> messageLists = messageListFeign.fetchByMainSid(message.getSid()).getData(); |
|
|
|
if (messageLists.size() > 0) { |
|
|
|
for (MessageList messageList : messageLists) { |
|
|
|
receiverNames = receiverNames + messageList.getReceiverName() + ","; |
|
|
|
} |
|
|
|
} |
|
|
|
finPaymentrecordSourceLCVo.setName("系统"); |
|
|
|
finPaymentrecordSourceLCVo.setComment("抄送 " + receiverNames.substring(0, receiverNames.lastIndexOf(","))); |
|
|
|
finPaymentrecordSourceLCVo.setSpsj(DateUtil.format(message.getCreateTime(), "yyyy-MM-dd HH:mm:ss")); |
|
|
|
finPaymentrecordSourceLCVos.add(finPaymentrecordSourceLCVo); |
|
|
|
} |
|
|
|
} |
|
|
|
finPaymentrecordSourceLCVos.sort(comparing(FinPaymentrecordSourceLCVo::getSpsj)); |
|
|
|
dataMap.put("lcList", finPaymentrecordSourceLCVos); |
|
|
|
//下载人
|
|
|
|
dataMap.put("downName", userName); |
|
|
|
//下载时间
|
|
|
|
dataMap.put("downTime", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")); |
|
|
|
//获取模板
|
|
|
|
//模板路径
|
|
|
|
String sourcePath = "D:\\anrui\\upload\\template\\"; |
|
|
|
//生成word文件名
|
|
|
|
String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); |
|
|
|
long seconds = System.currentTimeMillis(); |
|
|
|
String typeName = dateStr + seconds + ".doc"; |
|
|
|
// 生成文件路径
|
|
|
|
String targetPath = sourcePath + dateStr; |
|
|
|
WordUtils.creatWord(dataMap, "bzc", sourcePath, targetPath, typeName); |
|
|
|
//新生成的word路径
|
|
|
|
String wordPath = targetPath + "\\" + typeName; |
|
|
|
//生成出门证文件名
|
|
|
|
String pdfName = "二次销售车辆不追偿审批_" + dateStr + seconds + ".pdf"; |
|
|
|
WordUtils.doc2pdf(wordPath, targetPath, pdfName, userName); |
|
|
|
return "/template/" + dateStr + "/" + pdfName; |
|
|
|
} |
|
|
|
} |