Commit 16ec849f authored by 耿迪迪's avatar 耿迪迪

行业专家申报

parent 8cb5e7b5
package com.zehong.web.controller.specialist;
import java.util.List;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.zehong.common.annotation.Log;
import com.zehong.common.core.controller.BaseController;
import com.zehong.common.core.domain.AjaxResult;
import com.zehong.common.enums.BusinessType;
import com.zehong.system.domain.TProAppInfor;
import com.zehong.system.service.ITProAppInforService;
import com.zehong.common.utils.poi.ExcelUtil;
import com.zehong.common.core.page.TableDataInfo;
/**
* 行业专家库-专家申报Controller
*
* @author zehong
* @date 2024-05-06
*/
@RestController
@RequestMapping("/specialist/info")
public class TProAppInforController extends BaseController
{
@Autowired
private ITProAppInforService tProAppInforService;
/**
* 查询行业专家库-专家申报列表
*/
@PreAuthorize("@ss.hasPermi('specialist:info:list')")
@GetMapping("/list")
public TableDataInfo list(TProAppInfor tProAppInfor)
{
startPage();
List<TProAppInfor> list = tProAppInforService.selectTProAppInforList(tProAppInfor);
return getDataTable(list);
}
/**
* 导出行业专家库-专家申报列表
*/
@PreAuthorize("@ss.hasPermi('specialist:info:export')")
@Log(title = "行业专家库-专家申报", businessType = BusinessType.EXPORT)
@GetMapping("/export")
public AjaxResult export(TProAppInfor tProAppInfor)
{
List<TProAppInfor> list = tProAppInforService.selectTProAppInforList(tProAppInfor);
ExcelUtil<TProAppInfor> util = new ExcelUtil<TProAppInfor>(TProAppInfor.class);
return util.exportExcel(list, "行业专家库-专家申报数据");
}
/**
* 获取行业专家库-专家申报详细信息
*/
@PreAuthorize("@ss.hasPermi('specialist:info:query')")
@GetMapping(value = "/{fProAppInforId}")
public AjaxResult getInfo(@PathVariable("fProAppInforId") Long fProAppInforId)
{
return AjaxResult.success(tProAppInforService.selectTProAppInforById(fProAppInforId));
}
/**
* 新增行业专家库-专家申报
*/
@PreAuthorize("@ss.hasPermi('specialist:info:add')")
@Log(title = "行业专家库-专家申报", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody TProAppInfor tProAppInfor)
{
return toAjax(tProAppInforService.insertTProAppInfor(tProAppInfor));
}
/**
* 修改行业专家库-专家申报
*/
@PreAuthorize("@ss.hasPermi('specialist:info:edit')")
@Log(title = "行业专家库-专家申报", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody TProAppInfor tProAppInfor)
{
return toAjax(tProAppInforService.updateTProAppInfor(tProAppInfor));
}
/**
* 删除行业专家库-专家申报
*/
@PreAuthorize("@ss.hasPermi('specialist:info:remove')")
@Log(title = "行业专家库-专家申报", businessType = BusinessType.DELETE)
@DeleteMapping("/{fProAppInforIds}")
public AjaxResult remove(@PathVariable Long[] fProAppInforIds)
{
return toAjax(tProAppInforService.deleteTProAppInforByIds(fProAppInforIds));
}
/**
* 行业专家申报
* @param fProAppInforId 行业专家主键
* @return
*/
@GetMapping("/reportProAppInfo")
public AjaxResult reportProAppInfo(Long fProAppInforId){
try{
return toAjax(tProAppInforService.reportProAppInfo(fProAppInforId));
}catch (Exception e){
logger.error("行业专家申报接口异常=====",e);
return AjaxResult.error("行业专家申报接口异常");
}
}
}
...@@ -127,6 +127,13 @@ ...@@ -127,6 +127,13 @@
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
</dependency> </dependency>
<!--httpclient-->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
</dependencies> </dependencies>
</project> </project>
\ No newline at end of file
package com.zehong.common.utils;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;
/**
* @author geng
* 上报市局实体类组装工具类
*/
public class GovernmentDataCopyUtil {
/**
* 信息拷贝
* @param source 源
* @param target 目标对象
*/
public static void copyObjectInfo(Object source,Object target) throws IllegalAccessException {
Field[] fields = source.getClass().getDeclaredFields();
Map<String,Field> targetMap = fieldsToMap(target.getClass().getDeclaredFields());
for(Field field : fields){
field.setAccessible(true);
String name = field.getName();
String targetName = Character.toLowerCase(name.charAt(1)) + name.substring(2);
if(targetMap.containsKey(targetName)){
Object value = field.get(source);
if(null != value){
targetMap.get(targetName).set(target,value);
}
}
}
}
/**
* field[]数组转map
* @param fields 属性数组
* @return map
*/
private static Map<String, Field> fieldsToMap(Field[] fields){
Map<String, Field> hashMap = new HashMap<>();
for (Field field : fields) {
//打开私有访问
field.setAccessible(true);
String name = field.getName();
hashMap.put(name, field);
}
return hashMap;
}
}
package com.zehong.common.utils;
import com.alibaba.fastjson.JSONObject;
import com.zehong.common.core.redis.RedisCache;
import com.zehong.common.exception.CustomException;
import com.zehong.common.utils.http.HttpClientUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@Component
public class GovernmentDataUtil {
@Resource
private RedisCache redisCache;
@Value("${zhengfu.appId}")
private String appId;
@Value("${zhengfu.appSecret}")
private String appSecret;
@Value("${zhengfu.tokenUrl}")
private String tokenUrl;
@Value("${zhengfu.apiUrl}")
private String apiUrl;
/**
* 获取token
* @return token
* @throws Exception
*/
public String getToken()throws Exception{
String token = redisCache.getCacheObject("apiToken");
if(token!=null){
token = getNewToken();
}
return token;
}
/**
* 获取接口参数
* @return dataInfo
* @throws Exception
*/
public JSONObject getInfo(String domain, String methodType, Map<String,Object> map)throws Exception{
String token = getToken();
JSONObject param = new JSONObject();
param.put("domain", domain);
param.put("method", methodType);
param.put("condition", map);
Map<String,Object> head = new HashMap<>();
head.put("authorization",token);
String result = HttpClientUtils.doPost(apiUrl,param.toJSONString(),head);
if(StringUtils.isEmpty(result)) throw new CustomException("获取市局数据失败!");
return JSONObject.parseObject(result);
}
/**
* 上传数据
* @param methodType
* @param list
* @return
* @throws Exception
*/
public JSONObject setInfo(String domain, String methodType, List list)throws Exception{
String token = getToken();
JSONObject param = new JSONObject();
param.put("domain", domain);
param.put("method", methodType);
param.put("data", list);
Map<String,Object> head = new HashMap<>();
head.put("authorization",token);
String result = HttpClientUtils.doPost(apiUrl,param.toJSONString(),head);
if(StringUtils.isEmpty(result)) throw new CustomException("上传市局数据失败!");
return JSONObject.parseObject(result);
}
/**
* 刷新token
* @return token
* @throws Exception
*/
public String getNewToken()throws Exception{
JSONObject param = new JSONObject();
param.put("appId",appId);
param.put("appSecret",appSecret);
String result = HttpClientUtils.doPost(tokenUrl,param.toJSONString(),null);
if(StringUtils.isEmpty(result)) throw new CustomException("获取上报市局token接口失败!");
JSONObject resultJson = JSONObject.parseObject(result);
redisCache.setCacheObject("apiToken", resultJson.getJSONObject("data").getString("accessToken"),7000, TimeUnit.SECONDS);
return resultJson.getJSONObject("data").getString("accessToken");
}
}
package com.zehong.common.utils.http;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class HttpClientUtils {
/**
* get请求
* @param url 请求地址
* @param param 请求参数
* @headData headData 请求头
* @return String
*/
public static String doGet(String url, Map<String, Object> param, Map<String, Object> headData) throws URISyntaxException, IOException {
//创建默认的httpclient实例
CloseableHttpClient httpClient = HttpClients.createDefault();
//响应对象
CloseableHttpResponse response = null;
//返回结果
String resultStr = "";
try {
URIBuilder builder = new URIBuilder(url);
if (param != null) {
for (String key : param.keySet()) {
builder.addParameter(key, String.valueOf(param.get(key)));
}
}
URI uri = builder.build();
HttpGet httpGet = new HttpGet(uri);
//携带head数据
if (headData != null && headData.size() > 0) {
for (String key : headData.keySet()) {
httpGet.setHeader(key, (String) headData.get(key));
}
}
response = httpClient.execute(httpGet);
if (response!=null && response.getStatusLine().getStatusCode() == 200){
HttpEntity httpEntity = response.getEntity();
resultStr = EntityUtils.toString(httpEntity,"UTF-8");
}
}finally {
close(response,httpClient);
}
return resultStr;
}
/**
* post请求
* @param url 请求地址
* @param param 请求参数
* @param headData 请求头
* @return String
* @throws IOException 异常信息
*/
public static String doPost(String url, Map<String, Object> param, Map<String, Object> headData) throws IOException {
CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpResponse response = null;
String resultString = "";
try {
HttpPost httpPost = new HttpPost(url);
if (param != null) {
List<NameValuePair> formParams = new ArrayList<>();
for (String key : param.keySet()) {
formParams.add(new BasicNameValuePair(key, String.valueOf(param.get(key))));
}
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formParams,"UTF-8");
httpPost.setEntity(entity);
}
//携带head数据
if (headData != null && headData.size() > 0) {
for (String key : headData.keySet()) {
httpPost.setHeader(key, (String) headData.get(key));
}
}
//执行post请求
response = httpClient.execute(httpPost);
if (response!=null && response.getStatusLine().getStatusCode() == 200) {
resultString = EntityUtils.toString(response.getEntity(),"UTF-8");
}
}finally {
close(response,httpClient);
}
return resultString;
}
/**
* body传参
* @param url 请求地址
* @param param body参数
* @param headData 请求头
* @return String
* @throws IOException 异常
*/
public static String doPost(String url,String param,Map<String, Object> headData) throws IOException {
CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpResponse response = null;
String resultString = "";
try {
HttpPost httpPost = new HttpPost(url);
if (param != null) {
httpPost.setEntity(new StringEntity(param, ContentType.create("application/json", "utf-8")));
}
//携带head数据
if (headData != null && headData.size() > 0) {
for (String key : headData.keySet()) {
httpPost.setHeader(key, (String) headData.get(key));
}
}
//执行post请求
response = httpClient.execute(httpPost);
if (response!=null && response.getStatusLine().getStatusCode() == 200) {
resultString = EntityUtils.toString(response.getEntity(),"UTF-8");
}
}finally {
close(response,httpClient);
}
return resultString;
}
/**
* 关闭客户端
* @param response 返回实体
* @param httpClient 客户端
* @throws IOException 异常信息
*/
private static void close( CloseableHttpResponse response,CloseableHttpClient httpClient) throws IOException {
if (response != null) {
response.close();
}
httpClient.close();
}
public static String uploadFile (String url,HttpEntity entity) throws IOException {
CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpResponse response = null;
String result = "";
try {
// 路径自定义
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(entity);
// 执行提交
response = httpClient.execute(httpPost);
HttpEntity responseEntity = response.getEntity();
if (responseEntity != null) {
// 将响应内容转换为字符串
result = EntityUtils.toString(responseEntity, Charset.forName("UTF-8"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
close(response,httpClient);
}
return result;
}
}
package com.zehong.system.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zehong.common.annotation.Excel;
import com.zehong.common.core.domain.BaseEntity;
/**
* 行业专家库-专家申报对象 t_pro_app_infor
*
* @author zehong
* @date 2024-05-06
*/
public class TProAppInfor extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** id */
private Long fProAppInforId;
/** 数据限定 */
@Excel(name = "数据限定")
private String fDeptCode;
/** 数据来源-G政府:E企业 */
@Excel(name = "数据来源",dictType = "t_special_data_source")
private String fSource;
/** 人员编码 */
@Excel(name = "人员编码")
private String fCode;
/** 专家姓名 */
@Excel(name = "专家姓名")
private String fName;
/** 身份证号 */
@Excel(name = "身份证号")
private String fIdNo;
/** 性别:1-男性,2-女性 */
@Excel(name = "性别",dictType = "t_sex")
private String fSex;
/** 出生日期 */
@Excel(name = "出生日期")
private String fBirthday;
/** 邮箱 */
@Excel(name = "邮箱")
private String fEmail;
/** 联系电话 */
@Excel(name = "联系电话")
private String fPhone;
/** 文化程度 */
@Excel(name = "文化程度")
private String fEducation;
/** 毕业院校 */
@Excel(name = "毕业院校")
private String fGraduationSchool;
/** 所属专业 */
@Excel(name = "所属专业")
private String fMajor;
/** 毕业时间 */
@Excel(name = "毕业时间")
private String fGraduationTime;
/** 工作单位编码 */
@Excel(name = "工作单位编码")
private String fEntUuid;
/** 工作单位名称 */
@Excel(name = "工作单位名称")
private String fWorkUnit;
/** 参加工作时间 */
@Excel(name = "参加工作时间")
private String fWorkTime;
/** 所在部门 */
@Excel(name = "所在部门")
private String fDepartment;
/** 职务 */
@Excel(name = "职务")
private String fDuties;
/** 专业技术职称 */
@Excel(name = "专业技术职称")
private String fMajorTitle;
/** 现从事专业 */
@Excel(name = "现从事专业")
private String fMajorNow;
/** 从事专业工作年限 */
@Excel(name = "从事专业工作年限")
private Long fMajorLife;
/** 从事行业燃气种类 可以是多个,逗号分割
03-0100-0101:管道燃气
03-0100-0102:液化天然气(LNG)
03-0100-0103:压缩天然气(CNG)
03-0200:液化石油气(LPG)
03-0300:人工煤气
03-0400:液化石油气混空气
03-0500:沼气
03-0600:氢气 */
@Excel(name = "从事行业燃气种类",dictType = "t_gas_type")
private String fGasType;
/** 擅长工作领域,可以是多个,逗号分割 */
@Excel(name = "擅长工作领域")
private String fGoodArea;
/** 相关学习工作经历及工作业绩 */
@Excel(name = "相关学习工作经历及工作业绩")
private String fLearningWorkExperience;
/** 所在地区 */
@Excel(name = "所在地区")
private String fArea;
/** 删除标记,0-可用,1-已删除 */
@Excel(name = "删除标记",readConverterExp = "0=可用,1=已删除")
private Long fDeleteFlag;
/** 市局燃气主管部门意见 */
@Excel(name = "市局燃气主管部门意见")
private String fCRecord;
/** 省级燃气主管部门意见 */
@Excel(name = "省级燃气主管部门意见")
private String fPRecord;
/** 照片 */
@Excel(name = "照片")
private String fPicture;
/** 最后修改时间 */
@Excel(name = "最后修改时间")
private String fUpdateTime;
/** 是否省级专家 1 是,0 不是 */
@Excel(name = "是否省级专家",dictType = "t_province_mark")
private String fThisProvinceFlag;
/** 是否有效:0 有效,1 无效 */
@Excel(name = "是否有效",dictType = "t_valid_type")
private Long fValidType;
/** 申报状态:1 已上报,2 未上报,3 已通过,4未通过 */
@Excel(name = "申报状态",dictType = "t_rep_status")
private Long fRepStatus;
/** 申报时间 */
@Excel(name = "申报时间")
private String fRepDate;
public void setfProAppInforId(Long fProAppInforId)
{
this.fProAppInforId = fProAppInforId;
}
public Long getfProAppInforId()
{
return fProAppInforId;
}
public void setfDeptCode(String fDeptCode)
{
this.fDeptCode = fDeptCode;
}
public String getfDeptCode()
{
return fDeptCode;
}
public void setfSource(String fSource)
{
this.fSource = fSource;
}
public String getfSource()
{
return fSource;
}
public void setfCode(String fCode)
{
this.fCode = fCode;
}
public String getfCode()
{
return fCode;
}
public void setfName(String fName)
{
this.fName = fName;
}
public String getfName()
{
return fName;
}
public void setfIdNo(String fIdNo)
{
this.fIdNo = fIdNo;
}
public String getfIdNo()
{
return fIdNo;
}
public void setfSex(String fSex)
{
this.fSex = fSex;
}
public String getfSex()
{
return fSex;
}
public void setfBirthday(String fBirthday)
{
this.fBirthday = fBirthday;
}
public String getfBirthday()
{
return fBirthday;
}
public void setfEmail(String fEmail)
{
this.fEmail = fEmail;
}
public String getfEmail()
{
return fEmail;
}
public void setfPhone(String fPhone)
{
this.fPhone = fPhone;
}
public String getfPhone()
{
return fPhone;
}
public void setfEducation(String fEducation)
{
this.fEducation = fEducation;
}
public String getfEducation()
{
return fEducation;
}
public void setfGraduationSchool(String fGraduationSchool)
{
this.fGraduationSchool = fGraduationSchool;
}
public String getfGraduationSchool()
{
return fGraduationSchool;
}
public void setfMajor(String fMajor)
{
this.fMajor = fMajor;
}
public String getfMajor()
{
return fMajor;
}
public void setfGraduationTime(String fGraduationTime)
{
this.fGraduationTime = fGraduationTime;
}
public String getfGraduationTime()
{
return fGraduationTime;
}
public void setfEntUuid(String fEntUuid)
{
this.fEntUuid = fEntUuid;
}
public String getfEntUuid()
{
return fEntUuid;
}
public void setfWorkUnit(String fWorkUnit)
{
this.fWorkUnit = fWorkUnit;
}
public String getfWorkUnit()
{
return fWorkUnit;
}
public void setfWorkTime(String fWorkTime)
{
this.fWorkTime = fWorkTime;
}
public String getfWorkTime()
{
return fWorkTime;
}
public void setfDepartment(String fDepartment)
{
this.fDepartment = fDepartment;
}
public String getfDepartment()
{
return fDepartment;
}
public void setfDuties(String fDuties)
{
this.fDuties = fDuties;
}
public String getfDuties()
{
return fDuties;
}
public void setfMajorTitle(String fMajorTitle)
{
this.fMajorTitle = fMajorTitle;
}
public String getfMajorTitle()
{
return fMajorTitle;
}
public void setfMajorNow(String fMajorNow)
{
this.fMajorNow = fMajorNow;
}
public String getfMajorNow()
{
return fMajorNow;
}
public void setfMajorLife(Long fMajorLife)
{
this.fMajorLife = fMajorLife;
}
public Long getfMajorLife()
{
return fMajorLife;
}
public void setfGasType(String fGasType)
{
this.fGasType = fGasType;
}
public String getfGasType()
{
return fGasType;
}
public void setfGoodArea(String fGoodArea)
{
this.fGoodArea = fGoodArea;
}
public String getfGoodArea()
{
return fGoodArea;
}
public void setfLearningWorkExperience(String fLearningWorkExperience)
{
this.fLearningWorkExperience = fLearningWorkExperience;
}
public String getfLearningWorkExperience()
{
return fLearningWorkExperience;
}
public void setfArea(String fArea)
{
this.fArea = fArea;
}
public String getfArea()
{
return fArea;
}
public void setfDeleteFlag(Long fDeleteFlag)
{
this.fDeleteFlag = fDeleteFlag;
}
public Long getfDeleteFlag()
{
return fDeleteFlag;
}
public void setfCRecord(String fCRecord)
{
this.fCRecord = fCRecord;
}
public String getfCRecord()
{
return fCRecord;
}
public void setfPRecord(String fPRecord)
{
this.fPRecord = fPRecord;
}
public String getfPRecord()
{
return fPRecord;
}
public void setfPicture(String fPicture)
{
this.fPicture = fPicture;
}
public String getfPicture()
{
return fPicture;
}
public void setfUpdateTime(String fUpdateTime)
{
this.fUpdateTime = fUpdateTime;
}
public String getfUpdateTime()
{
return fUpdateTime;
}
public void setfThisProvinceFlag(String fThisProvinceFlag)
{
this.fThisProvinceFlag = fThisProvinceFlag;
}
public String getfThisProvinceFlag()
{
return fThisProvinceFlag;
}
public void setfValidType(Long fValidType)
{
this.fValidType = fValidType;
}
public Long getfValidType()
{
return fValidType;
}
public void setfRepStatus(Long fRepStatus)
{
this.fRepStatus = fRepStatus;
}
public Long getfRepStatus()
{
return fRepStatus;
}
public void setfRepDate(String fRepDate)
{
this.fRepDate = fRepDate;
}
public String getfRepDate()
{
return fRepDate;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("fProAppInforId", getfProAppInforId())
.append("fDeptCode", getfDeptCode())
.append("fSource", getfSource())
.append("fCode", getfCode())
.append("fName", getfName())
.append("fIdNo", getfIdNo())
.append("fSex", getfSex())
.append("fBirthday", getfBirthday())
.append("fEmail", getfEmail())
.append("fPhone", getfPhone())
.append("fEducation", getfEducation())
.append("fGraduationSchool", getfGraduationSchool())
.append("fMajor", getfMajor())
.append("fGraduationTime", getfGraduationTime())
.append("fEntUuid", getfEntUuid())
.append("fWorkUnit", getfWorkUnit())
.append("fWorkTime", getfWorkTime())
.append("fDepartment", getfDepartment())
.append("fDuties", getfDuties())
.append("fMajorTitle", getfMajorTitle())
.append("fMajorNow", getfMajorNow())
.append("fMajorLife", getfMajorLife())
.append("fGasType", getfGasType())
.append("fGoodArea", getfGoodArea())
.append("fLearningWorkExperience", getfLearningWorkExperience())
.append("fArea", getfArea())
.append("fDeleteFlag", getfDeleteFlag())
.append("fCRecord", getfCRecord())
.append("fPRecord", getfPRecord())
.append("fPicture", getfPicture())
.append("fUpdateTime", getfUpdateTime())
.append("fThisProvinceFlag", getfThisProvinceFlag())
.append("fValidType", getfValidType())
.append("fRepStatus", getfRepStatus())
.append("fRepDate", getfRepDate())
.toString();
}
}
package com.zehong.system.domain.vo;
public class ProAppInfoVo {
/** 数据限定 */
private String deptCode;
/** 数据来源-G政府:E企业 */
private String source;
/** 人员编码 */
private String code;
/** 专家姓名 */
private String name;
/** 身份证号 */
private String idNo;
/** 性别:1-男性,2-女性 */
private String sex;
/** 出生日期 */
private String birthday;
/** 邮箱 */
private String email;
/** 联系电话 */
private String phone;
/** 文化程度 */
private String education;
/** 毕业院校 */
private String graduationSchool;
/** 所属专业 */
private String major;
/** 毕业时间 */
private String graduationTime;
/** 工作单位编码 */
private String entUuid;
/** 工作单位名称 */
private String workUnit;
/** 参加工作时间 */
private String workTime;
/** 所在部门 */
private String department;
/** 职务 */
private String duties;
/** 专业技术职称 */
private String majorTitle;
/** 现从事专业 */
private String majorNow;
/** 从事专业工作年限 */
private Long majorLife;
/** 从事行业燃气种类 可以是多个,逗号分割
03-0100-0101:管道燃气
03-0100-0102:液化天然气(LNG)
03-0100-0103:压缩天然气(CNG)
03-0200:液化石油气(LPG)
03-0300:人工煤气
03-0400:液化石油气混空气
03-0500:沼气
03-0600:氢气 */
private String gasType;
/** 擅长工作领域,可以是多个,逗号分割 */
private String goodArea;
/** 相关学习工作经历及工作业绩 */
private String learningWorkExperience;
/** 所在地区 */
private String area;
/** 删除标记,0-可用,1-已删除 */
private Long deleteFlag;
/** 市局燃气主管部门意见 */
private String cRecord;
/** 省级燃气主管部门意见 */
private String pRecord;
/** 照片 */
private String picture;
/** 最后修改时间 */
private String updateTime;
/** 是否省级专家 1 是,0 不是 */
private String thisProvinceFlag;
public String getDeptCode() {
return deptCode;
}
public void setDeptCode(String deptCode) {
this.deptCode = deptCode;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIdNo() {
return idNo;
}
public void setIdNo(String idNo) {
this.idNo = idNo;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEducation() {
return education;
}
public void setEducation(String education) {
this.education = education;
}
public String getGraduationSchool() {
return graduationSchool;
}
public void setGraduationSchool(String graduationSchool) {
this.graduationSchool = graduationSchool;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public String getGraduationTime() {
return graduationTime;
}
public void setGraduationTime(String graduationTime) {
this.graduationTime = graduationTime;
}
public String getEntUuid() {
return entUuid;
}
public void setEntUuid(String entUuid) {
this.entUuid = entUuid;
}
public String getWorkUnit() {
return workUnit;
}
public void setWorkUnit(String workUnit) {
this.workUnit = workUnit;
}
public String getWorkTime() {
return workTime;
}
public void setWorkTime(String workTime) {
this.workTime = workTime;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
public String getDuties() {
return duties;
}
public void setDuties(String duties) {
this.duties = duties;
}
public String getMajorTitle() {
return majorTitle;
}
public void setMajorTitle(String majorTitle) {
this.majorTitle = majorTitle;
}
public String getMajorNow() {
return majorNow;
}
public void setMajorNow(String majorNow) {
this.majorNow = majorNow;
}
public Long getMajorLife() {
return majorLife;
}
public void setMajorLife(Long majorLife) {
this.majorLife = majorLife;
}
public String getGasType() {
return gasType;
}
public void setGasType(String gasType) {
this.gasType = gasType;
}
public String getGoodArea() {
return goodArea;
}
public void setGoodArea(String goodArea) {
this.goodArea = goodArea;
}
public String getLearningWorkExperience() {
return learningWorkExperience;
}
public void setLearningWorkExperience(String learningWorkExperience) {
this.learningWorkExperience = learningWorkExperience;
}
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area;
}
public Long getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Long deleteFlag) {
this.deleteFlag = deleteFlag;
}
public String getcRecord() {
return cRecord;
}
public void setcRecord(String cRecord) {
this.cRecord = cRecord;
}
public String getpRecord() {
return pRecord;
}
public void setpRecord(String pRecord) {
this.pRecord = pRecord;
}
public String getPicture() {
return picture;
}
public void setPicture(String picture) {
this.picture = picture;
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime;
}
public String getThisProvinceFlag() {
return thisProvinceFlag;
}
public void setThisProvinceFlag(String thisProvinceFlag) {
this.thisProvinceFlag = thisProvinceFlag;
}
@Override
public String toString() {
return "ProAppInfoVo{" +
"deptCode='" + deptCode + '\'' +
", source='" + source + '\'' +
", code='" + code + '\'' +
", name='" + name + '\'' +
", idNo='" + idNo + '\'' +
", sex='" + sex + '\'' +
", birthday='" + birthday + '\'' +
", email='" + email + '\'' +
", phone='" + phone + '\'' +
", education='" + education + '\'' +
", graduationSchool='" + graduationSchool + '\'' +
", major='" + major + '\'' +
", graduationTime='" + graduationTime + '\'' +
", entUuid='" + entUuid + '\'' +
", workUnit='" + workUnit + '\'' +
", workTime='" + workTime + '\'' +
", department='" + department + '\'' +
", duties='" + duties + '\'' +
", majorTitle='" + majorTitle + '\'' +
", majorNow='" + majorNow + '\'' +
", majorLife=" + majorLife +
", gasType='" + gasType + '\'' +
", goodArea='" + goodArea + '\'' +
", learningWorkExperience='" + learningWorkExperience + '\'' +
", area='" + area + '\'' +
", deleteFlag=" + deleteFlag +
", cRecord='" + cRecord + '\'' +
", pRecord='" + pRecord + '\'' +
", picture='" + picture + '\'' +
", updateTime='" + updateTime + '\'' +
", thisProvinceFlag='" + thisProvinceFlag + '\'' +
'}';
}
}
package com.zehong.system.mapper;
import java.util.List;
import com.zehong.system.domain.TProAppInfor;
/**
* 行业专家库-专家申报Mapper接口
*
* @author zehong
* @date 2024-05-06
*/
public interface TProAppInforMapper
{
/**
* 查询行业专家库-专家申报
*
* @param fProAppInforId 行业专家库-专家申报ID
* @return 行业专家库-专家申报
*/
public TProAppInfor selectTProAppInforById(Long fProAppInforId);
/**
* 查询行业专家库-专家申报列表
*
* @param tProAppInfor 行业专家库-专家申报
* @return 行业专家库-专家申报集合
*/
public List<TProAppInfor> selectTProAppInforList(TProAppInfor tProAppInfor);
/**
* 新增行业专家库-专家申报
*
* @param tProAppInfor 行业专家库-专家申报
* @return 结果
*/
public int insertTProAppInfor(TProAppInfor tProAppInfor);
/**
* 修改行业专家库-专家申报
*
* @param tProAppInfor 行业专家库-专家申报
* @return 结果
*/
public int updateTProAppInfor(TProAppInfor tProAppInfor);
/**
* 删除行业专家库-专家申报
*
* @param fProAppInforId 行业专家库-专家申报ID
* @return 结果
*/
public int deleteTProAppInforById(Long fProAppInforId);
/**
* 批量删除行业专家库-专家申报
*
* @param fProAppInforIds 需要删除的数据ID
* @return 结果
*/
public int deleteTProAppInforByIds(Long[] fProAppInforIds);
}
package com.zehong.system.service;
import java.util.List;
import com.zehong.system.domain.TProAppInfor;
/**
* 行业专家库-专家申报Service接口
*
* @author zehong
* @date 2024-05-06
*/
public interface ITProAppInforService
{
/**
* 查询行业专家库-专家申报
*
* @param fProAppInforId 行业专家库-专家申报ID
* @return 行业专家库-专家申报
*/
public TProAppInfor selectTProAppInforById(Long fProAppInforId);
/**
* 查询行业专家库-专家申报列表
*
* @param tProAppInfor 行业专家库-专家申报
* @return 行业专家库-专家申报集合
*/
public List<TProAppInfor> selectTProAppInforList(TProAppInfor tProAppInfor);
/**
* 新增行业专家库-专家申报
*
* @param tProAppInfor 行业专家库-专家申报
* @return 结果
*/
public int insertTProAppInfor(TProAppInfor tProAppInfor);
/**
* 修改行业专家库-专家申报
*
* @param tProAppInfor 行业专家库-专家申报
* @return 结果
*/
public int updateTProAppInfor(TProAppInfor tProAppInfor);
/**
* 批量删除行业专家库-专家申报
*
* @param fProAppInforIds 需要删除的行业专家库-专家申报ID
* @return 结果
*/
public int deleteTProAppInforByIds(Long[] fProAppInforIds);
/**
* 删除行业专家库-专家申报信息
*
* @param fProAppInforId 行业专家库-专家申报ID
* @return 结果
*/
public int deleteTProAppInforById(Long fProAppInforId);
/**
* 专家申报
* @param fProAppInforId 专家数据
* @return
*/
int reportProAppInfo(Long fProAppInforId) throws Exception;
}
package com.zehong.system.service.impl;
import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.alibaba.fastjson.JSONObject;
import com.zehong.common.exception.CustomException;
import com.zehong.common.utils.GovernmentDataCopyUtil;
import com.zehong.common.utils.GovernmentDataUtil;
import com.zehong.system.domain.vo.ProAppInfoVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zehong.system.mapper.TProAppInforMapper;
import com.zehong.system.domain.TProAppInfor;
import com.zehong.system.service.ITProAppInforService;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
/**
* 行业专家库-专家申报Service业务层处理
*
* @author zehong
* @date 2024-05-06
*/
@Service
public class TProAppInforServiceImpl implements ITProAppInforService {
private static final Logger log = LoggerFactory.getLogger(TProAppInforServiceImpl.class);
@Autowired
private TProAppInforMapper tProAppInforMapper;
@Resource
private GovernmentDataUtil governmentDataUtil;
/**
* 查询行业专家库-专家申报
*
* @param fProAppInforId 行业专家库-专家申报ID
* @return 行业专家库-专家申报
*/
@Override
public TProAppInfor selectTProAppInforById(Long fProAppInforId)
{
return tProAppInforMapper.selectTProAppInforById(fProAppInforId);
}
/**
* 查询行业专家库-专家申报列表
*
* @param tProAppInfor 行业专家库-专家申报
* @return 行业专家库-专家申报
*/
@Override
public List<TProAppInfor> selectTProAppInforList(TProAppInfor tProAppInfor)
{
return tProAppInforMapper.selectTProAppInforList(tProAppInfor);
}
/**
* 新增行业专家库-专家申报
*
* @param tProAppInfor 行业专家库-专家申报
* @return 结果
*/
@Override
public int insertTProAppInfor(TProAppInfor tProAppInfor)
{
tProAppInfor.setfUpdateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
return tProAppInforMapper.insertTProAppInfor(tProAppInfor);
}
/**
* 修改行业专家库-专家申报
*
* @param tProAppInfor 行业专家库-专家申报
* @return 结果
*/
@Override
public int updateTProAppInfor(TProAppInfor tProAppInfor)
{
tProAppInfor.setfUpdateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
return tProAppInforMapper.updateTProAppInfor(tProAppInfor);
}
/**
* 批量删除行业专家库-专家申报
*
* @param fProAppInforIds 需要删除的行业专家库-专家申报ID
* @return 结果
*/
@Override
public int deleteTProAppInforByIds(Long[] fProAppInforIds)
{
return tProAppInforMapper.deleteTProAppInforByIds(fProAppInforIds);
}
/**
* 删除行业专家库-专家申报信息
*
* @param fProAppInforId 行业专家库-专家申报ID
* @return 结果
*/
@Override
public int deleteTProAppInforById(Long fProAppInforId)
{
return tProAppInforMapper.deleteTProAppInforById(fProAppInforId);
}
/**
* 专家申报
* @param fProAppInforId 专家数据
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public int reportProAppInfo(Long fProAppInforId) throws Exception {
TProAppInfor updateInfo = new TProAppInfor();
updateInfo.setfProAppInforId(fProAppInforId);
updateInfo.setfRepStatus(Long.parseLong("1"));
updateInfo.setfRepDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
int result = tProAppInforMapper.updateTProAppInfor(updateInfo);
TProAppInfor appInfor = tProAppInforMapper.selectTProAppInforById(fProAppInforId);
ProAppInfoVo proAppInfoVo = new ProAppInfoVo();
GovernmentDataCopyUtil.copyObjectInfo(appInfor,proAppInfoVo);
List<ProAppInfoVo> data = new ArrayList<>();
data.add(proAppInfoVo);
JSONObject reportResult = governmentDataUtil.setInfo("professor/application/information","WRITE",data);
log.info("专家申报结果===================" + reportResult.toJSONString());
if(!"0".equals(reportResult.getString("resultCode"))) throw new CustomException("行业专家上报市局接口失败");
return result;
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zehong.system.mapper.TProAppInforMapper">
<resultMap type="TProAppInfor" id="TProAppInforResult">
<result property="fProAppInforId" column="f_pro_app_infor_id" />
<result property="fDeptCode" column="f_dept_code" />
<result property="fSource" column="f_source" />
<result property="fCode" column="f_code" />
<result property="fName" column="f_name" />
<result property="fIdNo" column="f_id_no" />
<result property="fSex" column="f_sex" />
<result property="fBirthday" column="f_birthday" />
<result property="fEmail" column="f_email" />
<result property="fPhone" column="f_phone" />
<result property="fEducation" column="f_education" />
<result property="fGraduationSchool" column="f_graduation_school" />
<result property="fMajor" column="f_major" />
<result property="fGraduationTime" column="f_graduation_time" />
<result property="fEntUuid" column="f_ent_uuid" />
<result property="fWorkUnit" column="f_work_unit" />
<result property="fWorkTime" column="f_work_time" />
<result property="fDepartment" column="f_department" />
<result property="fDuties" column="f_duties" />
<result property="fMajorTitle" column="f_major_title" />
<result property="fMajorNow" column="f_major_now" />
<result property="fMajorLife" column="f_major_life" />
<result property="fGasType" column="f_gas_type" />
<result property="fGoodArea" column="f_good_area" />
<result property="fLearningWorkExperience" column="f_learning_work_experience" />
<result property="fArea" column="f_area" />
<result property="fDeleteFlag" column="f_delete_flag" />
<result property="fCRecord" column="f_c_record" />
<result property="fPRecord" column="f_p_record" />
<result property="fPicture" column="f_picture" />
<result property="fUpdateTime" column="f_update_time" />
<result property="fThisProvinceFlag" column="f_this_province_flag" />
<result property="fValidType" column="f_valid_type" />
<result property="fRepStatus" column="f_rep_status" />
<result property="fRepDate" column="f_rep_date" />
</resultMap>
<sql id="selectTProAppInforVo">
select f_pro_app_infor_id, f_dept_code, f_source, f_code, f_name, f_id_no, f_sex, f_birthday, f_email, f_phone, f_education, f_graduation_school, f_major, f_graduation_time, f_ent_uuid, f_work_unit, f_work_time, f_department, f_duties, f_major_title, f_major_now, f_major_life, f_gas_type, f_good_area, f_learning_work_experience, f_area, f_delete_flag, f_c_record, f_p_record, f_picture, f_update_time, f_this_province_flag, f_valid_type, f_rep_status, f_rep_date from t_pro_app_infor
</sql>
<select id="selectTProAppInforList" parameterType="TProAppInfor" resultMap="TProAppInforResult">
<include refid="selectTProAppInforVo"/>
<where>
<if test="fDeptCode != null and fDeptCode != ''"> and f_dept_code = #{fDeptCode}</if>
<if test="fSource != null and fSource != ''"> and f_source = #{fSource}</if>
<if test="fCode != null and fCode != ''"> and f_code like concat('%', #{fCode}, '%')</if>
<if test="fName != null and fName != ''"> and f_name like concat('%', #{fName}, '%')</if>
<if test="fIdNo != null and fIdNo != ''"> and f_id_no like concat('%', #{fIdNo}, '%')</if>
<if test="fSex != null and fSex != ''"> and f_sex = #{fSex}</if>
<if test="fBirthday != null and fBirthday != ''"> and f_birthday = #{fBirthday}</if>
<if test="fEmail != null and fEmail != ''"> and f_email = #{fEmail}</if>
<if test="fPhone != null and fPhone != ''"> and f_phone = #{fPhone}</if>
<if test="fEducation != null and fEducation != ''"> and f_education = #{fEducation}</if>
<if test="fGraduationSchool != null and fGraduationSchool != ''"> and f_graduation_school = #{fGraduationSchool}</if>
<if test="fMajor != null and fMajor != ''"> and f_major = #{fMajor}</if>
<if test="fGraduationTime != null and fGraduationTime != ''"> and f_graduation_time = #{fGraduationTime}</if>
<if test="fEntUuid != null and fEntUuid != ''"> and f_ent_uuid = #{fEntUuid}</if>
<if test="fWorkUnit != null and fWorkUnit != ''"> and f_work_unit = #{fWorkUnit}</if>
<if test="fWorkTime != null and fWorkTime != ''"> and f_work_time = #{fWorkTime}</if>
<if test="fDepartment != null and fDepartment != ''"> and f_department = #{fDepartment}</if>
<if test="fDuties != null and fDuties != ''"> and f_duties = #{fDuties}</if>
<if test="fMajorTitle != null and fMajorTitle != ''"> and f_major_title = #{fMajorTitle}</if>
<if test="fMajorNow != null and fMajorNow != ''"> and f_major_now = #{fMajorNow}</if>
<if test="fMajorLife != null "> and f_major_life = #{fMajorLife}</if>
<if test="fGasType != null and fGasType != ''"> and f_gas_type = #{fGasType}</if>
<if test="fGoodArea != null and fGoodArea != ''"> and f_good_area = #{fGoodArea}</if>
<if test="fLearningWorkExperience != null and fLearningWorkExperience != ''"> and f_learning_work_experience = #{fLearningWorkExperience}</if>
<if test="fArea != null and fArea != ''"> and f_area = #{fArea}</if>
<if test="fDeleteFlag != null "> and f_delete_flag = #{fDeleteFlag}</if>
<if test="fCRecord != null and fCRecord != ''"> and f_c_record = #{fCRecord}</if>
<if test="fPRecord != null and fPRecord != ''"> and f_p_record = #{fPRecord}</if>
<if test="fPicture != null and fPicture != ''"> and f_picture = #{fPicture}</if>
<if test="fUpdateTime != null and fUpdateTime != ''"> and f_update_time = #{fUpdateTime}</if>
<if test="fThisProvinceFlag != null and fThisProvinceFlag != ''"> and f_this_province_flag = #{fThisProvinceFlag}</if>
<if test="fValidType != null "> and f_valid_type = #{fValidType}</if>
<if test="fRepStatus != null "> and f_rep_status = #{fRepStatus}</if>
<if test="fRepDate != null and fRepDate != ''"> and f_rep_date = #{fRepDate}</if>
</where>
ORDER BY f_update_time DESC
</select>
<select id="selectTProAppInforById" parameterType="Long" resultMap="TProAppInforResult">
<include refid="selectTProAppInforVo"/>
where f_pro_app_infor_id = #{fProAppInforId}
</select>
<insert id="insertTProAppInfor" parameterType="TProAppInfor" useGeneratedKeys="true" keyProperty="fProAppInforId">
insert into t_pro_app_infor
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="fDeptCode != null and fDeptCode != ''">f_dept_code,</if>
<if test="fSource != null and fSource != ''">f_source,</if>
<if test="fCode != null and fCode != ''">f_code,</if>
<if test="fName != null and fName != ''">f_name,</if>
<if test="fIdNo != null and fIdNo != ''">f_id_no,</if>
<if test="fSex != null">f_sex,</if>
<if test="fBirthday != null">f_birthday,</if>
<if test="fEmail != null">f_email,</if>
<if test="fPhone != null and fPhone != ''">f_phone,</if>
<if test="fEducation != null">f_education,</if>
<if test="fGraduationSchool != null">f_graduation_school,</if>
<if test="fMajor != null and fMajor != ''">f_major,</if>
<if test="fGraduationTime != null">f_graduation_time,</if>
<if test="fEntUuid != null">f_ent_uuid,</if>
<if test="fWorkUnit != null">f_work_unit,</if>
<if test="fWorkTime != null">f_work_time,</if>
<if test="fDepartment != null">f_department,</if>
<if test="fDuties != null">f_duties,</if>
<if test="fMajorTitle != null and fMajorTitle != ''">f_major_title,</if>
<if test="fMajorNow != null and fMajorNow != ''">f_major_now,</if>
<if test="fMajorLife != null">f_major_life,</if>
<if test="fGasType != null and fGasType != ''">f_gas_type,</if>
<if test="fGoodArea != null and fGoodArea != ''">f_good_area,</if>
<if test="fLearningWorkExperience != null">f_learning_work_experience,</if>
<if test="fArea != null and fArea != ''">f_area,</if>
<if test="fDeleteFlag != null">f_delete_flag,</if>
<if test="fCRecord != null">f_c_record,</if>
<if test="fPRecord != null">f_p_record,</if>
<if test="fPicture != null">f_picture,</if>
<if test="fUpdateTime != null">f_update_time,</if>
<if test="fThisProvinceFlag != null">f_this_province_flag,</if>
<if test="fValidType != null">f_valid_type,</if>
<if test="fRepStatus != null">f_rep_status,</if>
<if test="fRepDate != null">f_rep_date,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="fDeptCode != null and fDeptCode != ''">#{fDeptCode},</if>
<if test="fSource != null and fSource != ''">#{fSource},</if>
<if test="fCode != null and fCode != ''">#{fCode},</if>
<if test="fName != null and fName != ''">#{fName},</if>
<if test="fIdNo != null and fIdNo != ''">#{fIdNo},</if>
<if test="fSex != null">#{fSex},</if>
<if test="fBirthday != null">#{fBirthday},</if>
<if test="fEmail != null">#{fEmail},</if>
<if test="fPhone != null and fPhone != ''">#{fPhone},</if>
<if test="fEducation != null">#{fEducation},</if>
<if test="fGraduationSchool != null">#{fGraduationSchool},</if>
<if test="fMajor != null and fMajor != ''">#{fMajor},</if>
<if test="fGraduationTime != null">#{fGraduationTime},</if>
<if test="fEntUuid != null">#{fEntUuid},</if>
<if test="fWorkUnit != null">#{fWorkUnit},</if>
<if test="fWorkTime != null">#{fWorkTime},</if>
<if test="fDepartment != null">#{fDepartment},</if>
<if test="fDuties != null">#{fDuties},</if>
<if test="fMajorTitle != null and fMajorTitle != ''">#{fMajorTitle},</if>
<if test="fMajorNow != null and fMajorNow != ''">#{fMajorNow},</if>
<if test="fMajorLife != null">#{fMajorLife},</if>
<if test="fGasType != null and fGasType != ''">#{fGasType},</if>
<if test="fGoodArea != null and fGoodArea != ''">#{fGoodArea},</if>
<if test="fLearningWorkExperience != null">#{fLearningWorkExperience},</if>
<if test="fArea != null and fArea != ''">#{fArea},</if>
<if test="fDeleteFlag != null">#{fDeleteFlag},</if>
<if test="fCRecord != null">#{fCRecord},</if>
<if test="fPRecord != null">#{fPRecord},</if>
<if test="fPicture != null">#{fPicture},</if>
<if test="fUpdateTime != null">#{fUpdateTime},</if>
<if test="fThisProvinceFlag != null">#{fThisProvinceFlag},</if>
<if test="fValidType != null">#{fValidType},</if>
<if test="fRepStatus != null">#{fRepStatus},</if>
<if test="fRepDate != null">#{fRepDate},</if>
</trim>
</insert>
<update id="updateTProAppInfor" parameterType="TProAppInfor">
update t_pro_app_infor
<trim prefix="SET" suffixOverrides=",">
<if test="fDeptCode != null and fDeptCode != ''">f_dept_code = #{fDeptCode},</if>
<if test="fSource != null and fSource != ''">f_source = #{fSource},</if>
<if test="fCode != null and fCode != ''">f_code = #{fCode},</if>
<if test="fName != null and fName != ''">f_name = #{fName},</if>
<if test="fIdNo != null and fIdNo != ''">f_id_no = #{fIdNo},</if>
<if test="fSex != null">f_sex = #{fSex},</if>
<if test="fBirthday != null">f_birthday = #{fBirthday},</if>
<if test="fEmail != null">f_email = #{fEmail},</if>
<if test="fPhone != null and fPhone != ''">f_phone = #{fPhone},</if>
<if test="fEducation != null">f_education = #{fEducation},</if>
<if test="fGraduationSchool != null">f_graduation_school = #{fGraduationSchool},</if>
<if test="fMajor != null and fMajor != ''">f_major = #{fMajor},</if>
<if test="fGraduationTime != null">f_graduation_time = #{fGraduationTime},</if>
<if test="fEntUuid != null">f_ent_uuid = #{fEntUuid},</if>
<if test="fWorkUnit != null">f_work_unit = #{fWorkUnit},</if>
<if test="fWorkTime != null">f_work_time = #{fWorkTime},</if>
<if test="fDepartment != null">f_department = #{fDepartment},</if>
<if test="fDuties != null">f_duties = #{fDuties},</if>
<if test="fMajorTitle != null and fMajorTitle != ''">f_major_title = #{fMajorTitle},</if>
<if test="fMajorNow != null and fMajorNow != ''">f_major_now = #{fMajorNow},</if>
<if test="fMajorLife != null">f_major_life = #{fMajorLife},</if>
<if test="fGasType != null and fGasType != ''">f_gas_type = #{fGasType},</if>
<if test="fGoodArea != null and fGoodArea != ''">f_good_area = #{fGoodArea},</if>
<if test="fLearningWorkExperience != null">f_learning_work_experience = #{fLearningWorkExperience},</if>
<if test="fArea != null and fArea != ''">f_area = #{fArea},</if>
<if test="fDeleteFlag != null">f_delete_flag = #{fDeleteFlag},</if>
<if test="fCRecord != null">f_c_record = #{fCRecord},</if>
<if test="fPRecord != null">f_p_record = #{fPRecord},</if>
<if test="fPicture != null">f_picture = #{fPicture},</if>
<if test="fUpdateTime != null">f_update_time = #{fUpdateTime},</if>
<if test="fThisProvinceFlag != null">f_this_province_flag = #{fThisProvinceFlag},</if>
<if test="fValidType != null">f_valid_type = #{fValidType},</if>
<if test="fRepStatus != null">f_rep_status = #{fRepStatus},</if>
<if test="fRepDate != null">f_rep_date = #{fRepDate},</if>
</trim>
where f_pro_app_infor_id = #{fProAppInforId}
</update>
<delete id="deleteTProAppInforById" parameterType="Long">
delete from t_pro_app_infor where f_pro_app_infor_id = #{fProAppInforId}
</delete>
<delete id="deleteTProAppInforByIds" parameterType="String">
delete from t_pro_app_infor where f_pro_app_infor_id in
<foreach item="fProAppInforId" collection="array" open="(" separator="," close=")">
#{fProAppInforId}
</foreach>
</delete>
</mapper>
\ No newline at end of file
import request from '@/utils/request'
// 查询行业专家库-专家申报列表
export function listInfor(query) {
return request({
url: '/specialist/info/list',
method: 'get',
params: query
})
}
// 查询行业专家库-专家申报详细
export function getInfor(fProAppInforId) {
return request({
url: '/specialist/info/' + fProAppInforId,
method: 'get'
})
}
// 新增行业专家库-专家申报
export function addInfor(data) {
return request({
url: '/specialist/info',
method: 'post',
data: data
})
}
// 修改行业专家库-专家申报
export function updateInfor(data) {
return request({
url: '/specialist/info',
method: 'put',
data: data
})
}
// 删除行业专家库-专家申报
export function delInfor(fProAppInforId) {
return request({
url: '/specialist/info/' + fProAppInforId,
method: 'delete'
})
}
// 导出行业专家库-专家申报
export function exportInfor(query) {
return request({
url: '/specialist/info/export',
method: 'get',
params: query
})
}
//行业专家申报
export function reportProAppInfo(query) {
return request({
url: '/specialist/info/reportProAppInfo',
method: 'get',
params: query
})
}
...@@ -237,3 +237,8 @@ ...@@ -237,3 +237,8 @@
position: relative; position: relative;
float: right; float: right;
} }
.el-row-table{
display:flex;
flex-wrap: wrap;
}
<template>
<el-dialog title="详情" :visible.sync="detailOpen" width="1000px" append-to-body destroy-on-close :close-on-click-modal="false">
<el-form label-width="160px">
<el-row class="el-row-table">
<el-col :span="12">
<el-form-item label="专家姓名">
<span v-if="detailInfo.fName">{{ detailInfo.fName }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号">
<span v-if="detailInfo.fIdNo">{{ detailInfo.fIdNo }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="性别">
<span v-if="detailInfo.fSex">{{ $parent.fSexFormat(detailInfo) }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="数据限定">
<span v-if="detailInfo.fDeptCode">{{ detailInfo.fDeptCode }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="数据来源">
<span v-if="detailInfo.fSource">{{ $parent.fSourceFormat(detailInfo) }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="人员编码">
<span v-if="detailInfo.fCode">{{ detailInfo.fCode }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="出生日期">
<span v-if="detailInfo.fBirthday">{{ detailInfo.fBirthday }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮箱">
<span v-if="detailInfo.fEmail">{{ detailInfo.fEmail }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话">
<span v-if="detailInfo.fPhone">{{ detailInfo.fPhone }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="文化程度">
<span v-if="detailInfo.fEducation">{{ detailInfo.fEducation }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="毕业院校">
<span v-if="detailInfo.fGraduationSchool">{{ detailInfo.fGraduationSchool }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属专业">
<span v-if="detailInfo.fMajor">{{ detailInfo.fMajor }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="毕业时间">
<span v-if="detailInfo.fGraduationTime">{{ detailInfo.fGraduationTime }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="工作单位编码">
<span v-if="detailInfo.fEntUuid">{{ detailInfo.fEntUuid }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="工作单位名称">
<span v-if="detailInfo.fWorkUnit">{{ detailInfo.fWorkUnit }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="参加工作时间">
<span v-if="detailInfo.fWorkTime">{{ detailInfo.fWorkTime }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所在部门">
<span v-if="detailInfo.fDepartment">{{ detailInfo.fDepartment }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="职务">
<span v-if="detailInfo.fDuties">{{ detailInfo.fDuties }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="专业技术职称">
<span v-if="detailInfo.fMajorTitle">{{ detailInfo.fMajorTitle }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="现从事专业">
<span v-if="detailInfo.fMajorNow">{{ detailInfo.fMajorNow }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="从事专业工作年限">
<span v-if="detailInfo.fMajorLife">{{ detailInfo.fMajorLife }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="燃气种类">
<span v-if="detailInfo.fGasType">{{ $parent.fGasTypeFormat(detailInfo) }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="擅长工作领域">
<span v-if="detailInfo.fGoodArea">{{ detailInfo.fGoodArea }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="相关经历">
<span v-if="detailInfo.fLearningWorkExperience">{{ detailInfo.fLearningWorkExperience }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所在地区">
<span v-if="detailInfo.fArea">{{ detailInfo.fArea }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="市局燃气主管部门意见">
<span v-if="detailInfo.fCRecord">{{ detailInfo.fCRecord }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="省级燃气主管部门意见">
<span v-if="detailInfo.fPRecord">{{ detailInfo.fPRecord }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否省级专家">
<span v-if="detailInfo.fThisProvinceFlag">{{ $parent.fThisProvinceFlagFormat(detailInfo) }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否有效" prop="fValidType">
<span v-if="detailInfo.fValidType">{{ $parent.fValidTypeFormat(detailInfo) }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="照片">
<el-image
:src="detailInfo.fPicture"
:preview-src-list="[detailInfo.fPicture]"
v-if="detailInfo.fPicture != '' && detailInfo.fPicture != null"
:z-index=5000 style="width: 200px;height: 200px;"
></el-image>
<span v-else>-</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-dialog>
</template>
<script>
import { getInfor } from "@/api/specialist/info";
export default {
name: "detail-info",
data(){
return{
detailInfo: {},
detailOpen: false
}
},
methods:{
getDetailInfo(id){
getInfor(id).then(res =>{
if(res.code == 200 && res.data){
this.detailInfo = res.data;
this.detailOpen = true;
}
})
}
}
}
</script>
<style scoped>
</style>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="专家姓名" prop="fName">
<el-input
v-model="queryParams.fName"
placeholder="请输入专家姓名"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="身份证号" prop="fIdNo">
<el-input
v-model="queryParams.fIdNo"
placeholder="请输入身份证号"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="数据来源" prop="fSource">
<el-select v-model="queryParams.fSource" placeholder="请选择数据来源" clearable size="small">
<el-option
v-for="dict in fSourceOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="人员编码" prop="fCode">
<el-input
v-model="queryParams.fCode"
placeholder="请输入人员编码"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="是否省级专家" prop="fThisProvinceFlag">
<el-select v-model="queryParams.fThisProvinceFlag" placeholder="请选择是否省级专家" clearable size="small">
<el-option
v-for="dict in fThisProvinceFlagOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="是否有效" prop="fValidType">
<el-select v-model="queryParams.fValidType" placeholder="请选择是否有效" clearable size="small">
<el-option
v-for="dict in fValidTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="燃气种类" prop="fGasType">
<el-select v-model="queryParams.fGasType" placeholder="请选择燃气种类" clearable size="small">
<el-option
v-for="dict in fGasTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="申报状态" prop="fRepStatus">
<el-select v-model="queryParams.fRepStatus" placeholder="请选择申报状态" clearable size="small">
<el-option
v-for="dict in repStatusOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="申报时间" prop="fRepDate">
<el-input
v-model="queryParams.fRepDate"
placeholder="请输入申报时间"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>-->
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['specialist:info:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['specialist:info:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['specialist:info:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
:loading="exportLoading"
@click="handleExport"
v-hasPermi="['specialist:info:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="inforList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="专家姓名" align="center" prop="fName" />
<el-table-column label="人员编码" align="center" prop="fCode" :show-overflow-tooltip="true"/>
<el-table-column label="身份证号" align="center" prop="fIdNo" :show-overflow-tooltip="true"/>
<el-table-column label="性别" align="center" prop="fSex" :formatter="fSexFormat" />
<el-table-column label="数据来源" align="center" prop="fSource" :formatter="fSourceFormat" />
<el-table-column label="联系电话" align="center" prop="fPhone" width="120"/>
<el-table-column label="燃气种类" align="center" prop="fGasType" :formatter="fGasTypeFormat" :show-overflow-tooltip="true"/>
<el-table-column label="所在地区" align="center" prop="fArea" :show-overflow-tooltip="true"/>
<el-table-column label="照片" align="center" prop="fPicture">
<template slot-scope="scope">
<el-image
:src="scope.row.fPicture"
:preview-src-list="[scope.row.fPicture]"
v-if="scope.row.fPicture != '' && scope.row.fPicture != null"
:z-index=5000 style="width: auto;height: auto;"
></el-image>
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="是否省级专家" align="center" prop="fThisProvinceFlag">
<template slot-scope="scope">
<span v-if="scope.row.fThisProvinceFlag != '' && scope.row.fThisProvinceFlag != null">{{ fThisProvinceFlagFormat(scope.row) }}</span>
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="是否有效" align="center" prop="fValidType">
<template slot-scope="scope">
<span v-if="scope.row.fValidType != null">{{ fValidTypeFormat(scope.row) }}</span>
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="申报状态" align="center" prop="fRepStatus" :formatter="fRepStatusFormat"/>
<el-table-column label="申报时间" align="center" prop="fRepDate" width="150">
<template slot-scope="scope">
<span v-if="scope.row.fRepDate != null">{{ scope.row.fRepDate }}</span>
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-document"
@click="handleDetail(scope.row)"
v-hasPermi="['specialist:info:query']"
>详情</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['specialist:info:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['specialist:info:remove']"
>删除</el-button>
<el-button
size="mini"
type="text"
@click="handleReport(scope.row)"
v-if="scope.row.fRepStatus == 2"
v-hasPermi="['specialist:info:report']"
>申报</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改行业专家库-专家申报对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body destroy-on-close :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" label-width="160px">
<el-row class="el-row-table">
<el-col :span="12">
<el-form-item label="专家姓名" prop="fName">
<el-input v-model="form.fName" placeholder="请输入专家姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="fIdNo">
<el-input :maxlength="18" v-model="form.fIdNo" placeholder="请输入身份证号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="性别" prop="fSex">
<el-select
v-model="form.fSex"
placeholder="请选择性别"
style="width: 100%"
>
<el-option
v-for="dict in fSexOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="数据限定" prop="fDeptCode">
<el-input v-model="form.fDeptCode" placeholder="请输入数据限定" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="数据来源" prop="fSource">
<el-select
v-model="form.fSource"
placeholder="请选择数据来源"
style="width: 100%"
>
<el-option
v-for="dict in fSourceOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="人员编码" prop="fCode">
<el-input v-model="form.fCode" placeholder="请输入人员编码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="出生日期" prop="fBirthday">
<el-date-picker
style="width: 100%"
v-model="form.fBirthday"
type="date"
placeholder="选择出生日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮箱" prop="fEmail">
<el-input v-model="form.fEmail" placeholder="请输入邮箱" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话" prop="fPhone">
<el-input :maxlength="11" v-model="form.fPhone" placeholder="请输入联系电话" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="文化程度" prop="fEducation">
<el-input v-model="form.fEducation" placeholder="请输入文化程度" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="毕业院校" prop="fGraduationSchool">
<el-input v-model="form.fGraduationSchool" placeholder="请输入毕业院校" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属专业" prop="fMajor">
<el-input v-model="form.fMajor" placeholder="请输入所属专业" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="毕业时间" prop="fGraduationTime">
<el-input v-model="form.fGraduationTime" placeholder="请输入毕业时间" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="工作单位编码" prop="fEntUuid">
<el-input v-model="form.fEntUuid" placeholder="请输入工作单位编码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="工作单位名称" prop="fWorkUnit">
<el-input v-model="form.fWorkUnit" placeholder="请输入工作单位名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="参加工作时间" prop="fWorkTime">
<el-date-picker
style="width: 100%"
v-model="form.fWorkTime"
type="date"
placeholder="选择参加工作时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所在部门" prop="fDepartment">
<el-input v-model="form.fDepartment" placeholder="请输入所在部门" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="职务" prop="fDuties">
<el-input v-model="form.fDuties" placeholder="请输入职务" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="专业技术职称" prop="fMajorTitle">
<el-input v-model="form.fMajorTitle" placeholder="请输入专业技术职称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="现从事专业" prop="fMajorNow">
<el-input v-model="form.fMajorNow" placeholder="请输入现从事专业" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="从事专业工作年限" prop="fMajorLife">
<el-input v-model="form.fMajorLife" placeholder="请输入从事专业工作年限" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="燃气种类" prop="fGasType">
<el-select
v-model="form.fGasType"
placeholder="请选择燃气种类"
multiple
style="width: 100%"
>
<el-option
v-for="dict in fGasTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="擅长工作领域" prop="fGoodArea">
<el-input v-model="form.fGoodArea" placeholder="请输入擅长工作领域" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="相关经历" prop="fLearningWorkExperience">
<el-input v-model="form.fLearningWorkExperience" placeholder="请输入相关学习工作经历及工作业绩" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="所在地区" prop="fArea">
<el-input v-model="form.fArea" placeholder="请输入所在地区" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="市局燃气主管部门意见" prop="fCRecord">
<el-input type="textarea" v-model="form.fCRecord" placeholder="请输入市局燃气主管部门意见" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="省级燃气主管部门意见" prop="fPRecord">
<el-input type="textarea" v-model="form.fPRecord" placeholder="请输入省级燃气主管部门意见" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否省级专家" prop="fThisProvinceFlag">
<el-select
v-model="form.fThisProvinceFlag"
placeholder="请选择是否省级专家"
style="width: 100%"
>
<el-option
v-for="dict in fThisProvinceFlagOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否有效" prop="fValidType">
<el-select
v-model="form.fValidType"
placeholder="请选择是否有效"
style="width: 100%"
>
<el-option
v-for="dict in fValidTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="parseInt(dict.dictValue)"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="照片">
<imageUpload v-model="form.fPicture"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 详情 -->
<DetailInfo ref="detail"/>
</div>
</template>
<script>
import { listInfor, getInfor, delInfor, addInfor, updateInfor, exportInfor, reportProAppInfo } from "@/api/specialist/info";
import ImageUpload from '@/components/ImageUpload';
import DetailInfo from "./components/DetailInfo";
export default {
name: "Infor",
components: {
ImageUpload,
DetailInfo
},
data() {
return {
// 遮罩层
loading: true,
// 导出遮罩层
exportLoading: false,
// 选中数组
ids: [],
names: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 行业专家库-专家申报表格数据
inforList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 数据来源-G政府:E企业字典
fSourceOptions: [],
// 性别:1-男性,2-女性字典
fSexOptions: [],
// 从事行业燃气种类
fGasTypeOptions: [],
// 是否省级专家 1 是,0 不是字典
fThisProvinceFlagOptions: [],
// 是否有效:0 有效,1 无效字典
fValidTypeOptions: [],
//1 已上报,2 未上报,3 已通过,4未通过
repStatusOptions: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
fDeptCode: null,
fSource: null,
fCode: null,
fName: null,
fIdNo: null,
fSex: null,
fBirthday: null,
fEmail: null,
fPhone: null,
fEducation: null,
fGraduationSchool: null,
fMajor: null,
fGraduationTime: null,
fEntUuid: null,
fWorkUnit: null,
fWorkTime: null,
fDepartment: null,
fDuties: null,
fMajorTitle: null,
fMajorNow: null,
fMajorLife: null,
fGasType: null,
fGoodArea: null,
fLearningWorkExperience: null,
fArea: null,
fDeleteFlag: null,
fCRecord: null,
fPRecord: null,
fPicture: null,
fUpdateTime: null,
fThisProvinceFlag: null,
fValidType: null,
fRepStatus: null,
fRepDate: null
},
// 表单参数
form: {},
// 表单校验
rules: {
fDeptCode: [
{ required: true, message: "数据限定不能为空", trigger: "blur" }
],
fSource: [
{ required: true, message: "数据来源不能为空", trigger: "change" }
],
fCode: [
{ required: true, message: "人员编码不能为空", trigger: "blur" }
],
fName: [
{ required: true, message: "专家姓名不能为空", trigger: "blur" }
],
fIdNo: [
{ required: true, message: "身份证号不能为空", trigger: "blur" },
{
pattern: /(^\d{15}$)|(^\d{17}([0-9]|X)$)/,
message: '身份证号格式有误!',
trigger: 'blur'
}
],
fPhone: [
{ required: true, message: "联系电话不能为空", trigger: "blur" },
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '手机号格式有误!',
trigger: 'blur'
}
],
fEmail: [
{
pattern: /^[\w\.-]+@[a-zA-Z\d\.-]+\.[a-zA-Z]{2,}$/,
message: '邮箱格式有误!',
trigger: 'blur'
}
],
fMajor: [
{ required: true, message: "所属专业不能为空", trigger: "blur" }
],
fMajorTitle: [
{ required: true, message: "专业技术职称不能为空", trigger: "blur" }
],
fMajorNow: [
{ required: true, message: "现从事专业不能为空", trigger: "blur" }
],
fMajorLife: [
{ required: true, message: "从事专业工作年限不能为空", trigger: "blur" }
],
fGasType: [
{ required: true, message: "请选择燃气种类", trigger: "change" }
],
fGoodArea: [
{ required: true, message: "擅长工作领域不能为空", trigger: "blur" }
],
fArea: [
{ required: true, message: "所在地区不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
this.getDicts("t_special_data_source").then(response => {
this.fSourceOptions = response.data;
});
this.getDicts("t_sex").then(response => {
this.fSexOptions = response.data;
});
this.getDicts("t_gas_type").then(response => {
this.fGasTypeOptions = response.data;
});
this.getDicts("t_province_mark").then(response => {
this.fThisProvinceFlagOptions = response.data;
});
this.getDicts("t_valid_type").then(response => {
this.fValidTypeOptions = response.data;
});
this.getDicts("t_rep_status").then(response => {
this.repStatusOptions = response.data;
});
},
methods: {
/** 查询行业专家库-专家申报列表 */
getList() {
this.loading = true;
listInfor(this.queryParams).then(response => {
this.inforList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 数据来源-G政府:E企业字典翻译
fSourceFormat(row, column) {
return this.selectDictLabel(this.fSourceOptions, row.fSource);
},
// 性别:1-男性,2-女性字典翻译
fSexFormat(row, column) {
return this.selectDictLabel(this.fSexOptions, row.fSex);
},
// 从事行业燃气种类
fGasTypeFormat(row, column) {
return this.selectDictLabels(this.fGasTypeOptions, row.fGasType);
},
// 是否省级专家 1 是,0 不是字典翻译
fThisProvinceFlagFormat(row, column) {
return this.selectDictLabel(this.fThisProvinceFlagOptions, row.fThisProvinceFlag);
},
// 是否有效:0 有效,1 无效字典翻译
fValidTypeFormat(row, column) {
return this.selectDictLabel(this.fValidTypeOptions, row.fValidType);
},
fRepStatusFormat(row, column) {
return this.selectDictLabel(this.repStatusOptions, row.fRepStatus);
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
fProAppInforId: null,
fDeptCode: null,
fSource: null,
fCode: null,
fName: null,
fIdNo: null,
fSex: null,
fBirthday: null,
fEmail: null,
fPhone: null,
fEducation: null,
fGraduationSchool: null,
fMajor: null,
fGraduationTime: null,
fEntUuid: null,
fWorkUnit: null,
fWorkTime: null,
fDepartment: null,
fDuties: null,
fMajorTitle: null,
fMajorNow: null,
fMajorLife: null,
fGasType: [],
fGoodArea: null,
fLearningWorkExperience: null,
fArea: null,
fDeleteFlag: null,
fCRecord: null,
fPRecord: null,
fPicture: null,
fUpdateTime: null,
fThisProvinceFlag: null,
fValidType: null,
fRepStatus: null,
fRepDate: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.fProAppInforId);
this.names = selection.map(item => item.fName);
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加专家申报";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const fProAppInforId = row.fProAppInforId || this.ids
getInfor(fProAppInforId).then(response => {
this.form = response.data;
this.form.fGasType = this.form.fGasType.split(",");
this.open = true;
this.title = "修改专家申报";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
this.form.fGasType = this.form.fGasType.join(",");
if (this.form.fProAppInforId != null) {
updateInfor(this.form).then(response => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addInfor(this.form).then(response => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const fProAppInforIds = row.fProAppInforId || this.ids;
const names = row.fName || this.names;
this.$confirm('是否确认删除专家申报姓名为"' + names + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return delInfor(fProAppInforIds);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm('是否确认导出所有专家申报数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.exportLoading = true;
return exportInfor(queryParams);
}).then(response => {
this.download(response.msg);
this.exportLoading = false;
}).catch(() => {});
},
//详情
handleDetail(row){
this.$refs.detail.getDetailInfo(row.fProAppInforId);
},
//申报
handleReport(row){
this.$confirm('是否确认申报行业专家姓名为"'+ row.fName +'"的数据?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return reportProAppInfo({ fProAppInforId : row.fProAppInforId});
}).then(() => {
this.getList();
this.msgSuccess("行业专家申报成功");
}).catch(() => {});
}
}
};
</script>
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