|
|
@ -6,6 +6,10 @@ import com.alibaba.fastjson.JSON; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.google.common.util.concurrent.ThreadFactoryBuilder; |
|
|
|
import com.yxt.anrui.base.api.basetrailermodel.BaseTrailerModelDetailsVo; |
|
|
|
import com.yxt.anrui.base.api.basetrailermodel.BaseTrailerModelFeign; |
|
|
|
import com.yxt.anrui.base.api.basevehinstallmodel.BaseVehinstallmodelDetailsVo; |
|
|
|
import com.yxt.anrui.base.api.basevehinstallmodel.BaseVehinstallmodelFeign; |
|
|
|
import com.yxt.anrui.flowable.api.flow.FlowableFeign; |
|
|
|
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; |
|
|
|
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; |
|
|
@ -17,11 +21,22 @@ import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; |
|
|
|
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserVo; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicy; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy; |
|
|
|
import com.yxt.anrui.riskcenter.api.loantemplate.*; |
|
|
|
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.SubmitTemplateDto; |
|
|
|
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeQuery; |
|
|
|
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeVo; |
|
|
|
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyTaskQuery; |
|
|
|
import com.yxt.anrui.riskcenter.api.loantemplateinstall.LoanTemplateInstall; |
|
|
|
import com.yxt.anrui.riskcenter.api.loantemplateinstall.LoanTemplateInstallDto; |
|
|
|
import com.yxt.anrui.riskcenter.api.loantemplateinstall.LoanTemplateInstallVo; |
|
|
|
import com.yxt.anrui.riskcenter.api.loantemplatetrailer.LoanTemplateTrailer; |
|
|
|
import com.yxt.anrui.riskcenter.api.loantemplatetrailer.LoanTemplateTrailerDto; |
|
|
|
import com.yxt.anrui.riskcenter.api.loantemplatetrailer.LoanTemplateTrailerVo; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loantemplateinstall.LoanTemplateInstallService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loantemplatetrailer.LoanTemplateTrailerService; |
|
|
|
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; |
|
|
@ -33,7 +48,9 @@ import com.yxt.messagecenter.api.message.MessageFlowVo; |
|
|
|
import com.yxt.messagecenter.api.message.MessageFlowableQuery; |
|
|
|
import org.apache.tomcat.util.threads.ThreadPoolExecutor; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.context.annotation.Bean; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
import java.util.*; |
|
|
|
import java.util.concurrent.*; |
|
|
@ -59,6 +76,17 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper, |
|
|
|
private MessageFeign messageFeign; |
|
|
|
@Autowired |
|
|
|
private FlowTaskFeign flowTaskFeign; |
|
|
|
@Autowired |
|
|
|
private LoanTemplateInstallService loanTemplateInstallService; |
|
|
|
@Autowired |
|
|
|
private LoanTemplateTrailerService loanTemplateTrailerService; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private BaseTrailerModelFeign baseTrailerModelFeign; |
|
|
|
@Autowired |
|
|
|
private BaseVehinstallmodelFeign baseVehinstallmodelFeign; |
|
|
|
@Autowired |
|
|
|
private FileUploadComponent fileUploadComponent; |
|
|
|
|
|
|
|
|
|
|
|
public PagerVo<LoanTemplateVo> listPageVo(PagerQuery<LoanTemplateQuery> pq) { |
|
|
@ -93,6 +121,7 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper, |
|
|
|
return p; |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public ResultBean<String> saveOrUpdateApply(LoanTemplateDto dto) { |
|
|
|
ResultBean<String> rb = ResultBean.fireFail(); |
|
|
|
String sid = dto.getSid(); |
|
|
@ -127,8 +156,9 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper, |
|
|
|
loanTemplate.setApplyDeptSid(deptSid); |
|
|
|
} |
|
|
|
loanTemplate.setFilingDate(DateUtil.today()); |
|
|
|
baseMapper.insert(loanTemplate); |
|
|
|
sid = loanTemplate.getSid(); |
|
|
|
saveOrUpdateInstallAndTrailer(sid, dto); |
|
|
|
baseMapper.insert(loanTemplate); |
|
|
|
} else { |
|
|
|
//修改
|
|
|
|
LoanTemplate loanTemplate = fetchBySid(sid); |
|
|
@ -136,11 +166,43 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper, |
|
|
|
return rb.setMsg("该申请不存在"); |
|
|
|
} |
|
|
|
BeanUtil.copyProperties(dto, loanTemplate, "sid"); |
|
|
|
saveOrUpdateInstallAndTrailer(sid, dto); |
|
|
|
baseMapper.updateById(loanTemplate); |
|
|
|
} |
|
|
|
return rb.success().setData(sid); |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void saveOrUpdateInstallAndTrailer(String sid, LoanTemplateDto dto) { |
|
|
|
boolean install = dto.isInstall(); |
|
|
|
boolean trailer = dto.isTrailer(); |
|
|
|
loanTemplateInstallService.deleteByMainSid(sid); |
|
|
|
loanTemplateTrailerService.deleteByMainSid(sid); |
|
|
|
if (install) { |
|
|
|
//上装
|
|
|
|
LoanTemplateInstallDto loanTemplateInstallDto = dto.getLoanTemplateInstall(); |
|
|
|
LoanTemplateInstall loanTemplateInstall = new LoanTemplateInstall(); |
|
|
|
BeanUtil.copyProperties(loanTemplateInstallDto, loanTemplateInstall, "sid"); |
|
|
|
loanTemplateInstall.setTemplateSid(sid); |
|
|
|
loanTemplateInstallService.insert(loanTemplateInstall); |
|
|
|
} |
|
|
|
if (trailer) { |
|
|
|
//挂车
|
|
|
|
LoanTemplateTrailerDto loanTemplateTrailerDto = dto.getLoanTemplateTrailer(); |
|
|
|
LoanTemplateTrailer loanTemplateTrailer = new LoanTemplateTrailer(); |
|
|
|
BeanUtil.copyProperties(loanTemplateTrailerDto, loanTemplateTrailer, "sid"); |
|
|
|
loanTemplateTrailer.setTemplateSid(sid); |
|
|
|
List<String> fileList = loanTemplateTrailerDto.getVehTrailerCertificateFile(); |
|
|
|
fileList.removeAll(Collections.singleton(null)); |
|
|
|
if (!fileList.isEmpty()) { |
|
|
|
fileList = fileList.stream().map(v -> v.replaceAll(fileUploadComponent.getUrlPrefix(), "")).collect(Collectors.toList()); |
|
|
|
String files = String.join(",", fileList); |
|
|
|
loanTemplateTrailer.setVehTrailerCertificateFile(files); |
|
|
|
} |
|
|
|
loanTemplateTrailerService.insert(loanTemplateTrailer); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean submitTemplateApply(SubmitTemplateDto dto) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
LoanTemplate loanTemplate = fetchBySid(dto.getSid()); |
|
|
@ -453,4 +515,84 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper, |
|
|
|
public ResultBean<TemplateApplyVo> getTemplateApply(String sid) { |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public ResultBean delAllBySids(String[] sids) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
//查询该sid中是否有流程不是待提交的
|
|
|
|
int count = baseMapper.selectBySid(StringUtils.join(sids, ",")); |
|
|
|
if (count > 0) { |
|
|
|
return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败"); |
|
|
|
} |
|
|
|
loanTemplateInstallService.deleteByMainSids(sids); |
|
|
|
loanTemplateTrailerService.deleteByMainSids(sids); |
|
|
|
delBySids(sids); |
|
|
|
return rb.success().setMsg("删除成功"); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<LoanTemplateDetailsVo> details(String sid) { |
|
|
|
ResultBean<LoanTemplateDetailsVo> rb = ResultBean.fireFail(); |
|
|
|
LoanTemplateDetailsVo loanTemplateDetailsVo = new LoanTemplateDetailsVo(); |
|
|
|
LoanTemplate loanTemplate = fetchBySid(sid); |
|
|
|
if (loanTemplate != null) { |
|
|
|
return rb.setMsg("该申请不存在"); |
|
|
|
} |
|
|
|
BeanUtil.copyProperties(loanTemplate, loanTemplateDetailsVo, "sid"); |
|
|
|
LoanTemplateInstall loanTemplateInstall = loanTemplateInstallService.selectByMainSid(sid); |
|
|
|
if (loanTemplateInstall != null) { |
|
|
|
loanTemplateDetailsVo.setInstall(true); |
|
|
|
//根据上装配置sid查询上装配置信息
|
|
|
|
String installSid = loanTemplateInstall.getVehInstallModelSid(); |
|
|
|
ResultBean<BaseVehinstallmodelDetailsVo> installModelDetailsVoResultBean = baseVehinstallmodelFeign.fetchDetailsBySid(installSid); |
|
|
|
if (installModelDetailsVoResultBean.getData() != null) { |
|
|
|
LoanTemplateInstallVo loanTemplateInstallVo = new LoanTemplateInstallVo(); |
|
|
|
BeanUtil.copyProperties(installModelDetailsVoResultBean.getData(), loanTemplateInstallVo, "sid"); |
|
|
|
BeanUtil.copyProperties(loanTemplateInstall, loanTemplateInstallVo); |
|
|
|
loanTemplateDetailsVo.setLoanTemplateInstall(loanTemplateInstallVo); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
LoanTemplateTrailer loanTemplateTrailer = loanTemplateTrailerService.selectByMainSid(sid); |
|
|
|
if (loanTemplateTrailer != null) { |
|
|
|
loanTemplateDetailsVo.setTrailer(true); |
|
|
|
//根据挂车配置sid查询挂车的配置信息
|
|
|
|
String trailerSid = loanTemplateTrailer.getVehTrailerModelSid(); |
|
|
|
ResultBean<BaseTrailerModelDetailsVo> trailerModelDetailsVoResultBean = baseTrailerModelFeign.fetchDetailsBySid(trailerSid); |
|
|
|
if (trailerModelDetailsVoResultBean.getData() != null) { |
|
|
|
LoanTemplateTrailerVo loanTemplateTrailerVo = new LoanTemplateTrailerVo(); |
|
|
|
BeanUtil.copyProperties(trailerModelDetailsVoResultBean.getData(), loanTemplateTrailerVo, "sid"); |
|
|
|
BeanUtil.copyProperties(loanTemplateTrailer, loanTemplateTrailerVo); |
|
|
|
String files = loanTemplateTrailer.getVehTrailerCertificateFile(); |
|
|
|
if (StringUtils.isNotBlank(files)) { |
|
|
|
List<String> fileList = Arrays.asList(files.split(",")); |
|
|
|
//拼接前缀
|
|
|
|
fileList = fileList.stream().map(v -> fileUploadComponent.getUrlPrefix() + v).collect(Collectors.toList()); |
|
|
|
loanTemplateTrailerVo.setVehTrailerCertificateFile(fileList); |
|
|
|
} |
|
|
|
loanTemplateDetailsVo.setLoanTemplateTrailer(loanTemplateTrailerVo); |
|
|
|
} |
|
|
|
} |
|
|
|
return rb.success().setData(loanTemplateDetailsVo); |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public ResultBean setState(LoanTemplateStateQuery query) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
//ToDo:是否可以停用或开启,需补充条件
|
|
|
|
List<String> sidsList = query.getSidsList(); |
|
|
|
sidsList.removeAll(Collections.singleton(null)); |
|
|
|
if (sidsList.isEmpty()) { |
|
|
|
return rb.setMsg("请选择数据"); |
|
|
|
} |
|
|
|
String useState = query.getUseState(); |
|
|
|
for (String sid : sidsList) { |
|
|
|
LoanTemplate loanTemplate = fetchBySid(sid); |
|
|
|
if (loanTemplate == null) { |
|
|
|
return rb.setMsg("操作的数据中包含不存在的数据,请刷新后操作"); |
|
|
|
} |
|
|
|
loanTemplate.setUseState(Integer.valueOf(useState).intValue()); |
|
|
|
baseMapper.updateById(loanTemplate); |
|
|
|
} |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
} |
|
|
|