Commit fd9bbd1b by Water Wang

optimzize

parent c46f9e3a
......@@ -22,16 +22,20 @@ public class AgmsStatementServiceImpl implements AgmsStatementService {
public FinancialStatementResponseVO financialPredictStatement(FinancialStatementRequestVO requestVO, HttpServletResponse response) {
FinancialStatementResponseVO responseVO = new FinancialStatementResponseVO();
PageInfo<statementData> pageInfo = requestVO.getPageInfo();
String inCommissionTime = requestVO.getInCommissionTime();//来佣时间
String outCommissionTime = requestVO.getOutCommissionTime();//发佣时间
inCommissionTime = CommonUtil.dateParseString(CommonUtil.stringParseDate(inCommissionTime,"yyyy-MM-dd HH:mm:ss"),"yyyyMM");
outCommissionTime = CommonUtil.dateParseString(CommonUtil.stringParseDate(outCommissionTime,"yyyy-MM-dd HH:mm:ss"),"yyyyMM");
String inCommissionStartTime = requestVO.getInCommissionStartTime();//来佣开始时间
String outCommissionStartTime = requestVO.getOutCommissionStartTime();//发佣开始时间
String inCommissionEndTime = requestVO.getInCommissionEndTime();//来佣开始时间
String outCommissionEndTime = requestVO.getOutCommissionEndTime();//发佣开始时间
inCommissionStartTime = CommonUtil.dateParseString(CommonUtil.stringParseDate(inCommissionStartTime,"yyyy-MM-dd HH:mm:ss"),"yyyyMM");
outCommissionStartTime = CommonUtil.dateParseString(CommonUtil.stringParseDate(outCommissionStartTime,"yyyy-MM-dd HH:mm:ss"),"yyyyMM");
inCommissionEndTime = CommonUtil.dateParseString(CommonUtil.stringParseDate(inCommissionEndTime,"yyyy-MM-dd HH:mm:ss"),"yyyyMM");
outCommissionEndTime = CommonUtil.dateParseString(CommonUtil.stringParseDate(outCommissionEndTime,"yyyy-MM-dd HH:mm:ss"),"yyyyMM");
String insurerBranchId = requestVO.getInsurerBranchId();//分公司
String deptId = requestVO.getDeptId();//营业部
String subordinateId = requestVO.getSubordinateId();//体系
Integer type = requestVO.getType();
Integer isStatement = requestVO.getIsStatement();
PageInfo<statementData> dataList = commissionService.getStatementDataByPage(pageInfo.getPageNum(),pageInfo.getSize(),isStatement,type, inCommissionTime, outCommissionTime,insurerBranchId,deptId,subordinateId);
PageInfo<statementData> dataList = commissionService.getStatementDataByPage(pageInfo.getPageNum(),pageInfo.getSize(),isStatement,type, inCommissionStartTime, outCommissionStartTime,inCommissionEndTime,outCommissionEndTime,insurerBranchId,deptId,subordinateId);
responseVO.setPredictStatementDataList(dataList);
responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
return responseVO;
......
......@@ -5,8 +5,10 @@ import com.github.pagehelper.PageInfo;
public class FinancialStatementRequestVO {
private Integer type ; //2、预测,1、实际
private Integer isStatement;//0=非报表,1=报表
private String inCommissionTime;
private String outCommissionTime;
private String inCommissionStartTime;
private String outCommissionStartTime;
private String inCommissionEndTime;
private String outCommissionEndTime;
private String insurerBranchId;//分公司ID
private String deptId;//营业部ID
private String subordinateId;//体系ID
......@@ -28,20 +30,20 @@ public class FinancialStatementRequestVO {
this.isStatement = isStatement;
}
public String getInCommissionTime() {
return inCommissionTime;
public String getInCommissionStartTime() {
return inCommissionStartTime;
}
public void setInCommissionTime(String inCommissionTime) {
this.inCommissionTime = inCommissionTime;
public void setInCommissionStartTime(String inCommissionStartTime) {
this.inCommissionStartTime = inCommissionStartTime;
}
public String getOutCommissionTime() {
return outCommissionTime;
public String getOutCommissionStartTime() {
return outCommissionStartTime;
}
public void setOutCommissionTime(String outCommissionTime) {
this.outCommissionTime = outCommissionTime;
public void setOutCommissionStartTime(String outCommissionStartTime) {
this.outCommissionStartTime = outCommissionStartTime;
}
public String getInsurerBranchId() {
......@@ -75,4 +77,20 @@ public class FinancialStatementRequestVO {
public void setPageInfo(PageInfo<statementData> pageInfo) {
this.pageInfo = pageInfo;
}
public String getInCommissionEndTime() {
return inCommissionEndTime;
}
public void setInCommissionEndTime(String inCommissionEndTime) {
this.inCommissionEndTime = inCommissionEndTime;
}
public String getOutCommissionEndTime() {
return outCommissionEndTime;
}
public void setOutCommissionEndTime(String outCommissionEndTime) {
this.outCommissionEndTime = outCommissionEndTime;
}
}
......@@ -8,10 +8,10 @@ import com.yd.api.commission.vo.CommissionEGoldenVO;
import com.yd.api.commission.vo.CommissionVO;
public interface CommissionService {
List<CommissionVO> queryCommissionByLogin(String login);
List<CommissionEGoldenVO> listSalesCommissionfromEGolden(String login);
PageInfo<statementData> getStatementDataByPage(int pageNum, int size, Integer isStatement, Integer type, String predictInCommissionTime, String predictOutCommissionTime, String insurerBranchId, String deptId, String subordinateId);
PageInfo<statementData> getStatementDataByPage(int pageNum, int size, Integer isStatement, Integer type, String inCommissionStartTime, String outCommissionStartTime,String inCommissionEndTime, String outCommissionEndTime, String insurerBranchId, String deptId, String subordinateId);
}
......@@ -20,9 +20,9 @@ import com.yd.dal.service.commission.CommissionServiceDA;
public class CommissionServiceImpl implements CommissionService{
@Autowired
private CommissionServiceDA commissionServiceDA;
private CommissionServiceDA commissionServiceDA;
@Autowired
private CommissionEGoldenDA commissionEGoldenDA;
private CommissionEGoldenDA commissionEGoldenDA;
/*
* 按照手机号从AGMS DB中查询佣金
* (non-Javadoc)
......@@ -34,12 +34,12 @@ public class CommissionServiceImpl implements CommissionService{
List<Commission> list = new ArrayList<Commission>();
list = commissionServiceDA.queryCommissionByLogin(login);
CommissionVO oneDestVO;
for(Commission oneSrc:list)
{
oneDestVO = new CommissionVO();
BeanUtils.copyProperties(oneSrc, oneDestVO);
listTo.add(oneDestVO);
}
for(Commission oneSrc:list)
{
oneDestVO = new CommissionVO();
BeanUtils.copyProperties(oneSrc, oneDestVO);
listTo.add(oneDestVO);
}
return listTo;
}
/*
......@@ -53,18 +53,18 @@ public class CommissionServiceImpl implements CommissionService{
List<CommissionEGolden> list = new ArrayList<CommissionEGolden>();
list = commissionEGoldenDA.listSalesCommissionfromEGolden(login);
CommissionEGoldenVO oneDestVO;
for(CommissionEGolden oneSrc:list)
{
oneDestVO = new CommissionEGoldenVO();
BeanUtils.copyProperties(oneSrc, oneDestVO);
listTo.add(oneDestVO);
}
for(CommissionEGolden oneSrc:list)
{
oneDestVO = new CommissionEGoldenVO();
BeanUtils.copyProperties(oneSrc, oneDestVO);
listTo.add(oneDestVO);
}
return listTo;
}
@Override
public PageInfo<statementData> getStatementDataByPage(int pageNum, int size, Integer isStatement, Integer type, String inCommissionTime, String outCommissionTime, String insurerBranchId, String deptId, String subordinateId) {
return commissionEGoldenDA.getStatementDataByPage(pageNum,size,isStatement,type,inCommissionTime,outCommissionTime,insurerBranchId,deptId,subordinateId);
public PageInfo<statementData> getStatementDataByPage(int pageNum, int size, Integer isStatement, Integer type, String inCommissionStartTime, String outCommissionStartTime,String inCommissionEndTime, String outCommissionEndTime, String insurerBranchId, String deptId, String subordinateId) {
return commissionEGoldenDA.getStatementDataByPage(pageNum,size,isStatement,type,inCommissionStartTime,outCommissionStartTime,inCommissionEndTime,outCommissionEndTime,insurerBranchId,deptId,subordinateId);
}
}
......@@ -14,8 +14,8 @@ import com.yd.dal.entity.commission.CommissionEGolden;
*/
public interface CommissionEGoldenMapper {
List<CommissionEGolden> listSalesCommissionfromEGolden(@Param("login")String login);
Page<statementData> getStatementDataByPage(@Param("isStatement")Integer isStatement,@Param("type")Integer type, @Param("inCommissionTime")String inCommissionTime, @Param("outCommissionTime")String outCommissionTime, @Param("insurerBranchId")String insurerBranchId, @Param("deptId")String deptId, @Param("subordinateId")String subordinateId);
List<CommissionEGolden> listSalesCommissionfromEGolden(@Param("login")String login);
Page<statementData> getStatementDataByPage(@Param("isStatement")Integer isStatement,@Param("type")Integer type, @Param("inCommissionStartTime")String inCommissionStartTime, @Param("outCommissionStartTime")String outCommissionStartTime,@Param("inCommissionEndTime")String inCommissionEndTime, @Param("outCommissionEndTime")String outCommissionEndTime, @Param("insurerBranchId")String insurerBranchId, @Param("deptId")String deptId, @Param("subordinateId")String subordinateId);
}
......@@ -12,7 +12,7 @@ import com.yd.dal.entity.commission.CommissionEGolden;
*/
public interface CommissionEGoldenDA {
PageInfo<statementData> getStatementDataByPage(int pageNum, int size,Integer isStatement, Integer type, String inCommissionTime, String outCommissionTime, String insurerBranchId, String deptId, String subordinateId);
PageInfo<statementData> getStatementDataByPage(int pageNum, int size,Integer isStatement, Integer type, String inCommissionStartTime, String outCommissionStartTime,String inCommissionEndTime, String outCommissionEndTime, String insurerBranchId, String deptId, String subordinateId);
List<CommissionEGolden> listSalesCommissionfromEGolden(String login);
......
......@@ -31,10 +31,10 @@ public class CommissionEGoldenDAImpl implements CommissionEGoldenDA {
@Override
@TargetDataSource(dataSourceKey = DataSourceKey.DB_EGOLDEN)
public PageInfo<statementData> getStatementDataByPage(int pageNum, int size, Integer isStatement,Integer type, String inCommissionTime, String outCommissionTime, String insurerBranchId, String deptId, String subordinateId) {
public PageInfo<statementData> getStatementDataByPage(int pageNum, int size, Integer isStatement,Integer type, String inCommissionStartTime, String outCommissionStartTime,String inCommissionEndTime, String outCommissionEndTime, String insurerBranchId, String deptId, String subordinateId) {
PageHelper.startPage(pageNum, size);
Page<statementData> statementData = commissionEGoldenMapper.getStatementDataByPage(isStatement,type,inCommissionTime,outCommissionTime,insurerBranchId,deptId,subordinateId);
PageInfo<com.yd.api.agms.vo.statement.statementData> pageInfo = new PageInfo<>(statementData);
Page<statementData> statementData = commissionEGoldenMapper.getStatementDataByPage(isStatement,type,inCommissionStartTime,outCommissionStartTime,inCommissionEndTime,outCommissionEndTime,insurerBranchId,deptId,subordinateId);
PageInfo<statementData> pageInfo = new PageInfo<>(statementData);
return pageInfo;
}
......@@ -44,14 +44,14 @@ public class CommissionEGoldenDAImpl implements CommissionEGoldenDA {
* (non-Javadoc)
* @see com.yd.dataccess.service.commission.CommissionEGoldenDA#listSalesCommissionfromEGolden(java.lang.String)
*/
@Override
@TargetDataSource(dataSourceKey = DataSourceKey.DB_EGOLDEN)
public List<CommissionEGolden> listSalesCommissionfromEGolden(String login) {
List<CommissionEGolden> destList = new ArrayList<CommissionEGolden>();
@Override
@TargetDataSource(dataSourceKey = DataSourceKey.DB_EGOLDEN)
public List<CommissionEGolden> listSalesCommissionfromEGolden(String login) {
List<CommissionEGolden> destList = new ArrayList<CommissionEGolden>();
destList = commissionEGoldenMapper.listSalesCommissionfromEGolden(login);
return destList;
}
}
}
......@@ -5,68 +5,80 @@
<result column="SAL_MST_MOBILE" property="login"/>
<result column="SAL_MST_NAME" property="name"/>
<result column="INS_MST_ID" property="policyNo"/>
<result column="INS_MST_TOTAL_PREIUM" property="premium"/>
<result column="INS001_FYCTOTAL" property="fyc"/>
<result column="INS_MST_TOTAL_PREIUM" property="premium"/>
<result column="INS001_FYCTOTAL" property="fyc"/>
<result column="INS_MST_SALES" property="handBy"/>
<result column="INS_MST_SEND_DATE" property="policyIssueDate"/>
<result column="INS_MST_SEND_DATE" property="policyIssueDate"/>
<result column="INS_BEN_NAME" property="policyHolder"/>
</resultMap>
<select id="listSalesCommissionfromEGolden" parameterType="java.lang.String" resultMap="base_result_mapegolden">
SELECT DISTINCT
sales.SAL_MST_MOBILE -- 业务员手机
,sales.SAL_MST_NAME -- 业务员
,policy.INS_MST_ID -- 保单号
,policy.INS_MST_TOTAL_PREIUM -- 保费
,policy.INS001_FYCTOTAL -- FYC
,policy.INS_MST_SALES -- 经手人
,policy.INS_MST_SEND_DATE -- 出单日
,p_insed.INS_BEN_NAME -- 被保人受益人
FROM sal001 sales LEFT JOIN ins003 p_sales on sales.SAL_MST_ID = p_sales.FK_SAL_MST_ID
LEFT JOIN ins001 policy on policy.INS_MST_ID = p_sales.FK_INS_MST_ID
LEFT JOIN ins017 p_insed on policy.INS_MST_ID = p_insed.FK_INS_MST_ID
WHERE policy.INS_MST_REPEAL != 1 AND sales.SAL_MST_MOBILE = #{login}
SELECT DISTINCT
sales.SAL_MST_MOBILE -- 业务员手机
,sales.SAL_MST_NAME -- 业务员
,policy.INS_MST_ID -- 保单号
,policy.INS_MST_TOTAL_PREIUM -- 保费
,policy.INS001_FYCTOTAL -- FYC
,policy.INS_MST_SALES -- 经手人
,policy.INS_MST_SEND_DATE -- 出单日
,p_insed.INS_BEN_NAME -- 被保人受益人
FROM sal001 sales LEFT JOIN ins003 p_sales on sales.SAL_MST_ID = p_sales.FK_SAL_MST_ID
LEFT JOIN ins001 policy on policy.INS_MST_ID = p_sales.FK_INS_MST_ID
LEFT JOIN ins017 p_insed on policy.INS_MST_ID = p_insed.FK_INS_MST_ID
WHERE policy.INS_MST_REPEAL != 1 AND sales.SAL_MST_MOBILE = #{login}
</select>
<select id="getStatementDataByPage" resultType="com.yd.api.agms.vo.statement.statementData">
select if(#{type,jdbcType=INTEGER} = 1,receive.mon024_302,receive.MON024_301) as inCommissionTime, -- 预计来佣年月
if(#{type,jdbcType=INTEGER} = 1,pay.MON025_302,pay.mon025_301) as outCommissionTime,
policy.INS_MST_POLICY_NUM as policyNo, -- 保单号
branch.SPC_AREA_NAME as insurerBranch, -- 分公司
dept.SPC_BUS_NAME as dept, -- 营业部
divl.SPC_DIV_NAME as subordinate, -- 体系id
practitioner.SAL_MST_NAME as practitioner, --
pay.MON025_007 as practitionerIdEG, -- 业务员
title.SRA_RE_NAME as title, -- 职阶
pay.MON025_403 as titleRate, -- 职阶率
pay.premium as premium, -- 保费
policy.INS001_FYCTOTAL as FYC, -- fyc
receive.incommission as rightReceiveCommission, -- 来佣金额
pay.paycommission as rightPayCommission, -- 应发佣金
pay.MON025_108 as commissionType-- 佣奖类型
if(#{type,jdbcType=INTEGER} = 1,pay.MON025_302,pay.mon025_301) as outCommissionTime,
policy.INS_MST_POLICY_NUM as policyNo, -- 保单号
branch.SPC_AREA_NAME as insurerBranch, -- 分公司
dept.SPC_BUS_NAME as dept, -- 营业部
divl.SPC_DIV_NAME as subordinate, -- 体系id
practitioner.SAL_MST_NAME as practitioner, --
pay.MON025_007 as practitionerIdEG, -- 业务员
title.SRA_RE_NAME as title, -- 职阶
pay.MON025_403 as titleRate, -- 职阶率
pay.premium as premium, -- 保费
policy.INS001_FYCTOTAL as FYC, -- fyc
receive.incommission as rightReceiveCommission, -- 来佣金额
pay.paycommission as rightPayCommission, -- 应发佣金
pay.MON025_108 as commissionType-- 佣奖类型
from ins001 policy INNER JOIN (select MON025_002,MON025_301,MON025_302,MON025_005,MON025_006,mon025_007,MON025_008,MON025_403,sum(MON025_401) as premium,sum(MON025_405) as paycommission,MON025_108 from MON025 group by mon025_002,mon025_301,MON025_007) pay on policy.INS_MST_ID = pay.MON025_002 AND pay.mon025_108 in ('S01','S02')
INNER JOIN (select MON024_002,MON024_301,MON024_302,sum(MON024_404) as incommission from MON024 group by MON024_002 ,MON024_301) receive on policy.INS_MST_ID = receive.MON024_002
inner join spc002 dept on dept.SPC_BUS_ID = pay.MON025_005
inner join spc001 branch on branch.SPC_AREA_ID = dept.FK_AREA_ID
inner join spc004 divl on divl.SPC_DIV_ID = pay.MON025_006
inner join sal001 practitioner on practitioner.SAL_MST_ID = pay.MON025_007
inner join sra008 title on title.SRA_RRR_ID = pay.MON025_008
INNER JOIN (select MON024_002,MON024_301,MON024_302,sum(MON024_404) as incommission from MON024 group by MON024_002 ,MON024_301) receive on policy.INS_MST_ID = receive.MON024_002
inner join spc002 dept on dept.SPC_BUS_ID = pay.MON025_005
inner join spc001 branch on branch.SPC_AREA_ID = dept.FK_AREA_ID
inner join spc004 divl on divl.SPC_DIV_ID = pay.MON025_006
inner join sal001 practitioner on practitioner.SAL_MST_ID = pay.MON025_007
inner join sra008 title on title.SRA_RRR_ID = pay.MON025_008
where policy.INS_MST_ID = receive.MON024_002
<if test="isStatement == 0">
<choose>
<when test="type == 1">
<if test="inCommissionTime != null">
and receive.mon024_302 = #{inCommissionTime,jdbcType=VARCHAR}
<if test="inCommissionStartTime != null">
and CONVERT(receive.mon024_302,signed) &gt;= CONVERT(#{inCommissionStartTime,jdbcType=VARCHAR},signed)
</if>
<if test="outCommissionTime != null">
and pay.MON025_302 = #{outCommissionTime,jdbcType=VARCHAR}
<if test="inCommissionEndTime != null">
and CONVERT(receive.mon024_302,signed) &lt;= CONVERT(#{inCommissionEndTime,jdbcType=VARCHAR},signed)
</if>
<if test="outCommissionStartTime != null">
and CONVERT(pay.MON025_302,signed) &gt;= CONVERT(#{outCommissionStartTime,jdbcType=VARCHAR},signed)
</if>
<if test="outCommissionEndTime != null">
and CONVERT(pay.MON025_302,signed) &lt;= CONVERT(#{outCommissionEndTime,jdbcType=VARCHAR},signed)
</if>
</when>
<otherwise>
<if test="inCommissionTime != null">
and receive.mon024_301 = #{inCommissionTime,jdbcType=VARCHAR}
<if test="inCommissionStartTime != null">
and CONVERT(receive.mon024_301,signed) &gt;= CONVERT(#{inCommissionStartTime,jdbcType=VARCHAR},signed)
</if>
<if test="inCommissionEndTime != null">
and CONVERT(receive.mon024_301,signed) &lt;= CONVERT(#{inCommissionEndTime,jdbcType=VARCHAR},signed)
</if>
<if test="outCommissionStartTime != null">
and CONVERT(pay.MON025_301,signed) &gt;= CONVERT(#{outCommissionStartTime,jdbcType=VARCHAR},signed)
</if>
<if test="outCommissionTime != null">
and pay.MON025_301 = #{outCommissionTime,jdbcType=VARCHAR}
<if test="outCommissionEndTime != null">
and CONVERT(pay.MON025_301,signed) &lt;= CONVERT(#{outCommissionEndTime,jdbcType=VARCHAR},signed)
</if>
</otherwise>
</choose>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment