Browse Source

fix:修复联合成本中心异常

checkBack
Yen 1 year ago
parent
commit
2d8c8e0320
  1. 31
      src/main/java/com/qs/serve/common/framework/interceptor/LocalDateTimeFormatSerializer.java
  2. 6
      src/main/java/com/qs/serve/common/util/BirHttpUtil.java
  3. 10
      src/main/java/com/qs/serve/common/util/HttpUtil.java
  4. 12
      src/main/java/com/qs/serve/common/util/JsonUtil.java
  5. 4
      src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java
  6. 38
      src/main/java/com/qs/serve/modules/exl/controller/ExlTableDataController.java
  7. 10
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityCenterGoodsMapper.java

31
src/main/java/com/qs/serve/common/framework/interceptor/LocalDateTimeFormatSerializer.java

@ -0,0 +1,31 @@
package com.qs.serve.common.framework.interceptor;
import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.ObjectSerializer;
import java.io.IOException;
import java.lang.reflect.Type;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
/**
* @author YenHex
* @since 2024/7/18
*/
public class LocalDateTimeFormatSerializer implements ObjectSerializer {
@Override
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
if (object == null) {
serializer.out.writeNull();
return;
}
LocalDateTime date = (LocalDateTime) object;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String timeString = formatter.format(date);
serializer.write(timeString);
}
}

6
src/main/java/com/qs/serve/common/util/BirHttpUtil.java

