package com.itstyle.mdm.service.impl;
|
|
|
import com.alibaba.druid.util.StringUtils;
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
import com.itstyle.mdm.entity.InterfaceLogData;
|
import com.itstyle.quartz.dynamicquery.DynamicQuery;
|
import com.itstyle.mdm.entity.MdmData;
|
import com.itstyle.quartz.entity.SysConfigEntity;
|
import com.itstyle.mdm.service.MdmService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.Date;
|
import java.util.List;
|
import java.util.UUID;
|
|
/**
|
* MDM数据处理层实现
|
*/
|
@Service()
|
@Transactional(readOnly = true)
|
public class MdmServiceImpl implements MdmService {
|
|
@Autowired
|
private DynamicQuery dynamicQuery;
|
|
@Override
|
@Transactional
|
public JSONArray saveMdmData(JSONArray recordArray,String name) {
|
JSONArray newJsonArray = new JSONArray();
|
int size = recordArray.size();
|
Object[] params = new Object[]{};
|
MdmData mdmData = null;
|
if(size != 0){
|
for (int i = 0; i < size; i++) {
|
String json = recordArray.get(i).toString();
|
JSONObject jsonObj = JSON.parseObject(json);
|
String id = jsonObj.getString("tgctwoclasscode");
|
String tgcoriginalcode = jsonObj.getString("tgcoriginalcode");
|
String updatedat = jsonObj.getString("updatedat");
|
String updatetime = jsonObj.getString("updatetime");
|
mdmData = new MdmData();
|
mdmData.setType(name);
|
mdmData.setId(id);
|
mdmData.setTgcoriginalCode(tgcoriginalcode);
|
mdmData.setUpdatedat(updatedat);
|
mdmData.setUpdatetime(updatetime);
|
String countSql = "SELECT mdm.uuid,mdm.id,mdm.tgcoriginalCode,mdm.updatedat,mdm.updatetime FROM mdm_data AS mdm where mdm.tgcoriginalCode='"+tgcoriginalcode+"' ";
|
List<MdmData> list = dynamicQuery.nativeQueryList(MdmData.class,countSql,params);
|
if(list.size()>0){
|
//说明存在数据
|
for (MdmData mdm : list) {
|
String updatetime1 = mdm.getUpdatetime();
|
if(updatetime1.equals(updatetime)){
|
//数据无变化
|
continue;
|
}
|
jsonObj.put("renewstatus","update");
|
//wms需求:过滤件装规格为空的数据
|
if(!StringUtils.isEmpty(jsonObj.getString("specification"))){
|
newJsonArray.add(jsonObj);
|
}
|
//数据存在变化
|
dynamicQuery.update(mdm);//更新数据
|
}
|
}else {
|
jsonObj.put("renewstatus","new");
|
//wms需求:过滤件装规格为空的数据
|
if(!StringUtils.isEmpty(jsonObj.getString("specification"))){
|
newJsonArray.add(jsonObj);
|
}
|
//说明该数据为新数据
|
mdmData.setUuid(UUID.randomUUID().toString());
|
dynamicQuery.save(mdmData);
|
}
|
}
|
}
|
return newJsonArray;
|
}
|
|
@Override
|
@Transactional
|
public JSONArray saveMdmUnitData(JSONArray recordArray, String name) {
|
JSONArray newJsonArray = new JSONArray();
|
int size = recordArray.size();
|
Object[] params = new Object[]{};
|
MdmData mdmData = null;
|
if(size != 0){
|
for (int i = 0; i < size; i++) {
|
String json = recordArray.get(i).toString();
|
JSONObject jsonObj = JSON.parseObject(json);
|
String id = jsonObj.getString("code");
|
String tgcoriginalcode = jsonObj.getString("originalcode");
|
//String updatedat = jsonObj.getString("updatedat");
|
String updatetime = jsonObj.getString("updatetime");
|
mdmData = new MdmData();
|
mdmData.setType(name);
|
mdmData.setId(id);
|
mdmData.setTgcoriginalCode(tgcoriginalcode);
|
mdmData.setUpdatedat("");
|
mdmData.setUpdatetime(updatetime);
|
String countSql = "SELECT mdm.uuid,mdm.id,mdm.tgcoriginalCode,mdm.updatedat,mdm.updatetime FROM mdm_data AS mdm where mdm.tgcoriginalCode='"+tgcoriginalcode+"' ";
|
List<MdmData> list = dynamicQuery.nativeQueryList(MdmData.class,countSql,params);
|
if(list.size()>0){
|
//说明存在数据
|
for (MdmData mdm : list) {
|
String updatetime1 = mdm.getUpdatetime();
|
if(updatetime1.equals(updatetime)){
|
//数据无变化
|
continue;
|
}
|
jsonObj.put("renewstatus","update");
|
newJsonArray.add(jsonObj);
|
//数据存在变化
|
dynamicQuery.update(mdm);//更新数据
|
}
|
}else {
|
jsonObj.put("renewstatus","new");
|
newJsonArray.add(jsonObj);
|
//说明该数据为新数据
|
mdmData.setUuid(UUID.randomUUID().toString());
|
dynamicQuery.save(mdmData);
|
}
|
}
|
}
|
return newJsonArray;
|
}
|
|
@Override
|
public List<SysConfigEntity> querySysConfigs(String interfaceName) {
|
Object[] params = new Object[]{interfaceName};
|
String countSql = "select id,ADDRESS as address,DESCRIPTION as description,cronExpression,isEnable,sysName,association from sys_config where isEnable='启用' and association=?";
|
List<SysConfigEntity> list = dynamicQuery.nativeQueryList(SysConfigEntity.class,countSql,params);
|
return list;
|
}
|
|
@Override
|
@Transactional
|
public int saveInterfaceLog(String uuid,String interfaceName, String url, String param, String result) {
|
InterfaceLogData interfaceLogData = new InterfaceLogData();
|
interfaceLogData.setUuid(uuid);
|
interfaceLogData.setInterfaceName(interfaceName);
|
interfaceLogData.setCreateTime(new Date());
|
interfaceLogData.setPrams(param);
|
interfaceLogData.setResult(result);
|
interfaceLogData.setUrl(url);
|
try{
|
dynamicQuery.save(interfaceLogData);
|
return 1;
|
}catch (Exception e){
|
e.printStackTrace();
|
return 0;
|
}
|
}
|
}
|