| package com.zy.crm.common.web; | 
|   | 
| import com.core.common.Cools; | 
| import com.core.common.R; | 
| import com.zy.crm.common.service.DbSqlServer; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.core.io.ClassPathResource; | 
| import org.springframework.web.bind.annotation.GetMapping; | 
| import org.springframework.web.bind.annotation.RestController; | 
|   | 
| import javax.annotation.PostConstruct; | 
| import java.io.IOException; | 
| import java.io.InputStream; | 
| import java.util.List; | 
| import java.util.Map; | 
|   | 
| /** | 
|  * Created by vincent on 2023/7/25 | 
|  */ | 
| @RestController | 
| @SuppressWarnings("all") | 
| public class DatavController { | 
|   | 
|     private String product = "select\n" + | 
|             "A5.NAME AS 所属组织,\n" + | 
|             "A.DocNo as 单号,A3.Code as 项目号,a7.Name as 单据类型,\n" + | 
|             "A.StartDate as 计划开工日,\n" + | 
|             "A.CompleteDate as 计划完工日,A2.Code as 料号,A2.name as 品名,A2.SPECS as 规格 , a.ProductQty as 生产数量,TotalCompleteQty as 完工数量\n" + | 
|             "from MO_MO as A\n" + | 
|             "left join CBO_ItemMaster as A2 on (A.ItemMaster = A2.ID)\n" + | 
|             "left join CBO_Project as A3 on (A.Project = A3.ID)\n" + | 
|             "left join Base_Organization as A4 on (A.Org = A4.ID)\n" + | 
|             "left join Base_Organization_Trl as a5 on (a4.ID = a5.ID)\n" + | 
|             "left join MO_MODocType as a6 on (a.MODocType=a6.ID)\n" + | 
|             "left join MO_MODocType_Trl as a7 on (a6.id=a7.ID)\n" + | 
|             "where A7.NAME != '研发项目'  --过滤内部研发项目\n" + | 
|             "and A.IsWBSTask!=1                 --过滤现场施工任务\n" + | 
|             "and A.DocState != '3'              --过滤完工状态的订单\n" + | 
|             "and (A7.NAME IS NOT NULL AND A7.NAME !='')\n" + | 
|             "ORDER BY A.CompleteDate"; | 
|     private String sale = "select sum(total) as sum, month\n" + | 
|             "from\n" + | 
|             "(\n" + | 
|             "\tselect A.DOCNO as 项目号,a.TotalMoneyTC as total,a.CreatedOn as 创建日期,a3.PersonName_DisplayName as 业务员,\n" + | 
|             "\ta7.Name as 项目类型,A6.Name as 客户名称,A9.name AS 所属组织,Month(a.CreatedOn) as month\n" + | 
|             "\tfrom SM_SO as A\n" + | 
|             "\tleft join CBO_Operators as A2 on(A.Seller = A2.ID)\n" + | 
|             "\tleft join Base_Contact as A3 on (a2.Contact=a3.ID)\n" + | 
|             "\tleft join SM_SODocType as A4 on (A.DocumentType = a4.ID)\n" + | 
|             "\tleft join SM_SODocType_Trl as A7 ON (A4.ID=A7.ID)\n" + | 
|             "\tleft join CBO_Customer as A5 on(A.OrderBy_Customer = A5.ID)\n" + | 
|             "\tleft join CBO_Customer_Trl as A6 on (A5.ID=A6.ID) AND (A6.SysMLFlag = 'zh-CN')\n" + | 
|             "\tleft join Base_Organization as A8 on (A.Org = A8.ID)\n" + | 
|             "\tleft join Base_Organization_Trl as a9 on (a8.ID = a9.ID)\n" + | 
|             "\twhere A5.CODE not in ('S-00002','S-00003')  --过滤内部交易的订单\n" + | 
|             ") a\n" + | 
|             "group by month\n" + | 
|             "order by month asc\n"; | 
|   | 
| //    { | 
| //        try { | 
| //            this.product = read(new ClassPathResource("datav/sql/product.sql").getInputStream()); | 
| //            this.销售订单 = read(new ClassPathResource("datav/sql/销售订单.sql").getInputStream()); | 
| //        } catch (IOException ignore) {} | 
| //    } | 
| // | 
|   | 
|     @Autowired | 
|     private DbSqlServer dbSqlServer; | 
|   | 
|     @GetMapping("/data1") | 
|     public R data1() { | 
|         List<Map<String, Object>> res = dbSqlServer.select(this.product); | 
|         if (Cools.isEmpty(res)) { | 
|             return R.ok(); | 
|         } | 
|         int limit = 30; | 
|         if (res.size() > limit) { | 
|             res = res.subList(0, limit); | 
|         } | 
|         return R.ok().add(res); | 
|     } | 
|   | 
|     @GetMapping("/data3") | 
|     public R data3() { | 
|         List<Map<String, Object>> res = dbSqlServer.select(this.sale); | 
|         if (Cools.isEmpty(res)) { | 
|             return R.ok(); | 
|         } | 
|         return R.ok().add(res); | 
|     } | 
|   | 
|     private static String read(InputStream inputStream) { | 
|         StringBuilder stringBuilder = new StringBuilder(); | 
|         byte[] buffer = new byte[1024]; | 
|         try { | 
|             int bytesRead; | 
|             while ((bytesRead = inputStream.read(buffer)) != -1) { | 
|                 stringBuilder.append(new String(buffer, 0, bytesRead)); | 
|             } | 
|         } catch (IOException e) { | 
|             e.printStackTrace(); | 
|         } finally { | 
|             try { | 
|                 inputStream.close(); | 
|             } catch (IOException e) { | 
|                 e.printStackTrace(); | 
|             } | 
|         } | 
|         return stringBuilder.toString(); | 
|     } | 
|   | 
| } |