forked from I3-YF/i3plus-mes-yfai
Merge remote-tracking branch 'origin/dev' into dev
commit
85bed73d4e
@ -0,0 +1,13 @@
|
||||
package cn.estsh.i3plus.ext.mes.api.base;
|
||||
|
||||
import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper;
|
||||
|
||||
/**
|
||||
* @Description : 接口数据映射
|
||||
* @Reference :
|
||||
* @Author : junsheng.li
|
||||
* @CreateDate 2024/8/22 9:59
|
||||
* @Modify:
|
||||
**/
|
||||
public interface IMesInterfaceDataMapperService extends IBaseMesService<MesInterfaceDataMapper> {
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package cn.estsh.i3plus.ext.mes.api.base;
|
||||
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesScriptPersistence;
|
||||
|
||||
/**
|
||||
* @Description : 动态脚本
|
||||
* @Reference :
|
||||
* @Author : junsheng.li
|
||||
* @CreateDate 2024/8/22 11:03
|
||||
* @Modify:
|
||||
**/
|
||||
public interface IMesScriptPersistenceService extends IBaseMesService<MesScriptPersistence> {
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
import cn.estsh.i3plus.platform.common.tool.TimeTool
|
||||
import cn.estsh.i3plus.platform.plugin.datasource.DynamicDataSourceProxy
|
||||
import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper
|
||||
import lombok.Getter
|
||||
import lombok.Setter
|
||||
import org.springframework.util.StringUtils
|
||||
|
||||
import javax.annotation.Resource
|
||||
import java.sql.Connection
|
||||
|
||||
/**
|
||||
* @Description :MES2PISCES-更新同步标识
|
||||
* @Reference :
|
||||
* @Author : junsheng.li
|
||||
* @CreateDate 2024/8/5 20:19
|
||||
* @Modify:
|
||||
* */
|
||||
class MesUpdateSrcData {
|
||||
|
||||
@Resource(name = "mesDataSource")
|
||||
private DynamicDataSourceProxy mesDataSource;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private Connection mesConn;
|
||||
|
||||
def saveSrcData(MesInterfaceDataMapper mapper, List<Map<String, Object>> srcData) throws Exception {
|
||||
if (srcData == null || srcData.size() == 0 || StringUtils.isEmpty(mapper.getSrcTableName())) {
|
||||
return srcData
|
||||
}
|
||||
List<String> idList = new ArrayList<>();
|
||||
for (Map<String, Object> data : srcData) {
|
||||
idList.add(data.get("id").toString());
|
||||
}
|
||||
|
||||
//更新同步标识
|
||||
List<String> updateList = new ArrayList<>();
|
||||
updateList.add("update " + mapper.getSrcTableName() + " set system_sync_date_time='" + TimeTool.getNowTime(true) + "',system_sync_status='1' where id in (" + String.join(",", idList) + ") ;");
|
||||
this.mesConn = mesDataSource.getWriteConnectionWithoutPool();
|
||||
mesDataSource.executeAsBatch(updateList, mesConn)
|
||||
mesDataSource.closeConnectionWithoutPoll(this.mesConn)
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package cn.estsh.i3plus.ext.mes.apiservice.controller.base;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
|
||||
import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* @Description : 接口数据映射
|
||||
* @Reference :
|
||||
* @Author : junsheng.li
|
||||
* @CreateDate 2024/8/22 9:57
|
||||
* @Modify:
|
||||
**/
|
||||
@Api(description = "接口数据映射")
|
||||
@RestController
|
||||
@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesInterfaceDataMapper")
|
||||
public class MesInterfaceDataMapperController extends BaseMesController<MesInterfaceDataMapper> {
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package cn.estsh.i3plus.ext.mes.apiservice.controller.base;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.api.base.IMesProductionRecordService;
|
||||
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
|
||||
import cn.estsh.i3plus.pojo.base.common.Pager;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord;
|
||||
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
|
||||
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
|
||||
import cn.estsh.impp.framework.boot.util.ResultBean;
|
||||
import cn.estsh.impp.framework.boot.util.ValidatorBean;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* @Description : 设备加工记录表
|
||||
* @Reference :
|
||||
* @Author : gsz
|
||||
* @CreateDate 2024/8/10 10:50
|
||||
* @Modify:
|
||||
**/
|
||||
@Api("设备加工记录")
|
||||
@RestController
|
||||
@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesProductionRecord")
|
||||
public class MesProductionRecordController extends BaseMesController<MesProductionRecord>{
|
||||
@Autowired
|
||||
private IMesProductionRecordService mesProductionRecordService;
|
||||
|
||||
@GetMapping(value = "/group-by-part-cell/query")
|
||||
@ApiOperation(value = "设备加工记录", notes = "设备加工记录")
|
||||
public ResultBean queryProductionRecordGroupByPartNoWorkCellCode(MesProductionRecord mesProductionRecord, Pager pager) {
|
||||
try {
|
||||
ValidatorBean.beginValid(mesProductionRecord)
|
||||
.notNull("organizeCode", mesProductionRecord.getOrganizeCode());
|
||||
|
||||
return ResultBean.success("查询成功").setListPager(mesProductionRecordService.queryRecordGroupByPartNoWorkCellCode(mesProductionRecord, pager))
|
||||
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
|
||||
} catch (ImppBusiException busExcep) {
|
||||
return ResultBean.fail(busExcep);
|
||||
} catch (Exception e) {
|
||||
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package cn.estsh.i3plus.ext.mes.apiservice.controller.base;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesScriptPersistence;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* @Description : 动态脚本
|
||||
* @Reference :
|
||||
* @Author : junsheng.li
|
||||
* @CreateDate 2024/8/22 9:57
|
||||
* @Modify:
|
||||
**/
|
||||
@Api(description = "动态脚本")
|
||||
@RestController
|
||||
@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesScriptPersistence")
|
||||
public class MesScriptPersistenceController extends BaseMesController<MesScriptPersistence> {
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.api.base.IMesInterfaceDataMapperService;
|
||||
import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException;
|
||||
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
|
||||
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
|
||||
import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper;
|
||||
import cn.estsh.impp.framework.boot.util.ValidatorBean;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @Description : 接口数据映射
|
||||
* @Reference :
|
||||
* @Author : junsheng.li
|
||||
* @CreateDate 2024/8/22 10:04
|
||||
* @Modify:
|
||||
**/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class MesInterfaceDataMapperServiceImpl extends BaseMesService<MesInterfaceDataMapper> implements IMesInterfaceDataMapperService {
|
||||
|
||||
@Override
|
||||
protected void onInsertBean(MesInterfaceDataMapper item) {
|
||||
// 数据校验
|
||||
ValidatorBean.checkNotNull(item.getSrcTableName(), "来源表名不能为空");
|
||||
ValidatorBean.checkNotNull(item.getSrcWhere(), "来源表的查询条件不能为空");
|
||||
ValidatorBean.checkNotNull(item.getDestBeanName(), "目标实体对象的名字不能为空");
|
||||
|
||||
DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
|
||||
DdlPreparedPack.getStringEqualPack(item.getSrcTableName(), "srcTableName", seriesPackBean);
|
||||
DdlPreparedPack.getStringEqualPack(item.getSrcWhere(), "srcWhere", seriesPackBean);
|
||||
DdlPreparedPack.getStringEqualPack(item.getDestBeanName(), "destBeanName", seriesPackBean);
|
||||
if (baseRDao.isExitByHql(seriesPackBean)) {
|
||||
MesException.throwMesBusiException("来源表名为【%s】、查询条件为【%s】、目标实体对象为【%s】接口映射信息已存在",
|
||||
item.getSrcTableName(), item.getSrcWhere(), item.getDestBeanName());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onUpdateBean(MesInterfaceDataMapper item) {
|
||||
// 数据校验
|
||||
ValidatorBean.checkNotNull(item.getSrcTableName(), "来源表名不能为空");
|
||||
ValidatorBean.checkNotNull(item.getSrcWhere(), "来源表的查询条件不能为空");
|
||||
ValidatorBean.checkNotNull(item.getDestBeanName(), "目标实体对象的名字不能为空");
|
||||
|
||||
DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
|
||||
DdlPreparedPack.getStringEqualPack(item.getSrcTableName(), "srcTableName", seriesPackBean);
|
||||
DdlPreparedPack.getStringEqualPack(item.getSrcWhere(), "srcWhere", seriesPackBean);
|
||||
DdlPreparedPack.getStringEqualPack(item.getDestBeanName(), "destBeanName", seriesPackBean);
|
||||
DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", seriesPackBean);
|
||||
if (baseRDao.isExitByHql(seriesPackBean)) {
|
||||
MesException.throwMesBusiException("来源表名为【%s】、查询条件为【%s】、目标实体对象为【%s】接口映射信息已存在",
|
||||
item.getSrcTableName(), item.getSrcWhere(), item.getDestBeanName());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setPackQueryBean(MesInterfaceDataMapper bean, DdlPackBean packBean) {
|
||||
DdlPreparedPack.getStringLikerPack(bean.getSrcTableName(), "srcTableName", packBean);
|
||||
DdlPreparedPack.getStringLikerPack(bean.getDestBeanName(), "destBeanName", packBean);
|
||||
DdlPreparedPack.getStringLikerPack(bean.getBusiRoute(), "busiRoute", packBean);
|
||||
DdlPreparedPack.getStringLikerPack(bean.getGroupName(), "groupName", packBean);
|
||||
DdlPreparedPack.getStringLikerPack(bean.getInterfaceName(), "interfaceName", packBean);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,58 @@
|
||||
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.api.base.IMesScriptPersistenceService;
|
||||
import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException;
|
||||
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
|
||||
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesScriptPersistence;
|
||||
import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper;
|
||||
import cn.estsh.impp.framework.boot.util.ValidatorBean;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @Description : 动态脚本
|
||||
* @Reference :
|
||||
* @Author : junsheng.li
|
||||
* @CreateDate 2024/8/22 10:04
|
||||
* @Modify:
|
||||
**/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class MesScriptPersistenceServiceImpl extends BaseMesService<MesScriptPersistence> implements IMesScriptPersistenceService {
|
||||
|
||||
@Override
|
||||
protected void onInsertBean(MesScriptPersistence item) {
|
||||
// 数据校验
|
||||
ValidatorBean.checkNotNull(item.getScriptNo(), "脚本编号不能为空");
|
||||
|
||||
DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
|
||||
DdlPreparedPack.getStringEqualPack(item.getScriptNo(), "scriptNo", seriesPackBean);
|
||||
if (baseRDao.isExitByHql(seriesPackBean)) {
|
||||
MesException.throwMesBusiException("脚本编号【%s】已存在", item.getScriptNo());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onUpdateBean(MesScriptPersistence item) {
|
||||
// 数据校验
|
||||
ValidatorBean.checkNotNull(item.getScriptNo(), "脚本编号不能为空");
|
||||
|
||||
DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
|
||||
DdlPreparedPack.getStringEqualPack(item.getScriptNo(), "scriptNo", seriesPackBean);
|
||||
DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", seriesPackBean);
|
||||
if (baseRDao.isExitByHql(seriesPackBean)) {
|
||||
MesException.throwMesBusiException("脚本编号【%s】已存在", item.getScriptNo());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setPackQueryBean(MesScriptPersistence bean, DdlPackBean packBean) {
|
||||
DdlPreparedPack.getStringLikerPack(bean.getScriptNo(), "scriptNo", packBean);
|
||||
DdlPreparedPack.getStringRightLikerPack(bean.getScriptName(), "scriptName", packBean);
|
||||
DdlPreparedPack.getNumEqualPack(bean.getScriptType(), "scriptType", packBean);
|
||||
DdlPreparedPack.getNumEqualPack(bean.getLanguageType(), "languageType", packBean);
|
||||
}
|
||||
|
||||
}
|
@ -1,29 +1,48 @@
|
||||
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.report;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.api.base.IMesConfigService;
|
||||
import cn.estsh.i3plus.ext.mes.api.busi.report.IMesEquipmentLogDetailService;
|
||||
import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.BaseMesService;
|
||||
import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException;
|
||||
import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords;
|
||||
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
|
||||
import cn.estsh.i3plus.pojo.base.bean.ListPager;
|
||||
import cn.estsh.i3plus.pojo.base.common.Pager;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentLogDetail;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.StringJoiner;
|
||||
|
||||
@Service
|
||||
public class MesEquipmentLogDetailService extends BaseMesService<MesEquipmentLogDetail> implements IMesEquipmentLogDetailService {
|
||||
|
||||
@Autowired
|
||||
private IMesConfigService configService;
|
||||
|
||||
@Override
|
||||
protected void setPackQueryBean(MesEquipmentLogDetail bean, DdlPackBean packBean) {
|
||||
DdlPreparedPack.getStringEqualPack(new StringJoiner(MesExtConstWords.E_UNDERLINE).add(bean.getOrganizeCode()).add(bean.getEquipId().toString()).toString(), MesExtConstWords.ORG_EQUIP_ID, packBean);
|
||||
DdlPreparedPack.getNumEqualPack(bean.getEquipId(), MesExtConstWords.EQUIP_ID, packBean);
|
||||
// DdlPreparedPack.getNumEqualPack(bean.getEquipId(), MesExtConstWords.EQUIP_ID, packBean);
|
||||
DdlPreparedPack.getNumEqualPack(bean.getVariableType(), MesExtConstWords.VARIABLE_TYPE, packBean);
|
||||
DdlPreparedPack.getNumEqualPack(bean.getEquipVariableId(), MesExtConstWords.EQUIP_VARIABLE_ID, packBean);
|
||||
DdlPreparedPack.getStringEqualPack(bean.getEquipmentCode(), MesExtConstWords.EQUIPMENT_CODE, packBean);
|
||||
// DdlPreparedPack.getStringEqualPack(bean.getEquipmentCode(), MesExtConstWords.EQUIPMENT_CODE, packBean);
|
||||
DdlPreparedPack.getStringLikerPack(bean.getEquipVariableName(), MesExtConstWords.EQUIP_VARIABLE_NAME, packBean);
|
||||
DdlPreparedPack.timeBuilder(bean.getCreateDateTimeStart(), bean.getCreateDateTimeEnd(), MesExtConstWords.CREATE_DATE_TIME, packBean, true);
|
||||
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{MesExtConstWords.CREATE_DATE_TIME}, packBean);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ListPager<MesEquipmentLogDetail> queryPager(MesEquipmentLogDetail bean, Pager pager) {
|
||||
if (StringUtils.isEmpty(bean.getEquipId())) MesException.throwBusiException("查询条件的参数缺失设备ID[equipId]");
|
||||
String orgEquipId = new StringJoiner(MesExtConstWords.E_UNDERLINE).add(bean.getOrganizeCode()).add(bean.getEquipId().toString()).toString();
|
||||
if (!configService.checkShardingTablesObjectCfg(bean.getOrganizeCode(), MesEquipmentLogDetail.class.getSimpleName(), orgEquipId))
|
||||
return new ListPager<>(new ArrayList<>(), pager);
|
||||
return super.queryPager(bean, pager);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,75 @@
|
||||
package cn.estsh.i3plus.ext.mes.apiservice.utils;
|
||||
|
||||
import org.apache.commons.beanutils.BeanUtils;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.apache.commons.lang3.exception.ExceptionUtils;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
* Map转Object 工具类
|
||||
*/
|
||||
public class BeanUtil {
|
||||
|
||||
public static Object populateBean(Map<String, ? extends Object> map, Class<? extends Object> clazz) throws Exception {
|
||||
Object obj = clazz.newInstance();
|
||||
BeanUtils.populate(obj, map);
|
||||
return obj;
|
||||
}
|
||||
|
||||
public static List<Object> popListToList(Object object, List<Map<String, Object>> list) throws Exception {
|
||||
|
||||
List<Object> listRetun = new ArrayList<Object>();
|
||||
for (Map<String, Object> map : list) {
|
||||
listRetun.add(BeanUtil.populateBean(map, object.getClass()));
|
||||
}
|
||||
return listRetun;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取对象父类和字类所有的数据库字段
|
||||
*
|
||||
* @param c 对象类
|
||||
* @return 属性名数组
|
||||
*/
|
||||
public static String[] getAllColumnFields(Class c) {
|
||||
//父子类属性合并
|
||||
Field[] fields = ArrayUtils.addAll(c.getFields(), c.getDeclaredFields());
|
||||
//循环所有属性把名称存入数组
|
||||
List<String> fieldsNameList = new ArrayList<>();
|
||||
for (Field field : fields) {
|
||||
field.setAccessible(true);
|
||||
// 判断是否为数据库字段
|
||||
if (field.isAnnotationPresent(Column.class)) {
|
||||
fieldsNameList.add(field.getName());
|
||||
}
|
||||
}
|
||||
return fieldsNameList.toArray(new String[fieldsNameList.size()]);
|
||||
}
|
||||
|
||||
public static String getProperty(Object bean, String name) {
|
||||
String proVal = null;
|
||||
try {
|
||||
proVal = BeanUtils.getProperty(bean, name);
|
||||
} catch (Exception e) {
|
||||
MesException.throwMesBusiException("反射获取对象【" + bean.getClass().getName() + "】属性【" + name +
|
||||
"】值时异常:详情如下" + ExceptionUtils.getStackTrace(e));
|
||||
}
|
||||
return proVal;
|
||||
}
|
||||
|
||||
public static void setProperty(Object bean, String name, Object values) {
|
||||
try {
|
||||
BeanUtils.setProperty(bean, name, values);
|
||||
} catch (Exception e) {
|
||||
MesException.throwMesBusiException("反射设置对象【" + bean.getClass().getName() + "】属性【" + name +
|
||||
"】值时异常:详情如下" + ExceptionUtils.getStackTrace(e));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue