소스 검색

首页柱形图、饼状图、分仓保管账功能修改

fanxw 5 년 전
부모
커밋
a9a337bfe8

+ 5 - 0
pom.xml

@@ -118,6 +118,11 @@
118 118
             <groupId>org.springframework.session</groupId>
119 119
             <artifactId>spring-session-data-redis</artifactId>
120 120
         </dependency>
121
+        <!-- feign -->
122
+		<dependency>
123
+			<groupId>org.springframework.cloud</groupId>
124
+			<artifactId>spring-cloud-starter-openfeign</artifactId>
125
+		</dependency>
121 126
 	</dependencies>
122 127
 
123 128
 	<dependencyManagement>

+ 2 - 0
src/main/java/com/chinaitop/agile/DepotAgileApplication.java

@@ -5,11 +5,13 @@ import org.springframework.boot.SpringApplication;
5 5
 import org.springframework.boot.autoconfigure.SpringBootApplication;
6 6
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
7 7
 import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
8
+import org.springframework.cloud.openfeign.EnableFeignClients;
8 9
 
9 10
 
10 11
 @EnableEurekaClient
11 12
 @EnableDiscoveryClient
12 13
 @SpringBootApplication
14
+@EnableFeignClients
13 15
 @MapperScan(basePackages = {"com.chinaitop.agile.mapper"})
