|
|
@@ -134,7 +134,7 @@ public class TimerServiceImpl implements TimerService {
|
|
|
}
|
|
|
//明细合计
|
|
|
currentRow.put("numberField_lryopn7o", UtilMap.getFloat(currentRow, "numberField_lrru2tnz") + UtilMap.getFloat(currentRow, "numberField_lrru2to0") + UtilMap.getFloat(currentRow, "numberField_lrru2to1"));
|
|
|
- currentRow.put("numberField_m1hhyqiv", UtilMap.getFloat(currentRow, "numberField_lrru2tnz") + UtilMap.getFloat(currentRow, "numberField_lrru2to0") + UtilMap.getFloat(currentRow, "numberField_lrru2to1"));
|
|
|
+// currentRow.put("numberField_m1hhyqiv", UtilMap.getFloat(currentRow, "numberField_lrru2tnz") + UtilMap.getFloat(currentRow, "numberField_lrru2to0") + UtilMap.getFloat(currentRow, "numberField_lrru2to1"));
|
|
|
|
|
|
price += UtilMap.getFloat(formData, "numberField_lutjev0u");
|
|
|
log.info("price, {}", price);
|
|
|
@@ -438,6 +438,9 @@ public class TimerServiceImpl implements TimerService {
|
|
|
" SUM( overhead ) overhead, " +
|
|
|
" SUM( corporate_income_tax ) corporate_income_tax, " +
|
|
|
" SUM( net_profit ) net_profit, " +
|
|
|
+ " SUM( actual_work_hours ) actual_work_hours, " +
|
|
|
+ " SUM( out_work_hours ) out_work_hours, " +
|
|
|
+ " SUM( out_person_cost ) out_person_cost, " +
|
|
|
" CONCAT(ROUND(SUM( net_profit )/ SUM( income )*100,2),'%') net_margin " +
|
|
|
"FROM " +
|
|
|
" lanyun_project_analysis " +
|
|
|
@@ -461,6 +464,9 @@ public class TimerServiceImpl implements TimerService {
|
|
|
" SUM( overhead ) overhead, " +
|
|
|
" SUM( corporate_income_tax ) corporate_income_tax, " +
|
|
|
" SUM( net_profit ) net_profit, " +
|
|
|
+ " SUM( actual_work_hours ) actual_work_hours, " +
|
|
|
+ " SUM( out_work_hours ) out_work_hours, " +
|
|
|
+ " SUM( out_person_cost ) out_person_cost, " +
|
|
|
" CONCAT(ROUND(SUM( net_profit )/ SUM( income )*100,2),'%') net_margin " +
|
|
|
"FROM " +
|
|
|
" lanyun_project_analysis " +
|
|
|
@@ -507,6 +513,9 @@ public class TimerServiceImpl implements TimerService {
|
|
|
" overhead, " +
|
|
|
" corporate_income_tax, " +
|
|
|
" net_profit, " +
|
|
|
+ " actual_work_hours, " +
|
|
|
+ " out_work_hours, " +
|
|
|
+ " out_person_cost, " +
|
|
|
" CONCAT(ROUND(net_margin*100,2),'%') net_margin " +
|
|
|
"FROM " +
|
|
|
" lanyun_project_analysis " +
|
|
|
@@ -530,6 +539,9 @@ public class TimerServiceImpl implements TimerService {
|
|
|
" SUM( overhead ) overhead, " +
|
|
|
" SUM( corporate_income_tax ) corporate_income_tax, " +
|
|
|
" SUM( net_profit ) net_profit, " +
|
|
|
+ " SUM( actual_work_hours ) actual_work_hours, " +
|
|
|
+ " SUM( out_work_hours ) out_work_hours, " +
|
|
|
+ " SUM( out_person_cost ) out_person_cost, " +
|
|
|
" CONCAT(ROUND(SUM( net_profit )/ SUM( income )*100,2),'%') net_margin " +
|
|
|
" FROM " +
|
|
|
" lanyun_project_analysis " +
|
|
|
@@ -624,7 +636,8 @@ public class TimerServiceImpl implements TimerService {
|
|
|
String sql = "INSERT INTO `lanyun_project_analysis`(`project_name`, `belong_project`, `month`, " +
|
|
|
"`status`, `predict_income`, `open`, `income`, `person`, `person_cost`, `material`, `other_cost`, " +
|
|
|
"`cost_sum`, `taxes`, `gross_profit`, `gross_margin`, `overhead`, `corporate_income_tax`, `net_profit`, " +
|
|
|
- "`net_margin`, `format`, `customer_system`, `profit_loss`, `approach_date`, `level`, `notes`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
|
|
+ "`net_margin`, `format`, `customer_system`, `profit_loss`, `approach_date`, `level`, `notes`," +
|
|
|
+ "`actual_work_hours`, `out_work_hours`, `out_person_cost`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
|
|
|
|
|
ps = connection.prepareStatement(sql);
|
|
|
DecimalFormat df = new DecimalFormat("#.0000");
|
|
|
@@ -673,6 +686,9 @@ public class TimerServiceImpl implements TimerService {
|
|
|
ps.setObject(23,dataList.get(i).get("dateField_ji5yfvf"));
|
|
|
ps.setObject(24,dataList.get(i).get("textField_h2qx5nz"));
|
|
|
ps.setObject(25,dataList.get(i).get("textField_35paoph"));
|
|
|
+ ps.setObject(26,dataList.get(i).get("numberField_midxu53t"));
|
|
|
+ ps.setObject(27,dataList.get(i).get("numberField_midxu53v"));
|
|
|
+ ps.setObject(28,dataList.get(i).get("numberField_midxu53w"));
|
|
|
ps.addBatch();
|
|
|
if (i%500==0){
|
|
|
ps.executeBatch();
|
|
|
@@ -1073,7 +1089,9 @@ public class TimerServiceImpl implements TimerService {
|
|
|
"`net_profit` = '"+ data.get("numberField_lz6mt3xr")+"', `net_margin` = '"+ data.get("numberField_lz9n3fma")+"', " +
|
|
|
"`format` = '"+ data.get("textField_tpb3m2f")+"', `customer_system` = '"+ data.get("textField_2adicsn")+"', `profit_loss` = '"+ data.get("textField_1yw4mx4")+"', " +
|
|
|
"`approach_date` = '"+ data.get("dateField_ji5yfvf")+"', " +
|
|
|
- "`level` = '"+ data.get("textField_h2qx5nz")+"', `notes` = '"+ data.get("textField_35paoph")+"'" +
|
|
|
+ "`level` = '"+ data.get("textField_h2qx5nz")+"', `notes` = '"+ data.get("textField_35paoph")+"'," +
|
|
|
+ "`actual_work_hours` = '"+ data.get("numberField_midxu53t")+"', `out_work_hours` = '"+ data.get("numberField_midxu53v")+"'," +
|
|
|
+ "`out_person_cost` = '"+ data.get("numberField_midxu53w")+"'"+
|
|
|
" WHERE `project_name` = '"+ data.get("textField_dliiyul")+"' AND `month` = "+data.get("dateField_lcwv382")+";\n";
|
|
|
PreparedStatement ps = connection.prepareStatement(updateSql);
|
|
|
ps.executeUpdate();
|
|
|
@@ -1358,6 +1376,9 @@ public class TimerServiceImpl implements TimerService {
|
|
|
" SUM( overhead ) overhead, " +
|
|
|
" SUM( corporate_income_tax ) corporate_income_tax, " +
|
|
|
" SUM( net_profit ) net_profit, " +
|
|
|
+ " SUM( actual_work_hours ) actual_work_hours, " +
|
|
|
+ " SUM( out_work_hours ) out_work_hours, " +
|
|
|
+ " SUM( out_person_cost ) out_person_cost, " +
|
|
|
" CONCAT(ROUND(SUM( net_profit )/ SUM( income )*100,2),'%') net_margin " +
|
|
|
"FROM " +
|
|
|
" lanyun_project_analysis_copy1 " +
|
|
|
@@ -1381,6 +1402,9 @@ public class TimerServiceImpl implements TimerService {
|
|
|
" SUM( overhead ) overhead, " +
|
|
|
" SUM( corporate_income_tax ) corporate_income_tax, " +
|
|
|
" SUM( net_profit ) net_profit, " +
|
|
|
+ " SUM( actual_work_hours ) actual_work_hours, " +
|
|
|
+ " SUM( out_work_hours ) out_work_hours, " +
|
|
|
+ " SUM( out_person_cost ) out_person_cost, " +
|
|
|
" CONCAT(ROUND(SUM( net_profit )/ SUM( income )*100,2),'%') net_margin " +
|
|
|
"FROM " +
|
|
|
" lanyun_project_analysis_copy1 " +
|
|
|
@@ -1427,6 +1451,9 @@ public class TimerServiceImpl implements TimerService {
|
|
|
" overhead, " +
|
|
|
" corporate_income_tax, " +
|
|
|
" net_profit, " +
|
|
|
+ " actual_work_hours, " +
|
|
|
+ " out_work_hours, " +
|
|
|
+ " out_person_cost, " +
|
|
|
" CONCAT(ROUND(net_margin*100,2),'%') net_margin " +
|
|
|
"FROM " +
|
|
|
" lanyun_project_analysis_copy1 " +
|
|
|
@@ -1450,6 +1477,9 @@ public class TimerServiceImpl implements TimerService {
|
|
|
" SUM( overhead ) overhead, " +
|
|
|
" SUM( corporate_income_tax ) corporate_income_tax, " +
|
|
|
" SUM( net_profit ) net_profit, " +
|
|
|
+ " SUM( actual_work_hours ) actual_work_hours, " +
|
|
|
+ " SUM( out_work_hours ) out_work_hours, " +
|
|
|
+ " SUM( out_person_cost ) out_person_cost, " +
|
|
|
" CONCAT(ROUND(SUM( net_profit )/ SUM( income )*100,2),'%') net_margin " +
|
|
|
" FROM " +
|
|
|
" lanyun_project_analysis_copy1 " +
|
|
|
@@ -1546,6 +1576,9 @@ public class TimerServiceImpl implements TimerService {
|
|
|
" SUM( overhead ) overhead, " +
|
|
|
" SUM( corporate_income_tax ) corporate_income_tax, " +
|
|
|
" SUM( net_profit ) net_profit, " +
|
|
|
+ " SUM( actual_work_hours ) actual_work_hours, " +
|
|
|
+ " SUM( out_work_hours ) out_work_hours, " +
|
|
|
+ " SUM( out_person_cost ) out_person_cost, " +
|
|
|
" CONCAT(ROUND(SUM( net_profit )/ SUM( income )*100,2),'%') net_margin " +
|
|
|
"FROM " +
|
|
|
" lanyun_project_analysis_salary " +
|
|
|
@@ -1569,6 +1602,9 @@ public class TimerServiceImpl implements TimerService {
|
|
|
" SUM( overhead ) overhead, " +
|
|
|
" SUM( corporate_income_tax ) corporate_income_tax, " +
|
|
|
" SUM( net_profit ) net_profit, " +
|
|
|
+ " SUM( actual_work_hours ) actual_work_hours, " +
|
|
|
+ " SUM( out_work_hours ) out_work_hours, " +
|
|
|
+ " SUM( out_person_cost ) out_person_cost, " +
|
|
|
" CONCAT(ROUND(SUM( net_profit )/ SUM( income )*100,2),'%') net_margin " +
|
|
|
"FROM " +
|
|
|
" lanyun_project_analysis_salary " +
|
|
|
@@ -1615,6 +1651,9 @@ public class TimerServiceImpl implements TimerService {
|
|
|
" overhead, " +
|
|
|
" corporate_income_tax, " +
|
|
|
" net_profit, " +
|
|
|
+ " actual_work_hours, " +
|
|
|
+ " out_work_hours, " +
|
|
|
+ " out_person_cost, " +
|
|
|
" CONCAT(ROUND(net_margin*100,2),'%') net_margin " +
|
|
|
"FROM " +
|
|
|
" lanyun_project_analysis_salary " +
|
|
|
@@ -1638,6 +1677,9 @@ public class TimerServiceImpl implements TimerService {
|
|
|
" SUM( overhead ) overhead, " +
|
|
|
" SUM( corporate_income_tax ) corporate_income_tax, " +
|
|
|
" SUM( net_profit ) net_profit, " +
|
|
|
+ " SUM( actual_work_hours ) actual_work_hours, " +
|
|
|
+ " SUM( out_work_hours ) out_work_hours, " +
|
|
|
+ " SUM( out_person_cost ) out_person_cost, " +
|
|
|
" CONCAT(ROUND(SUM( net_profit )/ SUM( income )*100,2),'%') net_margin " +
|
|
|
" FROM " +
|
|
|
" lanyun_project_analysis_salary " +
|
|
|
@@ -1974,6 +2016,9 @@ public class TimerServiceImpl implements TimerService {
|
|
|
" profit_loss, " +
|
|
|
" format, " +
|
|
|
" customer_system, " +
|
|
|
+ " actual_work_hours, " +
|
|
|
+ " out_work_hours, " +
|
|
|
+ " out_person_cost, " +
|
|
|
" CONCAT(ROUND(net_margin*100,2),'%') net_margin " +
|
|
|
"FROM " +
|
|
|
" lanyun_project_analysis_copy1 " +
|
|
|
@@ -2053,13 +2098,16 @@ public class TimerServiceImpl implements TimerService {
|
|
|
"\tAVG( overhead )*10000 overhead,\n" +
|
|
|
"\tAVG( corporate_income_tax )*10000 corporate_income_tax,\n" +
|
|
|
"\tAVG( net_profit )*10000 net_profit,\n" +
|
|
|
+ "\tAVG( actual_work_hours ) actual_work_hours,\n" +
|
|
|
+ "\tAVG( out_work_hours ) out_work_hours,\n" +
|
|
|
+ "\tAVG( out_person_cost ) out_person_cost,\n" +
|
|
|
"\tCONCAT( ROUND( SUM( net_profit )/ SUM( income )* 100, 2 ), '%' ) net_margin \n" +
|
|
|
"FROM\n" +
|
|
|
"\tlanyun_project_analysis\n" +
|
|
|
"\tWHERE 1=1 \n" +
|
|
|
"\tAND CAST(`month` AS CHAR) < '"+lastTime+"'\n" +
|
|
|
"\tAND CAST(`month` AS CHAR) >= '"+lastTimestamp.get(0)+"'\n" +
|
|
|
- "\tAND project_name in "+names+"";
|
|
|
+ "\tAND belong_project in "+names+"";
|
|
|
|
|
|
List<ProjectAnalysis> analysisList = jdbcTemplate.query(sql, new ProjectAnalysisMapper());
|
|
|
|
|
|
@@ -2106,11 +2154,12 @@ public class TimerServiceImpl implements TimerService {
|
|
|
.formInstanceId(data.get("formInstanceId").toString())
|
|
|
.useLatestVersion(true)
|
|
|
.updateFormDataJson(JSON.toJSONString(UtilMap.map("numberField_ly418zpc, numberField_ly418zq9, numberField_m60tn0xu, numberField_mi2jiyv5, numberField_mi2jiyvf",
|
|
|
- analysisList.get(0).getPersonCost(),analysisList.get(0).getMaterial(),analysisList.get(0).getFoldingRepair(),analysisList.get(0).getPredictIncome(),workHour[0] / months.size())))
|
|
|
+ analysisList.get(0).getPersonCost(),analysisList.get(0).getMaterial(),analysisList.get(0).getFoldingRepair(),analysisList.get(0).getPredictIncome(),analysisList.get(0).getActualWorkHours())))
|
|
|
+// workHour[0] / months.size()
|
|
|
.build(), YDConf.FORM_OPERATION.update);
|
|
|
}
|
|
|
return UtilMap.map("numberField_ly418zpc, numberField_ly418zq9, numberField_m60tn0xu, numberField_mi2jiyv5, numberField_mi2jiyvf",
|
|
|
- analysisList.get(0).getPersonCost(),analysisList.get(0).getMaterial(),analysisList.get(0).getFoldingRepair(),analysisList.get(0).getPredictIncome(),workHour[0] / months.size());
|
|
|
+ analysisList.get(0).getPersonCost(),analysisList.get(0).getMaterial(),analysisList.get(0).getFoldingRepair(),analysisList.get(0).getPredictIncome(),analysisList.get(0).getActualWorkHours());
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -2212,6 +2261,9 @@ public class TimerServiceImpl implements TimerService {
|
|
|
" net_profit," +
|
|
|
" monthString," +
|
|
|
" level, " +
|
|
|
+ " actual_work_hours, " +
|
|
|
+ " out_work_hours, " +
|
|
|
+ " out_person_cost, " +
|
|
|
" status, " +
|
|
|
" profit_loss, " +
|
|
|
" format, " +
|