基础属性新增

tags/yfai-mes-ext-v1.0
zhang.xw 1 year ago
parent aa619aa98c
commit f73f5e4b11

@ -8,13 +8,26 @@
<dependency>
<groupId>impp.framework</groupId>
<artifactId>impp-framework-boot</artifactId>
<exclusions>
<exclusion>
<artifactId>i3plus-platform-common</artifactId>
<groupId>i3plus.platform</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>i3plus.pojo</groupId>
<artifactId>i3plus-pojo-mes</artifactId>
<version>1.0.0-yfai</version>
</dependency>
<dependency>
<groupId>i3plus.platform</groupId>
<artifactId>i3plus-platform-common</artifactId>
<version>1.0.0.1-patch</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>i3plus.ext.mes</groupId>
<artifactId>i3plus-ext-mes-pojo</artifactId>

@ -0,0 +1,63 @@
package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
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 io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* @Description:
* @CreateDate 2021/10/20 10:27
* @Author
*/
public interface IBaseMesService<T extends BaseBean> {
/**
* Class
*
* @return
*/
Class<T> getMesClass();
@ApiOperation(value = "查询列表", notes = "组合查询,外带分页功能")
ListPager<T> queryPager(T bean, Pager pager);
@ApiOperation(value = "查询列表", notes = "组合查询,外带分页功能")
ListPager<T> queryPagerWhere(Pager pager, DdlPackBean packBean);
@ApiOperation(value = "查询列表", notes = "查询所有数据")
List<T> findAll(DdlPackBean packBean);
@ApiOperation(value = "查询数据", notes = "根据ID查询信息")
T get(Long id);
@ApiOperation(value = "新增信息", notes = "新增信息")
T insert(T bean);
@ApiOperation(value = "批量新增数据", notes = "批量新增数据")
List<T> insertBatch(List<T> bean);
@ApiOperation(value = "修改信息", notes = "修改信息")
T update(T bean);
@ApiOperation(value = "批量修改信息", notes = "批量修改信息")
void updates(Iterable<T> beans);
@ApiOperation(value = "删除数据", notes = "根据ID软删除信息")
void deleteWeaklyById(Long id, String userName);
@ApiOperation(value = "删除数据", notes = "根据ID批量删除信息")
void deleteWeaklyByIds(Long[] ids, String userName);
@ApiOperation(value = "强删除数据", notes = "根据ID强删除")
void deleteById(Long id);
@ApiOperation(value = "强删除数据", notes = "根据ID批量强删除")
void deleteByIds(Long[] ids);
@ApiOperation(value = "根据id更新启用或禁用", notes = "根据id更新启用或禁用")
int updateValid(Long id, int status, String userName);
}

@ -73,11 +73,14 @@
<dependency>
<groupId>i3plus.platform</groupId>
<artifactId>i3plus-platform-common</artifactId>
<version>1.0.0.1-patch</version>
</dependency>
<dependency>
<groupId>i3plus.platform</groupId>
<artifactId>i3plus-platform-plugin</artifactId>
<version>1.0.0.1-patch</version>
</dependency>
</dependencies>

@ -0,0 +1,23 @@
package cn.estsh.i3plus.ext.mes.apiservice.config;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
/**
* @Description:
* @CreateDate: 2022/11/25 13:46
* @Author: simon.song
*/
public class AuthUtilExt {
public static String getOrganizeCode() {
return AuthUtil.getOrganize().getOrganizeCode();
// return "22060";
}
public static String getUserCode() {
return AuthUtil.getSessionUser().getUserCode();
}
public static String getUserName() {
return AuthUtil.getSessionUser().getUserName();
}
}