14 16
 public class DepotAgileApplication {
15 17
 

+ 4 - 4
src/main/java/com/chinaitop/agile/controller/KcswController.java

@@ -41,12 +41,12 @@ public class KcswController {
41 41
 	private DataKcglFcbgzDefaultService fcbgzService;
42 42
 	
43 43
 	/**
44
-     * 根据id查询
44
+     * 首页柱形图
45 45
      * @param example 粮食业务
46 46
      * @return
47 47
      */
48 48
     @RequestMapping(value="/getDate", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET)
49
-    @ApiOperation(value="根据id查询", notes = "根据id查询")
49
+    @ApiOperation(value="首页柱形图", notes = "")
50 50
 	@ApiImplicitParams({
51 51
 		@ApiImplicitParam(name = "orgId", value = "单位ID", paramType = "query")
52 52
 	})
@@ -69,12 +69,12 @@ public class KcswController {
69 69
 	}
70 70
     
71 71
     /**
72
-     * 根据等级分组查询
72
+     * 首页饼状图
73 73
      * @param example 粮食业务
74 74
      * @return
75 75
      */
76 76
     @RequestMapping(value="/getDateDj", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET)
77
-    @ApiOperation(value="根据等级分组查询", notes = "等级分组查询")
77
+    @ApiOperation(value="首页饼状图", notes = "")
78 78
 	@ApiImplicitParams({
79 79
 		@ApiImplicitParam(name="orgId", value="单位ID", paramType="query")
80 80
 	})

+ 1 - 0
src/main/java/com/chinaitop/agile/controller/KeepAccountController.java

@@ -172,6 +172,7 @@ public class KeepAccountController {
172 172
 		List<DataKcglFcbgzDefault> list = keepAccountService.queryTotalByExample(example);
173 173
 		for (DataKcglFcbgzDefault fcbgz : list) {
174 174
 			try {
175
+				fcbgz.setUnitid(orgId);
175 176
 				DataKcglFcbgzDefault obj = fcbgzService.findConditionMax(fcbgz);
176 177
 				fcbgz.setKcsl(obj.getKcsl());
177 178
 			} catch (Exception e) {

+ 20 - 0
src/main/java/com/chinaitop/agile/feign/service/BasicEnumFeignService.java

@@ -0,0 +1,20 @@
1
+package com.chinaitop.agile.feign.service;
2
+
3
+import org.springframework.cloud.openfeign.FeignClient;
4
+import org.springframework.http.MediaType;
5
+import org.springframework.web.bind.annotation.RequestMapping;
6
+import org.springframework.web.bind.annotation.RequestMethod;
7
+import org.springframework.web.bind.annotation.RequestParam;
8
+
9
+@FeignClient(value = "depot-basic")
10
+public interface BasicEnumFeignService {
11
+
12
+	/**
13
+	 * 获取一条字典数据
14
+	 * @param username
15
+	 * @param password
16
+	 * @return
17
+	 */
18
+	@RequestMapping(value = "/Enum/findByEnum", produces = MediaType.APPLICATION_JSON_VALUE, method=RequestMethod.GET)
19
+	String getEnumData(@RequestParam("id") Integer id);
20
+}

+ 1 - 1
src/main/java/com/chinaitop/agile/mapper/DataKcglKcswDefaultMapper.xml

@@ -419,7 +419,7 @@
419 419
   </select>
420 420
   
421 421
   <select id="countByDj" parameterType="java.util.Map" resultType="com.chinaitop.agile.model.DataKcswScedule">
422
-    select dj djmc ,ROUND(sum(kcsl/1000),2) sumCksl from data_kcgl_kcsw_default where UnitID=#{orgId} 
422
+    select dj djmc ,ROUND(sum(kcsl/1000),3) sumCksl from data_kcgl_kcsw_default where UnitID=#{orgId} 
423 423
       group by dj
424 424
   </select>
425 425
   

+ 81 - 32
src/main/java/com/chinaitop/agile/service/impl/KcswServiceImpl.java

@@ -1,6 +1,7 @@
1 1
 package com.chinaitop.agile.service.impl;
2 2
 
3 3
 import com.alibaba.fastjson.JSONObject;
4
+import com.chinaitop.agile.feign.service.BasicEnumFeignService;
4 5
 import com.chinaitop.agile.mapper.DataKcglFcbgzDefaultMapper;
5 6
 import com.chinaitop.agile.mapper.DataKcglKcswDefaultMapper;
6 7
 import com.chinaitop.agile.mapper.DataKcglXckcDefaultMapper;
@@ -8,6 +9,8 @@ import com.chinaitop.agile.model.*;
8 9
 import com.chinaitop.agile.model.DataKcglKcswDefaultExample.Criteria;
9 10
 import com.chinaitop.agile.service.KcswService;
10 11
 import com.chinaitop.agile.utils.ParameterUtil;
12
+
13
+import org.apache.commons.lang.ObjectUtils;
11 14
 import org.springframework.stereotype.Service;
12 15
 
13 16
 import javax.annotation.Resource;
@@ -25,6 +28,8 @@ public class KcswServiceImpl implements KcswService{
25 28
 	private DataKcglXckcDefaultMapper dataKcglXckcDefaultMapper;
26 29
 	@Resource
27 30
 	private DataKcglFcbgzDefaultMapper dataKcglFcbgzDefaultMapper;
31
+	@Resource
32
+	private BasicEnumFeignService basicEnumFeignService;
28 33
 
29 34
 	public Map<String, Object> queryByExample(Integer orgId) {
30 35
 		/* 返回数据对象 */
@@ -42,44 +47,85 @@ public class KcswServiceImpl implements KcswService{
42 47
 		year_num[4] = this_year + "";
43 48
 		modelMap.put("years", year_num);
44 49
 
45
-		Map<String, Object> map = new HashMap<String, Object>();
46
-		map.put("orgId", orgId);
47
-		List<DataKcswScedule> countByLspz = dataKcglKcswDefaultMapper.countByLspz(map);
50
+		/* 查询库存数量表数据  */
51
+		DataKcglKcswDefaultExample example = new DataKcglKcswDefaultExample();
52
+		Criteria criteria = example.createCriteria();
53
+		criteria.andUnitidEqualTo(orgId+"");
54
+		List<DataKcglKcswDefault> list = dataKcglKcswDefaultMapper.selectByExample(example);
55
+
48 56
 		String pz = "";
49
-		String sumCksl = "";
50
-		double sumCkslDouble = 0d;
51
-		DecimalFormat obj = new DecimalFormat(".00");  // 保留2位小数
57
+		String year = "0";
58
+		DecimalFormat obj = new DecimalFormat(".0000");  // 保留4位小数
52 59
 		String sumCkslFormat = "";
53
-		//BigDecimal s = new BigDecimal(1000);
54 60
 		BigDecimal sumCksls = null;
55
-		//BigDecimal sumCkslss = null;
56
-		int year = 0;
61
+		
57 62
 		double []_xiaomai = new double[5];
58 63
 		double []_yumi = new double[5];
59 64
 		double []_daogu = new double[5];
60 65
 		double []_dadou = new double[5];
61 66
 		for (int i = 0; i < year_num.length; i++) {
62
-			for (DataKcswScedule dataKcswScedule : countByLspz) {
63
-				pz = dataKcswScedule.getPz();
64
-				year = Integer.parseInt(dataKcswScedule.getRq().substring(0, 4) + "");
65
-				dataKcswScedule.setRq(year+"");
66
-				sumCksl = dataKcswScedule.getSumCksl();
67
-				sumCkslDouble = Double.parseDouble(sumCksl);
68
-				sumCkslFormat = obj.format(sumCkslDouble);
69
-				sumCksls = new BigDecimal(sumCkslFormat);
70
-				//sumCkslss = sumCksls.divide(s);
71
-				if (year_num[i].equals(year+"")) {
72
-					if("3164".equals(pz)){
73
-						_xiaomai[i] = Double.parseDouble(sumCksls+"");
74
-					}else if ("3165".equals(pz)) {
75
-						_yumi[i] = Double.parseDouble(sumCksls+"");
76
-					}else if ("3166".equals(pz)) {
77
-						_daogu[i] = Double.parseDouble(sumCksls+"");
78
-					}else if ("2777".equals(pz)) {
79
-						_dadou[i] = Double.parseDouble(sumCksls+"");
67
+			double sumXiaomaikcsl = 0d; //小麦
68
+			double sumYumikcsl = 0d; //玉米
69
+			double sumDadoukcsl = 0d; //大豆
70
+			double sumDaogukcsl = 0d; //稻谷
71
+			if (null != list && list.size() > 0) {
72
+				for (DataKcglKcswDefault kcsw_obj : list) {
73
+					DataKcglFcbgzDefaultExample fcbgz_example = new DataKcglFcbgzDefaultExample();
74
+					DataKcglFcbgzDefaultExample.Criteria fcbgz_criteria = fcbgz_example.createCriteria();
75
+					fcbgz_criteria.andUnitidEqualTo(kcsw_obj.getUnitid());
76
+					fcbgz_criteria.andChEqualTo(kcsw_obj.getCh());
77
+					fcbgz_criteria.andHwhEqualTo(kcsw_obj.getHwh());
78
+					fcbgz_criteria.andSrslGreaterThan(0d);//收入数量大于0
79
+					fcbgz_example.setOrderByClause(" ModifyDate DESC");
80
+					//给生产年份赋值
81
+					List<DataKcglFcbgzDefault> fcbgz_list = dataKcglFcbgzDefaultMapper.selectByExample(fcbgz_example);
82
+					Integer scnf = 0;
83
+					if (null != fcbgz_list && fcbgz_list.size() > 0) {
84
+						scnf = Integer.parseInt(ObjectUtils.toString(fcbgz_list.get(0).getScnf(), "0"));
85
+					}
86
+
87
+					pz = kcsw_obj.getPz();
88
+					if (null == scnf || "".equals(scnf)) {
89
+						scnf = 0;
90
+					}
91
+					/* 获取年份的字典值 */
92
+					String strResult = basicEnumFeignService.getEnumData(scnf);
93
+					if (null != strResult && !"".equals(strResult)) {
94
+						JSONObject enum_obj = JSONObject.parseObject(strResult);
95
+						year = enum_obj.get("enumname")+"";//年份字典
96
+					} else {
97
+						year = "0";
98
+					}
99
+					if (year.equals(year_num[i]) && "3164".equals(pz)) {//这个年份小麦的数据
100
+						sumXiaomaikcsl = sumXiaomaikcsl + kcsw_obj.getKcsl();
101
+					} else if (year.equals(year_num[i]) && "3165".equals(pz)) {//这个年份玉米的数据
102
+						sumYumikcsl = sumYumikcsl + kcsw_obj.getKcsl();
103
+					} else if (year.equals(year_num[i]) && "3166".equals(pz)) {//这个年份稻谷的数据
104
+						sumDaogukcsl = sumDaogukcsl + kcsw_obj.getKcsl();
105
+					} else if (year.equals(year_num[i]) && "2777".equals(pz)) {//这个年份大豆的数据
106
+						sumDadoukcsl = sumDadoukcsl + kcsw_obj.getKcsl();
80 107
 					}
81 108
 				}
82 109
 			}
110
+			//处理小麦
111
+			sumCkslFormat = obj.format(sumXiaomaikcsl/1000);
112
+			sumCksls = new BigDecimal(sumCkslFormat);
113
+			_xiaomai[i] = Double.parseDouble(sumCksls+"");
114
+
115
+			//处理玉米
116
+			sumCkslFormat = obj.format(sumYumikcsl/1000);
117
+			sumCksls = new BigDecimal(sumCkslFormat);
118
+			_yumi[i] = Double.parseDouble(sumCksls+"");
119
+
120
+			//处理稻谷
121
+			sumCkslFormat = obj.format(sumDaogukcsl/1000);
122
+			sumCksls = new BigDecimal(sumCkslFormat);
123
+			_daogu[i] = Double.parseDouble(sumCksls+"");
124
+
125
+			//处理大豆
126
+			sumCkslFormat = obj.format(sumDadoukcsl/1000);
127
+			sumCksls = new BigDecimal(sumCkslFormat);
128
+			_dadou[i] = Double.parseDouble(sumCksls+"");
83 129
 		}
84 130
 
85 131
 		modelMap.put("xiaomai", _xiaomai);
@@ -111,7 +157,7 @@ public class KcswServiceImpl implements KcswService{
111 157
 		modelMap.put("yi", yi);
112 158
 		modelMap.put("er", er);
113 159
 		modelMap.put("san", san);
114
-		
160
+
115 161
 		return modelMap;
116 162
 	}
117 163
 
@@ -125,10 +171,13 @@ public class KcswServiceImpl implements KcswService{
125 171
 			BigDecimal divide = sumCksls2.divide(effectiveCapacitys, 4, RoundingMode.CEILING);
126 172
 			BigDecimal s = new BigDecimal(100);
127 173
 			BigDecimal multiply = divide.multiply(s);
128
-			String string = multiply.toString();
129
-//			double sumCkslDouble = Double.parseDouble(string);
130
-//			DecimalFormat obj = new DecimalFormat(".00");  // 保留2位小数
131
-//			String format = obj.format(sumCkslDouble);
174
+			float a = multiply.floatValue();
175
+			String string = "";
176
+			if (a > 100) {
177
+				string = "100";
178
+			} else {
179
+				string = multiply.toString();
180
+			}
132 181
 			return string;
133 182
 		}
134 183
 		return "0";