|  |  |  | 
|---|
|  |  |  | 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 sql1; | 
|---|
|  |  |  | 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"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PostConstruct | 
|---|
|  |  |  | public void init() throws IOException { | 
|---|
|  |  |  | this.sql1 = read(new ClassPathResource("datav/sql/1.sql").getInputStream()); | 
|---|
|  |  |  | //    { | 
|---|
|  |  |  | //        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("/1test") | 
|---|
|  |  |  | public R test1() { | 
|---|
|  |  |  | return R.ok(this.sql1); | 
|---|
|  |  |  | @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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static String read(InputStream inputStream) { | 
|---|
|  |  |  | private static String read(InputStream inputStream) { | 
|---|
|  |  |  | StringBuilder stringBuilder = new StringBuilder(); | 
|---|
|  |  |  | byte[] buffer = new byte[1024]; | 
|---|
|  |  |  | try { | 
|---|