1. 办公基价作价
This commit is contained in:
parent
555c840303
commit
645c661478
@ -1,142 +1,146 @@
|
||||
package com.ruoyi.common.utils.file;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLEncoder;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
/**
|
||||
* 文件处理工具类
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class FileUtils
|
||||
{
|
||||
public static String FILENAME_PATTERN = "[a-zA-Z0-9_\\-\\|\\.\\u4e00-\\u9fa5]+";
|
||||
|
||||
/**
|
||||
* 输出指定文件的byte数组
|
||||
*
|
||||
* @param filePath 文件路径
|
||||
* @param os 输出流
|
||||
* @return
|
||||
*/
|
||||
public static void writeBytes(String filePath, OutputStream os) throws IOException
|
||||
{
|
||||
FileInputStream fis = null;
|
||||
try
|
||||
{
|
||||
File file = new File(filePath);
|
||||
if (!file.exists())
|
||||
{
|
||||
throw new FileNotFoundException(filePath);
|
||||
}
|
||||
fis = new FileInputStream(file);
|
||||
byte[] b = new byte[1024];
|
||||
int length;
|
||||
while ((length = fis.read(b)) > 0)
|
||||
{
|
||||
os.write(b, 0, length);
|
||||
}
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
throw e;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (os != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
os.close();
|
||||
}
|
||||
catch (IOException e1)
|
||||
{
|
||||
e1.printStackTrace();
|
||||
}
|
||||
}
|
||||
if (fis != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
fis.close();
|
||||
}
|
||||
catch (IOException e1)
|
||||
{
|
||||
e1.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除文件
|
||||
*
|
||||
* @param filePath 文件
|
||||
* @return
|
||||
*/
|
||||
public static boolean deleteFile(String filePath)
|
||||
{
|
||||
boolean flag = false;
|
||||
File file = new File(filePath);
|
||||
// 路径为文件且不为空则进行删除
|
||||
if (file.isFile() && file.exists())
|
||||
{
|
||||
file.delete();
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 文件名称验证
|
||||
*
|
||||
* @param filename 文件名称
|
||||
* @return true 正常 false 非法
|
||||
*/
|
||||
public static boolean isValidFilename(String filename)
|
||||
{
|
||||
return filename.matches(FILENAME_PATTERN);
|
||||
}
|
||||
|
||||
/**
|
||||
* 下载文件名重新编码
|
||||
*
|
||||
* @param request 请求对象
|
||||
* @param fileName 文件名
|
||||
* @return 编码后的文件名
|
||||
*/
|
||||
public static String setFileDownloadHeader(HttpServletRequest request, String fileName)
|
||||
throws UnsupportedEncodingException
|
||||
{
|
||||
final String agent = request.getHeader("USER-AGENT");
|
||||
String filename = fileName;
|
||||
if (agent.contains("MSIE"))
|
||||
{
|
||||
// IE浏览器
|
||||
filename = URLEncoder.encode(filename, "utf-8");
|
||||
filename = filename.replace("+", " ");
|
||||
}
|
||||
else if (agent.contains("Firefox"))
|
||||
{
|
||||
// 火狐浏览器
|
||||
filename = new String(fileName.getBytes(), "ISO8859-1");
|
||||
}
|
||||
else if (agent.contains("Chrome"))
|
||||
{
|
||||
// google浏览器
|
||||
filename = URLEncoder.encode(filename, "utf-8");
|
||||
}
|
||||
else
|
||||
{
|
||||
// 其它浏览器
|
||||
filename = URLEncoder.encode(filename, "utf-8");
|
||||
}
|
||||
return filename;
|
||||
}
|
||||
}
|
||||
package com.ruoyi.common.utils.file;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.URLEncoder;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
/**
|
||||
* 文件处理工具类
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class FileUtils {
|
||||
private static final int SIZE = 2048;
|
||||
public static String FILENAME_PATTERN = "[a-zA-Z0-9_\\-\\|\\.\\u4e00-\\u9fa5]+";
|
||||
|
||||
/**
|
||||
* 输出指定文件的byte数组
|
||||
*
|
||||
* @param filePath 文件路径
|
||||
* @param os 输出流
|
||||
* @return
|
||||
*/
|
||||
public static void writeBytes(String filePath, OutputStream os) throws IOException {
|
||||
FileInputStream fis = null;
|
||||
try {
|
||||
File file = new File(filePath);
|
||||
if (!file.exists()) {
|
||||
throw new FileNotFoundException(filePath);
|
||||
}
|
||||
fis = new FileInputStream(file);
|
||||
byte[] b = new byte[SIZE];
|
||||
int length;
|
||||
while ((length = fis.read(b)) > 0) {
|
||||
os.write(b, 0, length);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw e;
|
||||
} finally {
|
||||
if (os != null) {
|
||||
try {
|
||||
os.close();
|
||||
} catch (IOException e1) {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
}
|
||||
if (fis != null) {
|
||||
try {
|
||||
fis.close();
|
||||
} catch (IOException e1) {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除文件
|
||||
*
|
||||
* @param filePath 文件
|
||||
* @return
|
||||
*/
|
||||
public static boolean deleteFile(String filePath) {
|
||||
boolean flag = false;
|
||||
File file = new File(filePath);
|
||||
// 路径为文件且不为空则进行删除
|
||||
if (file.isFile() && file.exists()) {
|
||||
file.delete();
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 文件名称验证
|
||||
*
|
||||
* @param filename 文件名称
|
||||
* @return true 正常 false 非法
|
||||
*/
|
||||
public static boolean isValidFilename(String filename) {
|
||||
return filename.matches(FILENAME_PATTERN);
|
||||
}
|
||||
|
||||
/**
|
||||
* 下载文件名重新编码
|
||||
*
|
||||
* @param request 请求对象
|
||||
* @param fileName 文件名
|
||||
* @return 编码后的文件名
|
||||
*/
|
||||
public static String setFileDownloadHeader(HttpServletRequest request, String fileName)
|
||||
throws UnsupportedEncodingException {
|
||||
final String agent = request.getHeader("USER-AGENT");
|
||||
String filename = fileName;
|
||||
if (agent.contains("MSIE")) {
|
||||
// IE浏览器
|
||||
filename = URLEncoder.encode(filename, "utf-8");
|
||||
filename = filename.replace("+", " ");
|
||||
} else if (agent.contains("Firefox")) {
|
||||
// 火狐浏览器
|
||||
filename = new String(fileName.getBytes(), "ISO8859-1");
|
||||
} else if (agent.contains("Chrome")) {
|
||||
// google浏览器
|
||||
filename = URLEncoder.encode(filename, "utf-8");
|
||||
} else {
|
||||
// 其它浏览器
|
||||
filename = URLEncoder.encode(filename, "utf-8");
|
||||
}
|
||||
return filename;
|
||||
}
|
||||
|
||||
/**
|
||||
* 读取文本文件
|
||||
*
|
||||
* @param fileName
|
||||
* @return
|
||||
*/
|
||||
public static String readFile(String fileName) {
|
||||
InputStream is = null;
|
||||
try {
|
||||
is = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName);
|
||||
StringBuffer stringBuffer = new StringBuffer();
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), SIZE);
|
||||
char[] buf = new char[SIZE];
|
||||
int numRead = 0;
|
||||
while ((numRead = reader.read(buf)) != -1) {
|
||||
String readData = String.valueOf(buf, 0, numRead);
|
||||
stringBuffer.append(readData);
|
||||
buf = new char[SIZE];
|
||||
}
|
||||
reader.close();
|
||||
return stringBuffer.toString();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
if (is != null) {
|
||||
is.close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
37
ruoyi/src/main/java/com/ruoyi/framework/config/UVConfig.java
Normal file
37
ruoyi/src/main/java/com/ruoyi/framework/config/UVConfig.java
Normal file
@ -0,0 +1,37 @@
|
||||
package com.ruoyi.framework.config;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* 读取项目相关配置
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = "uv")
|
||||
public class UVConfig {
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
private String dataUrl;
|
||||
|
||||
private String aitificialOfficeBasePriceUrl;
|
||||
|
||||
public String getDataUrl() {
|
||||
return dataUrl;
|
||||
}
|
||||
|
||||
public void setDataUrl(String dataUrl) {
|
||||
this.dataUrl = dataUrl;
|
||||
}
|
||||
|
||||
public String getAitificialOfficeBasePriceUrl() {
|
||||
return getDataUrl() + aitificialOfficeBasePriceUrl;
|
||||
}
|
||||
|
||||
public void setAitificialOfficeBasePriceUrl(String aitificialOfficeBasePriceUrl) {
|
||||
this.aitificialOfficeBasePriceUrl = aitificialOfficeBasePriceUrl;
|
||||
}
|
||||
}
|
32
ruoyi/src/main/java/com/ruoyi/project/common/UVResponse.java
Normal file
32
ruoyi/src/main/java/com/ruoyi/project/common/UVResponse.java
Normal file
@ -0,0 +1,32 @@
|
||||
package com.ruoyi.project.common;
|
||||
|
||||
public class UVResponse<T> {
|
||||
|
||||
private int code;
|
||||
private String message;
|
||||
private T data;
|
||||
|
||||
public int getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(int code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public T getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public void setData(T data) {
|
||||
this.data = data;
|
||||
}
|
||||
}
|
@ -50,9 +50,9 @@ public class UltimateOfficeBasePriceController extends BaseController {
|
||||
int pageSize = ServletUtils.getParameterToInt(TableSupport.PAGE_SIZE);
|
||||
officeBasePriceUltimate.setPageIndex(pageIndex <= 1 ? 0 : (pageIndex - 1) * pageSize);
|
||||
officeBasePriceUltimate.setPageSize(pageSize);
|
||||
int total = officeBasePriceUltimateService.selectOfficeBasePriceUltimateListCount(officeBasePriceUltimate);
|
||||
List<UltimateOfficeBasePrice> list =
|
||||
officeBasePriceUltimateService.selectOfficeBasePriceUltimateList(officeBasePriceUltimate);
|
||||
int total = officeBasePriceUltimateService.selectOfficeBasePriceUltimateListCount(officeBasePriceUltimate);
|
||||
return getDataTable(list, total);
|
||||
}
|
||||
|
||||
|
@ -7,6 +7,7 @@ import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.ruoyi.project.common.VueSelectModel;
|
||||
import com.ruoyi.project.data.price.domain.OfficeBasePriceModifyModel;
|
||||
import com.ruoyi.project.data.price.domain.UltimateOfficeBasePrice;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 办公基价Mapper接口
|
||||
@ -60,7 +61,15 @@ public interface UltimateOfficeBasePriceMapper {
|
||||
* @param officeBasePriceModifyModel
|
||||
* @return
|
||||
*/
|
||||
int updateBasePrice(OfficeBasePriceModifyModel officeBasePriceModifyModel);
|
||||
int updateBasePriceStatus(OfficeBasePriceModifyModel officeBasePriceModifyModel);
|
||||
|
||||
/**
|
||||
* 更新当前基价
|
||||
*
|
||||
* @param officeBasePriceModifyModel
|
||||
* @return
|
||||
*/
|
||||
int updateBasePriceCopyNew(OfficeBasePriceModifyModel officeBasePriceModifyModel);
|
||||
|
||||
/**
|
||||
* 年月
|
||||
@ -77,4 +86,12 @@ public interface UltimateOfficeBasePriceMapper {
|
||||
*/
|
||||
int insertArtificialOfficeBasePrice(UltimateOfficeBasePrice ultimateOfficeBasePrice);
|
||||
|
||||
/**
|
||||
* 批量插入人工修正办公基价
|
||||
*
|
||||
* @param ultimateOfficeBasePrices
|
||||
* @return
|
||||
*/
|
||||
int batchInsertArtificialOfficeBase(@Param("yearMonth") Integer yearMonth,
|
||||
@Param("list") List<UltimateOfficeBasePrice> ultimateOfficeBasePrices);
|
||||
}
|
||||
|
@ -1,12 +1,13 @@
|
||||
package com.ruoyi.project.data.price.service.impl;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
|
||||
import com.ruoyi.common.exception.CustomException;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.file.FileUtils;
|
||||
import com.ruoyi.framework.config.UVConfig;
|
||||
import com.ruoyi.project.common.UVResponse;
|
||||
import com.ruoyi.project.common.VueSelectModel;
|
||||
import com.ruoyi.project.data.price.domain.OfficeBasePriceModifyModel;
|
||||
import com.ruoyi.project.data.price.domain.UltimateOfficeBasePrice;
|
||||
@ -16,7 +17,11 @@ import com.ruoyi.project.system.service.impl.SysUserServiceImpl;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
/**
|
||||
* 办公基价Service业务层处理
|
||||
@ -31,6 +36,9 @@ public class UltimateOfficeBasePriceServiceImpl implements IUltimateOfficeBasePr
|
||||
|
||||
@Autowired
|
||||
private UltimateOfficeBasePriceMapper officeBasePriceUltimateMapper;
|
||||
@Autowired
|
||||
private UVConfig uvConfig;
|
||||
|
||||
|
||||
private static Integer getLastYearMonth(Integer yearMonth) {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
@ -68,47 +76,22 @@ public class UltimateOfficeBasePriceServiceImpl implements IUltimateOfficeBasePr
|
||||
if (StringUtils.isNull(officeBasePriceUltimates) || officeBasePriceUltimates.size() == 0) {
|
||||
throw new CustomException("导入办公数据不能为空!");
|
||||
}
|
||||
int successNum = 0;
|
||||
int successNum = officeBasePriceUltimates.size();
|
||||
int failureNum = 0;
|
||||
int insertNum = 0;
|
||||
StringBuilder successMsg = new StringBuilder();
|
||||
StringBuilder failureMsg = new StringBuilder();
|
||||
Integer lastYearMonth = getLastYearMonth(yearMonth);
|
||||
|
||||
// 批量插入
|
||||
officeBasePriceUltimates.stream().parallel().forEach(inputModel -> {
|
||||
inputModel.setYearMonth(yearMonth);
|
||||
officeBasePriceUltimateMapper.insertArtificialOfficeBasePrice(inputModel);
|
||||
});
|
||||
|
||||
for (UltimateOfficeBasePrice inputModel : officeBasePriceUltimates) {
|
||||
try {
|
||||
inputModel.setYearMonth(yearMonth);
|
||||
officeBasePriceUltimateMapper.insertArtificialOfficeBasePrice(inputModel);
|
||||
// 验证是否存在这个用户
|
||||
UltimateOfficeBasePrice currentUltimateOfficeBasePrice =
|
||||
officeBasePriceUltimateMapper.getById(yearMonth, lastYearMonth,
|
||||
inputModel.getId());
|
||||
UltimateOfficeBasePrice lastUltimateOfficeBasePrice =
|
||||
officeBasePriceUltimateMapper.getByBuildingId(lastYearMonth,
|
||||
inputModel.getBuildingId());
|
||||
if (StringUtils.isNotNull(currentUltimateOfficeBasePrice)) {
|
||||
updateBasePrice(inputModel, currentUltimateOfficeBasePrice, lastUltimateOfficeBasePrice);
|
||||
successNum++;
|
||||
successMsg.append("<br/>" + successNum + "、ID= " + inputModel.getId() + " 更新成功");
|
||||
} else {
|
||||
failureNum++;
|
||||
failureMsg.append("<br/>" + failureNum + "、ID= " + inputModel.getId() + " 失败");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
failureNum++;
|
||||
String msg = "<br/>" + failureNum + "、ID= " + inputModel.getId() + " 导入失败:";
|
||||
failureMsg.append(msg + e.getMessage());
|
||||
log.error(msg, e);
|
||||
}
|
||||
}
|
||||
if (failureNum > 0) {
|
||||
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
|
||||
throw new CustomException(failureMsg.toString());
|
||||
} else {
|
||||
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
|
||||
}
|
||||
RestTemplate restTemplate = new RestTemplate();
|
||||
String url = String.format(uvConfig.getAitificialOfficeBasePriceUrl(), yearMonth, lastYearMonth);
|
||||
UVResponse<Integer> affectCount = restTemplate.getForObject(url, UVResponse.class);
|
||||
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,修改数据:" + affectCount.getData() + "条");
|
||||
return successMsg.toString();
|
||||
}
|
||||
|
||||
@ -147,19 +130,21 @@ public class UltimateOfficeBasePriceServiceImpl implements IUltimateOfficeBasePr
|
||||
* @param currentUltimateOfficeBasePrice
|
||||
* @param lastUltimateOfficeBasePrice
|
||||
*/
|
||||
private void updateBasePrice(UltimateOfficeBasePrice inputModel,
|
||||
UltimateOfficeBasePrice currentUltimateOfficeBasePrice,
|
||||
UltimateOfficeBasePrice lastUltimateOfficeBasePrice) {
|
||||
public void updateBasePrice(UltimateOfficeBasePrice inputModel,
|
||||
UltimateOfficeBasePrice currentUltimateOfficeBasePrice,
|
||||
UltimateOfficeBasePrice lastUltimateOfficeBasePrice) {
|
||||
|
||||
OfficeBasePriceModifyModel officeBasePriceModifyModel = compareYearMonth(inputModel,
|
||||
currentUltimateOfficeBasePrice, lastUltimateOfficeBasePrice);
|
||||
if (null != officeBasePriceModifyModel) {
|
||||
officeBasePriceUltimateMapper.updateBasePrice(officeBasePriceModifyModel);
|
||||
officeBasePriceUltimateMapper.updateBasePriceStatus(officeBasePriceModifyModel);
|
||||
officeBasePriceUltimateMapper.updateBasePriceCopyNew(officeBasePriceModifyModel);
|
||||
}
|
||||
|
||||
officeBasePriceModifyModel = compareLastYearMonth(inputModel, lastUltimateOfficeBasePrice);
|
||||
if (null != officeBasePriceModifyModel) {
|
||||
officeBasePriceUltimateMapper.updateBasePrice(officeBasePriceModifyModel);
|
||||
officeBasePriceUltimateMapper.updateBasePriceStatus(officeBasePriceModifyModel);
|
||||
officeBasePriceUltimateMapper.updateBasePriceCopyNew(officeBasePriceModifyModel);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -12,6 +12,9 @@ ruoyi:
|
||||
profile: D:/ruoyi/uploadPath
|
||||
# 获取ip地址开关
|
||||
addressEnabled: false
|
||||
uv:
|
||||
dataUrl: http://172.16.30.74:9500/api
|
||||
aitificialOfficeBasePriceUrl: /price/office/artificial?yearMonth=%d&lastYearMonth=%d
|
||||
|
||||
# 开发环境配置
|
||||
server:
|
||||
|
@ -107,7 +107,7 @@
|
||||
<if test="status != null">
|
||||
AND a.STATUS = #{status}
|
||||
</if>
|
||||
order by a.BUILDINGID_P ASC,a.ID DESC OFFSET #{pageIndex} rows fetch next #{pageSize} rows only;
|
||||
order by a.ModifyDate DESC,a.BUILDINGID_P ASC OFFSET #{pageIndex} rows fetch next #{pageSize} rows only;
|
||||
</select>
|
||||
|
||||
<select id="getById" resultMap="OfficeBasePriceUltimateResult">
|
||||
@ -120,7 +120,18 @@
|
||||
<!-- 更新基价 -->
|
||||
<update id="updateBasePrice" parameterType="com.ruoyi.project.data.price.domain.OfficeBasePriceModifyModel">
|
||||
update ODS_OFFICE_BUILDING_PRICE_INFO_${yearMonth} set Status=0 where id=#{id};
|
||||
insert into ODS_OFFICE_BUILDING_PRICE_INFO_${yearMonth}(BuildingID
|
||||
</update>
|
||||
<insert id="batchInsertArtificialOfficeBase" >
|
||||
insert into
|
||||
dbo.DWA_PROJECTBASEPRICE_OFFICE_MANU_${yearMonth}(ID,BuildingID,ProjectID,County,"Loop",Block,ProjectAddr,ProjectName,Year,AvgArea,TotalFloorSum,UpperFloorSum,OfficeClass,Grade,MainPrice_1,MainPriceRent_1,MainPrice,MainPriceRent,ModifyDate)
|
||||
values
|
||||
<foreach collection="list" item="item" separator="," >
|
||||
(#{item.id},#{item.buildingId},#{item.communityId},#{item.countyName},#{item.loopName},#{item.blockName},#{item.communityAddress},#{item.communityName},#{item.year},#{item.avgArea},#{item.totalFloorSum},#{item.upperFloorSum},#{item.officeClass},#{item.officeLevel},#{item.mainPrice_1},#{item.mainPriceRent_1},#{item.mainPrice},#{item.mainPriceRent},getdate())
|
||||
</foreach>
|
||||
</insert>
|
||||
<!-- 更新基价 -->
|
||||
<insert id="updateBasePriceCopyNew" parameterType="com.ruoyi.project.data.price.domain.OfficeBasePriceModifyModel">
|
||||
insert into ODS_OFFICE_BUILDING_PRICE_INFO_${yearMonth}(BuildingID
|
||||
,UnifiedID
|
||||
,ProjectID
|
||||
,BuildingID_P
|
||||
@ -151,7 +162,7 @@
|
||||
,BuildingStd
|
||||
,#{comment}
|
||||
from ODS_OFFICE_BUILDING_PRICE_INFO_${yearMonth} where id=#{id};
|
||||
</update>
|
||||
</insert>
|
||||
|
||||
<!-- 获取表名 -->
|
||||
<select id="getYearMonthList" resultType="com.ruoyi.project.common.VueSelectModel">
|
||||
|
Loading…
x
Reference in New Issue
Block a user