|
@@ -325,11 +325,9 @@ public class TimerServiceImpl implements TimerService {
|
|
@SneakyThrows
|
|
@SneakyThrows
|
|
@Override
|
|
@Override
|
|
public List<ProjectAnalysis> projectAnalysisGroup(Map<String, Object> data){
|
|
public List<ProjectAnalysis> projectAnalysisGroup(Map<String, Object> data){
|
|
- String sql = "";
|
|
|
|
- String month = String.valueOf(data.get("month"));
|
|
|
|
- log.info(month);
|
|
|
|
|
|
+ final String[] sql = {"",""};
|
|
if (data.isEmpty()){
|
|
if (data.isEmpty()){
|
|
- sql = "SELECT " +
|
|
|
|
|
|
+ sql[0] = "SELECT " +
|
|
" `month`, " +
|
|
" `month`, " +
|
|
" sum( predict_income ) predict_income," +
|
|
" sum( predict_income ) predict_income," +
|
|
" NULL as project_name, " +
|
|
" NULL as project_name, " +
|
|
@@ -351,8 +349,28 @@ public class TimerServiceImpl implements TimerService {
|
|
" lanyun_project_analysis " +
|
|
" lanyun_project_analysis " +
|
|
"GROUP BY " +
|
|
"GROUP BY " +
|
|
" `month`";
|
|
" `month`";
|
|
|
|
+ sql[1]= "SELECT " +
|
|
|
|
+ " '合计' as `month` , " +
|
|
|
|
+ " sum( predict_income ) predict_income," +
|
|
|
|
+ " NULL as project_name, " +
|
|
|
|
+ " SUM( `open` ) `open`, " +
|
|
|
|
+ " SUM( income ) income, " +
|
|
|
|
+ " SUM( person ) person, " +
|
|
|
|
+ " SUM( person_cost ) person_cost, " +
|
|
|
|
+ " SUM( material ) material, " +
|
|
|
|
+ " SUM( other_cost ) other_cost, " +
|
|
|
|
+ " SUM( cost_sum ) cost_sum, " +
|
|
|
|
+ " SUM( taxes ) taxes, " +
|
|
|
|
+ " SUM( gross_profit ) gross_profit, " +
|
|
|
|
+ " SUM( gross_profit )/ SUM( income ) gross_margin, " +
|
|
|
|
+ " SUM( overhead ) overhead, " +
|
|
|
|
+ " SUM( corporate_income_tax ) corporate_income_tax, " +
|
|
|
|
+ " SUM( net_profit ) net_profit, " +
|
|
|
|
+ " SUM( net_profit )/ SUM( income ) net_margin " +
|
|
|
|
+ "FROM " +
|
|
|
|
+ " lanyun_project_analysis " ;
|
|
}else {
|
|
}else {
|
|
- sql = "SELECT " +
|
|
|
|
|
|
+ sql[0] = "SELECT " +
|
|
" `month`," +
|
|
" `month`," +
|
|
" project_name, " +
|
|
" project_name, " +
|
|
" predict_income, " +
|
|
" predict_income, " +
|
|
@@ -372,13 +390,46 @@ public class TimerServiceImpl implements TimerService {
|
|
" net_margin " +
|
|
" net_margin " +
|
|
"FROM " +
|
|
"FROM " +
|
|
" lanyun_project_analysis " +
|
|
" lanyun_project_analysis " +
|
|
- " WHERE 1=1" +
|
|
|
|
- " AND `month` = \""+month+"\"" ;
|
|
|
|
|
|
+ " WHERE 1=1";
|
|
|
|
+ sql[1] = "SELECT " +
|
|
|
|
+ " '合计' as `month`, " +
|
|
|
|
+ " sum( predict_income ) predict_income," +
|
|
|
|
+ " NULL as project_name, " +
|
|
|
|
+ " SUM( `open` ) `open`, " +
|
|
|
|
+ " SUM( income ) income, " +
|
|
|
|
+ " SUM( person ) person, " +
|
|
|
|
+ " SUM( person_cost ) person_cost, " +
|
|
|
|
+ " SUM( material ) material, " +
|
|
|
|
+ " SUM( other_cost ) other_cost, " +
|
|
|
|
+ " SUM( cost_sum ) cost_sum, " +
|
|
|
|
+ " SUM( taxes ) taxes, " +
|
|
|
|
+ " SUM( gross_profit ) gross_profit, " +
|
|
|
|
+ " SUM( gross_profit )/ SUM( income ) gross_margin, " +
|
|
|
|
+ " SUM( overhead ) overhead, " +
|
|
|
|
+ " SUM( corporate_income_tax ) corporate_income_tax, " +
|
|
|
|
+ " SUM( net_profit ) net_profit, " +
|
|
|
|
+ " SUM( net_profit )/ SUM( income ) net_margin " +
|
|
|
|
+ " FROM " +
|
|
|
|
+ " lanyun_project_analysis " +
|
|
|
|
+ " WHERE 1=1 ";
|
|
|
|
+
|
|
|
|
+ data.forEach((k,v)->{
|
|
|
|
+ if (k.equals("low")){
|
|
|
|
+ sql[0] = sql[0] + " AND `net_margin` < 0.05" ;
|
|
|
|
+ sql[1] = sql[1] + " AND `net_margin` < 0.05" ;
|
|
|
|
+ }else {
|
|
|
|
+ sql[0] = sql[0] + " AND `" + k +"` = \"" + v +"\"" ;
|
|
|
|
+ sql[1] = sql[1] + " AND `" + k +"` = \"" + v +"\"" ;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ sql[1] = sql[1] + " GROUP BY `month` ";
|
|
}
|
|
}
|
|
// Class.forName(driver);
|
|
// Class.forName(driver);
|
|
// Connection connection = DriverManager.getConnection(url, username, password);
|
|
// Connection connection = DriverManager.getConnection(url, username, password);
|
|
// Statement statement = connection.createStatement();
|
|
// Statement statement = connection.createStatement();
|
|
- List<ProjectAnalysis> analysisList = jdbcTemplate.query(sql, new ProjectAnalysisMapper());
|
|
|
|
|
|
+ List<ProjectAnalysis> analysisList = jdbcTemplate.query(sql[0], new ProjectAnalysisMapper());
|
|
|
|
+ List<ProjectAnalysis> analysisSum= jdbcTemplate.query(sql[1], new ProjectAnalysisMapper());
|
|
|
|
+ analysisList.add(analysisSum.get(0));
|
|
log.info("results:{}",analysisList);
|
|
log.info("results:{}",analysisList);
|
|
if (ObjectUtil.isNotNull(analysisList)&&analysisList.size()>0){
|
|
if (ObjectUtil.isNotNull(analysisList)&&analysisList.size()>0){
|
|
return analysisList;
|
|
return analysisList;
|
|
@@ -396,6 +447,16 @@ public class TimerServiceImpl implements TimerService {
|
|
.formUuid("FORM-954C78969A864D95A1BC0CE9F69299E8VI38")
|
|
.formUuid("FORM-954C78969A864D95A1BC0CE9F69299E8VI38")
|
|
.searchFieldJson(JSON.toJSONString(UtilMap.map("radioField_m0dkcxod", "否")))
|
|
.searchFieldJson(JSON.toJSONString(UtilMap.map("radioField_m0dkcxod", "否")))
|
|
.build());
|
|
.build());
|
|
|
|
+ dataList.forEach(e->{
|
|
|
|
+ ydClient.operateData(YDParam.builder()
|
|
|
|
+ .appType("APP_ERBDTFS82HOVBPL3NFH0")
|
|
|
|
+ .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
|
|
|
|
+ .formInstanceId(UtilMap.getString(e, "formInstanceId"))
|
|
|
|
+// .useLatestVersion(true)
|
|
|
|
+// .updateFormDataJson(JSONObject.toJSONString(new HashMap<>()))
|
|
|
|
+ .updateFormDataJson(JSON.toJSONString(UtilMap.map("radioField_m0dkcxod", "是")))
|
|
|
|
+ .build(), YDConf.FORM_OPERATION.update);
|
|
|
|
+ });
|
|
Connection connection = null;
|
|
Connection connection = null;
|
|
PreparedStatement ps = null;
|
|
PreparedStatement ps = null;
|
|
try {
|
|
try {
|