Commit 1b833c35 authored by honghy's avatar honghy

多语言写入和转异和文件上传

parent bb795cdc
SELECT @parentId2 := (SELECT id FROM system_menu WHERE name = '集运');
-- 菜单 SQL
INSERT INTO `system_menu`(`name`, `permission`, `menu_type`, `sort`, `parent_id`,
`path`, `icon`, `component`, `status`,`name_en`)
VALUES ('集运多语言模板', '', 2, 0, 1,
VALUES ('集运多语言模板', '', 2, 0, @parentId2,
'cons-language-template', 'phone', 'ecw/consLanguageTemplate/index', 0,'Multilingual templates');
-- 按钮父菜单ID
......
package cn.iocoder.yudao.module.order.convert.consException;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.order.dal.dataobject.consException.ConsExceptionDO;
import cn.iocoder.yudao.module.order.vo.consException.ConsExceptionBackVO;
import cn.iocoder.yudao.module.order.vo.consException.ConsExceptionCreateReqVO;
import cn.iocoder.yudao.module.order.vo.consException.ConsExceptionUpdateReqVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
/**
* 集运异常 Convert
* @author jayden
*/
@Mapper
public interface ConsExceptionConvert {
/*****转换MapStruct*****/
ConsExceptionConvert INSTANCE = Mappers.getMapper(ConsExceptionConvert.class);
/***
* 创建VO转实体
* @param bean
* @return
*/
ConsExceptionDO convert(ConsExceptionCreateReqVO bean);
/***
* 修改VO转实体
* @param bean
* @return
*/
ConsExceptionDO convert(ConsExceptionUpdateReqVO bean);
/***
* 实体转返回VO
* @param bean
* @return
*/
ConsExceptionBackVO convert(ConsExceptionDO bean);
/***
* 实体列表转返回VO列表
* @param list
* @return
*/
List<ConsExceptionBackVO> convertList(List<ConsExceptionDO> list);
/***
* 实体分页转返回分页
* @param page
* @return
*/
PageResult<ConsExceptionBackVO> convertPage(PageResult<ConsExceptionDO> page);
}
package cn.iocoder.yudao.module.order.convert.consMedia;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.order.dal.dataobject.consMedia.ConsMediaDO;
import cn.iocoder.yudao.module.order.vo.consMedia.ConsMediaBackVO;
import cn.iocoder.yudao.module.order.vo.consMedia.ConsMediaCreateReqVO;
import cn.iocoder.yudao.module.order.vo.consMedia.ConsMediaUpdateReqVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
/**
* 集运包裹影像 Convert
* @author jayden
*/
@Mapper
public interface ConsMediaConvert {
/*****转换MapStruct*****/
ConsMediaConvert INSTANCE = Mappers.getMapper(ConsMediaConvert.class);
/***
* 创建VO转实体
* @param bean
* @return
*/
ConsMediaDO convert(ConsMediaCreateReqVO bean);
/***
* 修改VO转实体
* @param bean
* @return
*/
ConsMediaDO convert(ConsMediaUpdateReqVO bean);
/***
* 实体转返回VO
* @param bean
* @return
*/
ConsMediaBackVO convert(ConsMediaDO bean);
/***
* 实体列表转返回VO列表
* @param list
* @return
*/
List<ConsMediaBackVO> convertList(List<ConsMediaDO> list);
/***
* 实体分页转返回分页
* @param page
* @return
*/
PageResult<ConsMediaBackVO> convertPage(PageResult<ConsMediaDO> page);
}
package cn.iocoder.yudao.module.order.dal.dataobject.consException;
import com.sun.xml.internal.bind.v2.TODO;
import lombok.*;
import java.util.*;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* 集运异常 DO
*
* @author jayden
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("ecw_cons_exception")
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ConsExceptionDO extends BaseDO {
/**
* id
*/
@TableId
private Long id;
/**
* 包裹id
*/
private Long consId;
/**
* 包裹明细id
*/
private Long consItemId;
/**
* 异常类型,来自于字典表cons_exception_type
*
* 枚举 {@link TODO cons_exception_type 对应的类}
*/
private Integer exceptionType;
/**
* 异常说明
*/
private String exceptionRemark;
/**
* 来自字典表,cons_exception_status 异常状态,0 未处理,1 处理中,2已处理
*
* 枚举 {@link TODO cons_exception_status 对应的类}
*/
private Integer exceptionStatus;
/**
*
*/
private String bpmId;
/**
*
*/
private Integer bpmStatus;
}
......@@ -2,7 +2,9 @@ package cn.iocoder.yudao.module.order.dal.dataobject.consLanguageTemplate;
import com.sun.xml.internal.bind.v2.TODO;
import lombok.*;
import java.util.*;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
......@@ -27,7 +29,7 @@ public class ConsLanguageTemplateDO extends BaseDO {
private Long id;
/**
* 业务节点,来源于字典表,crons_business_node,包含签收、异常、入库等
*
* <p>
* 枚举 {@link TODO crons_business_node 对应的类}
*/
private Integer businessNode;
......@@ -41,7 +43,7 @@ public class ConsLanguageTemplateDO extends BaseDO {
private String columnName;
/**
* 语言编码,从字典表中取值 ecw_language_code
*
* <p>
* 枚举 {@link TODO ecw_language_code 对应的类}
*/
private String lanCode;
......@@ -50,4 +52,13 @@ public class ConsLanguageTemplateDO extends BaseDO {
*/
private String lanTemplate;
/**
* 字典类型
*/
private String dictType;
/**
* 字典明细值
*/
private String dictValue;
}
package cn.iocoder.yudao.module.order.dal.dataobject.consMedia;
import lombok.*;
import java.util.*;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* 集运包裹影像 DO
*
* @author jayden
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("ecw_cons_media")
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ConsMediaDO extends BaseDO {
/**
* id
*/
@TableId
private Long id;
/**
* 文件业务类型,来自于字典表 cons_media_business_type,包含签收、异常、验货、入库等
*
*/
private Integer mediaBusinessType;
/**
* 表名
*/
private String tableName;
/**
* 字段名
*/
private String columnName;
/**
* 影像文件地址
*/
private String mediaUrl;
/**
* 集运包裹ID
*/
private Long consId;
/**
* 业务节点ID
*/
private Long bizId;
/**
* 文件名称
*/
private String originalFileName;
}
package cn.iocoder.yudao.module.order.dal.mysql.consException;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQuery;
import cn.iocoder.yudao.framework.mybatis.core.mapper.AbstractMapper;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import cn.iocoder.yudao.module.order.dal.dataobject.consException.ConsExceptionDO;
import cn.iocoder.yudao.module.order.vo.consException.ConsExceptionQueryVO;
import org.apache.ibatis.annotations.Mapper;
/**
* 集运异常 Mapper
* @author jayden
*/
@Mapper
public interface ConsExceptionMapper extends AbstractMapper<ConsExceptionDO> {
@Override
default PageResult<ConsExceptionDO> selectPage(PageVO page, Object object) {
if (object instanceof ConsExceptionQueryVO) {
ConsExceptionQueryVO vo = (ConsExceptionQueryVO)object;
return selectPage(page, new LambdaQuery<ConsExceptionDO>()
.eqIfPresent(ConsExceptionDO::getConsId, vo.getConsId())
.eqIfPresent(ConsExceptionDO::getConsItemId, vo.getConsItemId())
.eqIfPresent(ConsExceptionDO::getExceptionType, vo.getExceptionType())
.eqIfPresent(ConsExceptionDO::getExceptionRemark, vo.getExceptionRemark())
.eqIfPresent(ConsExceptionDO::getExceptionStatus, vo.getExceptionStatus())
.eqIfPresent(ConsExceptionDO::getBpmId, vo.getBpmId())
.eqIfPresent(ConsExceptionDO::getBpmStatus, vo.getBpmStatus())
.betweenIfPresent(ConsExceptionDO::getCreateTime, vo.getBeginCreateTime(), vo.getEndCreateTime())
.orderByDesc(ConsExceptionDO::getId));
}
return null;
}
@Override
default List<ConsExceptionDO> selectList(Object object) {
if (object instanceof ConsExceptionQueryVO) {
ConsExceptionQueryVO vo = (ConsExceptionQueryVO)object;
return selectList(new LambdaQuery<ConsExceptionDO>()
.eqIfPresent(ConsExceptionDO::getConsId, vo.getConsId())
.eqIfPresent(ConsExceptionDO::getConsItemId, vo.getConsItemId())
.eqIfPresent(ConsExceptionDO::getExceptionType, vo.getExceptionType())
.eqIfPresent(ConsExceptionDO::getExceptionRemark, vo.getExceptionRemark())
.eqIfPresent(ConsExceptionDO::getExceptionStatus, vo.getExceptionStatus())
.eqIfPresent(ConsExceptionDO::getBpmId, vo.getBpmId())
.eqIfPresent(ConsExceptionDO::getBpmStatus, vo.getBpmStatus())
.betweenIfPresent(ConsExceptionDO::getCreateTime, vo.getBeginCreateTime(), vo.getEndCreateTime())
.orderByDesc(ConsExceptionDO::getId));
}
return null;
}
}
package cn.iocoder.yudao.module.order.dal.mysql.consMedia;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQuery;
import cn.iocoder.yudao.framework.mybatis.core.mapper.AbstractMapper;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import cn.iocoder.yudao.module.order.dal.dataobject.consMedia.ConsMediaDO;
import cn.iocoder.yudao.module.order.vo.consMedia.ConsMediaQueryVO;
import org.apache.ibatis.annotations.Mapper;
/**
* 集运包裹影像 Mapper
*
* @author jayden
*/
@Mapper
public interface ConsMediaMapper extends AbstractMapper<ConsMediaDO> {
@Override
default PageResult<ConsMediaDO> selectPage(PageVO page, Object object) {
if (object instanceof ConsMediaQueryVO) {
ConsMediaQueryVO vo = (ConsMediaQueryVO) object;
return selectPage(page, new LambdaQuery<ConsMediaDO>()
.eqIfPresent(ConsMediaDO::getMediaBusinessType, vo.getMediaBusinessType())
.likeIfPresent(ConsMediaDO::getTableName, vo.getTableName())
.likeIfPresent(ConsMediaDO::getColumnName, vo.getColumnName())
.eqIfPresent(ConsMediaDO::getMediaUrl, vo.getMediaUrl())
.eqIfPresent(ConsMediaDO::getConsId, vo.getConsId())
.eqIfPresent(ConsMediaDO::getBizId, vo.getBizId())
.likeIfPresent(ConsMediaDO::getOriginalFileName, vo.getOriginalFileName())
.betweenIfPresent(ConsMediaDO::getCreateTime, vo.getBeginCreateTime(), vo.getEndCreateTime())
.orderByDesc(ConsMediaDO::getId));
}
return null;
}
@Override
default List<ConsMediaDO> selectList(Object object) {
if (object instanceof ConsMediaQueryVO) {
ConsMediaQueryVO vo = (ConsMediaQueryVO) object;
return selectList(new LambdaQuery<ConsMediaDO>()
.eqIfPresent(ConsMediaDO::getMediaBusinessType, vo.getMediaBusinessType())
.likeIfPresent(ConsMediaDO::getTableName, vo.getTableName())
.likeIfPresent(ConsMediaDO::getColumnName, vo.getColumnName())
.eqIfPresent(ConsMediaDO::getMediaUrl, vo.getMediaUrl())
.eqIfPresent(ConsMediaDO::getConsId, vo.getConsId())
.eqIfPresent(ConsMediaDO::getBizId, vo.getBizId())
.likeIfPresent(ConsMediaDO::getOriginalFileName, vo.getOriginalFileName())
.betweenIfPresent(ConsMediaDO::getCreateTime, vo.getBeginCreateTime(), vo.getEndCreateTime())
.orderByDesc(ConsMediaDO::getId));
}
return null;
}
}
package cn.iocoder.yudao.module.order.service.consException;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import cn.iocoder.yudao.framework.mybatis.core.service.IService;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.order.dal.dataobject.consException.ConsExceptionDO;
import cn.iocoder.yudao.module.order.vo.consException.ConsExceptionCreateReqVO;
import cn.iocoder.yudao.module.order.vo.consException.ConsExceptionQueryVO;
import cn.iocoder.yudao.module.order.vo.consException.ConsExceptionUpdateReqVO;
/**
* 集运异常 Service 接口
*
* @author jayden
*/
public interface ConsExceptionService extends IService<ConsExceptionDO> {
/**
* 创建集运异常
* @param createReqVO 创建信息
* @return 编号
*/
Long createConsException(@Valid ConsExceptionCreateReqVO createReqVO);
/**
* 更新集运异常
* @param updateReqVO 更新信息
*/
void updateConsException(@Valid ConsExceptionUpdateReqVO updateReqVO);
/**
* 删除集运异常
* @param id 编号
*/
void deleteConsException(Long id);
/**
* 获得集运异常
* @param id 编号
* @return 集运异常
*/
ConsExceptionDO getConsException(Long id);
/**
* 获得集运异常列表
* @param ids 编号
* @return 集运异常列表
*/
List<ConsExceptionDO> getConsExceptionList(Collection<Long> ids);
/**
* 获得集运异常分页
* @param page 分页查询
* @param query 查询
* @return 集运异常分页
*/
PageResult<ConsExceptionDO> getConsExceptionPage(ConsExceptionQueryVO query, PageVO page);
/**
* 获得集运异常列表, 用于 Excel 导出
* @param query 查询
* @return 集运异常列表
*/
List<ConsExceptionDO> getConsExceptionList(ConsExceptionQueryVO query);
}
package cn.iocoder.yudao.module.order.service.consException;
import java.util.*;
import javax.annotation.Resource;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.service.AbstractService;
import cn.iocoder.yudao.module.order.convert.consException.ConsExceptionConvert;
import cn.iocoder.yudao.module.order.dal.dataobject.consException.ConsExceptionDO;
import cn.iocoder.yudao.module.order.dal.dataobject.consMedia.ConsMediaDO;
import cn.iocoder.yudao.module.order.dal.mysql.cons.ConsMapper;
import cn.iocoder.yudao.module.order.dal.mysql.consException.ConsExceptionMapper;
import cn.iocoder.yudao.module.order.dal.mysql.consMedia.ConsMediaMapper;
import cn.iocoder.yudao.module.order.vo.consException.ConsExceptionCreateReqVO;
import cn.iocoder.yudao.module.order.vo.consException.ConsExceptionQueryVO;
import cn.iocoder.yudao.module.order.vo.consException.ConsExceptionUpdateReqVO;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
/**
* 集运异常 Service 实现类
*
* @author jayden
*/
@Service
@Validated
public class ConsExceptionServiceImpl extends AbstractService<ConsExceptionMapper, ConsExceptionDO> implements ConsExceptionService {
@Resource
private ConsExceptionMapper consExceptionMapper;
@Resource
private ConsMediaMapper consMediaMapper;
@Transactional
@Override
public Long createConsException(ConsExceptionCreateReqVO createReqVO) {
// 插入
ConsExceptionDO consException = ConsExceptionConvert.INSTANCE.convert(createReqVO);
consExceptionMapper.insert(consException);
Long id = consException.getId();
if (createReqVO.getExceptionUrls() != null && !createReqVO.getExceptionUrls().isEmpty()) {
List<String> exceptionUrls = createReqVO.getExceptionUrls();
for (String exceptionUrl : exceptionUrls) {
ConsMediaDO consMediaDO = new ConsMediaDO()
.setId(id)
.setMediaBusinessType(createReqVO.getMediaBusinessType())
.setTableName("ecw_cons_exception")
.setColumnName("files")
.setMediaUrl(exceptionUrl)
.setBizId(id)
.setConsId(createReqVO.getConsId());
consMediaMapper.insert(consMediaDO);
}
}
// TODO 包裹动态待写入
// 返回
return id;
}
@Override
public void updateConsException(ConsExceptionUpdateReqVO updateReqVO) {
// 更新
ConsExceptionDO updateObj = ConsExceptionConvert.INSTANCE.convert(updateReqVO);
consExceptionMapper.updateById(updateObj);
}
@Override
public void deleteConsException(Long id) {
// 删除
consExceptionMapper.deleteById(id);
}
@Override
public ConsExceptionDO getConsException(Long id) {
return consExceptionMapper.selectById(id);
}
@Override
public List<ConsExceptionDO> getConsExceptionList(Collection<Long> ids) {
return consExceptionMapper.selectBatchIds(ids);
}
@Override
public PageResult<ConsExceptionDO> getConsExceptionPage(ConsExceptionQueryVO query, PageVO page) {
return consExceptionMapper.selectPage(page, query);
}
@Override
public List<ConsExceptionDO> getConsExceptionList(ConsExceptionQueryVO query) {
return consExceptionMapper.selectList(query);
}
}
......@@ -78,14 +78,17 @@ public interface ConsLanguageTemplateService extends IService<ConsLanguageTempla
/**
* 通用方法多语言新增方法
*
* @param businessNode 业务节点,用于标识业务流程或模块
* @param tableName 数据库表名,用于存储或查询数据
* @param columnName 数据库列名,指定需要操作的数据列
* @param bizId 业务ID,唯一标识一个业务实体
* @param templateParams 模板参数,用于填充模板中的变量
* @param businessNode 业务节点,用于标识业务流程或模块
* @param tableName 数据库表名,用于存储或查询数据
* @param columnName 数据库列名,指定需要操作的数据列
* @param bizId 业务ID,唯一标识一个业务实体
* @param dictValue 数据字典明细值,唯一标识一个业务实体
* @param templateParams 模板参数,用于填充模板中的变量
* @param templateDictParams 模板数据字典参数,用于填充模板中的变量
* @return 返回方法执行结果,true表示成功,false表示失败
*/
boolean useConsLanguageTemplate(@NotNull(message = "业务节点不能为空") Integer businessNode, @NotNull(message = "数据库表名不能为空") String tableName,
@NotNull(message = "数据库列名不能为空") String columnName, @NotNull(message = "业务ID不能为空") Long bizId, Map<String, Object> templateParams);
@NotNull(message = "数据库列名不能为空") String columnName, @NotNull(message = "业务ID不能为空") Long bizId, String dictValue,
Map<String, Object> templateParams, Map<String, Object> templateDictParams);
}
......@@ -18,6 +18,7 @@ import cn.iocoder.yudao.module.order.vo.consLanguageTemplate.ConsLanguageTemplat
import cn.iocoder.yudao.module.order.vo.consLanguageTemplate.ConsLanguageTemplateQueryVO;
import cn.iocoder.yudao.module.order.vo.consLanguageTemplate.ConsLanguageTemplateUpdateReqVO;
import cn.iocoder.yudao.module.system.api.dict.DictDataApi;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
......@@ -95,18 +96,21 @@ public class ConsLanguageTemplateServiceImpl extends AbstractService<ConsLanguag
}
/**
* 通用方法
* 通用方法多语言新增方法
*
* @param businessNode 业务节点,用于标识业务流程或模块
* @param tableName 数据库表名,用于存储或查询数据
* @param columnName 数据库列名,指定需要操作的数据列
* @param bizId 业务ID,唯一标识一个业务实体
* @param templateParams 模板参数,用于填充模板中的变量
* @param businessNode 业务节点,用于标识业务流程或模块
* @param tableName 数据库表名,用于存储或查询数据
* @param columnName 数据库列名,指定需要操作的数据列
* @param bizId 业务ID,唯一标识一个业务实体
* @param dictValue 数据字典明细值,唯一标识一个业务实体
* @param templateParams 模板参数,用于填充模板中的变量
* @param templateDictParams 模板数据字典参数,用于填充模板中的变量
* @return 返回方法执行结果,true表示成功,false表示失败
*/
@Transactional
@Override
public boolean useConsLanguageTemplate(Integer businessNode, String tableName, String columnName, Long bizId, Map<String, Object> templateParams) {
public boolean useConsLanguageTemplate(Integer businessNode, String tableName, String columnName, Long bizId, String dictValue,
Map<String, Object> templateParams, Map<String, Object> templateDictParams) {
List<DictDataRespDTO> dictDataRespDTOList = DictFrameworkUtils.listDictDatasFromCache("ecw_language_code");
if (dictDataRespDTOList.isEmpty()) {
......@@ -118,7 +122,8 @@ public class ConsLanguageTemplateServiceImpl extends AbstractService<ConsLanguag
.eq(ConsLanguageTemplateDO::getBusinessNode, businessNode)
.eq(ConsLanguageTemplateDO::getTableName, tableName)
.eq(ConsLanguageTemplateDO::getColumnName, columnName)
.eq(ConsLanguageTemplateDO::getLanCode, lanCode));
.eq(ConsLanguageTemplateDO::getLanCode, lanCode)
.eq(StringUtils.isNotBlank(dictValue), ConsLanguageTemplateDO::getDictValue, dictValue));
if (consLanguageTemplates == null || consLanguageTemplates.isEmpty()) {
continue;
}
......
package cn.iocoder.yudao.module.order.service.consMedia;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import cn.iocoder.yudao.framework.mybatis.core.service.IService;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.order.dal.dataobject.consMedia.ConsMediaDO;
import cn.iocoder.yudao.module.order.vo.consMedia.ConsMediaCreateReqVO;
import cn.iocoder.yudao.module.order.vo.consMedia.ConsMediaQueryVO;
import cn.iocoder.yudao.module.order.vo.consMedia.ConsMediaUpdateReqVO;
/**
* 集运包裹影像 Service 接口
*
* @author jayden
*/
public interface ConsMediaService extends IService<ConsMediaDO> {
/**
* 创建集运包裹影像
* @param createReqVO 创建信息
* @return 编号
*/
Long createConsMedia(@Valid ConsMediaCreateReqVO createReqVO);
/**
* 更新集运包裹影像
* @param updateReqVO 更新信息
*/
void updateConsMedia(@Valid ConsMediaUpdateReqVO updateReqVO);
/**
* 删除集运包裹影像
* @param id 编号
*/
void deleteConsMedia(Long id);
/**
* 获得集运包裹影像
* @param id 编号
* @return 集运包裹影像
*/
ConsMediaDO getConsMedia(Long id);
/**
* 获得集运包裹影像列表
* @param ids 编号
* @return 集运包裹影像列表
*/
List<ConsMediaDO> getConsMediaList(Collection<Long> ids);
/**
* 获得集运包裹影像分页
* @param page 分页查询
* @param query 查询
* @return 集运包裹影像分页
*/
PageResult<ConsMediaDO> getConsMediaPage(ConsMediaQueryVO query, PageVO page);
/**
* 获得集运包裹影像列表, 用于 Excel 导出
* @param query 查询
* @return 集运包裹影像列表
*/
List<ConsMediaDO> getConsMediaList(ConsMediaQueryVO query);
}
package cn.iocoder.yudao.module.order.service.consMedia;
import java.util.*;
import javax.annotation.Resource;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.service.AbstractService;
import cn.iocoder.yudao.module.order.convert.consMedia.ConsMediaConvert;
import cn.iocoder.yudao.module.order.dal.dataobject.consMedia.ConsMediaDO;
import cn.iocoder.yudao.module.order.dal.mysql.consMedia.ConsMediaMapper;
import cn.iocoder.yudao.module.order.vo.consMedia.ConsMediaCreateReqVO;
import cn.iocoder.yudao.module.order.vo.consMedia.ConsMediaQueryVO;
import cn.iocoder.yudao.module.order.vo.consMedia.ConsMediaUpdateReqVO;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
/**
* 集运包裹影像 Service 实现类
*
* @author jayden
*/
@Service
@Validated
public class ConsMediaServiceImpl extends AbstractService<ConsMediaMapper, ConsMediaDO> implements ConsMediaService {
@Resource
private ConsMediaMapper consMediaMapper;
@Override
public Long createConsMedia(ConsMediaCreateReqVO createReqVO) {
// 插入
ConsMediaDO consMedia = ConsMediaConvert.INSTANCE.convert(createReqVO);
consMediaMapper.insert(consMedia);
// 返回
return consMedia.getId();
}
@Override
public void updateConsMedia(ConsMediaUpdateReqVO updateReqVO) {
// 更新
ConsMediaDO updateObj = ConsMediaConvert.INSTANCE.convert(updateReqVO);
consMediaMapper.updateById(updateObj);
}
@Override
public void deleteConsMedia(Long id) {
// 删除
consMediaMapper.deleteById(id);
}
@Override
public ConsMediaDO getConsMedia(Long id) {
return consMediaMapper.selectById(id);
}
@Override
public List<ConsMediaDO> getConsMediaList(Collection<Long> ids) {
return consMediaMapper.selectBatchIds(ids);
}
@Override
public PageResult<ConsMediaDO> getConsMediaPage(ConsMediaQueryVO query, PageVO page) {
return consMediaMapper.selectPage(page, query);
}
@Override
public List<ConsMediaDO> getConsMediaList(ConsMediaQueryVO query) {
return consMediaMapper.selectList(query);
}
}
package cn.iocoder.yudao.module.order.vo.consException;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import com.alibaba.excel.annotation.ExcelProperty;
import cn.iocoder.yudao.framework.excel.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.convert.DictConvert;
import org.springframework.format.annotation.DateTimeFormat;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
* 集运异常 Response VO
* @author jayden
*/
@Data
@ApiModel("管理后台 - 集运异常 Response VO")
public class ConsExceptionBackVO {
@ExcelProperty("id")
@ApiModelProperty(value = "id", required = true)
private Long id;
@ExcelProperty("包裹id")
@ApiModelProperty(value = "包裹id", required = true)
private Long consId;
@ExcelProperty("包裹明细id")
@ApiModelProperty(value = "包裹明细id")
private Long consItemId;
@ExcelProperty(value = "异常类型,来自于字典表cons_exception_type", converter = DictConvert.class)
@DictFormat("cons_exception_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@ApiModelProperty(value = "异常类型,来自于字典表cons_exception_type", required = true)
private Integer exceptionType;
@ExcelProperty("异常说明")
@ApiModelProperty(value = "异常说明")
private String exceptionRemark;
@ExcelProperty(value = "来自字典表,cons_exception_status 异常状态,0 未处理,1 处理中,2已处理", converter = DictConvert.class)
@DictFormat("cons_exception_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@ApiModelProperty(value = "来自字典表,cons_exception_status 异常状态,0 未处理,1 处理中,2已处理")
private Integer exceptionStatus;
@ExcelProperty("")
@ApiModelProperty(value = "")
private String bpmId;
@ExcelProperty("")
@ApiModelProperty(value = "")
private Integer bpmStatus;
@ExcelProperty("")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "", required = true)
private Date createTime;
}
package cn.iocoder.yudao.module.order.vo.consException;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
/**
* 集运异常 Base VO,提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
*/
@Data
public class ConsExceptionBaseVO {
@ApiModelProperty(value = "包裹id", required = true)
@NotNull(message = "包裹id不能为空")
private Long consId;
@ApiModelProperty(value = "包裹明细id")
private Long consItemId;
@ApiModelProperty(value = "异常类型,来自于字典表cons_exception_type", required = true)
@NotNull(message = "异常类型,来自于字典表cons_exception_type不能为空")
private Integer exceptionType;
@ApiModelProperty(value = "异常说明")
private String exceptionRemark;
@ApiModelProperty(value = "来自字典表,cons_exception_status 异常状态,0 未处理,1 处理中,2已处理")
private Integer exceptionStatus;
@ApiModelProperty(value = "")
private String bpmId;
@ApiModelProperty(value = "")
private Integer bpmStatus;
}
package cn.iocoder.yudao.module.order.vo.consException;
import cn.iocoder.yudao.module.order.vo.consMedia.ConsMediaCreateReqVO;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel("管理后台 - 集运异常创建 Request VO")
public class ConsExceptionCreateReqVO extends ConsExceptionBaseVO {
/**
* 文件
*/
private List<String> exceptionUrls;
/**
* 文件业务类型,来自于字典表 cons_media_business_type
*/
private Integer mediaBusinessType;
}
package cn.iocoder.yudao.module.order.vo.consException;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Data
@ApiModel("管理后台 - 集运异常查询 VO")
public class ConsExceptionQueryVO {
@ApiModelProperty(value = "包裹id")
private Long consId;
@ApiModelProperty(value = "包裹明细id")
private Long consItemId;
@ApiModelProperty(value = "异常类型,来自于字典表cons_exception_type")
private Integer exceptionType;
@ApiModelProperty(value = "异常说明")
private String exceptionRemark;
@ApiModelProperty(value = "来自字典表,cons_exception_status 异常状态,0 未处理,1 处理中,2已处理")
private Integer exceptionStatus;
@ApiModelProperty(value = "")
private String bpmId;
@ApiModelProperty(value = "")
private Integer bpmStatus;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "开始")
private Date beginCreateTime;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "结束")
private Date endCreateTime;
}
package cn.iocoder.yudao.module.order.vo.consException;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
@ApiModel("管理后台 - 集运异常更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ConsExceptionUpdateReqVO extends ConsExceptionBaseVO {
@ApiModelProperty(value = "id", required = true)
@NotNull(message = "id不能为空")
private Long id;
}
......@@ -49,4 +49,13 @@ public class ConsLanguageTemplateBackVO {
@ApiModelProperty(value = "", required = true)
private Date createTime;
/**
* 字典类型
*/
private String dictType;
/**
* 字典明细值
*/
private String dictValue;
}
......@@ -29,4 +29,13 @@ public class ConsLanguageTemplateBaseVO {
@ApiModelProperty(value = "语言内容模板,需要动态替换的使用{}框起来")
private String lanTemplate;
/**
* 字典类型
*/
private String dictType;
/**
* 字典明细值
*/
private String dictValue;
}
......@@ -35,4 +35,13 @@ public class ConsLanguageTemplateQueryVO {
@ApiModelProperty(value = "结束")
private Date endCreateTime;
/**
* 字典类型
*/
private String dictType;
/**
* 字典明细值
*/
private String dictValue;
}
package cn.iocoder.yudao.module.order.vo.consMedia;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import com.alibaba.excel.annotation.ExcelProperty;
import cn.iocoder.yudao.framework.excel.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.convert.DictConvert;
import org.springframework.format.annotation.DateTimeFormat;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
* 集运包裹影像 Response VO
* @author jayden
*/
@Data
@ApiModel("管理后台 - 集运包裹影像 Response VO")
public class ConsMediaBackVO {
@ExcelProperty("id")
@ApiModelProperty(value = "id", required = true)
private Long id;
@ExcelProperty(value = "文件业务类型,来自于字典表 cons_media_business_type,包含签收、异常、验货、入库等", converter = DictConvert.class)
@DictFormat("cons_media_business_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@ApiModelProperty(value = "文件业务类型,来自于字典表 cons_media_business_type,包含签收、异常、验货、入库等")
private Integer mediaBusinessType;
@ExcelProperty("表名")
@ApiModelProperty(value = "表名", required = true)
private String tableName;
@ExcelProperty("字段名")
@ApiModelProperty(value = "字段名", required = true)
private String columnName;
@ExcelProperty("影像文件地址")
@ApiModelProperty(value = "影像文件地址", required = true)
private String mediaUrl;
@ExcelProperty("集运包裹ID")
@ApiModelProperty(value = "集运包裹ID", required = true)
private Long consId;
@ExcelProperty("业务节点ID")
@ApiModelProperty(value = "业务节点ID", required = true)
private Long bizId;
@ExcelProperty("文件名称")
@ApiModelProperty(value = "文件名称")
private String originalFileName;
@ExcelProperty("")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "")
private Date createTime;
}
package cn.iocoder.yudao.module.order.vo.consMedia;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
/**
* 集运包裹影像 Base VO,提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
*/
@Data
public class ConsMediaBaseVO {
@ApiModelProperty(value = "文件业务类型,来自于字典表 cons_media_business_type,包含签收、异常、验货、入库等")
private Integer mediaBusinessType;
@ApiModelProperty(value = "表名", required = true)
@NotNull(message = "表名不能为空")
private String tableName;
@ApiModelProperty(value = "字段名", required = true)
@NotNull(message = "字段名不能为空")
private String columnName;
@ApiModelProperty(value = "影像文件地址", required = true)
@NotNull(message = "影像文件地址不能为空")
private String mediaUrl;
@ApiModelProperty(value = "集运包裹ID", required = true)
@NotNull(message = "集运包裹ID不能为空")
private Long consId;
@ApiModelProperty(value = "业务节点ID", required = true)
@NotNull(message = "业务节点ID不能为空")
private Long bizId;
@ApiModelProperty(value = "文件名称")
private String originalFileName;
}
package cn.iocoder.yudao.module.order.vo.consMedia;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel("管理后台 - 集运包裹影像创建 Request VO")
public class ConsMediaCreateReqVO extends ConsMediaBaseVO {
}
package cn.iocoder.yudao.module.order.vo.consMedia;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Data
@ApiModel("管理后台 - 集运包裹影像查询 VO")
public class ConsMediaQueryVO {
@ApiModelProperty(value = "文件业务类型,来自于字典表 cons_media_business_type,包含签收、异常、验货、入库等")
private Integer mediaBusinessType;
@ApiModelProperty(value = "表名")
private String tableName;
@ApiModelProperty(value = "字段名")
private String columnName;
@ApiModelProperty(value = "影像文件地址")
private String mediaUrl;
@ApiModelProperty(value = "集运包裹ID")
private Long consId;
@ApiModelProperty(value = "业务节点ID")
private Long bizId;
@ApiModelProperty(value = "文件名称")
private String originalFileName;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "开始")
private Date beginCreateTime;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "结束")
private Date endCreateTime;
}
package cn.iocoder.yudao.module.order.vo.consMedia;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
@ApiModel("管理后台 - 集运包裹影像更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ConsMediaUpdateReqVO extends ConsMediaBaseVO {
@ApiModelProperty(value = "id", required = true)
@NotNull(message = "id不能为空")
private Long id;
}
package cn.iocoder.yudao.module.order.controller.admin.consException;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import cn.iocoder.yudao.module.order.convert.consException.ConsExceptionConvert;
import cn.iocoder.yudao.module.order.dal.dataobject.consException.ConsExceptionDO;
import cn.iocoder.yudao.module.order.service.consException.ConsExceptionService;
import cn.iocoder.yudao.module.order.vo.consException.ConsExceptionBackVO;
import cn.iocoder.yudao.module.order.vo.consException.ConsExceptionCreateReqVO;
import cn.iocoder.yudao.module.order.vo.consException.ConsExceptionQueryVO;
import cn.iocoder.yudao.module.order.vo.consException.ConsExceptionUpdateReqVO;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.annotations.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.util.ExcelUtils;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;
@Validated
@RestController
@Api(tags = "管理后台 - 集运异常")
@RequestMapping("/ecw/cons-exception")
public class ConsExceptionController {
@Resource
private ConsExceptionService consExceptionService;
@PostMapping("/create")
@ApiOperation("创建集运异常")
public CommonResult<Long> createConsException(@Valid @RequestBody ConsExceptionCreateReqVO createReqVO) {
return success(consExceptionService.createConsException(createReqVO));
}
@PutMapping("/update")
@ApiOperation("更新集运异常")
public CommonResult<Boolean> updateConsException(@Valid @RequestBody ConsExceptionUpdateReqVO updateReqVO) {
consExceptionService.updateConsException(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@ApiOperation("删除集运异常")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
public CommonResult<Boolean> deleteConsException(@RequestParam("id") Long id) {
consExceptionService.deleteConsException(id);
return success(true);
}
@GetMapping("/get")
@ApiOperation("获得集运异常")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
public CommonResult<ConsExceptionBackVO> getConsException(@RequestParam("id") Long id) {
ConsExceptionDO consException = consExceptionService.getConsException(id);
return success(ConsExceptionConvert.INSTANCE.convert(consException));
}
@GetMapping("/list")
@ApiOperation("获得集运异常列表")
@ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class)
public CommonResult<List<ConsExceptionBackVO>> getConsExceptionList(@RequestParam("ids") Collection<Long> ids) {
List<ConsExceptionDO> list = consExceptionService.getConsExceptionList(ids);
return success(ConsExceptionConvert.INSTANCE.convertList(list));
}
@GetMapping("/page")
@ApiOperation("获得集运异常分页")
public CommonResult<PageResult<ConsExceptionBackVO>> getConsExceptionPage(@Valid ConsExceptionQueryVO query, PageVO page) {
PageResult<ConsExceptionDO> pageResult = consExceptionService.getConsExceptionPage(query, page);
return success(ConsExceptionConvert.INSTANCE.convertPage(pageResult));
}
@GetMapping("/export-excel")
@ApiOperation("导出集运异常 Excel")
@OperateLog(type = EXPORT)
public void exportConsExceptionExcel(@Valid ConsExceptionQueryVO query,
HttpServletResponse response) throws IOException {
List<ConsExceptionDO> list = consExceptionService.getConsExceptionList(query);
// 导出 Excel
List<ConsExceptionBackVO> datas = ConsExceptionConvert.INSTANCE.convertList(list);
ExcelUtils.write(response, "集运异常.xls", "数据", ConsExceptionBackVO.class, datas);
}
}
package cn.iocoder.yudao.module.order.controller.admin.consMedia;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import cn.iocoder.yudao.module.order.convert.consMedia.ConsMediaConvert;
import cn.iocoder.yudao.module.order.dal.dataobject.consMedia.ConsMediaDO;
import cn.iocoder.yudao.module.order.service.consMedia.ConsMediaService;
import cn.iocoder.yudao.module.order.vo.consMedia.ConsMediaBackVO;
import cn.iocoder.yudao.module.order.vo.consMedia.ConsMediaCreateReqVO;
import cn.iocoder.yudao.module.order.vo.consMedia.ConsMediaQueryVO;
import cn.iocoder.yudao.module.order.vo.consMedia.ConsMediaUpdateReqVO;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.util.ExcelUtils;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;
@Validated
@RestController
@Api(tags = "管理后台 - 集运包裹影像")
@RequestMapping("/ecw/cons-media")
public class ConsMediaController {
@Resource
private ConsMediaService consMediaService;
@PostMapping("/create")
@ApiOperation("创建集运包裹影像")
public CommonResult<Long> createConsMedia(@Valid @RequestBody ConsMediaCreateReqVO createReqVO) {
return success(consMediaService.createConsMedia(createReqVO));
}
@PutMapping("/update")
@ApiOperation("更新集运包裹影像")
public CommonResult<Boolean> updateConsMedia(@Valid @RequestBody ConsMediaUpdateReqVO updateReqVO) {
consMediaService.updateConsMedia(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@ApiOperation("删除集运包裹影像")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
public CommonResult<Boolean> deleteConsMedia(@RequestParam("id") Long id) {
consMediaService.deleteConsMedia(id);
return success(true);
}
@GetMapping("/get")
@ApiOperation("获得集运包裹影像")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
public CommonResult<ConsMediaBackVO> getConsMedia(@RequestParam("id") Long id) {
ConsMediaDO consMedia = consMediaService.getConsMedia(id);
return success(ConsMediaConvert.INSTANCE.convert(consMedia));
}
@GetMapping("/list")
@ApiOperation("获得集运包裹影像列表")
@ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class)
public CommonResult<List<ConsMediaBackVO>> getConsMediaList(@RequestParam("ids") Collection<Long> ids) {
List<ConsMediaDO> list = consMediaService.getConsMediaList(ids);
return success(ConsMediaConvert.INSTANCE.convertList(list));
}
@GetMapping("/page")
@ApiOperation("获得集运包裹影像分页")
public CommonResult<PageResult<ConsMediaBackVO>> getConsMediaPage(@Valid ConsMediaQueryVO query, PageVO page) {
PageResult<ConsMediaDO> pageResult = consMediaService.getConsMediaPage(query, page);
return success(ConsMediaConvert.INSTANCE.convertPage(pageResult));
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment