|
@@ -5,6 +5,8 @@ import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.malk.lanyun.Mapper.ProjectAnalysisMapper;
|
|
|
+import com.malk.lanyun.entity.ProjectAnalysis;
|
|
|
import com.malk.lanyun.service.TimerService;
|
|
|
import com.malk.server.aliwork.YDConf;
|
|
|
import com.malk.server.aliwork.YDParam;
|
|
@@ -13,8 +15,11 @@ import com.malk.service.aliwork.YDService;
|
|
|
import com.malk.utils.UtilDateTime;
|
|
|
import com.malk.utils.UtilExcel;
|
|
|
import com.malk.utils.UtilMap;
|
|
|
+import lombok.SneakyThrows;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
+import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
@@ -26,7 +31,16 @@ import java.util.*;
|
|
|
@Service
|
|
|
@Slf4j
|
|
|
public class TimerServiceImpl implements TimerService {
|
|
|
-
|
|
|
+ @Value("${spring.datasource.url}")
|
|
|
+ private String url;
|
|
|
+ @Value("${spring.datasource.username}")
|
|
|
+ private String username;
|
|
|
+ @Value("${spring.datasource.password}")
|
|
|
+ private String password;
|
|
|
+ @Value("${spring.datasource.driver-class-name}")
|
|
|
+ private String driver;
|
|
|
+ @Autowired
|
|
|
+ private JdbcTemplate jdbcTemplate;
|
|
|
@Autowired
|
|
|
private YDService ydService;
|
|
|
|
|
@@ -181,7 +195,7 @@ public class TimerServiceImpl implements TimerService {
|
|
|
log.info("小业主档案_测试, {}", dataList.size());
|
|
|
dataList.forEach(e -> {
|
|
|
log.info("e1:{}",e.toString());
|
|
|
- List<Map> list = (List<Map>) e.get("tableField_lr3dmdpk");
|
|
|
+ List<Map> list = (List<Map>) e.get("tableField_lr3dmdpk");
|
|
|
if (ObjectUtil.isNotNull(e.get("tableField_lr3dmdpk"))){
|
|
|
list.forEach(v->{
|
|
|
if (v.size()>3){
|
|
@@ -303,4 +317,79 @@ public class TimerServiceImpl implements TimerService {
|
|
|
.build(), YDConf.FORM_OPERATION.start);
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
+ @SneakyThrows
|
|
|
+ @Override
|
|
|
+ public List<ProjectAnalysis> projectAnalysisGroup(Map<String, Object> data){
|
|
|
+ String sql = "";
|
|
|
+ String month = String.valueOf(data.get("month"));
|
|
|
+ if (data.isEmpty()){
|
|
|
+ sql = "SELECT " +
|
|
|
+ " `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 " +
|
|
|
+ "GROUP BY " +
|
|
|
+ " `month`";
|
|
|
+ }else {
|
|
|
+ sql = "SELECT " +
|
|
|
+ " `month`," +
|
|
|
+ " project_name, " +
|
|
|
+ " 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 " +
|
|
|
+ "FROM " +
|
|
|
+ " lanyun_project_analysis " +
|
|
|
+ " WHERE " +
|
|
|
+ " `month` = \""+month+"\"" ;
|
|
|
+ }
|
|
|
+// Class.forName(driver);
|
|
|
+// Connection connection = DriverManager.getConnection(url, username, password);
|
|
|
+// Statement statement = connection.createStatement();
|
|
|
+ List<ProjectAnalysis> analysisList = jdbcTemplate.query(sql, new ProjectAnalysisMapper());
|
|
|
+ if (ObjectUtil.isNotNull(analysisList)&&analysisList.size()>0){
|
|
|
+ return analysisList;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void insertProjectAnalysis() {
|
|
|
+ List<Map> dataList = ydService.queryFormData_all(YDParam.builder()
|
|
|
+ .appType("APP_ERBDTFS82HOVBPL3NFH0")
|
|
|
+ .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
|
|
|
+ .formUuid("FORM-954C78969A864D95A1BC0CE9F69299E8VI38")
|
|
|
+// .searchFieldJson(JSON.toJSONString(UtilMap.map("selectField_lrnd0lxr", "小业主")))
|
|
|
+ .build());
|
|
|
+ String sql = "INSERT INTO `dingtalk`.`lanyun_project_analysis`(`id`, `project_name`, `belong_project`, `month`, `status`, `d_level`, `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 ();\n";
|
|
|
+ }
|
|
|
}
|