|
@@ -324,6 +324,7 @@ class DictionaryQueryServiceImplTest {
|
|
|
ArgumentCaptor<SqlParameterSource> countParameters = ArgumentCaptor.forClass(SqlParameterSource.class);
|
|
ArgumentCaptor<SqlParameterSource> countParameters = ArgumentCaptor.forClass(SqlParameterSource.class);
|
|
|
verify(jdbcTemplate).queryForObject(countSql.capture(), countParameters.capture(), eq(Long.class));
|
|
verify(jdbcTemplate).queryForObject(countSql.capture(), countParameters.capture(), eq(Long.class));
|
|
|
assertEquals(true, countSql.getValue().contains("xmdadocno||'-'||xmdcseq docseq"));
|
|
assertEquals(true, countSql.getValue().contains("xmdadocno||'-'||xmdcseq docseq"));
|
|
|
|
|
+ assertEquals(true, countSql.getValue().contains("ooff013, xmda004"));
|
|
|
assertEquals(true, countSql.getValue().contains("where xmdaent =86 and xmdasite = 'ML'"));
|
|
assertEquals(true, countSql.getValue().contains("where xmdaent =86 and xmdasite = 'ML'"));
|
|
|
assertEquals(true, countSql.getValue().contains("where docseq like :keyword"));
|
|
assertEquals(true, countSql.getValue().contains("where docseq like :keyword"));
|
|
|
assertEquals("%SO-001-10%", countParameters.getValue().getValue("keyword"));
|
|
assertEquals("%SO-001-10%", countParameters.getValue().getValue("keyword"));
|
|
@@ -337,6 +338,81 @@ class DictionaryQueryServiceImplTest {
|
|
|
assertEquals(Long.valueOf(3L), result.get("total"));
|
|
assertEquals(Long.valueOf(3L), result.get("total"));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 验证订单号查订单数量按订单号精确汇总,并固定返回前 100 条记录。
|
|
|
|
|
+ */
|
|
|
|
|
+ @Test
|
|
|
|
|
+ void queryErpOrderQtyRequiresOrderNumber() {
|
|
|
|
|
+ ObjectProvider<NamedParameterJdbcTemplate> jdbcTemplateProvider = mock(ObjectProvider.class);
|
|
|
|
|
+ NamedParameterJdbcTemplate jdbcTemplate = mock(NamedParameterJdbcTemplate.class);
|
|
|
|
|
+ given(jdbcTemplateProvider.getIfAvailable()).willReturn(jdbcTemplate);
|
|
|
|
|
+ given(jdbcTemplate.queryForObject(anyString(), any(SqlParameterSource.class), eq(Long.class)))
|
|
|
|
|
+ .willReturn(Long.valueOf(1L));
|
|
|
|
|
+ given(jdbcTemplate.queryForList(anyString(), any(SqlParameterSource.class)))
|
|
|
|
|
+ .willReturn(Collections.<Map<String, Object>>emptyList());
|
|
|
|
|
+
|
|
|
|
|
+ DictionaryQueryServiceImpl service = new DictionaryQueryServiceImpl(jdbcTemplateProvider);
|
|
|
|
|
+ Map<String, String> filters = new LinkedHashMap<String, String>();
|
|
|
|
|
+ filters.put("ddh", "SO-001");
|
|
|
|
|
+
|
|
|
|
|
+ Map<String, Object> result = service.query("erp-order-qty", filters);
|
|
|
|
|
+
|
|
|
|
|
+ ArgumentCaptor<String> countSql = ArgumentCaptor.forClass(String.class);
|
|
|
|
|
+ ArgumentCaptor<SqlParameterSource> countParameters = ArgumentCaptor.forClass(SqlParameterSource.class);
|
|
|
|
|
+ verify(jdbcTemplate).queryForObject(countSql.capture(), countParameters.capture(), eq(Long.class));
|
|
|
|
|
+ assertEquals(true, countSql.getValue().contains("nvl(sum(xmdc007), 0) as xmdc007"));
|
|
|
|
|
+ assertEquals(true, countSql.getValue().contains("from DSDATA.xmdc_t"));
|
|
|
|
|
+ assertEquals(true, countSql.getValue().contains("xmdcdocno = :ddh"));
|
|
|
|
|
+ assertEquals(true, countSql.getValue().contains("xmdcent = '86'"));
|
|
|
|
|
+ assertEquals(true, countSql.getValue().contains("xmdcsite = 'ML'"));
|
|
|
|
|
+ assertEquals(true, countSql.getValue().contains("xmdc019 = '1'"));
|
|
|
|
|
+ assertEquals(true, countSql.getValue().contains("substr(xmdc001, 1, 1) = '1'"));
|
|
|
|
|
+ assertEquals("SO-001", countParameters.getValue().getValue("ddh"));
|
|
|
|
|
+ assertEquals(1, result.get("page"));
|
|
|
|
|
+ assertEquals(100, result.get("pageSize"));
|
|
|
|
|
+ assertEquals(Long.valueOf(1L), result.get("total"));
|
|
|
|
|
+
|
|
|
|
|
+ Map<String, String> missingOrderNumber = new LinkedHashMap<String, String>();
|
|
|
|
|
+ IllegalArgumentException exception = assertThrows(IllegalArgumentException.class,
|
|
|
|
|
+ () -> service.query("erp-order-qty", missingOrderNumber));
|
|
|
|
|
+ assertEquals("ddh must not be blank", exception.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 验证订单号查产品型号按订单号精确查询,并固定返回前 100 条记录。
|
|
|
|
|
+ */
|
|
|
|
|
+ @Test
|
|
|
|
|
+ void queryErpOrderProductModelRequiresOrderNumber() {
|
|
|
|
|
+ ObjectProvider<NamedParameterJdbcTemplate> jdbcTemplateProvider = mock(ObjectProvider.class);
|
|
|
|
|
+ NamedParameterJdbcTemplate jdbcTemplate = mock(NamedParameterJdbcTemplate.class);
|
|
|
|
|
+ given(jdbcTemplateProvider.getIfAvailable()).willReturn(jdbcTemplate);
|
|
|
|
|
+ given(jdbcTemplate.queryForObject(anyString(), any(SqlParameterSource.class), eq(Long.class)))
|
|
|
|
|
+ .willReturn(Long.valueOf(1L));
|
|
|
|
|
+ given(jdbcTemplate.queryForList(anyString(), any(SqlParameterSource.class)))
|
|
|
|
|
+ .willReturn(Collections.<Map<String, Object>>emptyList());
|
|
|
|
|
+
|
|
|
|
|
+ DictionaryQueryServiceImpl service = new DictionaryQueryServiceImpl(jdbcTemplateProvider);
|
|
|
|
|
+ Map<String, String> filters = new LinkedHashMap<String, String>();
|
|
|
|
|
+ filters.put("ddh", "SO-001");
|
|
|
|
|
+
|
|
|
|
|
+ Map<String, Object> result = service.query("erp-order-product-model", filters);
|
|
|
|
|
+
|
|
|
|
|
+ ArgumentCaptor<String> countSql = ArgumentCaptor.forClass(String.class);
|
|
|
|
|
+ ArgumentCaptor<SqlParameterSource> countParameters = ArgumentCaptor.forClass(SqlParameterSource.class);
|
|
|
|
|
+ verify(jdbcTemplate).queryForObject(countSql.capture(), countParameters.capture(), eq(Long.class));
|
|
|
|
|
+ assertEquals(true, countSql.getValue().contains("max(a.imaal004) as imaal004"));
|
|
|
|
|
+ assertEquals(true, countSql.getValue().contains("from DSDATA.xmdc_t b"));
|
|
|
|
|
+ assertEquals(true, countSql.getValue().contains("left join DSDATA.imaal_t a"));
|
|
|
|
|
+ assertEquals(true, countSql.getValue().contains("a.imaal002 = 'zh_CN'"));
|
|
|
|
|
+ assertEquals(true, countSql.getValue().contains("b.xmdcdocno = :ddh"));
|
|
|
|
|
+ assertEquals(true, countSql.getValue().contains("b.xmdcent = '86'"));
|
|
|
|
|
+ assertEquals(true, countSql.getValue().contains("substr(b.xmdc001, 1, 1) = '1'"));
|
|
|
|
|
+ assertEquals("SO-001", countParameters.getValue().getValue("ddh"));
|
|
|
|
|
+ assertEquals(1, result.get("page"));
|
|
|
|
|
+ assertEquals(100, result.get("pageSize"));
|
|
|
|
|
+ assertEquals(Long.valueOf(1L), result.get("total"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 验证生产令开窗按据点和用户所属部门查询,并固定返回前 100 条记录。
|
|
* 验证生产令开窗按据点和用户所属部门查询,并固定返回前 100 条记录。
|
|
|
*/
|
|
*/
|