工程管理及三方推送
This commit is contained in:
parent
36f10b16b3
commit
4ad579e2ac
|
|
@ -38,5 +38,14 @@ public class MaterialConstants
|
||||||
*/
|
*/
|
||||||
public static final String LATITUDE_PATTERN = "^(-?(90(\\.0+)?|[1-8]?\\d(\\.\\d{1,6})?))$";
|
public static final String LATITUDE_PATTERN = "^(-?(90(\\.0+)?|[1-8]?\\d(\\.\\d{1,6})?))$";
|
||||||
|
|
||||||
|
public static final String ZERO_CONSTANT = "0";
|
||||||
|
|
||||||
|
public static final String ONE_CONSTANT = "1";
|
||||||
|
|
||||||
|
public static final String TWO_CONSTANT = "2";
|
||||||
|
|
||||||
|
public static final String THREE_CONSTANT = "3";
|
||||||
|
|
||||||
|
public static final String FOUR_CONSTANT = "4";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ import java.util.List;
|
||||||
* @since 2024-10-15 10:38:58
|
* @since 2024-10-15 10:38:58
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/bmAssetAttributes")
|
@RequestMapping("/bm_asset_attributes")
|
||||||
public class BmAssetAttributesController extends BaseController {
|
public class BmAssetAttributesController extends BaseController {
|
||||||
/**
|
/**
|
||||||
* 服务对象
|
* 服务对象
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,12 @@ package com.bonus.material.basic.controller;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import cn.hutool.http.HttpException;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.bonus.common.log.enums.OperaType;
|
import com.bonus.common.log.enums.OperaType;
|
||||||
import com.bonus.material.common.annotation.PreventRepeatSubmit;
|
import com.bonus.material.common.annotation.PreventRepeatSubmit;
|
||||||
|
import com.bonus.material.common.utils.HttpClient;
|
||||||
import com.bonus.system.api.RemoteDictDataService;
|
import com.bonus.system.api.RemoteDictDataService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
|
@ -40,9 +44,6 @@ public class BmProjectController extends BaseController
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBmProjectService bmProjectService;
|
private IBmProjectService bmProjectService;
|
||||||
|
|
||||||
@Resource
|
|
||||||
private RemoteDictDataService remoteDictDataService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询标段工程管理列表
|
* 查询标段工程管理列表
|
||||||
*/
|
*/
|
||||||
|
|
@ -56,15 +57,6 @@ public class BmProjectController extends BaseController
|
||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询工程类型列表
|
|
||||||
*/
|
|
||||||
@ApiOperation(value = "查询工程类型列表")
|
|
||||||
@GetMapping("/getProjectTypeList")
|
|
||||||
public AjaxResult getProjectTypeList() {
|
|
||||||
return remoteDictDataService.dictType("bm_project_type", null);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出标段工程管理列表
|
* 导出标段工程管理列表
|
||||||
*/
|
*/
|
||||||
|
|
@ -129,4 +121,20 @@ public class BmProjectController extends BaseController
|
||||||
{
|
{
|
||||||
return bmProjectService.deleteBmProjectByProId(proId);
|
return bmProjectService.deleteBmProjectByProId(proId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation(value = "从第三方获取i8工程信息")
|
||||||
|
@GetMapping("/getProjectList")
|
||||||
|
public AjaxResult getProjectList(String token)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
String url = "http://10.138.55.105:8097/data-center/dc-base/api/project/list";
|
||||||
|
//String url = "http://192.168.1.167:8097/data-center/dc-base/api/project/list";
|
||||||
|
String res = HttpClient.sendGet(url,token);
|
||||||
|
JSONObject jsonObject = JSONObject.parseObject(res);
|
||||||
|
return AjaxResult.success(jsonObject);
|
||||||
|
} catch (HttpException e) {
|
||||||
|
return AjaxResult.error(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,27 +31,45 @@ public class BmProject extends BaseEntity
|
||||||
private String proName;
|
private String proName;
|
||||||
|
|
||||||
/** 关联外部(第三方)的工程ID */
|
/** 关联外部(第三方)的工程ID */
|
||||||
@Excel(name = "关联外部(第三方)的工程ID")
|
|
||||||
@ApiModelProperty(value = "关联外部(第三方)的工程ID")
|
@ApiModelProperty(value = "关联外部(第三方)的工程ID")
|
||||||
private String externalId;
|
private String externalId;
|
||||||
|
|
||||||
/** 外部(第三方)的工程详情json */
|
/** 外部(第三方)的工程详情json */
|
||||||
@Excel(name = "外部(第三方)的工程详情json")
|
|
||||||
@ApiModelProperty(value = "外部(第三方)的工程详情json")
|
@ApiModelProperty(value = "外部(第三方)的工程详情json")
|
||||||
private String externalInfo;
|
private String externalInfo;
|
||||||
|
|
||||||
/** 工程类型(0线路,1变电,2施工) */
|
/** 工程类型(0线路,1变电,2业务,3其他) */
|
||||||
@Excel(name = "工程类型(0线路,1变电,2施工)")
|
@ApiModelProperty(value = "工程类型(0线路,1变电,2业务,3其他)")
|
||||||
@ApiModelProperty(value = "工程类型(0线路,1变电,2施工)")
|
|
||||||
private String proTypeId;
|
private String proTypeId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "实施单位")
|
||||||
|
@Excel(name = "实施单位")
|
||||||
|
private String impUnit;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "工程类型")
|
||||||
|
@Excel(name = "工程类型")
|
||||||
|
private String proType;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "工程编码")
|
||||||
|
@Excel(name = "i8工程编码")
|
||||||
|
private String proCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否匹配i8工程
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "是否匹配i8工程")
|
||||||
|
@Excel(name = "是否匹配i8工程")
|
||||||
|
private String isMatchI8;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "合同主体")
|
||||||
|
@Excel(name = "合同主体")
|
||||||
|
private String contractPart;
|
||||||
|
|
||||||
/** 经度 */
|
/** 经度 */
|
||||||
@Excel(name = "经度")
|
|
||||||
@ApiModelProperty(value = "经度")
|
@ApiModelProperty(value = "经度")
|
||||||
private String lon;
|
private String lon;
|
||||||
|
|
||||||
/** 维度 */
|
/** 维度 */
|
||||||
@Excel(name = "维度")
|
|
||||||
@ApiModelProperty(value = "维度")
|
@ApiModelProperty(value = "维度")
|
||||||
private String lat;
|
private String lat;
|
||||||
|
|
||||||
|
|
@ -65,32 +83,39 @@ public class BmProject extends BaseEntity
|
||||||
@ApiModelProperty(value = "联系方式")
|
@ApiModelProperty(value = "联系方式")
|
||||||
private String telphone;
|
private String telphone;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "工程状态")
|
||||||
|
@Excel(name = "工程状态")
|
||||||
|
private String proStatus;
|
||||||
|
|
||||||
/** 计划开工日期 */
|
/** 计划开工日期 */
|
||||||
@ApiModelProperty(value = "计划开工日期")
|
@ApiModelProperty(value = "计划开工日期")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
@Excel(name = "计划开工日期", width = 30, dateFormat = "yyyy-MM-dd")
|
|
||||||
private Date planStartDate;
|
private Date planStartDate;
|
||||||
|
|
||||||
/** 计划结束日期 */
|
/** 计划结束日期 */
|
||||||
@ApiModelProperty(value = "计划结束日期")
|
@ApiModelProperty(value = "计划结束日期")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
@Excel(name = "计划结束日期", width = 30, dateFormat = "yyyy-MM-dd")
|
|
||||||
private Date planEndDate;
|
private Date planEndDate;
|
||||||
|
|
||||||
/** 实际开工日期 */
|
/** 实际开工日期 */
|
||||||
@ApiModelProperty(value = "实际开工日期")
|
@ApiModelProperty(value = "实际开工日期")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
@Excel(name = "实际开工日期", width = 30, dateFormat = "yyyy-MM-dd")
|
|
||||||
private Date actualStartDate;
|
private Date actualStartDate;
|
||||||
|
|
||||||
/** 实际完工日期 */
|
/** 实际完工日期 */
|
||||||
@ApiModelProperty(value = "实际完工日期")
|
@ApiModelProperty(value = "实际完工日期")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
@Excel(name = "实际完工日期", width = 30, dateFormat = "yyyy-MM-dd")
|
|
||||||
private Date actualEndDate;
|
private Date actualEndDate;
|
||||||
|
|
||||||
/** 删除标志(0代表存在 2代表删除) */
|
/** 删除标志(0代表存在 2代表删除) */
|
||||||
private String delFlag;
|
private String delFlag;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "工程性质")
|
||||||
|
private String proNature;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "i8工程id")
|
||||||
|
private String i8proId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "所属项目中心")
|
||||||
|
private String proCenter;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,8 @@ public class BmUnitType extends BaseEntity {
|
||||||
@Excel(name = "单位类型")
|
@Excel(name = "单位类型")
|
||||||
private String typeName;
|
private String typeName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "数据所属组织")
|
@ApiModelProperty(value = "单位类型")
|
||||||
private String companyId;
|
private String dictType;
|
||||||
|
|
||||||
/** 删除标志(0代表存在 2代表删除) */
|
/** 删除标志(0代表存在 2代表删除) */
|
||||||
private String delFlag;
|
private String delFlag;
|
||||||
|
|
|
||||||
|
|
@ -61,8 +61,8 @@ public interface BmProjectMapper
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据工程名称查询工程信息
|
* 根据工程名称查询工程信息
|
||||||
* @param proName
|
* @param bmProject
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
BmProject selectBmProjectByProName(String proName);
|
List<BmProject> selectBmProjectByProName(BmProject bmProject);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -57,9 +57,14 @@ public class BmAssetAttributesServiceImpl implements BmAssetAttributesService {
|
||||||
public AjaxResult insert(BmAssetAttributes bmAssetAttributes) {
|
public AjaxResult insert(BmAssetAttributes bmAssetAttributes) {
|
||||||
//先判断物资类型名称是否存在
|
//先判断物资类型名称是否存在
|
||||||
List<BmAssetAttributes> attributesList = bmAssetAttributesDao.selectBmAssetAttributesByAssetCode(bmAssetAttributes);
|
List<BmAssetAttributes> attributesList = bmAssetAttributesDao.selectBmAssetAttributesByAssetCode(bmAssetAttributes);
|
||||||
if (CollectionUtils.isNotEmpty(attributesList)) {
|
if (attributesList.size() > 1) {
|
||||||
return AjaxResult.error(HttpCodeEnum.NAME_DUPLICATE.getCode(), "资产类型名称或资产编码与库中重复");
|
return AjaxResult.error(HttpCodeEnum.NAME_DUPLICATE.getCode(), "资产类型名称或资产编码与库中重复");
|
||||||
}
|
}
|
||||||
|
if (attributesList.size() == 1) {
|
||||||
|
if (!Objects.equals(attributesList.get(0).getId(), bmAssetAttributes.getId())) {
|
||||||
|
return AjaxResult.error(HttpCodeEnum.NAME_DUPLICATE.getCode(), "资产类型名称或资产编码与库中重复");
|
||||||
|
}
|
||||||
|
}
|
||||||
bmAssetAttributes.setCreateBy(SecurityUtils.getUserId().toString());
|
bmAssetAttributes.setCreateBy(SecurityUtils.getUserId().toString());
|
||||||
bmAssetAttributes.setCreateTime(DateUtils.getNowDate());
|
bmAssetAttributes.setCreateTime(DateUtils.getNowDate());
|
||||||
int result = bmAssetAttributesDao.insert(bmAssetAttributes);
|
int result = bmAssetAttributesDao.insert(bmAssetAttributes);
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,16 @@ package com.bonus.material.basic.service.impl;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.PhoneUtil;
|
||||||
|
import com.alibaba.nacos.common.utils.CollectionUtils;
|
||||||
import com.bonus.common.biz.constant.MaterialConstants;
|
import com.bonus.common.biz.constant.MaterialConstants;
|
||||||
import com.bonus.common.biz.enums.HttpCodeEnum;
|
import com.bonus.common.biz.enums.HttpCodeEnum;
|
||||||
import com.bonus.common.biz.exception.BusinessException;
|
import com.bonus.common.biz.exception.BusinessException;
|
||||||
import com.bonus.common.core.utils.DateUtils;
|
import com.bonus.common.core.utils.DateUtils;
|
||||||
import com.bonus.common.core.web.domain.AjaxResult;
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
import com.bonus.common.security.utils.SecurityUtils;
|
import com.bonus.common.security.utils.SecurityUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.hibernate.validator.internal.util.StringHelper;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.bonus.material.basic.mapper.BmProjectMapper;
|
import com.bonus.material.basic.mapper.BmProjectMapper;
|
||||||
|
|
@ -17,6 +21,8 @@ import com.bonus.material.basic.service.IBmProjectService;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import static com.bonus.common.biz.constant.MaterialConstants.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 标段工程管理Service业务层处理
|
* 标段工程管理Service业务层处理
|
||||||
*
|
*
|
||||||
|
|
@ -38,7 +44,9 @@ public class BmProjectServiceImpl implements IBmProjectService
|
||||||
@Override
|
@Override
|
||||||
public BmProject selectBmProjectByProId(Long proId)
|
public BmProject selectBmProjectByProId(Long proId)
|
||||||
{
|
{
|
||||||
return bmProjectMapper.selectBmProjectByProId(proId);
|
BmProject project = bmProjectMapper.selectBmProjectByProId(proId);
|
||||||
|
extracted(project);
|
||||||
|
return project;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -50,7 +58,62 @@ public class BmProjectServiceImpl implements IBmProjectService
|
||||||
@Override
|
@Override
|
||||||
public List<BmProject> selectBmProjectList(BmProject bmProject)
|
public List<BmProject> selectBmProjectList(BmProject bmProject)
|
||||||
{
|
{
|
||||||
return bmProjectMapper.selectBmProjectList(bmProject);
|
List<BmProject> list = bmProjectMapper.selectBmProjectList(bmProject);
|
||||||
|
if (CollectionUtils.isNotEmpty(list)) {
|
||||||
|
list.forEach(item -> {
|
||||||
|
extracted(item);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 方法抽取
|
||||||
|
* @param item
|
||||||
|
*/
|
||||||
|
private void extracted(BmProject item) {
|
||||||
|
if (item.getProTypeId() != null) {
|
||||||
|
if (ZERO_CONSTANT.equals(item.getProTypeId())) {
|
||||||
|
item.setProType("线路工程");
|
||||||
|
} else if (ONE_CONSTANT.equals(item.getProTypeId())) {
|
||||||
|
item.setProType("变电工程");
|
||||||
|
} else if (TWO_CONSTANT.equals(item.getProTypeId())) {
|
||||||
|
item.setProType("业务工程");
|
||||||
|
} else if (THREE_CONSTANT.equals(item.getProTypeId())) {
|
||||||
|
item.setProType("其他工程");
|
||||||
|
} else {
|
||||||
|
item.setProType("未知工程类型");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (item.getProNature() != null) {
|
||||||
|
if (ZERO_CONSTANT.equals(item.getProNature())) {
|
||||||
|
item.setProNature("基建");
|
||||||
|
} else if (ONE_CONSTANT.equals(item.getProNature())) {
|
||||||
|
item.setProNature("用户工程");
|
||||||
|
} else if (TWO_CONSTANT.equals(item.getProNature())){
|
||||||
|
item.setProNature("技修大改");
|
||||||
|
} else if (THREE_CONSTANT.equals(item.getProNature())) {
|
||||||
|
item.setProNature("其他");
|
||||||
|
} else {
|
||||||
|
item.setProNature("未知工程性质");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (item.getProStatus() != null) {
|
||||||
|
if (ZERO_CONSTANT.equals(item.getProStatus())) {
|
||||||
|
item.setProStatus("开工准备");
|
||||||
|
} else if (ONE_CONSTANT.equals(item.getProStatus())) {
|
||||||
|
item.setProStatus("在建");
|
||||||
|
} else if (TWO_CONSTANT.equals(item.getProStatus())){
|
||||||
|
item.setProStatus("停工");
|
||||||
|
} else if (THREE_CONSTANT.equals(item.getProStatus())){
|
||||||
|
item.setProStatus("完工未竣工");
|
||||||
|
} else if (FOUR_CONSTANT.equals(item.getProStatus())) {
|
||||||
|
item.setProStatus("竣工");
|
||||||
|
} else {
|
||||||
|
item.setProStatus("未知工程状态");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
item.setIsMatchI8(StringUtils.isNotEmpty(item.getI8proId()) ? "匹配" : "不匹配");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -62,10 +125,10 @@ public class BmProjectServiceImpl implements IBmProjectService
|
||||||
@Override
|
@Override
|
||||||
public AjaxResult insertBmProject(BmProject bmProject)
|
public AjaxResult insertBmProject(BmProject bmProject)
|
||||||
{
|
{
|
||||||
//首先根据工程名称去表中查询,看是否重复
|
//首先根据工程或名称去表中查询,看是否重复
|
||||||
BmProject project = bmProjectMapper.selectBmProjectByProName(bmProject.getProName());
|
List<BmProject> projectList = bmProjectMapper.selectBmProjectByProName(bmProject);
|
||||||
if (project != null) {
|
if (CollectionUtils.isNotEmpty(projectList)) {
|
||||||
return AjaxResult.error(HttpCodeEnum.NAME_DUPLICATE.getCode(), HttpCodeEnum.NAME_DUPLICATE.getMsg());
|
return AjaxResult.error(HttpCodeEnum.NAME_DUPLICATE.getCode(), "工程名称或工程编码与库中重复");
|
||||||
}
|
}
|
||||||
//校验输入的经纬度是否合规
|
//校验输入的经纬度是否合规
|
||||||
if (bmProject.getLon() != null) {
|
if (bmProject.getLon() != null) {
|
||||||
|
|
@ -78,6 +141,10 @@ public class BmProjectServiceImpl implements IBmProjectService
|
||||||
return AjaxResult.error(HttpCodeEnum.INVALID_LATITUDE_FORMAT.getCode(), HttpCodeEnum.INVALID_LATITUDE_FORMAT.getMsg());
|
return AjaxResult.error(HttpCodeEnum.INVALID_LATITUDE_FORMAT.getCode(), HttpCodeEnum.INVALID_LATITUDE_FORMAT.getMsg());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//判断手机号是否合法
|
||||||
|
if (StringUtils.isNotBlank(bmProject.getTelphone()) && !PhoneUtil.isMobile(bmProject.getTelphone())) {
|
||||||
|
return AjaxResult.error(HttpCodeEnum.INVALID_PHONE_FORMAT.getCode(), HttpCodeEnum.INVALID_PHONE_FORMAT.getMsg());
|
||||||
|
}
|
||||||
bmProject.setCreateTime(DateUtils.getNowDate());
|
bmProject.setCreateTime(DateUtils.getNowDate());
|
||||||
bmProject.setCreateBy(SecurityUtils.getUserId().toString());
|
bmProject.setCreateBy(SecurityUtils.getUserId().toString());
|
||||||
int result = bmProjectMapper.insertBmProject(bmProject);
|
int result = bmProjectMapper.insertBmProject(bmProject);
|
||||||
|
|
@ -97,10 +164,13 @@ public class BmProjectServiceImpl implements IBmProjectService
|
||||||
public AjaxResult updateBmProject(BmProject bmProject)
|
public AjaxResult updateBmProject(BmProject bmProject)
|
||||||
{
|
{
|
||||||
//首先根据工程名称去表中查询,看是否重复
|
//首先根据工程名称去表中查询,看是否重复
|
||||||
BmProject project = bmProjectMapper.selectBmProjectByProName(bmProject.getProName());
|
List<BmProject> projectList = bmProjectMapper.selectBmProjectByProName(bmProject);
|
||||||
if (project != null) {
|
if (projectList.size() > 1) {
|
||||||
if (!Objects.equals(project.getProId(), bmProject.getProId())) {
|
return AjaxResult.error(HttpCodeEnum.NAME_DUPLICATE.getCode(), "工程名称或工程编码与库中重复");
|
||||||
return AjaxResult.error(HttpCodeEnum.NAME_DUPLICATE.getCode(), HttpCodeEnum.NAME_DUPLICATE.getMsg());
|
}
|
||||||
|
if (projectList.size() == 1) {
|
||||||
|
if (!Objects.equals(projectList.get(0).getProId(), bmProject.getProId())) {
|
||||||
|
return AjaxResult.error(HttpCodeEnum.NAME_DUPLICATE.getCode(), "工程名称或工程编码与库中重复");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//校验输入的经纬度是否合规
|
//校验输入的经纬度是否合规
|
||||||
|
|
@ -114,6 +184,10 @@ public class BmProjectServiceImpl implements IBmProjectService
|
||||||
return AjaxResult.error(HttpCodeEnum.INVALID_LATITUDE_FORMAT.getCode(), HttpCodeEnum.INVALID_LATITUDE_FORMAT.getMsg());
|
return AjaxResult.error(HttpCodeEnum.INVALID_LATITUDE_FORMAT.getCode(), HttpCodeEnum.INVALID_LATITUDE_FORMAT.getMsg());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//判断手机号是否合法
|
||||||
|
if (StringUtils.isNotBlank(bmProject.getTelphone()) && !PhoneUtil.isMobile(bmProject.getTelphone())) {
|
||||||
|
return AjaxResult.error(HttpCodeEnum.INVALID_PHONE_FORMAT.getCode(), HttpCodeEnum.INVALID_PHONE_FORMAT.getMsg());
|
||||||
|
}
|
||||||
bmProject.setUpdateTime(DateUtils.getNowDate());
|
bmProject.setUpdateTime(DateUtils.getNowDate());
|
||||||
bmProject.setUpdateBy(SecurityUtils.getUserId().toString());
|
bmProject.setUpdateBy(SecurityUtils.getUserId().toString());
|
||||||
int result = bmProjectMapper.updateBmProject(bmProject);
|
int result = bmProjectMapper.updateBmProject(bmProject);
|
||||||
|
|
|
||||||
|
|
@ -70,6 +70,7 @@ public class BmUnitTypeServiceImpl implements IBmUnitTypeService {
|
||||||
}
|
}
|
||||||
bmUnitType.setCreateBy(SecurityUtils.getUserId().toString());
|
bmUnitType.setCreateBy(SecurityUtils.getUserId().toString());
|
||||||
bmUnitType.setCreateTime(DateUtils.getNowDate());
|
bmUnitType.setCreateTime(DateUtils.getNowDate());
|
||||||
|
bmUnitType.setDictType("bm_unit_type");
|
||||||
int result = bmUnitTypeMapper.insertBmUnitType(bmUnitType);
|
int result = bmUnitTypeMapper.insertBmUnitType(bmUnitType);
|
||||||
if (result > 0) {
|
if (result > 0) {
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
|
|
@ -215,9 +216,6 @@ public class BmUnitTypeServiceImpl implements IBmUnitTypeService {
|
||||||
case 0:
|
case 0:
|
||||||
checkCellNotEmpty(cellValue, r, c);
|
checkCellNotEmpty(cellValue, r, c);
|
||||||
break;
|
break;
|
||||||
case 1:
|
|
||||||
checkCellNotEmpty(cellValue, r, c);
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
throw new IllegalArgumentException(
|
throw new IllegalArgumentException(
|
||||||
String.format("第 %d 行,第 %d 列超出范围,请检查后重新导入", r + 1, c + 1));
|
String.format("第 %d 行,第 %d 列超出范围,请检查后重新导入", r + 1, c + 1));
|
||||||
|
|
@ -234,6 +232,9 @@ public class BmUnitTypeServiceImpl implements IBmUnitTypeService {
|
||||||
//进行更新操作
|
//进行更新操作
|
||||||
result += bmUnitTypeMapper.updateBmUnitType(unitType);
|
result += bmUnitTypeMapper.updateBmUnitType(unitType);
|
||||||
} else {
|
} else {
|
||||||
|
bmUnitType.setCreateBy(SecurityUtils.getUserId().toString());
|
||||||
|
bmUnitType.setCreateTime(DateUtils.getNowDate());
|
||||||
|
bmUnitType.setDictType("bm_unit_type");
|
||||||
result += bmUnitTypeMapper.insertBmUnitType(bmUnitType);
|
result += bmUnitTypeMapper.insertBmUnitType(bmUnitType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,117 @@
|
||||||
|
package com.bonus.material.common.utils;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.net.URLConnection;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* http请求方法集
|
||||||
|
* @Author ma_sh
|
||||||
|
* @create 2024/10/15 16:05
|
||||||
|
*/
|
||||||
|
public class HttpClient {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 向指定URL发送GET方法的请求
|
||||||
|
*
|
||||||
|
* @param url
|
||||||
|
* 发送请求的URL
|
||||||
|
* @return URL 所代表远程资源的响应结果
|
||||||
|
*/
|
||||||
|
public static String sendGet(String url, String token) {
|
||||||
|
String result = "";
|
||||||
|
BufferedReader in = null;
|
||||||
|
try {
|
||||||
|
String urlNameString = url + "?whetherToPaginate=" + 0;
|
||||||
|
URL realUrl = new URL(urlNameString);
|
||||||
|
// 打开和URL之间的连接
|
||||||
|
URLConnection connection = realUrl.openConnection();
|
||||||
|
// 设置通用的请求属性
|
||||||
|
connection.setRequestProperty("accept", "*/*");
|
||||||
|
connection.setRequestProperty("connection", "Keep-Alive");
|
||||||
|
connection.setRequestProperty("user-agent",
|
||||||
|
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
|
||||||
|
connection.setRequestProperty("Authorization", token);
|
||||||
|
// 建立实际的连接
|
||||||
|
connection.connect();
|
||||||
|
// 获取所有响应头字段
|
||||||
|
Map<String, List<String>> map = connection.getHeaderFields();
|
||||||
|
// 遍历所有的响应头字段
|
||||||
|
for (String key : map.keySet()) {
|
||||||
|
System.out.println(key + "--->" + map.get(key));
|
||||||
|
}
|
||||||
|
// 定义 BufferedReader输入流来读取URL的响应
|
||||||
|
in = new BufferedReader(new InputStreamReader(
|
||||||
|
connection.getInputStream(),"UTF-8"));
|
||||||
|
String line;
|
||||||
|
while ((line = in.readLine()) != null) {
|
||||||
|
result += line;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("发送GET请求出现异常!" + e);
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
// 使用finally块来关闭输入流
|
||||||
|
finally {
|
||||||
|
try {
|
||||||
|
if (in != null) {
|
||||||
|
in.close();
|
||||||
|
}
|
||||||
|
} catch (Exception e2) {
|
||||||
|
e2.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String sendGetInfo(String httpUrl, String appId, String ticket) {
|
||||||
|
String result = "";
|
||||||
|
BufferedReader in = null;
|
||||||
|
try {
|
||||||
|
String urlNameString = httpUrl ;
|
||||||
|
URL realUrl = new URL(urlNameString);
|
||||||
|
// 打开和URL之间的连接
|
||||||
|
URLConnection connection = realUrl.openConnection();
|
||||||
|
// 设置通用的请求属性
|
||||||
|
connection.setRequestProperty("accept", "*/*");
|
||||||
|
connection.setRequestProperty("connection", "Keep-Alive");
|
||||||
|
connection.setRequestProperty("user-agent",
|
||||||
|
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
|
||||||
|
connection.setRequestProperty("charsert", "utf-8");
|
||||||
|
connection.setRequestProperty("ticket", ticket);
|
||||||
|
connection.setRequestProperty("appId", appId);
|
||||||
|
// 建立实际的连接
|
||||||
|
connection.connect();
|
||||||
|
// 获取所有响应头字段
|
||||||
|
Map<String, List<String>> map = connection.getHeaderFields();
|
||||||
|
// 遍历所有的响应头字段
|
||||||
|
for (String key : map.keySet()) {
|
||||||
|
System.out.println(key + "--->" + map.get(key));
|
||||||
|
}
|
||||||
|
// 定义 BufferedReader输入流来读取URL的响应
|
||||||
|
in = new BufferedReader(new InputStreamReader(
|
||||||
|
connection.getInputStream()));
|
||||||
|
String line;
|
||||||
|
while ((line = in.readLine()) != null) {
|
||||||
|
result += line;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("发送GET请求出现异常!" + e);
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
// 使用finally块来关闭输入流
|
||||||
|
finally {
|
||||||
|
try {
|
||||||
|
if (in != null) {
|
||||||
|
in.close();
|
||||||
|
}
|
||||||
|
} catch (Exception e2) {
|
||||||
|
e2.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -23,10 +23,44 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<result property="updateTime" column="update_time" />
|
<result property="updateTime" column="update_time" />
|
||||||
<result property="remark" column="remark" />
|
<result property="remark" column="remark" />
|
||||||
<result property="delFlag" column="del_flag" />
|
<result property="delFlag" column="del_flag" />
|
||||||
|
<result property="proCode" column="pro_code" />
|
||||||
|
<result property="impUnit" column="imp_unit" />
|
||||||
|
<result property="proNature" column="pro_nature" />
|
||||||
|
<result property="proStatus" column="pro_status" />
|
||||||
|
<result property="i8proId" column="i8pro_id" />
|
||||||
|
<result property="contractPart" column="contract_part" />
|
||||||
|
<result property="proCenter" column="pro_center" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectBmProjectVo">
|
<sql id="selectBmProjectVo">
|
||||||
select pro_id, pro_name, external_id, external_info, pro_type_id, lon, lat, pro_manager, telphone, plan_start_date, plan_end_date, actual_start_date, actual_end_date, create_by, create_time, update_by, update_time, remark, del_flag from bm_project
|
select bp.pro_id,
|
||||||
|
bp.pro_name,
|
||||||
|
bp.external_id,
|
||||||
|
bp.external_info,
|
||||||
|
bp.pro_type_id,
|
||||||
|
bp.lon,
|
||||||
|
bp.lat,
|
||||||
|
bp.pro_manager,
|
||||||
|
bp.telphone,
|
||||||
|
bp.plan_start_date,
|
||||||
|
bp.plan_end_date,
|
||||||
|
bp.actual_start_date,
|
||||||
|
bp.actual_end_date,
|
||||||
|
bp.create_by,
|
||||||
|
bp.create_time,
|
||||||
|
bp.update_by,
|
||||||
|
bp.update_time,
|
||||||
|
bp.remark,
|
||||||
|
bp.del_flag,
|
||||||
|
bp.pro_code,
|
||||||
|
sd.dept_name as impUnit,
|
||||||
|
bp.pro_nature,
|
||||||
|
bp.pro_status,
|
||||||
|
bp.i8pro_id,
|
||||||
|
bp.contract_part,
|
||||||
|
bp.pro_center
|
||||||
|
from bm_project bp
|
||||||
|
left join sys_dept sd on sd.dept_id = bp.imp_unit
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectBmProjectList" parameterType="com.bonus.material.basic.domain.BmProject" resultMap="BmProjectResult">
|
<select id="selectBmProjectList" parameterType="com.bonus.material.basic.domain.BmProject" resultMap="BmProjectResult">
|
||||||
|
|
@ -52,8 +86,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<include refid="selectBmProjectVo"/>
|
<include refid="selectBmProjectVo"/>
|
||||||
where del_flag = 0 and pro_id = #{proId}
|
where del_flag = 0 and pro_id = #{proId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectBmProjectByProName" resultType="com.bonus.material.basic.domain.BmProject">
|
<select id="selectBmProjectByProName" resultType="com.bonus.material.basic.domain.BmProject">
|
||||||
select pro_id as proId, pro_name as proName from bm_project where del_flag = 0 and pro_name = #{proName}
|
select bp.pro_id as proId,
|
||||||
|
bp.pro_name as proName,
|
||||||
|
bp.pro_code as proCode
|
||||||
|
from bm_project bp
|
||||||
|
where bp.del_flag = '0'
|
||||||
|
<if test="proName != null and proName != ''">
|
||||||
|
<if test="proCode != null and proCode != ''">
|
||||||
|
and (bp.pro_name = #{proName} or bp.pro_code = #{proCode})
|
||||||
|
</if>
|
||||||
|
<if test="proCode == null or proCode == ''">
|
||||||
|
and bp.pro_name = #{proName}
|
||||||
|
</if>
|
||||||
|
</if>
|
||||||
|
<if test="proName == null or proName == ''">
|
||||||
|
<if test="proCode != null and proCode != ''">
|
||||||
|
and bp.pro_code = #{proCode}
|
||||||
|
</if>
|
||||||
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<insert id="insertBmProject" parameterType="com.bonus.material.basic.domain.BmProject">
|
<insert id="insertBmProject" parameterType="com.bonus.material.basic.domain.BmProject">
|
||||||
|
|
@ -77,7 +129,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="updateBy != null">update_by,</if>
|
<if test="updateBy != null">update_by,</if>
|
||||||
<if test="updateTime != null">update_time,</if>
|
<if test="updateTime != null">update_time,</if>
|
||||||
<if test="remark != null">remark,</if>
|
<if test="remark != null">remark,</if>
|
||||||
del_flag
|
del_flag,
|
||||||
|
<if test="proCode != null">pro_code,</if>
|
||||||
|
<if test="impUnit != null">imp_unit,</if>
|
||||||
|
<if test="proNature != null">pro_nature,</if>
|
||||||
|
<if test="proStatus != null">pro_status,</if>
|
||||||
|
<if test="i8proId != null">i8pro_id,</if>
|
||||||
|
<if test="contractPart != null">contract_part,</if>
|
||||||
|
<if test="proCenter != null">pro_center</if>
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
<if test="proId != null">#{proId},</if>
|
<if test="proId != null">#{proId},</if>
|
||||||
|
|
@ -98,7 +157,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="updateBy != null">#{updateBy},</if>
|
<if test="updateBy != null">#{updateBy},</if>
|
||||||
<if test="updateTime != null">#{updateTime},</if>
|
<if test="updateTime != null">#{updateTime},</if>
|
||||||
<if test="remark != null">#{remark},</if>
|
<if test="remark != null">#{remark},</if>
|
||||||
0
|
0,
|
||||||
|
<if test="proCode != null">#{proCode},</if>
|
||||||
|
<if test="impUnit != null">#{impUnit},</if>
|
||||||
|
<if test="proNature != null">#{proNature},</if>
|
||||||
|
<if test="proStatus != null">#{proStatus},</if>
|
||||||
|
<if test="i8proId != null">#{i8proId},</if>
|
||||||
|
<if test="contractPart != null">#{contractPart},</if>
|
||||||
|
<if test="proCenter != null">#{proCenter}</if>
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
|
@ -120,6 +186,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||||
<if test="remark != null">remark = #{remark},</if>
|
<if test="remark != null">remark = #{remark},</if>
|
||||||
|
<if test="proCode != null">pro_code = #{proCode},</if>
|
||||||
|
<if test="impUnit != null">imp_unit = #{impUnit},</if>
|
||||||
|
<if test="proNature != null">pro_nature = #{proNature},</if>
|
||||||
|
<if test="proStatus != null">pro_status = #{proStatus},</if>
|
||||||
|
<if test="i8proId != null">i8pro_id = #{i8proId},</if>
|
||||||
|
<if test="contractPart != null">contract_part = #{contractPart},</if>
|
||||||
|
<if test="proCenter != null">pro_center = #{proCenter}</if>
|
||||||
</trim>
|
</trim>
|
||||||
where pro_id = #{proId}
|
where pro_id = #{proId}
|
||||||
</update>
|
</update>
|
||||||
|
|
|
||||||
|
|
@ -4,59 +4,56 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.bonus.material.basic.mapper.BmUnitTypeMapper">
|
<mapper namespace="com.bonus.material.basic.mapper.BmUnitTypeMapper">
|
||||||
<insert id="insertBmUnitType">
|
<insert id="insertBmUnitType">
|
||||||
insert into bm_unit_type
|
insert into sys_dict_data
|
||||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
<if test="typeName != null and typeName != ''">type_name,</if>
|
<if test="typeName != null and typeName != ''">dict_label,</if>
|
||||||
<if test="companyId != null">company_id,</if>
|
status,
|
||||||
del_flag,
|
|
||||||
<if test="createBy != null">create_by,</if>
|
<if test="createBy != null">create_by,</if>
|
||||||
<if test="createTime != null">create_time,</if>
|
<if test="createTime != null">create_time,</if>
|
||||||
<if test="updateBy != null">update_by,</if>
|
<if test=" dictType != null and dictType != ''">dict_type</if>
|
||||||
<if test="updateTime != null">update_time,</if>
|
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
<if test="typeName != null and typeName != ''">#{typeName},</if>
|
<if test="typeName != null and typeName != ''">#{typeName},</if>
|
||||||
<if test="companyId != null">#{companyId},</if>
|
|
||||||
0,
|
0,
|
||||||
<if test="createBy != null">#{createBy},</if>
|
<if test="createBy != null">#{createBy},</if>
|
||||||
<if test="createTime != null">#{createTime},</if>
|
<if test="createTime != null">#{createTime},</if>
|
||||||
<if test="updateBy != null">#{updateBy},</if>
|
<if test=" dictType != null and dictType != ''">#{dictType}</if>
|
||||||
<if test="updateTime != null">#{updateTime},</if>
|
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
<update id="updateBmUnitType">
|
<update id="updateBmUnitType">
|
||||||
update bm_unit_type
|
update sys_dict_data
|
||||||
<trim prefix="SET" suffixOverrides=",">
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
<if test="typeName != null and typeName != ''">type_name = #{typeName},</if>
|
<if test="typeName != null and typeName != ''">dict_label = #{typeName},</if>
|
||||||
<if test="companyId != null">company_id = #{companyId},</if>
|
|
||||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||||
<if test="updateTime !=null">update_time = #{updateTime},</if>
|
<if test="updateTime !=null">update_time = #{updateTime},</if>
|
||||||
</trim>
|
</trim>
|
||||||
where type_id = #{typeId}
|
where dict_code = #{typeId} and dict_type = 'bm_unit_type'
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<delete id="deleteBmUnitTypeByUnitTypeIds">
|
<delete id="deleteBmUnitTypeByUnitTypeIds">
|
||||||
update bm_unit_type set del_flag = 2 where type_id = #{typeId}
|
update sys_dict_data set status = 1 where dict_code = #{typeId} and dict_type = 'bm_unit_type'
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
<select id="selectBmUnitList" resultType="com.bonus.material.basic.domain.BmUnitType">
|
<select id="selectBmUnitList" resultType="com.bonus.material.basic.domain.BmUnitType">
|
||||||
select type_id as typeId, type_name as typeName, company_id as companyId, del_flag as delFlag
|
select dict_code as typeId, dict_label as typeName, status as delFlag
|
||||||
from bm_unit_type
|
from sys_dict_data
|
||||||
where
|
where
|
||||||
del_flag = '0'
|
status = '0' and dict_type = 'bm_unit_type'
|
||||||
<if test="typeName != null and typeName != ''">
|
<if test="typeName != null and typeName != ''">
|
||||||
AND type_name like concat('%', #{typeName}, '%')
|
AND dict_label like concat('%', #{typeName}, '%')
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectListByID" resultType="com.bonus.material.basic.domain.BmUnitType">
|
<select id="selectListByID" resultType="com.bonus.material.basic.domain.BmUnitType">
|
||||||
select type_id as typeId, type_name as typeName, company_id as companyId, del_flag as delFlag from bm_unit_type
|
select dict_code as typeId, dict_label as typeName, status as delFlag
|
||||||
where del_flag = '0' and type_id = #{typeId}
|
from sys_dict_data
|
||||||
|
where status = '0' and dict_code = #{typeId} and dict_type = 'bm_unit_type'
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectBmUnitTypeByTypeName" resultType="com.bonus.material.basic.domain.BmUnitType">
|
<select id="selectBmUnitTypeByTypeName" resultType="com.bonus.material.basic.domain.BmUnitType">
|
||||||
select type_id as typeId, type_name as typeName, company_id as companyId, del_flag as delFlag from bm_unit_type
|
select dict_code as typeId, dict_label as typeName, status as delFlag from sys_dict_data
|
||||||
where del_flag = '0' and type_name = #{typeName}
|
where status = '0' and dict_label = #{typeName} and dict_type = 'bm_unit_type'
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="select" resultType="java.lang.Integer">
|
<select id="select" resultType="java.lang.Integer">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue