@ -30,8 +30,12 @@ import cn.hutool.core.date.DateUtil;
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.basevehicle.BaseVehicle ;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign ;
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateDto ;
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateEnum ;
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateFeign ;
import com.yxt.anrui.base.api.commonappendix.CommonAppendixDto ;
import com.yxt.anrui.base.api.commonappendix.CommonAppendixFeign ;
import com.yxt.anrui.base.api.commonappendix.CommonAppendixVo ;
@ -53,6 +57,7 @@ import com.yxt.anrui.fin.api.finfundscarriedforwardveh.FinFundsCarriedForwardVeh
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailed ;
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedVo ;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailed ;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailed ;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedFeign ;
import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer ;
import com.yxt.anrui.fin.api.kingdee.otherarreceivable.OtherReceivable ;
@ -91,11 +96,13 @@ import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowVo ;
import com.yxt.messagecenter.api.message.MessageFlowableQuery ;
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 java.math.BigDecimal ;
import java.util.* ;
import java.util.concurrent.* ;
import java.util.stream.Collectors ;
/ * *
@ -152,6 +159,8 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
private com . yxt . anrui . portal . api . flow . FlowableFeign flowableFeignPro ;
@Autowired
private FinUncollectedReceivablesDetailedService finUncollectedReceivablesDetailedService ;
@Autowired
private BaseVehicleStateFeign baseVehicleStateFeign ;
public PagerVo < FinFundsCarriedForwardApplyVo > listPageVo ( PagerQuery < FinFundsCarriedForwardApplyQuery > pq ) {
FinFundsCarriedForwardApplyQuery query = pq . getParams ( ) ;
@ -380,11 +389,11 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
finFundsCarriedForwardVehDetailsVos . add ( finFundsCarriedForwardVehDetailsVo ) ;
}
SysUserVo sysUserVo1 = null ;
if ( finCollectionConfirmation ! = null ) {
if ( finCollectionConfirmation ! = null ) {
finFundsCarriedForwardApplyDetailsVo . setSaleDeptSid ( finCollectionConfirmation . getStaffDeptSid ( ) ) ;
finFundsCarriedForwardApplyDetailsVo . setSaleDeptName ( finCollectionConfirmation . getStaffDeptName ( ) ) ;
sysUserVo1 = sysUserFeign . fetchBySid ( finCollectionConfirmation . getStaffUserSid ( ) ) . getData ( ) ;
} else {
} else {
finFundsCarriedForwardApplyDetailsVo . setSaleDeptSid ( finFundsCarriedForwardApply . getSaleDeptSid ( ) ) ;
finFundsCarriedForwardApplyDetailsVo . setSaleDeptName ( finFundsCarriedForwardApply . getSaleDeptName ( ) ) ;
sysUserVo1 = sysUserFeign . fetchBySid ( finFundsCarriedForwardApply . getCreateBySid ( ) ) . getData ( ) ;
@ -598,7 +607,8 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
if ( isOneSale ) {
dto . setIsOneSale ( true ) ;
String sid = saveOrUpdateAll ( dto ) . getData ( ) ;
String pdfPath = createPdf ( sid , dto . getPdfType ( ) ) . getData ( ) ;
finFundsCarriedForwardApply = fetchBySid ( sid ) ;
//String pdfPath = createPdf(sid, finFundsCarriedForwardApply.getCreateByName()).getData();
//baseMapper.updatePathBySid(pdfPath, sid);
tsqtysd ( sid ) ;
return rb . success ( ) ;
@ -637,7 +647,7 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
}
if ( StringUtils . isBlank ( sysOrganization . getManagerSid ( ) ) ) {
bv . setNextNodeUserSids ( ProcDefEnum . DEFAUL_TADMIN_SID . getProDefId ( ) ) ;
} else {
} else {
bv . setNextNodeUserSids ( sysOrganization . getManagerSid ( ) ) ;
}
} else {
@ -861,7 +871,7 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
private List < TzDto > manyHB ( List < TzDto > list ) {
//转出为多条,转入为一条
List < TzDto > manyRemoveList = new ArrayList < > ( ) ;
if ( list . get ( 0 ) . getTzType ( ) . equals ( "转出" ) ) {
if ( list . get ( 0 ) . getTzType ( ) . equals ( "转出" ) ) {
list . parallelStream ( ) . collect ( Collectors . groupingBy ( tzDto - > tzDto . getCustNo ( ) , Collectors . toList ( ) ) ) . forEach ( ( id , transfer ) - > {
transfer . stream ( ) . reduce ( ( a , b ) - > new TzDto (
a . getTzType ( ) ,
@ -874,7 +884,7 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
a . getDcje ( ) + b . getDcje ( ) ,
a . getDrje ( ) ) ) . ifPresent ( manyRemoveList : : add ) ;
} ) ;
} else {
} else {
list . parallelStream ( ) . collect ( Collectors . groupingBy ( tzDto - > tzDto . getCustNo ( ) , Collectors . toList ( ) ) ) . forEach ( ( id , transfer ) - > {
transfer . stream ( ) . reduce ( ( a , b ) - > new TzDto (
a . getTzType ( ) ,
@ -1026,11 +1036,11 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
Map < String , Object > map = BeanUtil . beanToMap ( ufVo ) ;
//更新业务中的流程相关的参数
updateFlowFiled ( map ) ;
if ( "发起申请" . equals ( ufVo . getNodeState ( ) ) ) {
if ( "发起申请" . equals ( ufVo . getNodeState ( ) ) ) {
FinFundsCarriedForwardApplyDetailsVo data = fetchDetailsVoBySid ( businessSid ) . getData ( ) ;
List < AppFinFundsCarriedForwardYXYSKXVo > yxysFinFundsCarriedForwardYXYSKXVos = data . getYxysFinFundsCarriedForwardYXYSKXVos ( ) ;
for ( AppFinFundsCarriedForwardYXYSKXVo yxysFinFundsCarriedForwardYXYSKXVo : yxysFinFundsCarriedForwardYXYSKXVos ) {
finSelectedReceivablesDetailedService . updateAuditStateBySid ( 2 , yxysFinFundsCarriedForwardYXYSKXVo . getSid ( ) ) ;
finSelectedReceivablesDetailedService . updateAuditStateBySid ( 2 , yxysFinFundsCarriedForwardYXYSKXVo . getSid ( ) ) ;
}
}
//极光推送
@ -1078,11 +1088,11 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
}
updateFlowFiled ( BeanUtil . beanToMap ( resultBean . getData ( ) ) ) ;
UpdateFlowFieldVo ufv = resultBean . getData ( ) ;
if ( "发起申请" . equals ( ufv . getNodeState ( ) ) ) {
if ( "发起申请" . equals ( ufv . getNodeState ( ) ) ) {
FinFundsCarriedForwardApplyDetailsVo data = fetchDetailsVoBySid ( query . getBusinessSid ( ) ) . getData ( ) ;
List < AppFinFundsCarriedForwardYXYSKXVo > yxysFinFundsCarriedForwardYXYSKXVos = data . getYxysFinFundsCarriedForwardYXYSKXVos ( ) ;
for ( AppFinFundsCarriedForwardYXYSKXVo yxysFinFundsCarriedForwardYXYSKXVo : yxysFinFundsCarriedForwardYXYSKXVos ) {
finSelectedReceivablesDetailedService . updateAuditStateBySid ( 2 , yxysFinFundsCarriedForwardYXYSKXVo . getSid ( ) ) ;
finSelectedReceivablesDetailedService . updateAuditStateBySid ( 2 , yxysFinFundsCarriedForwardYXYSKXVo . getSid ( ) ) ;
}
}
return rb . success ( ) . setData ( resultBean . getData ( ) ) ;
@ -1117,7 +1127,7 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
FinFundsCarriedForwardApplyDetailsVo data = fetchDetailsVoBySid ( query . getBusinessSid ( ) ) . getData ( ) ;
List < AppFinFundsCarriedForwardYXYSKXVo > yxysFinFundsCarriedForwardYXYSKXVos = data . getYxysFinFundsCarriedForwardYXYSKXVos ( ) ;
for ( AppFinFundsCarriedForwardYXYSKXVo yxysFinFundsCarriedForwardYXYSKXVo : yxysFinFundsCarriedForwardYXYSKXVos ) {
finSelectedReceivablesDetailedService . updateAuditStateBySid ( 2 , yxysFinFundsCarriedForwardYXYSKXVo . getSid ( ) ) ;
finSelectedReceivablesDetailedService . updateAuditStateBySid ( 2 , yxysFinFundsCarriedForwardYXYSKXVo . getSid ( ) ) ;
}
return rb . success ( ) . setData ( resultBean . getData ( ) ) ;
} else {
@ -1133,7 +1143,7 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
FinFundsCarriedForwardApplyDetailsVo data = fetchDetailsVoBySid ( query . getBusinessSid ( ) ) . getData ( ) ;
List < AppFinFundsCarriedForwardYXYSKXVo > yxysFinFundsCarriedForwardYXYSKXVos = data . getYxysFinFundsCarriedForwardYXYSKXVos ( ) ;
for ( AppFinFundsCarriedForwardYXYSKXVo yxysFinFundsCarriedForwardYXYSKXVo : yxysFinFundsCarriedForwardYXYSKXVos ) {
finSelectedReceivablesDetailedService . updateAuditStateBySid ( 2 , yxysFinFundsCarriedForwardYXYSKXVo . getSid ( ) ) ;
finSelectedReceivablesDetailedService . updateAuditStateBySid ( 2 , yxysFinFundsCarriedForwardYXYSKXVo . getSid ( ) ) ;
}
}
}
@ -1161,7 +1171,7 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
}
bv . setFormVariables ( variables ) ;
bv . setOrgSidPath ( finFundsCarriedForwardApply . getOrgSidPath ( ) ) ;
if ( "Activity_1kve61q" . equals ( bv . getTaskDefKey ( ) ) ) {
if ( "Activity_1kve61q" . equals ( bv . getTaskDefKey ( ) ) ) {
List < String > orgPathList = Arrays . asList ( finFundsCarriedForwardApply . getOrgSidPath ( ) . split ( "/" ) ) ;
SysOrganizationVo sysOrganization = sysOrganizationFeign . fetchBySid ( orgPathList . get ( orgPathList . size ( ) - 1 ) ) . getData ( ) ;
if ( sysOrganization = = null ) {
@ -1169,7 +1179,7 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
}
if ( StringUtils . isBlank ( sysOrganization . getManagerSid ( ) ) ) {
bv . setNextNodeUserSids ( ProcDefEnum . DEFAUL_TADMIN_SID . getProDefId ( ) ) ;
} else {
} else {
bv . setNextNodeUserSids ( sysOrganization . getManagerSid ( ) ) ;
}
}
@ -1319,7 +1329,7 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
return rb . success ( ) . setData ( data ) ;
}
public ResultBean < String > createPdf ( String sid , String pdfTyp e) {
public ResultBean < String > createPdf ( String sid , String userNam e) {
ResultBean rb = ResultBean . fireFail ( ) ;
FinFundsCarriedForwardApplyDetailsVo data = fetchDetailsVoBySid ( sid ) . getData ( ) ;
List < FinFundsCarriedForwardVehDetailsVo > finFundsCarriedForwardVehDetailsVos = data . getFinFundsCarriedForwardVehDetailsVos ( ) ;
@ -1336,7 +1346,7 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
String assigneeName = ( String ) taskUserInfos . get ( 0 ) . get ( "assigneeName" ) ;
String finishTime = ( String ) flowableRecordVo . get ( "finishTime" ) ;
finishTime = finishTime . substring ( 0 , 10 ) ;
if ( "Activity_17mi28e " . equals ( taskDefKey ) ) {
if ( "Activity_1nfy3ql " . equals ( taskDefKey ) ) {
dataMap . put ( "spName" , assigneeName + finishTime ) ;
}
}
@ -1363,7 +1373,6 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
tzList . add ( tzDto ) ;
}
dataMap . put ( "saleDate" , DateUtil . formatDate ( new Date ( ) ) ) ;
dataMap . put ( "billNo" , data . getBillNo ( ) ) ;
dataMap . put ( "tzList" , tzList ) ;
dataMap . put ( "makeName" , data . getCreateByName ( ) + data . getCreateByDate ( ) ) ;
//获取模板
@ -1375,16 +1384,12 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
String typeName = dateStr + seconds + ".doc" ;
// 生成文件路径
String targetPath = sourcePath + dateStr ;
if ( pdfType . equals ( "针孔式打印机" ) ) {
WordUtils . creatWord ( dataMap , "jzsqzks" , sourcePath , targetPath , typeName ) ;
} else if ( pdfType . equals ( "激光打印机" ) ) {
WordUtils . creatWord ( dataMap , "jzsqjg" , sourcePath , targetPath , typeName ) ;
}
WordUtils . creatWord ( dataMap , "kxjz" , sourcePath , targetPath , typeName ) ;
//新生成的word路径
String wordPath = targetPath + "\\" + typeName ;
//生成出门证文件名
String pdfName = "款项结转_" + dateStr + seconds + ".pdf" ;
WordUtils . doc2pdf ( wordPath , targetPath , pdfName , "" ) ;
WordUtils . doc2pdf ( wordPath , targetPath , pdfName , userName ) ;
return rb . success ( ) . setData ( "template/" + dateStr + "/" + pdfName ) ;
}
@ -1420,6 +1425,7 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
}
public void jzComplete ( String sid ) {
List < BaseVehicleStateDto > dtoList = new ArrayList < > ( ) ;
FinFundsCarriedForwardApply finFundsCarriedForwardApply = fetchBySid ( sid ) ;
//查询结转的款项
List < FinFundsCarriedForwardVeh > finFundsCarriedForwardVehList = finFundsCarriedForwardVehService . selectByCollSid ( sid ) ;
@ -1427,13 +1433,66 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
if ( ! finFundsCarriedForwardVehList . isEmpty ( ) ) {
for ( FinFundsCarriedForwardVeh v : finFundsCarriedForwardVehList ) {
String busSid = v . getBusSid ( ) ;
FinSelectedReceivablesDetailed finSelectedReceivablesDetailed = finSelectedReceivablesDetailedService . fetchBySid ( busSid ) ;
FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService . fetchBySid ( finSelectedReceivablesDetailed . getReceivablesSid ( ) ) ;
//结转金额
//查询该车的所有认款,是否都已认完
String subscribute = baseMapper . selectByBusSid ( finUncollectedReceivablesDetailed . getBusVinSid ( ) ) ;
String receiableMoney = finUncollectedReceivablesDetailedService . selectByBusVinSid ( finUncollectedReceivablesDetailed . getBusVinSid ( ) ) ;
if ( new BigDecimal ( subscribute ) . compareTo ( new BigDecimal ( receiableMoney ) ) < = 0 ) {
//已认款完成
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto ( ) ;
baseVehicleStateDto . setOperateType ( BaseVehicleStateEnum . OperateTypeEnum . FIN_RQ . getTypeKey ( ) ) ;
baseVehicleStateDto . setBusSid ( finUncollectedReceivablesDetailed . getBusVinSid ( ) ) ;
dtoList . add ( baseVehicleStateDto ) ;
} else {
//认款未完成
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto ( ) ;
baseVehicleStateDto . setOperateType ( BaseVehicleStateEnum . OperateTypeEnum . FIN_WRQ . getTypeKey ( ) ) ;
baseVehicleStateDto . setBusSid ( finUncollectedReceivablesDetailed . getBusVinSid ( ) ) ;
dtoList . add ( baseVehicleStateDto ) ;
}
}
}
List < FinSelectedReceivablesDetailed > finSelectedReceivablesDetailedVos = finSelectedReceivablesDetailedService . selectByOneCollSid ( sid ) ;
finSelectedReceivablesDetailedVos . removeAll ( Collections . singleton ( null ) ) ;
if ( ! finSelectedReceivablesDetailedVos . isEmpty ( ) ) {
for ( FinSelectedReceivablesDetailed v : finSelectedReceivablesDetailedVos ) {
FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService . fetchBySid ( v . getReceivablesSid ( ) ) ;
//查询该车的所有认款,是否都已认完
String subscribute = baseMapper . selectByBusSid ( finUncollectedReceivablesDetailed . getBusVinSid ( ) ) ;
String receiableMoney = finUncollectedReceivablesDetailedService . selectByBusVinSid ( finUncollectedReceivablesDetailed . getBusVinSid ( ) ) ;
if ( new BigDecimal ( subscribute ) . compareTo ( new BigDecimal ( receiableMoney ) ) < = 0 ) {
//已认款完成
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto ( ) ;
baseVehicleStateDto . setOperateType ( BaseVehicleStateEnum . OperateTypeEnum . FIN_RQ . getTypeKey ( ) ) ;
baseVehicleStateDto . setBusSid ( finUncollectedReceivablesDetailed . getBusVinSid ( ) ) ;
dtoList . add ( baseVehicleStateDto ) ;
} else {
//认款未完成
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto ( ) ;
baseVehicleStateDto . setOperateType ( BaseVehicleStateEnum . OperateTypeEnum . FIN_WRQ . getTypeKey ( ) ) ;
baseVehicleStateDto . setBusSid ( finUncollectedReceivablesDetailed . getBusVinSid ( ) ) ;
dtoList . add ( baseVehicleStateDto ) ;
}
}
}
//==============================修改车辆的持久状态组装数据
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder ( )
. setNameFormat ( "demo-pool-%d" ) . build ( ) ;
ExecutorService pool = new ThreadPoolExecutor ( 2 , 100 ,
0L , TimeUnit . MILLISECONDS ,
new LinkedBlockingQueue < Runnable > ( 1024 ) , namedThreadFactory , new ThreadPoolExecutor . AbortPolicy ( ) ) ;
Future future1 = pool . submit ( ( ) - > {
if ( ! dtoList . isEmpty ( ) ) {
ResultBean busVehicleStateResultBean = baseVehicleStateFeign . saveOrUpdate ( dtoList ) ;
}
} ) ;
} catch ( Exception e ) {
e . printStackTrace ( ) ;
}
}
}