Commit 02ed8840 by 焦凯

Merge branch 'feature/sales_record_sync' into 'develop'

完善预付款存款调度

See merge request kunlun/xyst_dinas/xyst_dinas_backend!11
parents 0e59c54f a8d58291
......@@ -9,5 +9,5 @@ import com.beecode.bcp.type.KObject;
public interface AdvancePaymentBalanceSumDao {
UUID save(KObject entity);
List<Map<String, Object>> getAllRelevantData(String startDate,String nowDate);
List<Map<String, Object>> getAllRelevantData(String startDate,String nowDate,boolean flag);
}
......@@ -42,7 +42,7 @@ public class AdvancePaymentBalanceSumDaoImpl implements AdvancePaymentBalanceSum
}
@Override
public List<Map<String, Object>> getAllRelevantData(String starDate, String nowDate) {
public List<Map<String, Object>> getAllRelevantData(String starDate, String nowDate,boolean flag) {
// TODO Auto-generated method stub
......@@ -58,11 +58,17 @@ public class AdvancePaymentBalanceSumDaoImpl implements AdvancePaymentBalanceSum
hql.append("sum( xx.j1 ) as j , ");// 保证金总额
hql.append("sum(xx.q1) as q ");// 保证金退款额
hql.append("from (").append(
" SELECT REGIONALCOMPANY.id AS a1 , PURCHASESANDUNIT.id AS b1, CONTRACT.id AS c1, PROJECT.id AS d1, sum( SALESRECODE.amount ) AS e1, sum( SALESRECODE.amount ) AS f1, ");
" SELECT REGIONALCOMPANY.id AS a1 , PURCHASESANDUNIT.id AS b1, CONTRACT.id AS c1, PROJECT.id AS d1, ");
if(!flag) {
hql.append(" CONTRACT.advance_balance AS e1, ");
}else {
hql.append(" 'null' AS e1, ");
}
hql.append(" sum( SALESRECODE.amount ) AS f1, ");
hql.append(" CASE WHEN ARTIFICIAL.fund_type = 'DEPOSIT' THEN '' ELSE sum( ARTIFICIAL.recharge_amount ) END AS g1, "
); hql. append(" CASE WHEN REFUND.fund_type = '1' THEN '' ELSE sum( REFUND.actual_refund_amount ) END AS h1, "
); hql.append(" CONTRACT.advance_balance AS i1, "); hql.
append(" CASE WHEN ARTIFICIAL.fund_type = 'DEPOSIT' THEN sum( ARTIFICIAL.recharge_amount ) ELSE '' END AS j1, "
); hql.append(" CONTRACT.advance_balance AS i1, ");
hql.append(" CASE WHEN ARTIFICIAL.fund_type = 'DEPOSIT' THEN sum( ARTIFICIAL.recharge_amount ) ELSE '' END AS j1, "
); hql.append(" CASE WHEN REFUND.fund_type = '1' THEN sum( REFUND.actual_refund_amount ) ELSE '' END AS q1 "
); hql.append(" from xyst_dinas_biz_organization as REGIONALCOMPANY ");//區域公司
hql.append("LEFT JOIN xyst_dinas_project_purchase_sand_company as PURCHASESANDUNIT ON PURCHASESANDUNIT.regional_company = REGIONALCOMPANY.id "
......@@ -95,9 +101,7 @@ public class AdvancePaymentBalanceSumDaoImpl implements AdvancePaymentBalanceSum
append(" REFUND.fund_type ") .append(" ) AS xx ");// 分组
hql.append(" GROUP BY ").append(" xx.a1, ").append(" xx.b1, ").
append(" xx.c1, ").append(" xx.d1 ");// 外层分组
//String sql = "SELECT xx.a1 as a, xx.b1 as b, xx.d1 as d, xx.e1 as e, xx.f1 as f, sum( xx.g1 ) as g, sum( xx.h1 ) as h, xx.i1 as i, sum( xx.j1 ) as j, sum(xx.q1 ) as q FROM ( SELECT REGIONALCOMPANY.id AS a1, PURCHASESANDUNIT.id AS b1, CONTRACT.id AS c1, PROJECT.id AS d1, sum( SALESRECODE.amount ) AS e1, sum( SALESRECODE.amount ) AS f1, CASE WHEN ARTIFICIAL.fund_type = 'DEPOSIT' THEN '' ELSE sum( ARTIFICIAL.recharge_amount ) END AS g1, CASE WHEN REFUND.fund_type = '1' THEN '' ELSE sum( REFUND.actual_refund_amount ) END AS h1, CONTRACT.advance_balance AS i1, CASE WHEN ARTIFICIAL.fund_type = 'DEPOSIT' THEN sum( ARTIFICIAL.recharge_amount ) ELSE '' END AS j1, CASE WHEN REFUND.fund_type = '1' THEN sum( REFUND.actual_refund_amount ) ELSE '' END AS q1 FROM xyst_dinas_biz_organization AS REGIONALCOMPANY LEFT JOIN xyst_dinas_project_purchase_sand_company AS PURCHASESANDUNIT ON PURCHASESANDUNIT.regional_company = REGIONALCOMPANY.id LEFT JOIN xyst_dinas_contract_master AS CONTRACT ON CONTRACT.purchase_sand_Unit_id = PURCHASESANDUNIT.id AND CONTRACT.contract_state = 'EXECUTING' LEFT JOIN xyst_dinas_project_filed AS PROJECT ON CONTRACT.project_id = PROJECT.id LEFT JOIN xyst_dinas_sales_record AS SALESRECODE ON SALESRECODE.project_id = PROJECT.id AND SALESRECODE.regional_company_id = REGIONALCOMPANY.id AND SALESRECODE.contract_id = CONTRACT.id AND ( SALESRECODE.sync_time < '2021-05-08' AND SALESRECODE.sync_time >= '2021-05-06' ) LEFT JOIN xyst_dinas_finance_artificial_recharge AS ARTIFICIAL ON ARTIFICIAL.regional_company = REGIONALCOMPANY.id AND ARTIFICIAL.contract = CONTRACT.id AND ARTIFICIAL.purchase_sand_unit = PURCHASESANDUNIT.id AND ( ARTIFICIAL.create_time < '2021-05-08' AND ARTIFICIAL.create_time >= '2021-05-06' ) LEFT JOIN xyst_dinas_finance_refund AS REFUND ON REFUND.regional_company = REGIONALCOMPANY.id AND REFUND.contract = CONTRACT.id AND REFUND.purchase_sand_company = PURCHASESANDUNIT.id AND ( REFUND.create_time < '2021-05-08' AND REFUND.create_time >= '2021-05-06' ) WHERE PURCHASESANDUNIT.regional_company IS NOT NULL GROUP BY CONTRACT.id,ARTIFICIAL.project,ARTIFICIAL.contract,ARTIFICIAL.purchase_sand_unit,REFUND.project,REFUND.contract,REFUND.purchase_sand_company,ARTIFICIAL.fund_type,REFUND.fund_type ) AS xx GROUP BY xx.a1,xx.b1,xx.c1,xx.d1,xx.d1";
return (List<Map<String, Object>>) template.execute(new HibernateCallback<List<Map<String, Object>>>() {
return (List<Map<String, Object>>) template.execute(new HibernateCallback<List<Map<String, Object>>>() {
@Override
public List<Map<String, Object>> doInHibernate(Session session) throws HibernateException {
Query<Tuple> query = session.createNativeQuery(hql.toString(), Tuple.class);
......
......@@ -51,10 +51,12 @@ public class AdvancePaymentBalanceSumServiceImpl implements AdvancePaymentBalanc
@Transactional
@Override
public boolean generateAdvancePaymentBalanceSumByDate(String startDate, String nowDate) {
public boolean generateAdvancePaymentBalanceSumByDate(String startDate, String nowDate,boolean flag) {
boolean state = false;
try {
List<Map<String, Object>> SalesRecordList = advancePaymentBalanceSumDao.getAllRelevantData(startDate,nowDate);
List<Map<String, Object>> SalesRecordList = advancePaymentBalanceSumDao.getAllRelevantData(startDate,nowDate,flag);
for (Map<String, Object> mp : SalesRecordList) {
KObject AdvancePaymentBalanceSum = AdvancePaymentBalanceSumClass.newInstance();
AdvancePaymentBalanceSum.set(AdvancePaymentBalanceSumConstants.ID, UUID.randomUUID());
......@@ -81,5 +83,32 @@ public class AdvancePaymentBalanceSumServiceImpl implements AdvancePaymentBalanc
return state;
}
/**
* 获取当前年份
* @return
*/
public static String getSysYear() {
Calendar date = Calendar.getInstance();
String year = String.valueOf(date.get(Calendar.YEAR));
return year;
}
/**
* 获取某年最后一天日期
*
* @param year
* 年份
* @return Date
*/
public static Date getYearLast(int year) {
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR, year);
calendar.roll(Calendar.DAY_OF_YEAR, -1);
Date currYearLast = calendar.getTime();
return currYearLast;
}
}
......@@ -50,11 +50,26 @@ public class AdvancePaymentBalanceSumSchedulerTask implements Task {
calendar.add(Calendar.DAY_OF_MONTH, -1); // 设置为前一天
beforeTime = calendar.getTime(); // 得到前一天的时间
String dateBefore = dateTime.format(beforeTime);
boolean flag = advancePaymentBalanceSumService.generateAdvancePaymentBalanceSumByDate(dateBefore,dateNow);
String yearEnd = getYearEnd();
boolean lastYearFlag = false;
if (yearEnd == dateBefore) {
lastYearFlag = true;
}
boolean flag = advancePaymentBalanceSumService.generateAdvancePaymentBalanceSumByDate(dateBefore,dateNow,lastYearFlag);
if(flag) {
logger.info("预付款与结余汇总调度执行成功!!!!");
}else {
logger.info("预付款与结余汇总调度执行失败!!!!");
}
}
public String getYearEnd(){
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MONTH,calendar.getActualMaximum(Calendar.MONTH));
calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
Date currYearLast = calendar.getTime();
return new SimpleDateFormat("yyyy-MM-dd").format(currYearLast);
}
}
......@@ -41,7 +41,7 @@ public class AdvancePaymentBalanceSumSchedulerTaskRegister implements ServiceIn
}
TaskDetail taskDetail = new TaskDetail(Advance_Payment_Balance_Sum_Scheduler_Task,AdvancePaymentBalanceSumSchedulerTask.class.getName());
//scheduleService.scheduleTask(taskDetail, "0 0 1/23 * * ? *");
scheduleService.scheduleTask(taskDetail, "0 0 1/23 * * ? *");
//测试使用 没分钟执行一次
//scheduleService.scheduleTask(taskDetail, "0 0/5 * * * ? *");
logger.info("预付款与结余汇总自动创建任务初始化成功!");
......
package com.xyst.dinas.statistics.service;
public interface AdvancePaymentBalanceSumService {
boolean generateAdvancePaymentBalanceSumByDate(String dateNow,String dateBefore);
boolean generateAdvancePaymentBalanceSumByDate(String dateNow,String dateBefore,boolean flag);
}
......@@ -21,7 +21,7 @@ public class SalesSummaryController {
AdvancePaymentBalanceSumService advancePaymentBalanceSumService;
@PostMapping(value = "/SalesSummary/save", consumes = "application/json")
public Object saveSalesSummary(@RequestBody List<SalesRecordInfo>
public void saveSalesSummary(@RequestBody List<SalesRecordInfo>
salesRecordList) {
/* if (salesRecordList.isEmpty()) { return
......@@ -29,9 +29,8 @@ public class SalesSummaryController {
salesSummaryService.generateAllSalesRecordByDate("2021-05-08", "2021-01-01"); }
}*/
if (salesRecordList.isEmpty()) { return
/*if (salesRecordList.isEmpty()) { return
ResponseObj.error("传递的销售台账数据条数为0!请确认!"); } else { return
advancePaymentBalanceSumService.generateAdvancePaymentBalanceSumByDate(
"2021-05-08", "2021-05-07"); } }
}
"2021-05-08", "2021-05-07",true); }*/
}}
......@@ -32,6 +32,7 @@
AND (artificialRecharge.createTime &gt;= :?startDate AND artificialRecharge.createTime &lt; :?endDate)
AND purchaseSandCompanyon.name LIKE :?purchaseSandCompanyonName
AND projectFiled.projectName LIKE :?projectName
AND artificialRecharge.fundType = :?fundType
UNION ALL
SELECT
expenseAdjust.id as id,
......@@ -60,6 +61,7 @@
AND (expenseAdjust.createTime &gt;= :?startDate AND expenseAdjust.createTime &lt; :?endDate)
AND purchaseSandCompanyon.name LIKE :?purchaseSandCompanyonName
AND projectFiled.projectName LIKE :?projectName
AND expenseAdjust.fundType = :?fundType
UNION ALL
SELECT
financeRefund.id as id,
......@@ -82,6 +84,7 @@
AND (financeRefund.createTime &gt;= :?startDate AND financeRefund.createTime &lt; :?endDate)
AND purchaseSandCompanyon.name LIKE :?purchaseSandCompanyonName
AND projectFiled.projectName LIKE :?projectName
AND case when ( 'DEPOSIT' = :?fundType then '1' else '0' end ) = financeRefund.fundType
ORDER BY createTime DESC
</sql>
</template>
......
......@@ -13,10 +13,10 @@
<sql>
SELECT
'总计' as station,
'' as dinasType,
'-' as dinasType,
SUM( salesSummary.saleDealAmount ) as saleDealAmount,
SUM( salesSummary.saleAmount ) as saleAmount,
'' as avgAmount,
'-' as avgAmount,
(
SELECT
SUM( SalesSummary1.saleAmount ) AS janAmount
......@@ -150,7 +150,7 @@ SELECT
'小计' as dinasType,
SUM(salesSummary.saleDealAmount) as saleDealAmount,
SUM(salesSummary.saleAmount) as saleAmount,
'' as avgAmount,
'-' as avgAmount,
(
SELECT
SUM( SalesSummary1.saleAmount ) AS janAmount
......
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