@ -2,6 +2,7 @@ package com.qs.serve.common.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.qs.serve.common.config.properties.ProjectProperties;
import com.qs.serve.common.model.consts.GySysConst;
import com.qs.serve.common.model.dto.R;
@ -22,6 +23,8 @@ import org.apache.http.util.EntityUtils;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
@ -53,7 +56,7 @@ public class BirHttpUtil {
public static R get(String action,Object query){
String baseUrl = getBaseUrl();
String url = baseUrl+"/"+action;
String url = "/"+action;
if(query!=null){
Map map = JsonUtil.objectToMap(query);
String params = HttpUtil.createUrl(map);
@ -79,6 +82,7 @@ public class BirHttpUtil {
if(PageUtil.getPageNum()!=null){
url += "&pageNum="+PageUtil.getPageNum();
}
url = baseUrl + url;
url = url.replace("//","/");
url = url.replace("http:/","http://");
url = url.replace("https:/","https://");

10
src/main/java/com/qs/serve/common/util/HttpUtil.java

@ -20,6 +20,8 @@ import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
@ -120,7 +122,13 @@ public class HttpUtil {
public static String createUrl(Map<String,Object> param){
StringBuilder sb = new StringBuilder();
for (String key : param.keySet()) {
sb.append("&").append(key).append("=").append(param.get(key));
String par = param.get(key).toString();
try {
par = URLEncoder.encode(par,"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
sb.append("&").append(key).append("=").append(par);
}
return sb.toString();
}

12
src/main/java/com/qs/serve/common/util/JsonUtil.java

@ -2,14 +2,19 @@ package com.qs.serve.common.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.MapperFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.qs.serve.common.framework.interceptor.LocalDateTimeFormatSerializer;
import lombok.experimental.UtilityClass;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -85,7 +90,12 @@ public class JsonUtil {
}
public static Map<String,Object> objectToMap(Object object){
Map<String,Object> map = JSONObject.parseObject(JSON.toJSONString(object));
// 创建SerializeConfig对象,并设置日期时间的格式
SerializeConfig config = new SerializeConfig();
LocalDateTimeFormatSerializer dateFormatSerializer = new LocalDateTimeFormatSerializer();
config.put(LocalDateTime.class, dateFormatSerializer);
String jsonString = JSON.toJSONString(object, config);
Map<String,Object> map = JSONObject.parseObject(jsonString);
return map;
}

4
src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java

@ -91,9 +91,9 @@ public class BirActivityCenterGoodsController {
@GetMapping("/toSyncBirToday")
public R<?> toSyncBirEcro2(){
Long[] ids = new Long[]{};
//Long[] ids = new Long[]{};
//List<Long> ids = tbsActivityMapper.selectReleaseCostIds();
//Set<Long> ids = tbsActivityCenterGoodsMapper.selectUpdateCostApplyIds();
Set<Long> ids = tbsActivityCenterGoodsMapper.selectUpdateCostApplyIds();
List<Long> errIds = new ArrayList<>();
for (Long id : ids) {
log.error("执行ID XXXX:{}",id);

38
src/main/java/com/qs/serve/modules/exl/controller/ExlTableDataController.java

@ -359,28 +359,30 @@ public class ExlTableDataController {
//移除旧历史
if(executeFlag){
if(keyCount>0){
StringBuilder removeSql = new StringBuilder("delete from "+targetTableName+" where union_row_id in (");
for (int k = 0;k < param.size(); k++) {
Object obj = param.get(k);
JSONObject jsonObject = JSONObject.parseObject(JsonUtil.objectToJson(obj));
String unionId = TableCreateSqlUtil.buildUnionId(columnList,jsonObject);
removeSql.append("'"+unionId+"'");
if(k+1<param.size()){
removeSql.append(",");
}
}
removeSql.append(");");
QsSqlSessionUtil.executeSql(removeSql.toString(),sqlSessionTemplate);
}
// if(keyCount>0){
// StringBuilder removeSql = new StringBuilder("delete from "+targetTableName+" where union_row_id in (");
// for (int k = 0;k < param.size(); k++) {
// Object obj = param.get(k);
// JSONObject jsonObject = JSONObject.parseObject(JsonUtil.objectToJson(obj));
// String unionId = TableCreateSqlUtil.buildUnionId(columnList,jsonObject);
// removeSql.append("'"+unionId+"'");
// if(k+1<param.size()){
// removeSql.append(",");
// }
// }
// removeSql.append(");");
// QsSqlSessionUtil.executeSql(removeSql.toString(),sqlSessionTemplate);
// }
StringBuilder removeSql = new StringBuilder("delete from "+targetTableName+" where union_row_id is not null ");
QsSqlSessionUtil.executeSql(removeSql.toString(),sqlSessionTemplate);
//执行批量保存
QsSqlSessionUtil.executeSql(insertSql.toString(),sqlSessionTemplate);
return R.ok();
}
Map<String,Object> objectMap = new HashMap<>();
objectMap.put("columnList",columnList);
objectMap.put("data",errorResult);
return R.error("数据异常",objectMap);
// Map<String,Object> objectMap = new HashMap<>();
// objectMap.put("columnList",columnList);
// objectMap.put("data",errorResult);
return R.ok(errorResult,"数据异常");
}
private void appendErrorMsg(String ErrMsgKey, JSONObject jsonObject, ExlColumnConf columnConf) {

10
src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityCenterGoodsMapper.java

@ -18,11 +18,11 @@ import java.util.Set;
public interface TbsActivityCenterGoodsMapper extends BaseMapper<TbsActivityCenterGoods> {
@InterceptorIgnore(tenantLine = "1")
@Select("SELECT cost_apply_id FROM tbs_activity_center_goods \n" +
"left join tbs_cost_apply on tbs_activity_center_goods.cost_apply_id = tbs_cost_apply.id\n" +
"where tbs_cost_apply.del_flag = 0 and tbs_activity_center_goods.del_flag = 0\n" +
"and DATE(tbs_activity_center_goods.update_time) = DATE(CURDATE())\n" +
"GROUP BY cost_apply_id")
@Select("SELECT cost_apply_id FROM tbs_activity_center_goods " +
" left join tbs_cost_apply on tbs_activity_center_goods.cost_apply_id = tbs_cost_apply.id " +
" where tbs_cost_apply.del_flag = 0 and tbs_activity_center_goods.del_flag = 0 " +
" and DATE(tbs_activity_center_goods.update_time) = DATE(CURDATE()) " +
" GROUP BY cost_apply_id")
Set<Long> selectUpdateCostApplyIds();
@Select("<script>"+

Loading…
Cancel
Save