| doc/宁夏-中盛建材.sql | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/framework/util/AliDingUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/production/pojo/ProductMaterialSku.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/production/service/impl/ProductMaterialServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/resources/mapper/production/ProductMaterialSkuMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
doc/ÄþÏÄ-ÖÐÊ¢½¨²Ä.sql
@@ -537,3 +537,6 @@ ALTER TABLE `product-inventory-management-zsjc`.`production_product_route_item_file` MODIFY COLUMN `file_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'æä»¶åå¨å°å' AFTER `file_name`, MODIFY COLUMN `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'æä»¶è®¿é®å°å' AFTER `file_url`; ALTER TABLE `product-inventory-management-zsjc`.`product_material_sku` ADD COLUMN `type` int NULL COMMENT 'æ°æ®æ¥æº(1-宿/2-éé)' AFTER `update_time`; src/main/java/com/ruoyi/framework/util/AliDingUtils.java
@@ -46,11 +46,28 @@ * @return 对åºè¡¨åçæ°æ® */ public static <T> JSONArray getFormDataList(AliDingConfig aliDingConfig, String formUuid, String searchFieldJson, IService<T> service, SFunction<T, ?> timeField) { return getFormDataList(aliDingConfig, formUuid, searchFieldJson, service, timeField, new LambdaQueryWrapper<>()); } /** * æ ¹æ®è¡¨å ID è·åå®ææ°æ®ï¼å¸¦èªå®ä¹è®°å½æ°æ¥è¯¢æ¡ä»¶ï¼ç¨äºå¤ææ¯å¦è¿è¡å ¨é忥 */ public static <T> JSONArray getFormDataList(AliDingConfig aliDingConfig, String formUuid, String searchFieldJson, IService<T> service, SFunction<T, ?> timeField, LambdaQueryWrapper<T> countWrapper) { // è·å accessToken String accessToken = getAccessToken(aliDingConfig); // è·åæå忥æ¶é´ LocalDateTime lastSyncTime = getLastSyncTime(service, timeField); log.info("å¼å§åæ¥æ°æ®ï¼æ¬å°æåä¿®æ¹æ¶é´: {}", lastSyncTime); // å è·åå®ææ»æ°ï¼ä¸å¸¦æ¶é´åæ°ï¼ä¸æ¬å°è®°å½æ°å¯¹æ¯ long remoteTotalCount = getRemoteTotalCount(aliDingConfig, formUuid, searchFieldJson, accessToken); long localCount = service.count(countWrapper); // 夿æ¯å¦éè¦å ¨é¨æ´æ° LocalDateTime lastSyncTime = null; if (remoteTotalCount == localCount) { lastSyncTime = getLastSyncTime(service, timeField); log.info("å¼å§å¢éåæ¥æ°æ®ï¼æ¬å°æåä¿®æ¹æ¶é´: {}", lastSyncTime); } else { log.info("æ¬å°æ°æ®æ¡æ°({})ä¸è¿ç¨æ°æ®æ»æ¡æ°({})ä¸ä¸è´ï¼è¿è¡å ¨é忥", localCount, remoteTotalCount); } JSONArray allData = new JSONArray(); int pageNumber = 1; @@ -116,6 +133,37 @@ } /** * è·åè¿ç¨æ¥è¯¢çæ»æ°éï¼ä¸å¸¦æ¶é´åæ°éå¶ï¼ */ private static long getRemoteTotalCount(AliDingConfig aliDingConfig, String formUuid, String searchFieldJson, String accessToken) { JSONObject searchParam = new JSONObject(); searchParam.put("appType", aliDingConfig.getAppType()); searchParam.put("systemToken", aliDingConfig.getSystemToken()); searchParam.put("userId", aliDingConfig.getUserId()); searchParam.put("formUuid", formUuid); searchParam.put("currentPage", 1); searchParam.put("pageSize", 1); if (StringUtils.isNotEmpty(searchFieldJson)) { searchParam.put("searchFieldJson", searchFieldJson); } String dataRes = HttpUtils.sendPostJson( aliDingConfig.getSearchFormDataUrl(), searchParam.toJSONString(), StandardCharsets.UTF_8.name(), null, accessToken ); if (StringUtils.isEmpty(dataRes)) { return 0; } JSONObject resultObj = JSON.parseObject(dataRes); return resultObj.getLongValue("totalCount"); } /** * è·åéé AccessToken */ private static String getAccessToken(AliDingConfig aliDingConfig) { src/main/java/com/ruoyi/production/pojo/ProductMaterialSku.java
@@ -63,4 +63,7 @@ @ApiModelProperty("ä¿®æ¹æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime updateTime; @ApiModelProperty("æ°æ®æ¥æº(1-宿/2-éé)") private Long type; } src/main/java/com/ruoyi/production/service/impl/ProductMaterialServiceImpl.java
@@ -106,7 +106,10 @@ String searchFieldJson = searchConditions.toJSONString(); JSONArray dataArr = AliDingUtils.getFormDataList(aliDingConfig, aliDingConfig.getMaterialCodeFormUuid(), searchFieldJson, productMaterialSkuService, ProductMaterialSku::getFormModifiedTime); LambdaQueryWrapper<ProductMaterialSku> countWrapper = new LambdaQueryWrapper<>(); countWrapper.eq(ProductMaterialSku::getType, 1L); JSONArray dataArr = AliDingUtils.getFormDataList(aliDingConfig, aliDingConfig.getMaterialCodeFormUuid(), searchFieldJson, productMaterialSkuService, ProductMaterialSku::getFormModifiedTime, countWrapper); if (dataArr.isEmpty()) { log.info("æ²¡ææ´å¤æ°æ°æ®éè¦åæ¥"); @@ -169,6 +172,7 @@ sku.setFormModifiedTime(AliDingUtils.parseUtcTime(item.getString("modifiedTimeGMT"))); sku.setCreateTime(now); sku.setUpdateTime(now); sku.setType(1L); list.add(sku); } src/main/resources/mapper/production/ProductMaterialSkuMapper.xml
@@ -17,6 +17,7 @@ <result property="formModifiedTime" column="form_modified_time"/> <result property="createTime" column="create_time"/> <result property="updateTime" column="update_time"/> <result property="type" column="type"/> </resultMap> <select id="selectSkuWithMaterialPage" resultType="com.ruoyi.production.dto.ProductMaterialSkuDto">