@ -23,10 +23,7 @@ import com.yxt.supervise.report.biz.projectdailyaccount.ProjectDailyAccountDto;
import com.yxt.supervise.report.biz.projectdailyaccount.ProjectDailyAccountService ;
import com.yxt.supervise.report.biz.projectdailyaccount.ProjectDailyAccountService ;
import com.yxt.supervise.report.biz.reportinventory.ReportInventoryDayGather ;
import com.yxt.supervise.report.biz.reportinventory.ReportInventoryDayGather ;
import com.yxt.supervise.report.biz.wechat.WechatService ;
import com.yxt.supervise.report.biz.wechat.WechatService ;
import com.yxt.supervise.report.ds.crm.CrmMapper ;
import com.yxt.supervise.report.ds.crm.* ;
import com.yxt.supervise.report.ds.crm.ProjectAccountVo ;
import com.yxt.supervise.report.ds.crm.ProjectInfo ;
import com.yxt.supervise.report.ds.crm.UserProject ;
import com.yxt.supervise.report.ds.system.SysUser ;
import com.yxt.supervise.report.ds.system.SysUser ;
import com.yxt.supervise.report.feign.crm.projectinformation.ProjectInformationFeign ;
import com.yxt.supervise.report.feign.crm.projectinformation.ProjectInformationFeign ;
import com.yxt.supervise.report.feign.system.sysuser.SysUserFeign ;
import com.yxt.supervise.report.feign.system.sysuser.SysUserFeign ;
@ -41,6 +38,7 @@ import org.springframework.web.client.RestTemplate;
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletRequest ;
import java.math.BigDecimal ;
import java.math.BigDecimal ;
import java.math.RoundingMode ;
import java.text.SimpleDateFormat ;
import java.text.SimpleDateFormat ;
import java.util.* ;
import java.util.* ;
import java.util.stream.Collectors ;
import java.util.stream.Collectors ;
@ -198,10 +196,16 @@ public class ProjectDailyService extends ServiceImpl<ProjectDailyMapper, Project
// map.put("list",list);
// map.put("list",list);
// return map;
// return map;
// }
// }
public ResultBean save ( ProjectDailyDto dto ) {
public ResultBean save ( ProjectDailyDto dto , String token ) {
ResultBean rb = ResultBean . fireFail ( ) ;
ResultBean rb = ResultBean . fireFail ( ) ;
SysUserVo sysUserVo = sysUserFeign . loginDetailsNew ( token ) . getData ( ) ;
ProjectDaily projectDaily = new ProjectDaily ( ) ;
ProjectDaily projectDaily = new ProjectDaily ( ) ;
BeanUtil . copyProperties ( dto , projectDaily ) ;
BeanUtil . copyProperties ( dto , projectDaily ) ;
if ( null ! = sysUserVo ) {
projectDaily . setUserSid ( sysUserVo . getSid ( ) ) ;
projectDaily . setUserMobile ( sysUserVo . getMobile ( ) ) ;
projectDaily . setUserName ( sysUserVo . getName ( ) ) ;
}
String pledgeRateNormal = projectDaily . getPledgeRateNormal ( ) ;
String pledgeRateNormal = projectDaily . getPledgeRateNormal ( ) ;
projectDaily . setPledgeRate ( Double . parseDouble ( pledgeRateNormal ) ) ;
projectDaily . setPledgeRate ( Double . parseDouble ( pledgeRateNormal ) ) ;
projectDaily . setReportTime ( projectDaily . getOrderDate ( ) + " " + DateUtil . format ( new Date ( ) , "HH:mm" ) ) ;
projectDaily . setReportTime ( projectDaily . getOrderDate ( ) + " " + DateUtil . format ( new Date ( ) , "HH:mm" ) ) ;
@ -233,6 +237,8 @@ public class ProjectDailyService extends ServiceImpl<ProjectDailyMapper, Project
dailyAccountDto . setProjectSid ( dto . getProjectSid ( ) ) ;
dailyAccountDto . setProjectSid ( dto . getProjectSid ( ) ) ;
projectDailyAccountService . save ( dailyAccountDto ) ;
projectDailyAccountService . save ( dailyAccountDto ) ;
}
}
//发送微信模版消息通知
sendMess ( dto . getProjectSid ( ) , dto . getOrderDate ( ) ) ;
return rb . success ( ) . setMsg ( "添加成功" ) ;
return rb . success ( ) . setMsg ( "添加成功" ) ;
}
}
@ -256,6 +262,11 @@ public class ProjectDailyService extends ServiceImpl<ProjectDailyMapper, Project
ProjectInfo projectInfo = crmMapper . getProjectBySid ( projectSid ) ;
ProjectInfo projectInfo = crmMapper . getProjectBySid ( projectSid ) ;
if ( null ! = projectDaily ) {
if ( null ! = projectDaily ) {
if ( null ! = projectInfo ) {
if ( null ! = projectInfo ) {
if ( com . yxt . common . base . utils . StringUtils . isBlank ( projectDaily . getUserName ( ) ) ) {
projectDaily . setUserName ( projectInfo . getRegulatoryLeader ( ) ) ;
String mobile = systemMapper . getUserByName ( projectInfo . getRegulatoryLeader ( ) ) ;
projectDaily . setUserMobile ( mobile ) ;
}
projectDaily . setCreditLimit ( projectInfo . getCreditLimit ( ) ) ;
projectDaily . setCreditLimit ( projectInfo . getCreditLimit ( ) ) ;
projectDaily . setUseLimit ( projectInfo . getUseLimit ( ) ) ;
projectDaily . setUseLimit ( projectInfo . getUseLimit ( ) ) ;
projectDaily . setBankPledgeRate ( projectInfo . getBankPledgeRate ( ) ) ;
projectDaily . setBankPledgeRate ( projectInfo . getBankPledgeRate ( ) ) ;
@ -383,35 +394,106 @@ public class ProjectDailyService extends ServiceImpl<ProjectDailyMapper, Project
}
}
}
}
List < ProjectDailyVos > projectDailyVos = baseMapper . getProjectDailys ( qw ) ;
List < ProjectDailyVos > projectDailyVos = baseMapper . getProjectDailys ( qw ) ;
ProjectDailyVosBig projectDailyV = baseMapper . getProjectDailySum ( qw ) ;
ProjectDailyVosBig projectDailyV = baseMapper . getProjectDailySum ( qw ) ;
if ( null = = projectDailyV ) {
projectDailyV = new ProjectDailyVosBig ( ) ;
// return rb.success().setData(new ProjectDailyVosBig());
}
QueryWrapper < ProjectDaily > qw2 = new QueryWrapper < > ( ) ;
if ( com . yxt . common . base . utils . StringUtils . isNotBlank ( params . getOrderDate ( ) ) ) {
qw2 . eq ( "orderDate" , sdf . format ( DateUtil . offsetDay ( DateUtil . parse ( params . getOrderDate ( ) ) , - 1 ) ) ) ;
} else {
qw2 . eq ( "orderDate" , sdf . format ( DateUtil . offsetDay ( DateUtil . yesterday ( ) , - 1 ) ) ) ;
}
if ( com . yxt . common . base . utils . StringUtils . isNotBlank ( params . getProjectSid ( ) ) ) {
qw2 . eq ( "projectSid" , params . getProjectSid ( ) ) ;
}
ProjectDailyVosBig projectDailyYest = baseMapper . getProjectDailySum ( qw2 ) ;
List < String > sids = new ArrayList < > ( ) ;
List < String > sids = new ArrayList < > ( ) ;
if ( projectDailyVos . size ( ) = = 0 ) {
sids . add ( query . getProjectSid ( ) ) ;
// return rb.success().setData(new ProjectDailyVosBig());
} else {
for ( ProjectDailyVos projectDailyVos1 : projectDailyVos ) {
for ( ProjectDailyVos projectDailyVos1 : projectDailyVos ) {
sids . add ( projectDailyVos1 . getProjectSid ( ) ) ;
sids . add ( projectDailyVos1 . getProjectSid ( ) ) ;
}
}
}
//类型
//类型
List < ProjectInfo > list = crmMapper . getProjectType ( ) ;
List < ProjectInfo > list = crmMapper . getProjectType ( ) ;
for ( ProjectInfo s : list ) {
for ( ProjectInfo s : list ) {
List < String > info = crmMapper . getCountByType ( sids . toArray ( ) , s . getSid ( ) ) ;
List < String > info = crmMapper . getCountByType ( sids . toArray ( ) , s . getSid ( ) ) ;
if ( info . size ( ) = = 0 ) {
continue ;
}
QueryWrapper < ProjectDaily > qw1 = new QueryWrapper < > ( ) ;
QueryWrapper < ProjectDaily > qw1 = new QueryWrapper < > ( ) ;
qw1 . in ( "projectSid" , info ) ;
qw1 . in ( "projectSid" , info ) ;
qw1 . eq ( "orderDate" , params ! = null ? params . getOrderDate ( ) : null ) ;
qw1 . eq ( "orderDate" , params ! = null ? params . getOrderDate ( ) : null ) ;
ProjectDailyVosBig projectDaily = baseMapper . getProjectDailyInSid ( qw1 ) ;
ProjectDailyVosBig projectDaily = baseMapper . getProjectDailyInSid ( qw1 ) ;
if ( s . getProjectType ( ) . equals ( "保证类项目" ) ) {
if ( s . getProjectType ( ) . equals ( "保证类项目" ) ) {
projectDailyV . setBaoZheng ( info . size ( ) ) ;
projectDailyV . setBaoZheng ( info . size ( ) ) ;
if ( projectDailyVos . size ( ) ! = 0 ) {
projectDailyV . setBzUseLimit ( projectDaily . getUseLimit ( ) . add ( projectDailyV . getBzUseLimit ( ) ) ) ;
projectDailyV . setBzUseLimit ( projectDaily . getUseLimit ( ) . add ( projectDailyV . getBzUseLimit ( ) ) ) ;
// return rb.success().setData(new ProjectDailyVosBig());
} else {
ProjectInfos info1 = crmMapper . getProjectBigBySid ( query . getProjectSid ( ) ) ;
projectDailyV . setBzUseLimit ( info1 . getUseLimit ( ) ) ;
}
} else if ( s . getProjectType ( ) . equals ( "动产质押类项目" ) ) {
} else if ( s . getProjectType ( ) . equals ( "动产质押类项目" ) ) {
projectDailyV . setDongChan ( info . size ( ) ) ;
projectDailyV . setDongChan ( info . size ( ) ) ;
if ( projectDailyVos . size ( ) ! = 0 ) {
projectDailyV . setDcUseLimit ( projectDaily . getUseLimit ( ) . add ( projectDailyV . getDcUseLimit ( ) ) ) ;
projectDailyV . setDcUseLimit ( projectDaily . getUseLimit ( ) . add ( projectDailyV . getDcUseLimit ( ) ) ) ;
// return rb.success().setData(new ProjectDailyVosBig());
} else {
ProjectInfos info1 = crmMapper . getProjectBigBySid ( query . getProjectSid ( ) ) ;
projectDailyV . setDcUseLimit ( info1 . getUseLimit ( ) ) ;
}
} else if ( s . getProjectType ( ) . equals ( "应收帐款质押类项目" ) ) {
} else if ( s . getProjectType ( ) . equals ( "应收帐款质押类项目" ) ) {
projectDailyV . setYingShou ( info . size ( ) ) ;
projectDailyV . setYingShou ( info . size ( ) ) ;
if ( projectDailyVos . size ( ) ! = 0 ) {
projectDailyV . setYsUseLimit ( projectDaily . getUseLimit ( ) . add ( projectDailyV . getYsUseLimit ( ) ) ) ;
projectDailyV . setYsUseLimit ( projectDaily . getUseLimit ( ) . add ( projectDailyV . getYsUseLimit ( ) ) ) ;
// return rb.success().setData(new ProjectDailyVosBig());
} else {
ProjectInfos info1 = crmMapper . getProjectBigBySid ( query . getProjectSid ( ) ) ;
projectDailyV . setYsUseLimit ( info1 . getUseLimit ( ) ) ;
}
}
}
System . out . println ( info ) ;
}
}
if ( null = = projectDailyYest ) {
projectDailyYest = new ProjectDailyVosBig ( ) ;
}
projectDailyV . setAccountsBalanceBfb ( sss ( projectDailyV . getAccountsBalance ( ) , projectDailyYest . getAccountsBalance ( ) ) ) ;
projectDailyV . setAccountsReceivableBfb ( sss ( projectDailyV . getAccountsReceivable ( ) , projectDailyYest . getAccountsReceivable ( ) ) ) ;
projectDailyV . setStockAmountBfb ( sss ( projectDailyV . getStockAmount ( ) , projectDailyYest . getStockAmount ( ) ) ) ;
projectDailyV . setTransitAmountBfb ( sss ( projectDailyV . getTransitAmount ( ) , projectDailyYest . getTransitAmount ( ) ) ) ;
projectDailyV . setAdvancePaymentBfb ( sss ( projectDailyV . getAdvancePayment ( ) , projectDailyYest . getAdvancePayment ( ) ) ) ;
return rb . success ( ) . setData ( projectDailyV ) ;
return rb . success ( ) . setData ( projectDailyV ) ;
}
}
public BigDecimal sss ( BigDecimal today , BigDecimal yesterday ) {
BigDecimal a = new BigDecimal ( 0 ) ;
if ( today . signum ( ) ! = 0 ) {
if ( yesterday . signum ( ) ! = 0 ) {
a = today . subtract ( yesterday ) . divide ( yesterday , 2 , RoundingMode . HALF_UP ) ;
// a=today.subtract(yesterday).divide(yesterday,2, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
} else {
a = new BigDecimal ( 100 ) ;
}
} else {
if ( yesterday . signum ( ) ! = 0 ) {
a = new BigDecimal ( - 100 ) ;
} else {
a = new BigDecimal ( 0 ) ;
}
}
return a ;
}
public ResultBean < Map < String , Object > > getProjectDailyZx ( ProjectDailyQuery query ) {
public ResultBean < Map < String , Object > > getProjectDailyZx ( ProjectDailyQuery query ) {
ResultBean rb = new ResultBean ( ) . fail ( ) ;
ResultBean rb = new ResultBean ( ) . fail ( ) ;
Map < String , Object > m = new HashMap < > ( ) ;
Map < String , Object > m = new HashMap < > ( ) ;
@ -435,8 +517,11 @@ public class ProjectDailyService extends ServiceImpl<ProjectDailyMapper, Project
}
}
if ( com . yxt . common . base . utils . StringUtils . isNotBlank ( query . getProjectSid ( ) ) ) {
if ( com . yxt . common . base . utils . StringUtils . isNotBlank ( query . getProjectSid ( ) ) ) {
qw . eq ( "projectSid" , query . getProjectSid ( ) ) ;
qw . eq ( "projectSid" , query . getProjectSid ( ) ) ;
qw . groupBy ( "orderDate" ) ;
} else {
qw . groupBy ( "orderDate" ) ;
}
}
List < ProjectDailyVos > projectDailyVos = baseMapper . getProjectDailys ( qw ) ;
List < ProjectDailyVosBig > projectDailyVos = baseMapper . getProjectDailysSum ( qw ) ;
List < String > a = new ArrayList < > ( ) ;
List < String > a = new ArrayList < > ( ) ;
List < String > b = new ArrayList < > ( ) ;
List < String > b = new ArrayList < > ( ) ;
List < String > c = new ArrayList < > ( ) ;
List < String > c = new ArrayList < > ( ) ;
@ -445,14 +530,15 @@ public class ProjectDailyService extends ServiceImpl<ProjectDailyMapper, Project
List < String > f = new ArrayList < > ( ) ;
List < String > f = new ArrayList < > ( ) ;
//14
//14
for ( int k = 0 ; k < i + 1 ; k + + ) {
for ( int k = 0 ; k < i + 1 ; k + + ) {
String date = sdf . format ( DateUtil . offsetDay ( DateUtil . parse ( EndDate ) , k ) ) ;
// String date=sdf.format(DateUtil.offsetDay(DateUtil.parse(EndDate),k));
String date = sdf . format ( DateUtil . offsetDay ( DateUtil . parse ( startDate ) , - k ) ) ;
a . add ( date ) ;
a . add ( date ) ;
b . add ( "0" ) ;
b . add ( "0" ) ;
c . add ( "0" ) ;
c . add ( "0" ) ;
d . add ( "0" ) ;
d . add ( "0" ) ;
e . add ( "0" ) ;
e . add ( "0" ) ;
f . add ( "0" ) ;
f . add ( "0" ) ;
for ( ProjectDailyVos vo : projectDailyVos ) {
for ( ProjectDailyVosBig vo : projectDailyVos ) {
if ( vo . getOrderDate ( ) . equals ( date ) ) {
if ( vo . getOrderDate ( ) . equals ( date ) ) {
b . set ( k , String . valueOf ( vo . getAccountsBalance ( ) ) ) ;
b . set ( k , String . valueOf ( vo . getAccountsBalance ( ) ) ) ;
c . set ( k , String . valueOf ( vo . getAccountsReceivable ( ) ) ) ;
c . set ( k , String . valueOf ( vo . getAccountsReceivable ( ) ) ) ;