@ -0,0 +1,483 @@
package cn.estsh.i3plus.ext.mes.apiservice.controller.base;
import cn.estsh.i3plus.ext.mes.api.base.IBaseMesService;
import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt;
import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.excel.MesExcelTool;
import cn.estsh.i3plus.icloud.core.sdk.ICoreMessageCloud;
import cn.estsh.i3plus.icloud.core.sdk.ICoreSysFileCloud;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.ExcelTool;
import cn.estsh.i3plus.platform.common.tool.FileTool;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.tool.ZipTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.bean.*;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysFile;
import cn.estsh.impp.framework.base.controller.BaseController;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.fileservice.ImppFileService;
import cn.estsh.impp.framework.boot.util.RedisCacheTool;
import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.persistence.EntityManager;
import java.io.File;
import java.io.FileInputStream;
import java.lang.reflect.ParameterizedType;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @Description :
* @Reference :
* @Author : yx
* @CreateDate : 2020-05-20 18:16
* @Modify:
**/
public abstract class BaseMesController<T extends BaseBean> extends BaseController {
/**
* Service
*/
@Autowired
protected IBaseMesService<T> baseService;
/**
* entityManager
*/
@Autowired
protected EntityManager entityManager;
/**
* fastDfs
*/
@Autowired
private ImppFileService fileService;
@Autowired
private ICoreSysFileCloud coreSysFileCloud;
@Autowired
private ICoreMessageCloud coreMessageCloud;
/**
* class
*/
protected final Class<T> mesClass;
public BaseMesController() {
// 通过反射获取泛型的真实类型
ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass();
mesClass = (Class<T>) pt.getActualTypeArguments()[0];
}
//初始化dao
public IBaseMesService<T> getBaseService() {
return baseService;
}
//插入时验证
public void validateInsert(T bean) throws NoSuchFieldException {
/* 新增数据校验 */
ValidatorBean.beginValid(bean);
}
//插入后执行
public void afterInsert(T t) {
//子类实现
}
//修改时验证
public void validateUpdate(T bean) throws NoSuchFieldException {
/* 修改数据检查 */
ValidatorBean.beginValid(bean).checkNotZero("id", bean.getId());
}
//修改时验证
private void validateUpdateValid(Long id) {
if (id == null) throw new ImppBusiException("请选择需要操作的数据");
}
//修改后执行
public void afterUpdate(T t) {
//子类实现
}
//导入时验证
public void validateImport(List<T> beanList) throws NoSuchFieldException {
/* 新增数据校验 */
ValidatorBean.beginValid(beanList);
}
//导入时验证
public void afterImport(List<T> beanList) throws NoSuchFieldException {
}
//查询后执行
public void afterGet(T t) {
//子类实现
}
//查询后执行
public void afterList(List<T> l) {
//子类实现
}
//查询所有时的默认条件
private DdlPackBean listAllPackBean = null;
public void setListAllPackBean(DdlPackBean packBean) {
this.listAllPackBean = packBean;
}
/**
* +
*
* @param bean
* @param pager
* @return
*/
@GetMapping(value = "/query")
@ApiOperation(value = "查询信息带分页", notes = "组合查询,外带分页功能")
public ResultBean<T> queryByPager(T bean, Pager pager) {
try {
bean.setOrganizeCode(AuthUtilExt.getOrganizeCode());
ListPager<T> listPager = getBaseService().queryPager(bean, pager);
return ResultBean.success("操作成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setListPager(listPager);
} catch (ImppBusiException e) {
return ResultBean.fail(e);
}
}
@GetMapping(value = "/list")
@ApiOperation(value = "查询所有信息", notes = "查询所有数据")
public ResultBean<T> list() {
try {
if (listAllPackBean == null) {
//默认查询所有
listAllPackBean = DdlPackBean.getDdlPackBean(AuthUtil.getOrganizeCode());
}
List<T> list = getBaseService().findAll(listAllPackBean);
afterList(list);
return ResultBean.success("操作成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultList(list);
} catch (ImppBusiException e) {
return ResultBean.fail(e);
}
}
@GetMapping(value = "/get/{id}")
@ApiOperation(value = "根据ID查询信息", notes = "根据ID查询信息")
public ResultBean<T> getById(@PathVariable("id") Long id) {
try {
// 参数校验
ValidatorBean.checkIsNumber(id, ImppExceptionEnum.PARAMETER_EXCEPTION.getDescription());
T t = (T) getBaseService().get(id);
afterGet(t);
return ResultBean.success("操作成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultObject(t);
} catch (ImppBusiException e) {
return ResultBean.fail(e);
}
}
@PostMapping(value = "/insert")
@ApiOperation(value = "新增信息")
public ResultBean<T> insert(@RequestBody T bean) {
try {
validateInsert(bean);
//新增初始化
bean.setOrganizeCode(AuthUtilExt.getOrganizeCode());
ConvertBean.serviceModelInitialize(bean, AuthUtil.getSessionUser().getUserName());
T t = (T) getBaseService().insert(bean);
afterInsert(t);
return ResultBean.success("操作成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultObject(t);
} catch (ImppBusiException e) {
return ResultBean.fail(e).build();
} catch (Exception e) {
return ResultBean.fail(e);
}
}
@PostMapping(value = "/update")
@ApiOperation(value = "修改信息", notes = "修改信息")
public ResultBean<T> update(@RequestBody T bean) {
try {
bean.setOrganizeCode(AuthUtilExt.getOrganizeCode());
validateUpdate(bean);
T t = getBaseService().update(bean);
afterUpdate(t);
return ResultBean.success("修改成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException e) {
return ResultBean.fail(e);
} catch (Exception e) {
return ResultBean.fail(e);
}
}
@PostMapping(value = "/update-list")
@ApiOperation(value = "批量修改信息", notes = "批量修改信息")
public ResultBean<T> updateList(List<T> beans) {
try {
String organizeCode = AuthUtilExt.getOrganizeCode();
for (T bean : beans) {
bean.setOrganizeCode(organizeCode);
validateUpdate(bean);
T t = getBaseService().update(bean);
afterUpdate(t);
}
return ResultBean.success("修改成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException e) {
return ResultBean.fail(e);
} catch (Exception e) {
return ResultBean.fail(e);
}
}
@DeleteMapping(value = "/delete-weakly-id")
@ApiOperation(value = "软删除信息")
public ResultBean<T> batchDeleteWeaklyByIds(@PathVariable("ids") Long id) {
try {
// 数据校验
ValidatorBean.checkNotNull(id, "请选择需要删除的信息");
getBaseService().deleteWeaklyById(id, AuthUtil.getSessionUser().getUserName());
return ResultBean.success("删除信息成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException e) {
return ResultBean.fail(e);
}
}
@DeleteMapping(value = "/delete-weakly")
@ApiOperation(value = "批量软删除信息")
public ResultBean<T> batchDeleteWeaklyByIds(@RequestBody Long[] ids) {
try {
// 数据校验
ValidatorBean.checkNotNull(ids, "请选择需要删除的信息");
getBaseService().deleteWeaklyByIds(ids, AuthUtil.getSessionUser().getUserName());
return ResultBean.success("批量删除信息成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException e) {
return ResultBean.fail(e);
}
}
@DeleteMapping(value = "/delete-id/{ids}")
@ApiOperation(value = "强删除信息")
public ResultBean<T> batchDeleteByIds(@PathVariable("ids") Long id) {
try {
// 数据校验
ValidatorBean.checkNotNull(id, "请选择需要删除的信息");
getBaseService().deleteById(id);
return ResultBean.success("删除信息成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException e) {
return ResultBean.fail(e);
}
}
@DeleteMapping(value = "/delete")
@ApiOperation(value = "批量强删除信息")
public ResultBean<T> batchDeleteByIds(@RequestBody Long[] ids) {
try {
// 数据校验
ValidatorBean.checkNotNull(ids, "请选择需要删除的信息");
getBaseService().deleteByIds(ids);
return ResultBean.success("批量删除信息成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException e) {
return ResultBean.fail(e);
}
}
@PostMapping(value = "/update-valid")
@ApiOperation(value = "根据id更新启用或禁用", notes = "根据id更新启用或禁用")
public ResultBean<T> updateValid(Long id, int status) {
try {
validateUpdateValid(id);
getBaseService().updateValid(id, status, AuthUtilExt.getUserName());
return ResultBean.success("修改状态成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException e) {
return ResultBean.fail(e);
} catch (Exception e) {
return ResultBean.fail(e);
}
}
/******************************************* 通用导入导出 *************************************/
@GetMapping(value = "/export")
@ApiOperation(value = "导出数据")
public ResultBean<T> exportExcel(T bean, String[] colName, int pageSize, boolean needSendMessage) {
ListPager<T> listPager;
List<SysFile> result = new ArrayList<>();
File zipFile = null;
File excelDir = null;
File excelFile;
ExcelTool excelTool;
try {
bean.setOrganizeCode(AuthUtilExt.getOrganizeCode());
Pager pager = new Pager(0);
// 判断是否超过excel最大导出数量设定值
int maxPageSize = RedisCacheTool.getSysConfigIntVal(PlatformConstWords.EXCEL_EXPORT_MAX_ROW, 20000);
if (pageSize == 0 || pageSize >= maxPageSize) {
pager.setPageSize(maxPageSize);
} else {
pager.setPageSize(pageSize);
}
// 数据校验
if (colName == null || colName.length == 0) {
Map<String, String> colMap = ExcelTool.getColName(mesClass);
colName = new String[colMap.size()];
int i = 0;
for (String key : colMap.keySet()) {
colName[i++] = key;
}
}
excelTool = new ExcelTool(entityManager, RedisCacheTool.getImppRedis());
excelDir = new File(System.getProperty("java.io.tmpdir") + File.separator + new Date().getTime());
excelDir.mkdir();
do {
listPager = baseService.queryPager(bean, pager);
pager = listPager.getObjectPager();
// 将excel导出至临时文件夹
excelFile = new File(MessageFormat.format("{0}{1}{2}{3}.xls", excelDir, File.separator, mesClass.getSimpleName(), pager.getCurrentPage()));
excelFile.createNewFile();
excelTool.exportData(excelFile, listPager.getObjectList(), mesClass, colName);
pager.setCurrentPage(pager.getCurrentPage() + 1);
} while (pager.getCurrentPage() <= pager.getTotalPages());
// 将所有excel文件打包上传
zipFile = ZipTool.zipFile(null, excelDir);
SysFile sysFile = fileService.upload(new FileInputStream(zipFile), zipFile.getName(),
StringTool.getStringFileSuffix(zipFile.getName(), true), CommonEnumUtil.SOFT_TYPE.MDM.getValue());
BaseResultBean<SysFile> baseResultBean = coreSysFileCloud.insertFile(sysFile);
if (!baseResultBean.isSuccess()) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MDM.getCode())
.setErrorCode(ImppExceptionEnum.CLOUD_CALL_EXCEPTION.getCode())
.setErrorDetail(baseResultBean.errorMsg)
.build();
} else {
sysFile = baseResultBean.getResultObject();
}
result.add(sysFile);
// 是否发送站内信
if (needSendMessage) {
coreMessageCloud.insertSysMessage(ExcelTool.sendStationLetter(result, getSessionUser().getUser().getId()));
}
return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result);
} catch (ImppBusiException e) {
return ResultBean.fail(e);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
} finally {
// 清理临时文件文件
if (zipFile != null) {
FileTool.deleteFile(zipFile.getPath());
}
if (excelDir != null) {
FileTool.deleteFile(excelDir.getPath());
}
}
}
@PostMapping(value = "/import")
@ApiOperation(value = "导入数据")
public ResultBean importExcel(@RequestParam("file") MultipartFile file) {
try {
MesExcelTool excelTool = new MesExcelTool(entityManager, RedisCacheTool.getImppRedis());
List<T> beanList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), mesClass);
// 校验导入数据
validateImport(beanList);
String userName = AuthUtil.getSessionUser().getUserName();
String organizeCode = AuthUtil.getOrganize().getOrganizeCode();
// 导入数据初始化
for (T bean : beanList) {
ConvertBean.serviceModelInitialize(bean, userName);
bean.setOrganizeCode(organizeCode);
}
baseService.insertBatch(beanList);
// 导入后
afterImport(beanList);
return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException e) {
return ResultBean.fail(e);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@GetMapping(value = "/down-template")
@ApiOperation(value = "下载导入模板")
public ResultBean downExcelTemplate() {
try {
ExcelTool excelTool = new ExcelTool(entityManager, RedisCacheTool.getImppRedis());
String importTemplateCode = mesClass.getSimpleName() + "ImportTemplate";
// 查询服务器中是否存在模板文件
SysFile sysFile = null;
BaseResultBean<SysFile> baseResultBean = coreSysFileCloud.getSysFileByFileCode(importTemplateCode);
if (!baseResultBean.isSuccess()) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MDM.getCode())
.setErrorCode(ImppExceptionEnum.CLOUD_CALL_EXCEPTION.getCode())
.setErrorDetail(baseResultBean.errorMsg)
.build();
} else {
sysFile = baseResultBean.getResultObject();
}
if (sysFile == null) {
ImppFile fastDFSFile = new ImppFile(mesClass.getSimpleName() + "ImportTemplate.xls",
excelTool.importTemplate(mesClass), ".xls");
sysFile = fileService.upload(fastDFSFile, CommonEnumUtil.SOFT_TYPE.MES.getValue());
sysFile.setFileCode(importTemplateCode);
baseResultBean = coreSysFileCloud.insertFile(sysFile);
if (!baseResultBean.isSuccess()) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.CLOUD_CALL_EXCEPTION.getCode())
.setErrorDetail(baseResultBean.errorMsg)
.build();
} else {
sysFile = baseResultBean.getResultObject();
}
}
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(sysFile);
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -1,4 +1,8 @@
package cn.estsh.i3plus.ext.mes.apiservice.controller.base;
public class TestBaseController {
import cn.estsh.i3plus.pojo.mes.bean.MesArea;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestBaseController extends BaseMesController<MesArea>{
}

@ -1,4 +1,10 @@
package cn.estsh.i3plus.ext.mes.apiservice.controller.busi;
public class TestBusiController {
import cn.estsh.i3plus.mes.apiservice.controller.CommonController;
import cn.estsh.impp.framework.base.controller.BaseCommonController;
import cn.estsh.impp.framework.base.controller.MesBaseController;
public class TestBusiController extends MesBaseController {
}

@ -0,0 +1,78 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.excel;
import cn.estsh.i3plus.mes.apiservice.util.DateUtil;
import cn.estsh.i3plus.platform.common.tool.ExcelTool;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.util.BaseRedis;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import javax.persistence.EntityManager;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @Description:
* @CreateDate 2022/6/27 17:28
* @Author
*/
public class MesExcelTool extends ExcelTool {
public MesExcelTool(EntityManager entityManager, BaseRedis redisRes) {
super(entityManager, redisRes);
}
@Override
protected Object getCellValue(Cell cell, Class cellClass) {
Object value = "";
if (cell == null) {
return null;
} else if (cell.getCellTypeEnum().equals(CellType.NUMERIC) && HSSFDateUtil.isCellDateFormatted(cell)) {
value = this.getDateCellValue(cell, cellClass);
return value;
} else {
cell.setCellType(CellType.STRING);
if ("null".equals(cell.getStringCellValue())) {
value = "";
} else if ((cellClass == Integer.class || cellClass == Long.class || cellClass == Double.class || cellClass == Float.class) && StringUtils.isBlank(cell.getStringCellValue())) {
value = null;
} else if (cellClass == String.class) {
value = cell.getStringCellValue();
} else if (cellClass == Integer.class) {
value = Integer.parseInt(cell.getStringCellValue());
} else if (cellClass == Long.class) {
value = Long.parseLong(cell.getStringCellValue());
} else if (cellClass == Double.class) {
value = Double.parseDouble(cell.getStringCellValue());
} else if (cellClass == Float.class) {
value = Float.parseFloat(cell.getStringCellValue());
}
return value;
}
}
Object getDateCellValue(Cell cell, Class cellClass) {
Object value = null;
if (cell.getCellTypeEnum().equals(CellType.NUMERIC) && HSSFDateUtil.isCellDateFormatted(cell)) {
if (cell.getCellStyle().getDataFormat() == HSSFDataFormat.getBuiltinFormat("h:mm:ss")) {
value = TimeTool.pareDateToString("HH:mm:ss", cell.getDateCellValue());
} else if (cell.getCellStyle().getDataFormat() == HSSFDataFormat.getBuiltinFormat("yyyy-MM-dd")) {
value = TimeTool.pareDateToString("yyyy-MM-dd", cell.getDateCellValue());
} else if (cell.getCellStyle().getDataFormat() == 58) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
double numericCellValue = cell.getNumericCellValue();
Date date = HSSFDateUtil.getJavaDate(numericCellValue);
value = sdf.format(date);
} else {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DateUtil.BASE_FORMAT);
double numericCellValue = cell.getNumericCellValue();
value = simpleDateFormat.format(HSSFDateUtil.getJavaDate(numericCellValue));
}
}
return value;
}
}

@ -0,0 +1,22 @@
#\u5B89\u9053\u62D3\u6570\u636E\u6E90
impp.yfas.datasource.isopen=true
#WMS\u6570\u636E\u6E90
impp.mes.datasource.isopen=true
#\u6570\u636E\u6E90\u7684\u522B\u540D
impp.mes.datasource.alias=mesDataSource
impp.mes.datasource.driver-class-name=com.mysql.jdbc.Driver
impp.mes.datasource.jdbc-url=jdbc:mysql://192.168.1.241:3306/impp_i3_mes_yf?autoReconnect=true&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true
#impp.mes.datasource.jdbc-url=jdbc:sqlserver://139.224.200.147:20037;DatabaseName=impp_i3_mes;
impp.mes.datasource.username=root
#impp.mes.datasource.password=Test123!
impp.mes.datasource.password=estsh123
#Admin123!
#\u6570\u636E\u6E90\u7684\u522B\u540D
impp.yfas.datasource.alias=yfasDataSource
impp.yfas.datasource.driver-class-name=com.mysql.jdbc.Driver
impp.yfas.datasource.jdbc-url=jdbc:mysql://192.168.1.241:3306/impp_i3_mes_yf?autoReconnect=true&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true
#impp.yfas.datasource.jdbc-url=jdbc:sqlserver://139.224.200.147:20037;DatabaseName=impp_i3_mes;
impp.yfas.datasource.username=root
impp.yfas.datasource.password=estsh123

@ -148,16 +148,7 @@ spring.data.mongodb.username=sa
spring.data.mongodb.password=i3plus
spring.data.mongodb.port=27017
################ \u4E3B\u6570\u636E\u6E90 ################
# mysql
impp.write.datasource.driver-class-name=com.mysql.jdbc.Driver
impp.write.datasource.jdbc-url=jdbc:mysql://192.168.1.241:3306/impp_i3_mes_pcn?autoReconnect=true&useSSL=false&characterEncoding=utf-8
impp.write.datasource.username=root
impp.write.datasource.password=estsh123
impp.read.datasource.type=com.zaxxer.hikari.HikariDataSource
impp.read.datasource.driver-class-name=com.mysql.jdbc.Driver
impp.read.datasource.jdbc-url=jdbc:mysql://192.168.1.241:3306/impp_i3_mes_pcn?autoReconnect=true&useSSL=false&characterEncoding=utf-8
impp.read.datasource.username=root
impp.read.datasource.password=estsh123
##############\u5B9A\u65F6\u4EFB\u52A1\u6301\u4E45\u5316##############
impp.schedule.open=false
impp.schedule.datasource.driver-class-name=com.mysql.jdbc.Driver
@ -214,44 +205,49 @@ slm.app.id=20190513
###################\uFFFD\uFFFD\u013F\uFFFD\uFFFD\uFFFD\u077F\uFFFD\u02B5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u00B7\uFFFD\uFFFD##################################################
project.entity.path=cn.estsh.i3plus.pojo
#impp.datasource.type=druidDataSource
#
##\u6700\u5927\u7EBF\u7A0B\u6570
#spring.datasource.maximum-pool-size=200
#
##\u6700\u5C0F\u8FDE\u63A5\u7EBF\u7A0B\u6570
#spring.datasource.min-idle=50
#
##\u521D\u59CB\u5316\u8FDE\u63A5\u6C60\u5927\u5C0F
#spring.datasource.initial-size=50
#
##\u63A2\u6D3B\u3001\u9A8C\u8BC1\u8FDE\u63A5\u6709\u6548\u6027\u7684\u67E5\u8BE2
#spring.datasource.validation-query=select 1
#
##\u914D\u7F6E\u83B7\u53D6\u8FDE\u63A5\u7B49\u5F85\u8D85\u65F6\u7684\u65F6\u95F4
#spring.datasource.max-wait=600000
#
##\u914D\u7F6E\u4E00\u4E2A\u94FE\u63A5\u5728\u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5C0F\u751F\u5B58\u65F6\u95F4
#spring.datasource.minEvictableIdleTimeMillis=600000
#
##\u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u8FDE\u63A5\u6C60\u4E2D\u6700\u5927\u7684\u751F\u5B58\u65F6\u95F4\uFF0C\u8D85\u8FC7\u6700\u5927\u751F\u5B58\u65F6\u95F4\u4F1A\u88AB\u79FB\u9664\uFF0C\u5355\u4F4D\u6BEB\u79D2
#spring.datasource.maxEvictableIdleTimeMillis=1800000
#
##\u914D\u7F6E\u95F4\u9694\u591A\u4E45\u83DC\u8FDB\u884C\u4E00\u6B21\u68C0\u6D4B\uFF0C\u68C0\u6D4B\u9700\u8981\u5173\u95ED\u7684\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u5355\u4F4D\u6BEB\u79D2\u3002\u592A\u957F\u53EF\u80FD\u5BFC\u81F4\u65E0\u6CD5\u53CA\u65F6\u68C0\u6D4B\u5230\u8FDE\u63A5\u4E2D\u65AD
#spring.datasource.timeBetweenEvictionRunsMillis=30000
#
##\u914D\u7F6E\u4ECE\u8FDE\u63A5\u6C60\u83B7\u53D6\u8FDE\u63A5\u65F6\uFF0C\u5F53\u8FDE\u63A5\u7A7A\u95F2\u65F6\u95F4\u5927\u4E8EtimeBetweenEvictionRunsMillis\u65F6\uFF0C\u662F\u5426\u68C0\u67E5\u94FE\u63A5\u6709\u6548\u6027\uFF0Ctrue\u6BCF\u6B21\u90FD\u68C0\u67E5\uFF0Cfalse\u4E0D\u68C0\u67E5
#spring.datasource.testWhileIdle=false
#
##\u914D\u7F6E\u4ECE\u8FDE\u63A5\u6C60\u83B7\u53D6\u8FDE\u63A5\u65F6\u548C\u5411\u8FDE\u63A5\u6C60\u89C4\u8303\u8FDE\u63A5\u65F6\uFF0C\u662F\u5426\u68C0\u67E5\u94FE\u63A5\u6709\u6548\u6027
##\u6BCF\u6B21\u83B7\u53D6\u6216\u5F52\u8FD8\u8FDE\u63A5\u90FD\u68C0\u6D4B\u592A\u9891\u7E41\uFF0C\u9664\u975E\u7279\u522B\u91CD\u8981\u6216\u7F51\u7EDC\u7279\u522B\u4E0D\u53EF\u9760\u7B49\u60C5\u51B5\uFF0C\u5EFA\u8BAE\u7528testWhileIdle + timeBetweenEvictionRunsMillis\u4EE3\u66FF
#spring.datasource.testOnBorrow=false
#spring.datasource.testOnReturn=false
#
##\u914D\u7F6E\u662F\u5426\u5B9A\u671F\u63A2\u6D3B
#spring.datasource.keepAlive=true
##\u914D\u7F6E\u63A2\u6D3B\u95F4\u9694
#spring.datasource.keepAliveBetweenTimeMillis=120000
#
##\u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u7684\u6700\u5927\u4F7F\u7528\u6B21\u6570\uFF0C\u907F\u514D\u957F\u65F6\u95F4\u4F7F\u7528\u76F8\u540C\u94FE\u63A5\u9020\u6210\u670D\u52A1\u5668\u7AEF\u8D1F\u8F7D\u4E0D\u5747\u8861
#spring.datasource.phyMaxUseCount=1000
############################????#######################################
###spring.shardingsphere.datasource.names=master,slave
spring.shardingsphere.datasource.names=master,slave
##??
spring.shardingsphere.datasource.master.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.master.driver-class-name= com.mysql.jdbc.Driver
spring.shardingsphere.datasource.master.JdbcUrl=jdbc:mysql://192.168.1.241:3306/impp_i3_mes_yf?autoReconnect=true&useSSL=false&characterEncoding=utf-8
spring.shardingsphere.datasource.master.username=root
spring.shardingsphere.datasource.master.password=estsh123
spring.shardingsphere.datasource.master.maximum-pool-size=200
spring.shardingsphere.datasource.master.minimum-idle=200
spring.shardingsphere.datasource.master.idle-timeout=500000
spring.shardingsphere.datasource.master.connection-timeout=600000
spring.shardingsphere.datasource.master.max-lifetime=7000000
spring.shardingsphere.datasource.master.connection-test-query=select 1
spring.shardingsphere.datasource.master.keep-alive-time=3500000
##??
spring.shardingsphere.datasource.slave.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.slave.driver-class-name= com.mysql.jdbc.Driver
spring.shardingsphere.datasource.slave.JdbcUrl=jdbc:mysql://192.168.1.241:3306/impp_i3_mes_yf?autoReconnect=true&useSSL=false&characterEncoding=utf-8
spring.shardingsphere.datasource.slave.username=root
spring.shardingsphere.datasource.slave.password=estsh123
spring.shardingsphere.datasource.slave.maximum-pool-size=200
spring.shardingsphere.datasource.slave.minimum-idle=200
spring.shardingsphere.datasource.slave.idle-timeout=500000
spring.shardingsphere.datasource.slave.connection-timeout=600000
spring.shardingsphere.datasource.slave.max-lifetime=7000000
spring.shardingsphere.datasource.slave.connection-test-query=select 1
spring.shardingsphere.datasource.slave.keep-alive-time=3500000
##??????
spring.shardingsphere.sharding.master-slave-rules.ds0.master-data-source-name=master
spring.shardingsphere.sharding.master-slave-rules.ds0.slave-data-source-names=slave
#??datasource ????????????????
#??? gg
#spring.shardingsphere.sharding.default-data-source-name=ds0
#??????????sql??
spring.shardingsphere.props.sql.show = false
spring.shardingsphere.props.max.connections.size.per.query = 10

@ -1,7 +1,7 @@
#\u9879\u76EE\u540D\u79F0
spring.application.name=i3mes
spring.application.name=mes-zxw
#\u4F7F\u7528\u914D\u7F6E
spring.profiles.active=docker,cus-docker
spring.profiles.active=test
######### \u81EA\u5B9A\u4E49\u53C2\u6570 #########
#\u9879\u76EE\u63CF\u8FF0\u4FE1\u606F\uFF08swagger\u4E2D\u663E\u5F0F\uFF09\uFF0C\u4E2D\u6587\u4F7F\u7528uncode\u8F6C
desc.application.name=\u751F\u4EA7\u6267\u884C\u7CFB\u7EDF

@ -28,6 +28,7 @@
<dependency>
<groupId>i3plus.platform</groupId>
<artifactId>i3plus-platform-common</artifactId>
<version></version>
</dependency>
<dependency>

@ -15,19 +15,13 @@
<dependencies>
<dependency>
<groupId>i3plus.pojo</groupId>
<artifactId>i3plus-pojo-base</artifactId>
</dependency>
<dependency>
<groupId>i3plus.pojo</groupId>
<artifactId>i3plus-pojo-mes</artifactId>
</dependency>
<version>1.0.0-yfai</version>
<dependency>
<groupId>i3plus.pojo</groupId>
<artifactId>i3plus-pojo-andon</artifactId>
</dependency>
</dependencies>
</project>

@ -60,9 +60,7 @@
<artifactId>i3plus-icloud</artifactId>
<version>${i3plus.icloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>i3plus.pojo</groupId>
<artifactId>i3plus-pojo</artifactId>
@ -84,7 +82,6 @@
<artifactId>i3plus-mes</artifactId>
<version>${i3plus.mes.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
@ -144,6 +141,39 @@
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>i3plus.pojo</groupId>
<artifactId>i3plus-pojo-mes</artifactId>
<version>1.0.0-yfai</version>
</dependency>
<dependency>
<groupId>i3plus.pojo</groupId>
<artifactId>i3plus-pojo-andon</artifactId>
<version>1.0.0-yfai</version>
</dependency>
<dependency>
<groupId>i3plus.platform</groupId>
<artifactId>i3plus-platform-common</artifactId>
<version>1.0.0.1-patch</version>
</dependency>
<dependency>
<groupId>i3plus.icloud</groupId>
<artifactId>i3plus-icloud-core</artifactId>
<version>${i3plus.icloud.version}</version>
</dependency>
<dependency>
<groupId>i3plus.icloud</groupId>
<artifactId>i3plus-icloud-andon</artifactId>
<version>${i3plus.icloud.version}</version>
</dependency>
<dependency>
<groupId>i3plus.icloud</groupId>
<artifactId>i3plus-icloud-softswitch</artifactId>
<version>${i3plus.icloud.version}</version>
</dependency>
</dependencies>
</dependencyManagement>

Loading…
Cancel
Save