package ${packageName}.service.impl; import cn.gov.customs.cacp.sdks.core.user.trans.CacpTransUser; import cn.gov.customs.zhsj.common.exception.ServiceException; import cn.gov.customs.zhsj.common.utils.StringUtils; import cn.gov.customs.zhsj.common.utils.bean.BeanValidators; import cn.gov.customs.zhsj.common.utils.uuid.SnowflakeIdWorker; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.validation.Validator; import java.util.List; import org.apache.commons.collections4.CollectionUtils; import cn.gov.customs.zhsj.common.utils.DateUtils; #foreach ($column in $columns) #if($column.javaField == 'createTime' || $column.javaField == 'updateTime') import cn.gov.customs.zhsj.common.utils.DateUtils; #break #end #end #if($table.sub) import ${packageName}.pojo.${subClassName}; #end import ${packageName}.dao.${ClassName}Mapper; import ${packageName}.pojo.${ClassName}; import ${packageName}.service.I${ClassName}Service; /** * ${functionName}Service业务层处理 * * @author ${author} * @date ${datetime} */ @Service @Slf4j @RequiredArgsConstructor public class ${ClassName}ServiceImpl implements I${ClassName}Service { private final ${ClassName}Mapper ${className}Mapper; private final Validator validator; /** * 查询${functionName} * * @param ${pkColumn.javaField} ${functionName}主键 * @return ${functionName} */ @Override public ${ClassName} selectBy${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) { return ${className}Mapper.selectBy${pkColumn.capJavaField}(${pkColumn.javaField}); } /** * 查询${functionName}列表 * * @param ${className} ${functionName} * @return ${functionName} */ @Override public List<${ClassName}> selectList(${ClassName} ${className}) { return ${className}Mapper.selectList(${className}); } /** * 新增${functionName} * * @param ${className} ${functionName} * @return 结果 */ #if($table.sub) @Transactional #end @Override public int insert(${ClassName} ${className}) { #foreach ($column in $columns) #if($column.javaField == 'id') ${className}.setId(new SnowflakeIdWorker(0, 0).nextId()); #end #if($column.javaField == 'createTime') ${className}.setCreateTime(DateUtils.getNowDate()); #end #if($column.javaField == 'updateTime') ${className}.setUpdateTime(DateUtils.getNowDate()); #end #if($column.javaField == 'status') ${className}.setStatus("0"); #end #end #if($table.sub) int rows = ${className}Mapper.insert${ClassName}(${className}); insert${subClassName}(${className}); return rows; #else return ${className}Mapper.insert(${className}); #end } /** * 修改${functionName} * * @param ${className} ${functionName} * @return 结果 */ #if($table.sub) @Transactional #end @Override public int update(${ClassName} ${className}) { #foreach ($column in $columns) #if($column.javaField == 'updateTime') ${className}.setUpdateTime(DateUtils.getNowDate()); #end #end #if($table.sub) ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}()) ; insert${subClassName}(${className}); #end return ${className}Mapper.update(${className}); } /** * 批量删除${functionName} * * @param ${pkColumn.javaField}s 需要删除的${functionName}主键 * @return 结果 */ #if($table.sub) @Transactional #end @Override public int deleteBy${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s) { #if($table.sub) ${className}Mapper.deleteBy${subTableFkClassName}s(${pkColumn.javaField}s); #end return ${className}Mapper.deleteBy${pkColumn.capJavaField}s(${pkColumn.javaField}s); } /** * 删除${functionName}信息 * * @param ${pkColumn.javaField} ${functionName}主键 * @return 结果 */ #if($table.sub) @Transactional #end @Override public int deleteBy${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) { #if($table.sub) ${className}Mapper.deleteBy${subTableFkClassName}(${pkColumn.javaField}); #end return ${className}Mapper.deleteBy${pkColumn.capJavaField}(${pkColumn.javaField}); } /** * 逻辑删除${functionName}信息 * * @param ${pkColumn.javaField} ${functionName}主键 * @return 结果 */ #if($table.sub) @Transactional #end @Override public int logicDelete(${pkColumn.javaType} ${pkColumn.javaField}) { return ${className}Mapper.logicDelete(${pkColumn.javaField}); } #if($table.sub) /** * 新增${subTable.functionName}信息 * * @param ${className} ${functionName}对象 */ public void insert${subClassName}(${ClassName} ${className}) { List<${subClassName}> ${subclassName}List = ${className}.get${subClassName}List(); ${pkColumn.javaType} ${pkColumn.javaField} = ${className}.get${pkColumn.capJavaField}(); if (StringUtils.isNotNull(${subclassName}List)) { List<${subClassName}> list = new ArrayList<${subClassName}>(); for (${subClassName} ${subclassName} :${subclassName}List) { ${subclassName}.set${subTableFkClassName}(${pkColumn.javaField}); list.add(${subclassName}); } if (list.size() > 0) { ${className}Mapper.batch(list); } } } #end /** * 导入${functionName}数据 * * @param ${className}List ${functionName}数据列表 * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 * @param cacpTransUser 操作用户 * @return 结果 */ @Override public String import${ClassName}(List<${ClassName}> ${className}List, Boolean isUpdateSupport, CacpTransUser cacpTransUser) { if (CollectionUtils.isEmpty(${className}List)) { throw new ServiceException("导入数据不能为空!"); } int successNum = 0; int failureNum = 0; StringBuilder successMsg = new StringBuilder(); StringBuilder failureMsg = new StringBuilder(); for (${ClassName} ${className} : ${className}List) { try { BeanValidators.validateWithException(validator, ${className}); //id名称不统一,自行处理 ## ${className}.setId(new SnowflakeIdWorker(0, 0).nextId()); ${className}.setCreateTime(DateUtils.getNowDate()); ${className}.setUpdateTime(DateUtils.getNowDate()); ${className}.setCreateUser(cacpTransUser.getUserId()); ${className}.setCreateDept(cacpTransUser.getParentGuid()); ## ${className}.setCustomsCode(cacpTransUser.getCustomsCode()); ## ${className}.setStatus(0); ${className}Mapper.insert(${className}); successNum++; successMsg.append("
" + successNum + "、 " + cacpTransUser.getUserName() + " 导入成功"); } catch (Exception e) { failureNum++; String msg = "
" + failureNum + "、" + cacpTransUser.getUserName() + " 导入失败:"; failureMsg.append(msg + e.getMessage()); log.error(msg, e); } } if (failureNum > 0) { failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); throw new ServiceException(failureMsg.toString()); } else { successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); } return successMsg.toString(); } }