feat(repository): 添加字典和库存数据的计数查询
- 在 DictRepository 中添加了 countDicts 和 countRootDicts 方法 - 在 StockRepository 中添加了 countStocks 方法 - 更新了 DictService 和 StockService,增加了计数相关的方法 - 修改了 DictResource 和 StockResource,添加了计数结果到 HTTP 响应头 - 更新了字典数据,增加了新的物料分类和属性
This commit is contained in:
parent
a6e561dc61
commit
f7c7aa9c06
@ -27,6 +27,18 @@ public interface DictRepository extends R2dbcRepository<Dict, Long> {
|
||||
)
|
||||
Flux<Dict> findRootDicts(String organization, @Param("params") Map<String, Object> params, Pageable pageable);
|
||||
|
||||
@Query(
|
||||
"SELECT COUNT(*) FROM jhi_dict WHERE IFNULL(parent_number, '') = '' " +
|
||||
"AND (:#{#organization} = '*' OR organization = :#{#organization}) " +
|
||||
"AND (:#{#params['number']} IS NULL OR number = :#{#params['number']}) " +
|
||||
"AND (:#{#params['name']} IS NULL OR name LIKE CONCAT('%', :#{#params['name']}, '%')) " +
|
||||
"AND (:#{#params['likeNumberName']} IS NULL OR CONCAT(number,name) LIKE CONCAT('%', :#{#params['likeNumberName']}, '%')) " +
|
||||
"AND (:#{#params['parentNumber']} IS NULL OR IFNULL(parent_number, '') = :#{#params['parentNumber']}) " +
|
||||
"AND (:#{#params['property']} IS NULL OR property LIKE CONCAT('%', :#{#params['property']}, '%')) " +
|
||||
"AND (:#{#params['status']} IS NULL OR status = :#{#params['status']}) "
|
||||
)
|
||||
Mono<Long> countRootDicts(String organization, @Param("params") Map<String, Object> params);
|
||||
|
||||
@Query(
|
||||
"SELECT * FROM jhi_dict WHERE (:#{#organization} = '*' OR organization = :#{#organization}) AND parent_number = :parentNumber ORDER BY sort_no ASC"
|
||||
)
|
||||
@ -37,6 +49,15 @@ public interface DictRepository extends R2dbcRepository<Dict, Long> {
|
||||
)
|
||||
Mono<Long> countChildren(String organization, @Param("parentNumber") String parentNumber);
|
||||
|
||||
@Query(
|
||||
"SELECT COUNT(*) FROM jhi_dict WHERE (:#{#organization} = '*' OR organization = :#{#organization}) " +
|
||||
"AND (:#{#params['number']} IS NULL OR number = :#{#params['number']}) " +
|
||||
"AND (:#{#params['name']} IS NULL OR name LIKE CONCAT('%', :#{#params['name']}, '%')) " +
|
||||
"AND (:#{#params['parentNumber']} IS NULL OR parent_number = :#{#params['parentNumber']}) " +
|
||||
"AND (:#{#params['status']} IS NULL OR status = :#{#params['status']}) "
|
||||
)
|
||||
Mono<Long> countDicts(String organization, @Param("params") Map<String, Object> params);
|
||||
|
||||
@Query(
|
||||
"SELECT * FROM jhi_dict WHERE (:#{#organization} = '*' OR organization = :#{#organization}) " +
|
||||
"AND (:#{#params['number']} IS NULL OR number = :#{#params['number']}) " +
|
||||
|
||||
@ -6,6 +6,7 @@ import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.r2dbc.repository.Query;
|
||||
import org.springframework.data.r2dbc.repository.R2dbcRepository;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
/**
|
||||
* Spring Data R2DBC repository for the Stock entity.
|
||||
@ -24,4 +25,12 @@ public interface StockRepository extends R2dbcRepository<Stock, Long> {
|
||||
"SELECT number, name, property, sort_no FROM jhi_stock WHERE (:#{#organization} = '*' OR organization = :#{#organization}) AND status = 1 ORDER BY number ASC"
|
||||
)
|
||||
Flux<Map<String, Object>> findActiveStocks(String organization);
|
||||
|
||||
@Query(
|
||||
"SELECT COUNT(*) FROM jhi_stock WHERE (:#{#organization} = '*' OR organization = :#{#organization}) " +
|
||||
"AND (:#{#params['number']} IS NULL OR number = :#{#params['number']}) " +
|
||||
"AND (:#{#params['name']} IS NULL OR name LIKE CONCAT('%', :#{#params['name']}, '%')) " +
|
||||
"AND (:#{#params['property']} IS NULL OR property LIKE CONCAT('%', :#{#params['property']}, '%'))"
|
||||
)
|
||||
Mono<Long> countStocks(String organization, Map<String, Object> params);
|
||||
}
|
||||
|
||||
@ -71,12 +71,20 @@ public class DictService {
|
||||
);
|
||||
}
|
||||
|
||||
public Mono<Long> countDicts(Map<String, Object> params) {
|
||||
return SecurityUtils.getCurrentOrganization().flatMap(organization -> dictRepository.countDicts(organization, params));
|
||||
}
|
||||
|
||||
public Flux<Dict> getDicts(Map<String, Object> params, Pageable pageable) {
|
||||
return SecurityUtils.getCurrentOrganization()
|
||||
.map(organization -> dictRepository.findDicts(organization, params, pageable))
|
||||
.flatMapMany(dicts -> dicts);
|
||||
}
|
||||
|
||||
public Mono<Long> countRootDicts(Map<String, Object> params) {
|
||||
return SecurityUtils.getCurrentOrganization().flatMap(organization -> dictRepository.countRootDicts(organization, params));
|
||||
}
|
||||
|
||||
public Flux<Dict> getDictTree(Map<String, Object> params, Pageable pageable) {
|
||||
return SecurityUtils.getCurrentOrganization()
|
||||
.map(organization -> dictRepository.findRootDicts(organization, params, pageable))
|
||||
|
||||
@ -60,6 +60,10 @@ public class StockService {
|
||||
.flatMapMany(stocks -> stocks);
|
||||
}
|
||||
|
||||
public Mono<Long> countStocks(Map<String, Object> params) {
|
||||
return SecurityUtils.getCurrentOrganization().flatMap(organization -> stockRepository.countStocks(organization, params));
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
public Flux<Map<String, Object>> getActiveStocks() {
|
||||
return SecurityUtils.getCurrentOrganization()
|
||||
|
||||
@ -72,7 +72,9 @@ public class DictResource {
|
||||
if (!onlyContainsAllowedProperties(pageable)) {
|
||||
return Mono.just(ResponseEntity.badRequest().build());
|
||||
}
|
||||
return Mono.just(ResponseEntity.ok().body(dictService.getDicts(params, pageable)));
|
||||
return dictService
|
||||
.countDicts(params)
|
||||
.map(total -> ResponseEntity.ok().header("X-Total-Count", String.valueOf(total)).body(dictService.getDicts(params, pageable)));
|
||||
}
|
||||
|
||||
@GetMapping("/dicts/tree")
|
||||
@ -83,6 +85,9 @@ public class DictResource {
|
||||
if (!onlyContainsAllowedProperties(pageable)) {
|
||||
return Mono.just(ResponseEntity.badRequest().build());
|
||||
}
|
||||
return Mono.just(ResponseEntity.ok().body(dictService.getDictTree(params, pageable)));
|
||||
return dictService
|
||||
.countRootDicts(params)
|
||||
.map(total -> ResponseEntity.ok().header("X-Total-Count", String.valueOf(total)).body(dictService.getDictTree(params, pageable))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -81,7 +81,10 @@ public class StockResource {
|
||||
if (!onlyContainsAllowedProperties(pageable)) {
|
||||
return Mono.just(ResponseEntity.badRequest().build());
|
||||
}
|
||||
return Mono.just(ResponseEntity.ok().body(stockService.getStocks(params, pageable)));
|
||||
return stockService
|
||||
.countStocks(params)
|
||||
.map(total -> ResponseEntity.ok().header("X-Total-Count", String.valueOf(total)).body(stockService.getStocks(params, pageable))
|
||||
);
|
||||
}
|
||||
|
||||
@GetMapping("/stocks/active")
|
||||
|
||||
@ -39,16 +39,60 @@ id;number;parent_number;name;property;remark;status;sort_no;organization;created
|
||||
38;50;TransactStatus;退回;;;1;0;ORG001;admin;2025-03-12 10:56:21.730067;admin;2025-03-12 10:56:21.730067;0
|
||||
39;TransactStatus;;生产状态;;;1;0;ORG001;admin;2025-03-12 10:59:24.971458;admin;2025-03-12 10:59:24.971458;0
|
||||
40;MatGroup1;;物料大类;;;1;0;ORG001;admin;2025-03-16 16:10:39.916246;admin;2025-03-16 16:10:39.916246;0
|
||||
41;GD;MatGroup1;黄金;;;1;0;ORG001;admin;2025-03-16 16:14:59.151541;admin;2025-03-16 16:14:59.151541;0
|
||||
42;SL;MatGroup1;白银;;;1;0;ORG001;admin;2025-03-16 16:28:46.755507;admin;2025-03-16 16:28:46.755507;0
|
||||
43;CU;MatGroup1;铜料;;;1;0;ORG001;admin;2025-03-16 16:31:02.516413;admin;2025-03-16 16:31:02.516413;0
|
||||
44;PT;MatGroup1;铂金;;;1;0;ORG001;admin;2025-03-16 16:35:54.700282;admin;2025-03-16 16:35:54.700282;0
|
||||
45;AL;MATGROUP1;补口;;;1;0;ORG001;admin;2025-03-16 16:37:08.754443;admin;2025-03-16 16:37:08.754443;0
|
||||
46;ND;MATGROUP1;钻石;{"weight":"ct"};;1;0;ORG001;admin;2025-03-16 17:05:39.571164;admin;2025-03-16 17:05:39.571164;0
|
||||
47;OT;MATGROUP1;其它;;;1;0;ORG001;admin;2025-03-16 17:06:43.156624;admin;2025-03-16 17:06:43.156624;0
|
||||
41;GD;MatGroup1;黄金;{"UnitWeight":"g", "MatGroup0":"M"};;1;0;ORG001;admin;2025-03-16 16:14:59.151541;admin;2025-03-16 16:14:59.151541;0
|
||||
42;SL;MatGroup1;白银;{"UnitWeight":"g", "MatGroup0":"M"};;1;0;ORG001;admin;2025-03-16 16:28:46.755507;admin;2025-03-16 16:28:46.755507;0
|
||||
43;CU;MatGroup1;铜料;{"UnitWeight":"g", "MatGroup0":"M"};;1;0;ORG001;admin;2025-03-16 16:31:02.516413;admin;2025-03-16 16:31:02.516413;0
|
||||
44;PT;MatGroup1;铂金;{"UnitWeight":"g", "MatGroup0":"M"};;1;0;ORG001;admin;2025-03-16 16:35:54.700282;admin;2025-03-16 16:35:54.700282;0
|
||||
45;AL;MatGroup1;补口;{"UnitWeight":"g", "MatGroup0":"M"};;1;0;ORG001;admin;2025-03-16 16:37:08.754443;admin;2025-03-16 16:37:08.754443;0
|
||||
46;ND;MatGroup1;钻石;{"UnitWeight":"ct", "MatGroup0":"S"};;1;0;ORG001;admin;2025-03-16 17:05:39.571164;admin;2025-03-16 17:05:39.571164;0
|
||||
47;OT;MatGroup1;其它;{"UnitWeight":"g", "MatGroup0":"M"};;1;0;ORG001;admin;2025-03-16 17:06:43.156624;admin;2025-03-16 17:06:43.156624;0
|
||||
48;MatGroup2;;物料类别;;;1;0;ORG001;admin;2025-03-16 17:10:45.82635;admin;2025-03-16 17:10:45.82635;0
|
||||
49;18;MatGroup2;18K金;;;1;0;ORG001;admin;2025-03-16 17:12:07.179712;admin;2025-03-16 17:12:07.179712;0
|
||||
50;RD;MatGroup2;圆钻;;;1;0;ORG001;admin;2025-03-16 17:19:38.32061;admin;2025-03-16 17:19:38.32061;0
|
||||
49;18;MatGroup2;18K;{"UnitWeight":"g", "MatGroup0":"M", "MatGroup1":"GD"};;1;0;ORG001;admin;2025-03-16 17:12:07.179712;admin;2025-03-16 17:12:07.179712;0
|
||||
50;RD;MatGroup2;圆钻;{"UnitWeight":"ct", "MatGroup0":"S", "MatGroup1":"ND"};;1;0;ORG001;admin;2025-03-16 17:19:38.32061;admin;2025-03-16 17:19:38.32061;0
|
||||
51;MatGroup0;;物料种类;;;1;0;ORG001;admin;2025-03-16 17:24:28.534056;admin;2025-03-16 17:24:28.534056;0
|
||||
52;M;MatGroup0;金属;{"UnitWeight":"g"};;1;0;ORG001;admin;2025-03-16 17:26:19.319342;admin;2025-03-16 17:27:35.891799;1
|
||||
53;S;MatGroup0;石料;{"UnitWeight":"ct"};;1;0;ORG001;admin;2025-03-16 17:26:46.726533;admin;2025-03-16 17:26:46.726533;0
|
||||
54;MatGroup3;;成色品质;;;1;0;ORG001;admin;2025-03-16 20:06:53.417702;admin;2025-03-16 20:06:53.417702;0
|
||||
57;VS;MatGroup3;VS品质;;;1;0;ORG001;admin;2025-03-16 20:11:08.428518;admin;2025-03-16 20:11:08.428518;0
|
||||
58;14;MatGroup2;14K;{"UnitWeight":"g", "MatGroup0":"M", "MatGroup1":"GD"};;1;0;ORG001;admin;2025-03-16 20:12:08.611094;admin;2025-03-16 20:12:08.611094;0
|
||||
59;MatGroup4;;物料型号;;;1;0;ORG001;admin;2025-03-16 20:13:23.388126;admin;2025-03-16 20:13:23.388126;0
|
||||
60;RM;MatGroup4;原料;{"MatGroup0":"M"};;1;0;ORG001;admin;2025-03-16 20:13:41.107358;admin;2025-03-16 20:13:41.107358;0
|
||||
61;RP;MatGroup4;修理货;{"MatGroup0":"M"};;1;0;ORG001;admin;2025-03-16 20:13:58.472764;admin;2025-03-16 20:13:58.472764;0
|
||||
62;W1;MatGroup4;线;{"MatGroup0":"M"};;1;0;ORG001;admin;2025-03-16 20:15:23.241522;admin;2025-03-16 20:15:23.241522;0
|
||||
63;W2;MatGroup4;焊;{"MatGroup0":"M"};;1;0;ORG001;admin;2025-03-16 20:15:35.743758;admin;2025-03-16 20:15:35.743758;0
|
||||
64;CA;MatGroup4;倒模;{"MatGroup0":"M"};;1;0;ORG001;admin;2025-03-16 20:16:01.192255;admin;2025-03-16 20:16:01.192255;0
|
||||
65;WM;MatGroup4;廢托;{"MatGroup0":"M"};;1;0;ORG001;admin;2025-03-16 20:16:13.149239;admin;2025-03-16 20:16:13.149239;0
|
||||
66;WG;MatGroup4;廢金;{"MatGroup0":"M"};;1;0;ORG001;admin;2025-03-16 20:16:27.862131;admin;2025-03-16 20:16:27.862131;0
|
||||
67;EP;MatGroup4;耳針;{"MatGroup0":"M"};;1;0;ORG001;admin;2025-03-16 20:16:42.426041;admin;2025-03-16 20:16:42.426041;0
|
||||
68;MatGroup5;;物料属性;;;1;0;ORG001;admin;2025-03-16 20:18:34.28569;admin;2025-03-16 20:18:34.28569;0
|
||||
69;00;MatGroup5;-;{"AccType":"0"};;1;0;ORG001;admin;2025-03-16 20:19:21.272647;admin;2025-03-16 20:19:21.272647;0
|
||||
70;T1;MatGroup5;高溫;{"AccType":"1", "MatGroup4":"W2"};;1;0;ORG001;admin;2025-03-16 20:20:37.174964;admin;2025-03-16 20:20:37.174964;0
|
||||
71;T2;MatGroup5;低溫;{"AccType":"2", "MatGroup4":"W2"};;1;0;ORG001;admin;2025-03-16 20:20:53.096359;admin;2025-03-16 20:20:53.096359;0
|
||||
72;E1;MatGroup5;單凹;{"AccType":"3", "MatGroup4":"EB"};;1;0;ORG001;admin;2025-03-16 20:21:29.796611;admin;2025-03-16 20:21:29.796611;0
|
||||
73;E2;MatGroup5;雙凹;{"AccType":"4", "MatGroup4":"EB"};;1;0;ORG001;admin;2025-03-16 20:21:48.15281;admin;2025-03-16 20:21:48.15281;0
|
||||
74;EB;MatGroup4;耳迫;{"MatGroup0":"M"};;1;0;ORG001;admin;2025-03-16 20:25:37.845475;admin;2025-03-16 20:25:37.845475;0
|
||||
75;MatGroup6;;物料尺寸;;;1;0;ORG001;admin;2025-03-16 20:30:21.156318;admin;2025-03-16 20:30:21.156318;0
|
||||
76;MatRate;;物料折纯;;;1;0;ORG001;admin;2025-03-16 20:31:23.952106;admin;2025-03-16 20:31:23.952106;0
|
||||
77;7560;MatRate;18K折纯率;{"MatGroup2":"18","MatGroup3":"KG","MatGroup3":"KW","MatGroup3":"KY","MatGroup3":"KP"};;1;0;ORG001;admin;2025-03-16 20:32:13.11651;admin;2025-03-16 20:32:13.11651;0
|
||||
78;P3;MatGroup3;粉金3;;;1;0;ORG001;admin;2025-03-16 20:35:31.58937;admin;2025-03-16 20:35:31.58937;0
|
||||
79;K3;MatGroup3;金3;;;1;0;ORG001;admin;2025-03-16 20:36:15.299994;admin;2025-03-16 20:36:15.299994;0
|
||||
80;W3;MatGroup3;白金3;;;1;0;ORG001;admin;2025-03-16 20:36:52.217094;admin;2025-03-16 20:36:52.217094;0
|
||||
81;Y3;MatGroup3;黄金3;;;1;0;ORG001;admin;2025-03-16 20:37:11.389857;admin;2025-03-16 20:37:11.389857;0
|
||||
82;K2;MatGroup3;金2;;;1;0;ORG001;admin;2025-03-16 20:38:50.339667;admin;2025-03-16 20:38:50.339667;0
|
||||
83;W2;MatGroup3;白金2;;;1;0;ORG001;admin;2025-03-16 20:39:07.744115;admin;2025-03-16 20:39:07.744115;0
|
||||
84;Y2;MatGroup3;黄金2;;;1;0;ORG001;admin;2025-03-16 20:39:24.897196;admin;2025-03-16 20:39:24.897196;0
|
||||
85;KW;MatGroup3;白金;;;1;0;ORG001;admin;2025-03-16 20:40:50.227034;admin;2025-03-16 20:40:50.227034;0
|
||||
86;KY;MatGroup3;黄金;;;1;0;ORG001;admin;2025-03-16 20:41:11.894604;admin;2025-03-16 20:41:11.894604;0
|
||||
87;KP;MatGroup3;粉金;;;1;0;ORG001;admin;2025-03-16 20:41:41.444151;admin;2025-03-16 20:41:41.444151;0
|
||||
88;5900;MatRate;14K折纯率;{"MatGroup2":"14","MatGroup3":"KG","MatGroup3":"KW","MatGroup3":"KY","MatGroup3":"KP"};;1;0;ORG001;admin;2025-03-16 20:43:32.23205;admin;2025-03-16 20:43:32.23205;0
|
||||
89;P2;MatGroup3;粉金2;;;1;0;ORG001;admin;2025-03-16 20:46:10.499485;admin;2025-03-16 20:46:10.499485;0
|
||||
90;7530;MatRate;18K3折纯率;{"MatGroup2":"18","MatGroup3":"K3","MatGroup3":"W3","MatGroup3":"Y3","MatGroup3":"P3"};;1;0;ORG001;admin;2025-03-16 20:46:47.333519;admin;2025-03-16 20:46:47.333519;0
|
||||
91;7520;MatRate;18K2折纯率;{"MatGroup2":"18","MatGroup3":"K2","MatGroup3":"W2","MatGroup3":"Y2","MatGroup3":"P2"};;1;0;ORG001;admin;2025-03-16 20:47:03.681195;admin;2025-03-16 20:47:03.681195;0
|
||||
92;KG;MatGroup3;金;;;1;0;ORG001;admin;2025-03-16 20:49:37.245969;admin;2025-03-16 20:49:37.245969;0
|
||||
93;10;MatGroup2;10K;;;1;0;ORG001;admin;2025-03-16 20:50:52.649933;admin;2025-03-16 20:50:52.649933;0
|
||||
94;09;MatGroup2;9K;;;1;0;ORG001;admin;2025-03-16 20:51:16.67126;admin;2025-03-16 20:51:16.67126;0
|
||||
95;4180;MatRate;10K折纯率;{"MatGroup2":"10","MatGroup3":"KG","MatGroup3":"KW","MatGroup3":"KY","MatGroup3":"KP"};;1;0;ORG001;admin;2025-03-16 20:52:18.722618;admin;2025-03-16 20:52:18.722618;0
|
||||
96;3760;MatRate;9K折纯率;{"MatGroup2":"09","MatGroup3":"KG","MatGroup3":"KW","MatGroup3":"KY","MatGroup3":"KP"};;1;0;ORG001;admin;2025-03-16 20:53:01.36125;admin;2025-03-16 20:53:01.36125;0
|
||||
97;99;MatGroup2;千足金;{"UnitWeight":"g", "MatGroup0":"M", "MatGroup1":"GD"};;1;0;ORG001;admin;2025-03-16 20:57:56.26431;admin;2025-03-16 20:57:56.26431;0
|
||||
98;9999;MatRate;千足金折纯率;{"MatGroup2":"99", "rate":1};;1;0;ORG001;admin;2025-03-16 20:59:11.116819;admin;2025-03-16 20:59:11.116819;0
|
||||
99;0000;MatGroup6;-;;;1;0;ORG001;admin;2025-03-16 21:09:59.279014;admin;2025-03-16 21:09:59.279014;0
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 13 and column 33.
|
Loading…
Reference in New Issue
Block a user