Commit 36196295 authored by Chitsanupong's avatar Chitsanupong
Browse files

individual dept

Showing with 199 additions and 72 deletions
+199 -72
......@@ -221,9 +221,11 @@
<jbpm.datasource.url>
https://compensation-prod-9d8ef2ae9124.herokuapp.com/kie-server/services/rest/server</jbpm.datasource.url>
<jbpm.datasource.username>wbadmin</jbpm.datasource.username>
<jbpm.datasource.password>wbadmin</jbpm.datasource.password>
<jbpm.datasource.processId>compensation.IndividualTaxProcess</jbpm.datasource.processId>
<jbpm.datasource.containerId>compensation_1.0.0-SNAPSHOT</jbpm.datasource.containerId>
<jbpm.datasource.password>wbadmin</jbpm.datasource.password>
<jbpm.datasource.processIdTax>compensation.IndividualTaxProcess</jbpm.datasource.processIdTax>
<jbpm.datasource.processIdMonthly>compensation.MonthlyBonusProcess</jbpm.datasource.processIdMonthly>
<jbpm.datasource.processIdMonthlyOverriding>compensation.MonthlyOverridingProcess</jbpm.datasource.processIdMonthlyOverriding>
<jbpm.datasource.containerId>compensation_1.0.0-SNAPSHOT</jbpm.datasource.containerId>
</properties>
</profile>
<profile>
......
package com.b3.rbl.compensation.model.jbpm;
import java.sql.Date;
import org.springframework.context.annotation.ComponentScan;
/**
......@@ -229,8 +231,19 @@ public class AgentResult implements java.io.Serializable {
@org.kie.api.definition.type.Label(value = "Description")
private java.lang.String description;
private java.sql.Date debtFirstDate;
private java.lang.Integer debtRefer;
private java.lang.Boolean isDebtCompromise;
public java.lang.Boolean getIsDebtCompromise() {
return isDebtCompromise;
}
public void setIsDebtCompromise(java.lang.Boolean isDebtCompromise) {
this.isDebtCompromise = isDebtCompromise;
}
public AgentResult() {
}
......@@ -774,8 +787,6 @@ public class AgentResult implements java.io.Serializable {
public void setPolicyStatusName(java.lang.String policyStatusName) {
this.policyStatusName = policyStatusName;
}
public java.lang.Double getFycProduction() {
return this.fycProduction;
......@@ -835,6 +846,22 @@ public class AgentResult implements java.io.Serializable {
this.description = description;
}
public java.sql.Date getDebtFirstDate() {
return debtFirstDate;
}
public void setDebtFirstDate(java.sql.Date debtFirstDate) {
this.debtFirstDate = debtFirstDate;
}
public java.lang.Integer getDebtRefer() {
return debtRefer;
}
public void setDebtRefer(java.lang.Integer debtRefer) {
this.debtRefer = debtRefer;
}
public AgentResult(java.lang.String agentCode,
java.util.List<AgentDetail> agentDetail,
......@@ -872,7 +899,9 @@ public class AgentResult implements java.io.Serializable {
java.lang.Double fycProduction, java.lang.String agentTitle,
java.lang.String benefitCode, java.lang.Double persistencyRate,
java.lang.Double incomeTax, java.lang.Double deductTax,
java.lang.String description) {
java.lang.String description,java.sql.Date debtFirstDate,
java.lang.Integer debtRefer, java.lang.Boolean isDebtCompromise
) {
this.agentCode = agentCode;
this.agentDetail = agentDetail;
this.agentPosition = agentPosition;
......@@ -940,6 +969,9 @@ public class AgentResult implements java.io.Serializable {
this.incomeTax = incomeTax;
this.deductTax = deductTax;
this.description = description;
this.debtFirstDate = debtFirstDate;
this.debtRefer = debtRefer;
this.isDebtCompromise = isDebtCompromise;
}
}
\ No newline at end of file
......@@ -106,6 +106,7 @@ public class JbpmService {
}
});
put("debt", new HashMap<String, String>() {
{
put("agentCode", "agent_code");
......@@ -123,6 +124,21 @@ public class JbpmService {
}
});
put("benefit_result", new HashMap<String, String>() {
{
put("agentCode", "agent_code");
put("paidDate", "paid_date");
put("benefitCode", "benefit_code");
put("description", "description");
put("createby", "create_by");
put("createdate", "create_date");
put("updateby", "update_by");
put("updatedate", "update_date");
put("isDebtCompromise", "is_debt_compromise");
}
});
put("MonthlyBonus", new HashMap<String, String>() {
{
put("agentCode", "agent_code");
......@@ -404,8 +420,8 @@ public class JbpmService {
+ concatSingleQuote(agent.getPaidMonth()) + "," + roundingDecimalScale(agent.getBeforeVat())
+ "," + agent.getIsVat()
+ "," + "'System'" + ","
+ concatSingleQuote(java.time.LocalDate.now().toString()) + "," + "'System'"
+ "," + concatSingleQuote(java.time.LocalDate.now().toString()) + ","
+ concatSingleQuote(java.time.LocalDateTime.now().toString()) + "," + "'System'"
+ "," + concatSingleQuote(java.time.LocalDateTime.now().toString()) + ","
+ agent.getIsCorporate() + "),";
}
else{
......@@ -421,8 +437,8 @@ public class JbpmService {
+ concatSingleQuote(agent.getPaidMonth()) + "," + roundingDecimalScale(agent.getBeforeVat())
+ "," + agent.getIsVat()
+ "," + "'System'" + ","
+ concatSingleQuote(java.time.LocalDate.now().toString()) + "," + "'System'"
+ "," + concatSingleQuote(java.time.LocalDate.now().toString()) + ","
+ concatSingleQuote(java.time.LocalDateTime.now().toString()) + "," + "'System'"
+ "," + concatSingleQuote(java.time.LocalDateTime.now().toString()) + ","
+ agent.getIsCorporate() + "),";
}
......@@ -433,54 +449,67 @@ public class JbpmService {
log.info("paid Date {}", agent.getPaidDate().toString());
Map<String, String> mp = (Map<String, String>) mapDataToDB.get(0).get("debt");
if (count == 0) {
sql += "rbl (" + mp.get("agentCode") + ","
+ mp.get("calculationDate") + "," + mp.get("netAmount")
+ "," + mp.get("vat") + ","
+ mp.get("tax") + "," + mp.get("psnInfoId")
+ "," + mp.get("scheduleId") + ","
+ mp.get("isPaid") + "," + mp.get("paidDate")
+ "," + mp.get("wht") + ","
+ mp.get("vatPercent") + "," + mp.get("whtPercent")
+ "," + mp.get("paidYear") + ","
+ mp.get("paidMonth") + "," + mp.get("beforeVat")
+ "," + mp.get("isVat")
sql += "rbl_debt (" + mp.get("agentCode") + ","
+ mp.get("amount")+","+ mp.get("debtFirstDate")
+ "," + mp.get("transactionDate") + ","
+ mp.get("payDate") + "," + mp.get("debtRefer")
+ ","+ mp.get("isPaid")
+ "," + mp.get("createby") + ","
+ mp.get("createdate") + "," + mp.get("updateby")
+ "," + mp.get("updatedate") + ","
+ mp.get("isCorporate") + ") VALUES ";
+ "," + mp.get("updatedate")
+ ") VALUES ";
sql += "(" + agent.getAgentCode() + ","
+ convertDateFormat(agent.getCalculationDate()) + "," + agent.getAmount()
+ "," + roundingDecimalScale(agent.getVat()) + ","
+ roundingDecimalScale(agent.getTax()) + "," + agent.getPsnIdInfo()
+ ",'" + agent.getScheduleId() + "',"
+ agent.getIsPaid() + "," + concatSingleQuote(agent.getPaidDate().toString())
+ "," + agent.getWht() + ","
+ agent.getVatPercent() + "," + agent.getWhtPercent()
+ "," + agent.getPaidYear() + ","
+ concatSingleQuote(agent.getPaidMonth()) + "," + roundingDecimalScale(agent.getBeforeVat())
+ "," + agent.getIsVat()
+ "," + "'System'" + ","
+ agent.getAmount()
+ "," + concatSingleQuote(agent.getDebtFirstDate().toString()) + ","
+ concatSingleQuote(agent.getCalculationDate())
+ ","+ concatSingleQuote(agent.getPaidDate().toString())+"," + agent.getDebtRefer() + ","
+ agent.getIsPaid() + ","
+ "'System'" + ","
+ concatSingleQuote(java.time.LocalDate.now().toString()) + "," + "'System'"
+ "," + concatSingleQuote(java.time.LocalDate.now().toString()) + ","
+ agent.getIsCorporate() + "),";
+ "," + concatSingleQuote(java.time.LocalDate.now().toString()) +"),";
}
else{
sql += "(" + agent.getAgentCode() + ","
+ convertDateFormat(agent.getCalculationDate()) + "," + agent.getAmount()
+ "," + roundingDecimalScale(agent.getVat()) + ","
+ roundingDecimalScale(agent.getTax()) + "," + agent.getPsnIdInfo()
+ ",'" + agent.getScheduleId() + "',"
+ agent.getIsPaid() + "," + concatSingleQuote(agent.getPaidDate().toString())
+ "," + agent.getWht() + ","
+ agent.getVatPercent() + "," + agent.getWhtPercent()
+ "," + agent.getPaidYear() + ","
+ concatSingleQuote(agent.getPaidMonth()) + "," + roundingDecimalScale(agent.getBeforeVat())
+ "," + agent.getIsVat()
+ "," + "'System'" + ","
+ concatSingleQuote(java.time.LocalDate.now().toString()) + "," + "'System'"
+ "," + concatSingleQuote(java.time.LocalDate.now().toString()) + ","
+ agent.getIsCorporate() + "),";
+ agent.getAmount()
+ "," + concatSingleQuote(agent.getDebtFirstDate().toString()) + ","
+ concatSingleQuote(agent.getCalculationDate())
+ ","+ concatSingleQuote(agent.getPaidDate().toString())+"," + agent.getDebtRefer() + ","
+ agent.getIsPaid() + ","
+ "'System'" + ","
+ concatSingleQuote(java.time.LocalDateTime.now().toString()) + "," + "'System'"
+ "," + concatSingleQuote(java.time.LocalDateTime.now().toString()) +"),";
}
}
if (agent.getBenefitType().equals("Benefit_Result")) {
log.info("paid Date {}", agent.getPaidDate().toString());
Map<String, String> mp = (Map<String, String>) mapDataToDB.get(0).get("benefit_result");
if (count == 0) {
sql += "rbl_benefit_result (" + mp.get("agentCode") + ","
+ mp.get("paidDate") + "," + mp.get("benefitCode")
+ "," + mp.get("description")
+ "," + mp.get("createby") + ","
+ mp.get("createdate") + "," + mp.get("updateby")
+ "," + mp.get("updatedate") + "," + mp.get("isDebtCompromise")
+ ") VALUES ";
sql += "(" + agent.getAgentCode() + ","
+ concatSingleQuote(agent.getPaidDate().toString()) + "," + concatSingleQuote(agent.getBenefitCode())
+ "," + concatSingleQuote(agent.getDescription() )+","
+ "'System'" + ","
+ concatSingleQuote(java.time.LocalDate.now().toString()) + "," + "'System'"
+ "," + concatSingleQuote(java.time.LocalDate.now().toString()) +"),";
}
else{
sql += "(" + agent.getAgentCode() + ","
+ concatSingleQuote(agent.getPaidDate().toString()) + "," + concatSingleQuote(agent.getBenefitCode())
+ "," + concatSingleQuote(agent.getDescription() )+","
+ "'System'" + ","
+ concatSingleQuote(java.time.LocalDateTime.now().toString()) + "," + "'System'"
+ "," + concatSingleQuote(java.time.LocalDateTime.now().toString()) +"),";
}
......
package com.b3.rbl.compensation.service;
import java.sql.Date;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -13,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.b3.rbl.compensation.model.jbpm.AgentDetailData;
import com.b3.rbl.compensation.model.jbpm.AgentResult;
import com.b3.rbl.compensation.util.ObjectUtil;
import com.fasterxml.jackson.core.JsonProcessingException;
......@@ -46,18 +48,19 @@ public class PaymentService {
// AgentDetailData agentData = setupPayload(data, benefitType);
// try {
// executeBusinessProcess(agentData);
// executeBusinessProcess(agentData);
// } catch (JsonProcessingException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// log.info("agent {}", agentData);
for (int i = 0; i < data.size();i++) {
for (int i = 0; i < data.size(); i++) {
try {
log.info("from {} to {}",i,i+1);
AgentDetailData agentData = jbpmService.setupPayload(data.subList(i, Math.min(i+1, data.size())),benefitType);
log.info("from {} to {}", i, i + 1);
AgentDetailData agentData = jbpmService.setupPayload(data.subList(i, Math.min(i + 1, data.size())),
benefitType);
log.info(agentData.getAgents().size());
jbpmService.executeBusinessProcess(agentData);
} catch (JsonProcessingException e) {
......@@ -68,12 +71,17 @@ public class PaymentService {
}
@Transactional
public void getDataDebt(String scheduleDate){
public void getDataDebt(String scheduleDate) {
String sqlDebt = "SELECT * FROM compensation.f_rbl_retrieve_data_for_debt_calculation(:pay_ym_t);";
String sqlIncomeCorp = "SELECT * FROM compensation.f_rbl_retrieve_income_crop_for_deduct_debt(:pay_ym_t);";
// String sqlIncomeCorp = "SELECT * FROM
// compensation.f_rbl_retrieve_income_crop_for_deduct_debt(:pay_ym_t);";
String sqlNextSchedule = "SELECT * FROM compensation.f_rbl_get_next_paymentdate(:pay_ym_t);";
String sqlUpdateIsPaid = "SELECT * FROM compensation.f_rbl_update_is_paid_current_debt(:pay_ym_t);";
String sqlBenefitCode = "SELECT * FROM compensation.rbl_benefit_code rbc where code in ('DFW','TRF','REV')";
String benefitType = "debt";
String benefitTypeDebt = "Debt";
String benefitTypeResult = "Benefit_Result";
jbpmService.saveData(sqlUpdateIsPaid);
List<Map<String, Object>> dataDebt = new ArrayList();
List<Map<String, Object>> queryDebt = this.apiDatasource.createNativeQuery(sqlDebt)
......@@ -82,12 +90,13 @@ public class PaymentService {
.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).getResultList();
dataDebt = ObjectUtil.columnToCamelCase(queryDebt);
List<Map<String, Object>> dataIncome = new ArrayList();
List<Map<String, Object>> queryIncome = this.apiDatasource.createNativeQuery(sqlIncomeCorp)
.setParameter("pay_ym_t", scheduleDate)
.unwrap(org.hibernate.query.Query.class)
.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).getResultList();
dataIncome = ObjectUtil.columnToCamelCase(queryIncome);
// List<Map<String, Object>> dataIncome = new ArrayList();
// List<Map<String, Object>> queryIncome =
// this.apiDatasource.createNativeQuery(sqlIncomeCorp)
// .setParameter("pay_ym_t", scheduleDate)
// .unwrap(org.hibernate.query.Query.class)
// .setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).getResultList();
// dataIncome = ObjectUtil.columnToCamelCase(queryIncome);
List<Map<String, Object>> dataNextSchedule = new ArrayList();
List<Map<String, Object>> queryNextSchedule = this.apiDatasource.createNativeQuery(sqlNextSchedule)
......@@ -102,16 +111,71 @@ public class PaymentService {
.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).getResultList();
dataBenefitCode = ObjectUtil.columnToCamelCase(queryBenefitCode);
List<Map<String, Object>> dataFilterDebt = dataDebt.stream().filter(res -> res.get("agentCodeCrop") == null).collect(Collectors.toList());
// List<Map<String, Object>> dataFilterDebt = dataDebt.stream().filter(res ->
// res.get("agentCodeCrop") == null && res.get("ownerAgentCorp") == null &&
// Double.valueOf(String.valueOf(res.get("netAmount"))) <
// 0).collect(Collectors.toList());
// log.info(sqlDebt.substring(sqlDebt.indexOf(":")+1,sqlDebt.length()-2));
// AgentDetailData detailData = new AgentDetailData();
// for (Map<String, Object> iterable_element : dataFilterDebt) {
// Agent
// }
AgentDetailData detailDebtData = new AgentDetailData();
AgentDetailData detailResultData = new AgentDetailData();
List<AgentResult> debtAgentResults = new ArrayList<>();
List<AgentResult> benefitResultAgentResults = new ArrayList<>();
for (Map<String, Object> data : dataDebt) {
AgentResult agentResult = new AgentResult();
agentResult.setAgentCode((String) data.get("agentCode"));
agentResult.setPaidDate(Date.valueOf(String.valueOf(dataNextSchedule.get(0).get("paymentDate"))));
agentResult.setCalculationDate(scheduleDate);
agentResult.setIsPaid(false);
agentResult.setDebtFirstDate(Date.valueOf(scheduleDate));
agentResult.setBenefitType(benefitTypeDebt);
if ( data.get("agentCodeCrop") == null && data.get("ownerAgentCorp") == null
&& Double.valueOf(String.valueOf(data.get("netAmount"))) < 0) {
agentResult.setAmount(Double.valueOf(String.valueOf(data.get("netAmount"))));
agentResult.setBenefitCode((String) dataBenefitCode.get(0).get("code"));
}
else if ( data.get("agentCodeCrop") != null ) {
List<Map<String, Object>> dataFilter = dataDebt.stream().filter(res -> res.get("agentCode") == data.get("agentCodeCrop") && Double.valueOf(String.valueOf(res.get("netAmount"))) > 0 ).collect(Collectors.toList());
if (dataFilter.size() > 0) {
}
// agentResult.setAmount(Double.valueOf(String.valueOf(data.get("netAmount"))));
agentResult.setBenefitCode((String) dataBenefitCode.get(0).get("code"));
}
debtAgentResults.add(agentResult);
}
detailDebtData.setAgents(debtAgentResults);
jbpmService.setupData(detailDebtData);
for (Map<String, Object> data : dataDebt) {
AgentResult agentResult = new AgentResult();
agentResult.setAgentCode((String) data.get("agentCode"));
agentResult.setAmount(Double.valueOf(String.valueOf(data.get("netAmount"))));
agentResult.setPaidDate(Date.valueOf(String.valueOf(dataNextSchedule.get(0).get("paymentDate"))));
agentResult.setCalculationDate(scheduleDate);
agentResult.setIsPaid(false);
agentResult.setDebtFirstDate(Date.valueOf(scheduleDate));
// agentResult.setBenefitType(benefitTypeDebt);
agentResult.setBenefitCode((String) dataBenefitCode.get(0).get("code"));
// debtAgentResults.add(agentResult);
agentResult.setBenefitType(benefitTypeResult);
agentResult.setDescription((String) dataBenefitCode.get(0).get("descriptionTh"));
benefitResultAgentResults.add(agentResult);
}
// detailData.getAgents().clear();
detailResultData.setAgents(benefitResultAgentResults);
jbpmService.setupData(detailResultData);
log.info("dept {}", dataDebt);
log.info("income {}", dataIncome);
// log.info("income {}", dataIncome);
log.info("next {}", dataNextSchedule);
log.info("bene {}", dataBenefitCode);
}
......
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