From 23db85a2c1315280b183307d2b457f2534afd3c8 Mon Sep 17 00:00:00 2001 From: purple Date: Thu, 4 Jun 2020 18:32:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=B9=B3=E5=8F=B0=E5=89=8D?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=E5=88=86=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/utils/request.js | 148 ++++++------ .../data/price/UltimateOfficeBasePrice.vue | 214 +++++++++++++++--- .../UltimateOfficeBasePriceController.java | 18 +- .../domain/OfficeBasePriceModifyModel.java | 67 ++++++ .../price/domain/UltimateOfficeBasePrice.java | 8 +- .../mapper/UltimateOfficeBasePriceMapper.java | 29 +-- .../IUltimateOfficeBasePriceService.java | 18 +- .../UltimateOfficeBasePriceServiceImpl.java | 105 +++++++-- .../src/main/resources/application-druid.yml | 17 +- .../data/UltimateOfficeBasePriceMapper.xml | 146 +++++++----- 10 files changed, 543 insertions(+), 227 deletions(-) create mode 100644 ruoyi/src/main/java/com/ruoyi/project/data/price/domain/OfficeBasePriceModifyModel.java diff --git a/ruoyi-ui/src/utils/request.js b/ruoyi-ui/src/utils/request.js index cac52c34d..1945dbdca 100644 --- a/ruoyi-ui/src/utils/request.js +++ b/ruoyi-ui/src/utils/request.js @@ -1,74 +1,74 @@ -import axios from 'axios' -import { Notification, MessageBox, Message } from 'element-ui' -import store from '@/store' -import { getToken } from '@/utils/auth' -import errorCode from '@/utils/errorCode' - -axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' -// 创建axios实例 -const service = axios.create({ - // axios中请求配置有baseURL选项,表示请求URL公共部分 - baseURL: process.env.VUE_APP_BASE_API, - // 超时 - timeout: 10000 -}) -// request拦截器 -service.interceptors.request.use(config => { - // 是否需要设置 token - const isToken = (config.headers || {}).isToken === false - if (getToken() && !isToken) { - config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 - } - return config -}, error => { - console.log(error) - Promise.reject(error) -}) - -// 响应拦截器 -service.interceptors.response.use(res => { - // 未设置状态码则默认成功状态 - const code = res.data.code || 200; - // 获取错误信息 - const message = errorCode[code] || res.data.msg || errorCode['default'] - if (code === 401) { - MessageBox.confirm( - '登录状态已过期,您可以继续留在该页面,或者重新登录', - '系统提示', - { - confirmButtonText: '重新登录', - cancelButtonText: '取消', - type: 'warning' - } - ).then(() => { - store.dispatch('LogOut').then(() => { - location.reload() // 为了重新实例化vue-router对象 避免bug - }) - }) - } else if (code === 500) { - Message({ - message: message, - type: 'error' - }) - return Promise.reject(new Error(message)) - } else if (code !== 200) { - Notification.error({ - title: message - }) - return Promise.reject('error') - } else { - return res.data - } - }, - error => { - console.log('err' + error) - Message({ - message: error.message, - type: 'error', - duration: 5 * 1000 - }) - return Promise.reject(error) - } -) - -export default service +import axios from 'axios' +import { Notification, MessageBox, Message } from 'element-ui' +import store from '@/store' +import { getToken } from '@/utils/auth' +import errorCode from '@/utils/errorCode' + +axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' +// 创建axios实例 +const service = axios.create({ + // axios中请求配置有baseURL选项,表示请求URL公共部分 + baseURL: process.env.VUE_APP_BASE_API, + // 超时 + timeout: 30 * 1000 +}) +// request拦截器 +service.interceptors.request.use(config => { + // 是否需要设置 token + const isToken = (config.headers || {}).isToken === false + if (getToken() && !isToken) { + config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 + } + return config +}, error => { + console.log(error) + Promise.reject(error) +}) + +// 响应拦截器 +service.interceptors.response.use(res => { + // 未设置状态码则默认成功状态 + const code = res.data.code || 200; + // 获取错误信息 + const message = errorCode[code] || res.data.msg || errorCode['default'] + if (code === 401) { + MessageBox.confirm( + '登录状态已过期,您可以继续留在该页面,或者重新登录', + '系统提示', + { + confirmButtonText: '重新登录', + cancelButtonText: '取消', + type: 'warning' + } + ).then(() => { + store.dispatch('LogOut').then(() => { + location.reload() // 为了重新实例化vue-router对象 避免bug + }) + }) + } else if (code === 500) { + Message({ + message: message, + type: 'error' + }) + return Promise.reject(new Error(message)) + } else if (code !== 200) { + Notification.error({ + title: message + }) + return Promise.reject('error') + } else { + return res.data + } + }, + error => { + console.log('err' + error) + Message({ + message: error.message, + type: 'error', + duration: 5 * 1000 + }) + return Promise.reject(error) + } +) + +export default service diff --git a/ruoyi-ui/src/views/data/price/UltimateOfficeBasePrice.vue b/ruoyi-ui/src/views/data/price/UltimateOfficeBasePrice.vue index 1ace6b2db..ba90017d8 100644 --- a/ruoyi-ui/src/views/data/price/UltimateOfficeBasePrice.vue +++ b/ruoyi-ui/src/views/data/price/UltimateOfficeBasePrice.vue @@ -42,16 +42,6 @@ - - 修改 - - - + + - - + + @@ -104,7 +94,12 @@ /> - + @@ -134,52 +122,149 @@ - + - + - + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -190,7 +275,13 @@ - + { + if (!value) { + callback(new Error("请输入价格")); + } else if (value === "" || isNaN(parseFloat(value))) { + callback(new Error("请输入价格")); + } else { + if (value <= 0) { + callback(new Error("请输入合理价格")); + } else { + callback(); + } + } + }; return { // 遮罩层 @@ -254,7 +358,7 @@ export default { // 总条数 total: 0, // 办公基价表格数据 - ultimateList: [], + dataList: [], // 弹出层标题 title: "", // 是否显示弹出层 @@ -293,6 +397,28 @@ export default { { validator: checkYearMonth, trigger: "blur" }, { validator: checkYearMonth, trigger: "change" } ] + }, + updateRules: { + yearMonth: [ + { validator: checkYearMonth, trigger: "blur" }, + { validator: checkYearMonth, trigger: "change" } + ], + mainPrice: [ + { validator: checkPrice, trigger: "blur" }, + { validator: checkPrice, trigger: "change" } + ], + mainPriceRent: [ + { validator: checkPrice, trigger: "blur" }, + { validator: checkPrice, trigger: "change" } + ], + mainPrice_1: [ + { validator: checkPrice, trigger: "blur" }, + { validator: checkPrice, trigger: "change" } + ], + mainPriceRent_1: [ + { validator: checkPrice, trigger: "blur" }, + { validator: checkPrice, trigger: "change" } + ] } }; }, @@ -375,7 +501,25 @@ export default { this.reset(); const id = row.id || this.ids; const yearMonth = row.yearMonth; + console.log(yearMonth); getById(yearMonth, id).then(response => { + // 复合信息 + response.data.complexRegion = + response.data.countyName + + "-" + + response.data.blockName + + "-" + + response.data.loopName + + "-" + + response.data.streetName + + "-" + + response.data.buildingAddress; + // 办公信息 + response.data.complexOfficeInfo = + response.data.officeClass + "-" + response.data.officeLevel; + // 层数信息 + response.data.complexFloorInfo = + response.data.upperFloorSum + "-" + response.data.totalFloorSum; this.form = response.data; this.open = true; this.title = "修改办公基价"; diff --git a/ruoyi/src/main/java/com/ruoyi/project/data/price/controller/UltimateOfficeBasePriceController.java b/ruoyi/src/main/java/com/ruoyi/project/data/price/controller/UltimateOfficeBasePriceController.java index 83d4facdd..65754dd0b 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/data/price/controller/UltimateOfficeBasePriceController.java +++ b/ruoyi/src/main/java/com/ruoyi/project/data/price/controller/UltimateOfficeBasePriceController.java @@ -76,15 +76,15 @@ public class UltimateOfficeBasePriceController extends BaseController { return AjaxResult.success(officeBasePriceUltimateService.getById(yearMonth, id)); } -// /** -// * 修改办公基价 -// */ -// @PreAuthorize("@ss.hasPermi('system:user:edit')") -// @Log(title = "办公基价", businessType = BusinessType.UPDATE) -// @PutMapping -// public AjaxResult edit(@RequestBody UltimateOfficeBasePrice officeBasePriceUltimate) { -// return toAjax(officeBasePriceUltimateService.updateOfficeBasePriceUltimate(officeBasePriceUltimate)); -// } + /** + * 修改办公基价 + */ + @PreAuthorize("@ss.hasPermi('system:user:edit')") + @Log(title = "办公基价", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody UltimateOfficeBasePrice officeBasePriceUltimate) { + return toAjax(officeBasePriceUltimateService.update(officeBasePriceUltimate)); + } /** * 导出办公基价列表 diff --git a/ruoyi/src/main/java/com/ruoyi/project/data/price/domain/OfficeBasePriceModifyModel.java b/ruoyi/src/main/java/com/ruoyi/project/data/price/domain/OfficeBasePriceModifyModel.java new file mode 100644 index 000000000..d19611b28 --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/data/price/domain/OfficeBasePriceModifyModel.java @@ -0,0 +1,67 @@ +package com.ruoyi.project.data.price.domain; + +import java.math.BigDecimal; + +public class OfficeBasePriceModifyModel { + private Integer id; + private Integer yearMonth; + private BigDecimal mainPrice; + private BigDecimal mainPricePst; + private BigDecimal mainPriceRent; + private BigDecimal mainPriceRentPst; + private String comment; + + public OfficeBasePriceModifyModel(Integer id, Integer yearMonth) { + this.id = id; + this.yearMonth = yearMonth; + } + + + public Integer getId() { + return id; + } + + public Integer getYearMonth() { + return yearMonth; + } + + public BigDecimal getMainPrice() { + return mainPrice; + } + + public void setMainPrice(BigDecimal mainPrice) { + this.mainPrice = mainPrice; + } + + public BigDecimal getMainPricePst() { + return mainPricePst; + } + + public void setMainPricePst(BigDecimal mainPricePst) { + this.mainPricePst = mainPricePst; + } + + public BigDecimal getMainPriceRent() { + return mainPriceRent; + } + + public void setMainPriceRent(BigDecimal mainPriceRent) { + this.mainPriceRent = mainPriceRent; + } + + public BigDecimal getMainPriceRentPst() { + return mainPriceRentPst; + } + + public void setMainPriceRentPst(BigDecimal mainPriceRentPst) { + this.mainPriceRentPst = mainPriceRentPst; + } + + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } +} diff --git a/ruoyi/src/main/java/com/ruoyi/project/data/price/domain/UltimateOfficeBasePrice.java b/ruoyi/src/main/java/com/ruoyi/project/data/price/domain/UltimateOfficeBasePrice.java index 0cfa793d0..a6d320125 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/data/price/domain/UltimateOfficeBasePrice.java +++ b/ruoyi/src/main/java/com/ruoyi/project/data/price/domain/UltimateOfficeBasePrice.java @@ -34,13 +34,13 @@ public class UltimateOfficeBasePrice extends BaseEntity { private String communityAddress; @Excel(name = "楼栋地址") private String buildingAddress; - @Excel(name = "楼栋地址") + @Excel(name = "区域") private String countyName; - @Excel(name = "板块地址") + @Excel(name = "板块") private String blockName; - @Excel(name = "街道地址") + @Excel(name = "街道") private String streetName; - @Excel(name = "环线地址") + @Excel(name = "环线") private String loopName; @Excel(name = "建成年代") private Integer year; diff --git a/ruoyi/src/main/java/com/ruoyi/project/data/price/mapper/UltimateOfficeBasePriceMapper.java b/ruoyi/src/main/java/com/ruoyi/project/data/price/mapper/UltimateOfficeBasePriceMapper.java index a5019875f..949d7ff77 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/data/price/mapper/UltimateOfficeBasePriceMapper.java +++ b/ruoyi/src/main/java/com/ruoyi/project/data/price/mapper/UltimateOfficeBasePriceMapper.java @@ -5,6 +5,7 @@ import java.util.List; 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; /** @@ -21,7 +22,14 @@ public interface UltimateOfficeBasePriceMapper { * @param id * @return */ - UltimateOfficeBasePrice getById(Integer yearMonth, Integer id); + UltimateOfficeBasePrice getById(Integer yearMonth, Integer lastYearMonth, Integer id); + + /** + * @param yearMonth + * @param id + * @return + */ + UltimateOfficeBasePrice getByRouteId(Integer yearMonth, Integer id); /** * @param yearMonth @@ -47,16 +55,12 @@ public interface UltimateOfficeBasePriceMapper { Integer getCount(UltimateOfficeBasePrice officeBasePriceUltimate); /** - * 更新 + * 更新当期基价 * - * @param yearMonth - * @param id - * @param mainPrice - * @param mainPriceRent + * @param officeBasePriceModifyModel * @return */ - int update(Integer yearMonth, Integer lastYearMonth, int id, BigDecimal mainPrice, BigDecimal mainPriceRent); - + int updateBasePrice(OfficeBasePriceModifyModel officeBasePriceModifyModel); /** * 年月 @@ -65,13 +69,4 @@ public interface UltimateOfficeBasePriceMapper { */ List getYearMonthList(); - /** - * 更新 - * - * @param yearMonth - * @param id - * @return - */ - int copyCreate(Integer yearMonth, Integer id); - } diff --git a/ruoyi/src/main/java/com/ruoyi/project/data/price/service/IUltimateOfficeBasePriceService.java b/ruoyi/src/main/java/com/ruoyi/project/data/price/service/IUltimateOfficeBasePriceService.java index 80b7b4ba4..c90dae07e 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/data/price/service/IUltimateOfficeBasePriceService.java +++ b/ruoyi/src/main/java/com/ruoyi/project/data/price/service/IUltimateOfficeBasePriceService.java @@ -24,29 +24,27 @@ public interface IUltimateOfficeBasePriceService { int selectOfficeBasePriceUltimateListCount(UltimateOfficeBasePrice officeBasePriceUltimate); /** - * * @param id * @return */ UltimateOfficeBasePrice getById(Integer yearMonth, Integer id); -// /** -// * -// * @param officeBasePriceUltimate -// * @return -// */ -// int updateOfficeBasePriceUltimate(UltimateOfficeBasePrice officeBasePriceUltimate); + /** + * 可能修改当期的价格、也可能修改往期 + * + * @param officeBasePriceUltimate + * @return + */ + int update(UltimateOfficeBasePrice officeBasePriceUltimate); /** - * * @param officeBasePriceUltimates * @param operName * @return */ - String batchImport(Integer yearMonth, List officeBasePriceUltimates,String operName); + String batchImport(Integer yearMonth, List officeBasePriceUltimates, String operName); /** - * * @return */ List getYearMonthList(); diff --git a/ruoyi/src/main/java/com/ruoyi/project/data/price/service/impl/UltimateOfficeBasePriceServiceImpl.java b/ruoyi/src/main/java/com/ruoyi/project/data/price/service/impl/UltimateOfficeBasePriceServiceImpl.java index d51187bb7..20f8f27ed 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/data/price/service/impl/UltimateOfficeBasePriceServiceImpl.java +++ b/ruoyi/src/main/java/com/ruoyi/project/data/price/service/impl/UltimateOfficeBasePriceServiceImpl.java @@ -7,6 +7,7 @@ import java.util.List; import com.ruoyi.common.exception.CustomException; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.project.common.VueSelectModel; +import com.ruoyi.project.data.price.domain.OfficeBasePriceModifyModel; import com.ruoyi.project.data.price.domain.UltimateOfficeBasePrice; import com.ruoyi.project.data.price.mapper.UltimateOfficeBasePriceMapper; import com.ruoyi.project.data.price.service.IUltimateOfficeBasePriceService; @@ -56,7 +57,8 @@ public class UltimateOfficeBasePriceServiceImpl implements IUltimateOfficeBasePr @Override public UltimateOfficeBasePrice getById(Integer yearMonth, Integer id) { - return officeBasePriceUltimateMapper.getById(yearMonth, id); + Integer lastYearMonth = getLastYearMonth(yearMonth); + return officeBasePriceUltimateMapper.getById(yearMonth, lastYearMonth, id); } @Override @@ -72,32 +74,29 @@ public class UltimateOfficeBasePriceServiceImpl implements IUltimateOfficeBasePr StringBuilder failureMsg = new StringBuilder(); Integer lastYearMonth = getLastYearMonth(yearMonth); - for (UltimateOfficeBasePrice officeBasePriceUltimate : officeBasePriceUltimates) { + for (UltimateOfficeBasePrice inputModel : officeBasePriceUltimates) { try { // 验证是否存在这个用户 - UltimateOfficeBasePrice officeBasePriceUltimateInDb = - officeBasePriceUltimateMapper.getById(yearMonth, officeBasePriceUltimate.getId()); + UltimateOfficeBasePrice currentUltimateOfficeBasePrice = + officeBasePriceUltimateMapper.getById(yearMonth, lastYearMonth, + inputModel.getId()); UltimateOfficeBasePrice lastUltimateOfficeBasePrice = officeBasePriceUltimateMapper.getByBuildingId(lastYearMonth, - officeBasePriceUltimate.getBuildingId()); - if (!StringUtils.isNotNull(officeBasePriceUltimateInDb)) { - if (officeBasePriceUltimateInDb.getMainPrice().subtract(officeBasePriceUltimate.getMainPrice()).compareTo(BigDecimal.ZERO) != 0 - || officeBasePriceUltimateInDb.getMainPriceRent().subtract(officeBasePriceUltimate.getMainPriceRent()).compareTo(BigDecimal.ZERO) != 0) { - int id = officeBasePriceUltimateMapper.copyCreate(yearMonth, officeBasePriceUltimate.getId()); - - officeBasePriceUltimateMapper.update(yearMonth, lastYearMonth, id, - officeBasePriceUltimate.getMainPrice(), - officeBasePriceUltimate.getMainPriceRent()); + inputModel.getBuildingId()); + if (!StringUtils.isNotNull(currentUltimateOfficeBasePrice)) { + if (currentUltimateOfficeBasePrice.getMainPrice().subtract(inputModel.getMainPrice()).compareTo(BigDecimal.ZERO) != 0 + || currentUltimateOfficeBasePrice.getMainPriceRent().subtract(inputModel.getMainPriceRent()).compareTo(BigDecimal.ZERO) != 0) { + updateBasePrice(inputModel, currentUltimateOfficeBasePrice, lastUltimateOfficeBasePrice); successNum++; - successMsg.append("
" + successNum + "、ID= " + officeBasePriceUltimate.getId() + " 更新成功"); + successMsg.append("
" + successNum + "、ID= " + inputModel.getId() + " 更新成功"); } } else { failureNum++; - failureMsg.append("
" + failureNum + "、ID= " + officeBasePriceUltimate.getId() + " 失败"); + failureMsg.append("
" + failureNum + "、ID= " + inputModel.getId() + " 失败"); } } catch (Exception e) { failureNum++; - String msg = "
" + failureNum + "、ID= " + officeBasePriceUltimate.getId() + " 导入失败:"; + String msg = "
" + failureNum + "、ID= " + inputModel.getId() + " 导入失败:"; failureMsg.append(msg + e.getMessage()); log.error(msg, e); } @@ -115,4 +114,78 @@ public class UltimateOfficeBasePriceServiceImpl implements IUltimateOfficeBasePr public List getYearMonthList() { return officeBasePriceUltimateMapper.getYearMonthList(); } + + /** + * 更新 + * + * @param officeBasePriceUltimate + * @return + */ + @Override + public int update(UltimateOfficeBasePrice officeBasePriceUltimate) { + // 当期价格 + Integer lastYearMonth = getLastYearMonth(officeBasePriceUltimate.getYearMonth()); + UltimateOfficeBasePrice ultimateOfficeBasePrice = + officeBasePriceUltimateMapper.getByRouteId(officeBasePriceUltimate.getYearMonth(), + officeBasePriceUltimate.getId()); + // 上期价格 + UltimateOfficeBasePrice lastUltimateOfficeBasePrice = + officeBasePriceUltimateMapper.getByBuildingId(lastYearMonth, + officeBasePriceUltimate.getBuildingId()); + + updateBasePrice(officeBasePriceUltimate, ultimateOfficeBasePrice, lastUltimateOfficeBasePrice); + + return 1; + } + + /** + * 基价更新 + * + * @param inputModel + * @param currentUltimateOfficeBasePrice + * @param lastUltimateOfficeBasePrice + */ + private void updateBasePrice(UltimateOfficeBasePrice inputModel, + UltimateOfficeBasePrice currentUltimateOfficeBasePrice, + UltimateOfficeBasePrice lastUltimateOfficeBasePrice) { + // 上期价格比较 + if (StringUtils.isNotNull(lastUltimateOfficeBasePrice) && + StringUtils.isNotNull(lastUltimateOfficeBasePrice.getMainPrice()) && + StringUtils.isNotNull(lastUltimateOfficeBasePrice.getMainPriceRent()) && + (lastUltimateOfficeBasePrice.getMainPrice().compareTo(inputModel.getMainPrice_1()) != 0 || + lastUltimateOfficeBasePrice.getMainPriceRent().compareTo(inputModel.getMainPriceRent_1()) != 0)) { + OfficeBasePriceModifyModel officeBasePriceModifyModel = + new OfficeBasePriceModifyModel(lastUltimateOfficeBasePrice.getId(), + lastUltimateOfficeBasePrice.getYearMonth()); + officeBasePriceModifyModel.setMainPrice(inputModel.getMainPrice_1()); + officeBasePriceModifyModel.setMainPricePst(lastUltimateOfficeBasePrice.getMainPricePst()); + officeBasePriceModifyModel.setMainPriceRent(inputModel.getMainPriceRent_1()); + officeBasePriceModifyModel.setMainPriceRentPst(lastUltimateOfficeBasePrice.getMainPriceRentPst()); + // 上期价格 + officeBasePriceUltimateMapper.updateBasePrice(officeBasePriceModifyModel); + } + + // 本期价格比较 + if (StringUtils.isNotNull(currentUltimateOfficeBasePrice) && + StringUtils.isNotNull(currentUltimateOfficeBasePrice.getMainPrice()) && + StringUtils.isNotNull(currentUltimateOfficeBasePrice.getMainPriceRent()) && + (currentUltimateOfficeBasePrice.getMainPrice().compareTo(inputModel.getMainPrice()) != 0 || + currentUltimateOfficeBasePrice.getMainPriceRent().compareTo(inputModel.getMainPriceRent()) != 0)) { + OfficeBasePriceModifyModel officeBasePriceModifyModel = new OfficeBasePriceModifyModel(inputModel.getId() + , inputModel.getYearMonth()); + officeBasePriceModifyModel.setMainPrice(inputModel.getMainPrice()); + BigDecimal mainPricePst = + inputModel.getMainPrice().divide(lastUltimateOfficeBasePrice.getMainPrice(), 4); + officeBasePriceModifyModel.setMainPricePst(mainPricePst); + officeBasePriceModifyModel.setMainPriceRent(inputModel.getMainPriceRent()); + BigDecimal mainPriceRentPst = + inputModel.getMainPriceRent().divide(lastUltimateOfficeBasePrice.getMainPriceRent(), + 4); + officeBasePriceModifyModel.setMainPriceRentPst(mainPriceRentPst); + if(StringUtils.isNotNull(inputModel.getAdjustPriceComment())) + officeBasePriceModifyModel.setComment(inputModel.getAdjustPriceComment()); + // 上期价格 + officeBasePriceUltimateMapper.updateBasePrice(officeBasePriceModifyModel); + } + } } diff --git a/ruoyi/src/main/resources/application-druid.yml b/ruoyi/src/main/resources/application-druid.yml index b9a63c229..6f4d33ff9 100644 --- a/ruoyi/src/main/resources/application-druid.yml +++ b/ruoyi/src/main/resources/application-druid.yml @@ -33,16 +33,13 @@ spring: testOnReturn: false webStatFilter: enabled: true - filter: - stat: - enabled: true - # 慢SQL记录 - log-slow-sql: true - slow-sql-millis: 1000 - merge-sql: true - wall: - config: - multi-statement-allow: true + filters: stat,wall + wall: + multiStatementAllow: true + stat: + log-slow-sql: true + slow-sql-millis: 1000 + merge-sql: true primary: master datasource: # 主库数据源 diff --git a/ruoyi/src/main/resources/mybatis/data/UltimateOfficeBasePriceMapper.xml b/ruoyi/src/main/resources/mybatis/data/UltimateOfficeBasePriceMapper.xml index 6b7c998ec..3ba502bd8 100644 --- a/ruoyi/src/main/resources/mybatis/data/UltimateOfficeBasePriceMapper.xml +++ b/ruoyi/src/main/resources/mybatis/data/UltimateOfficeBasePriceMapper.xml @@ -23,7 +23,6 @@ - @@ -41,7 +40,7 @@ - + SELECT a.ID ,a.BuildingID_P ,a.ProjectID_P @@ -77,68 +76,81 @@ FROM ODS_OFFICE_BUILDING_PRICE_INFO_${yearMonth} a left join DIM_OFFICE_PROJECT_BUILDING_201909 b on a.BuildingID_P=b.BuildingID_P left join ODS_OFFICE_BUILDING_PRICE_INFO_${lastYearMonth} c on a.BuildingID_P = c.BuildingID_P - WHERE b.EffDate getdate() AND b.ExpirDate ]]> getdate() AND A.STATUS=1 AND - c.Status=1 + WHERE b.EffDate getdate() AND b.ExpirDate ]]> getdate() AND c.Status=1 - + + + AND a.id=#{id} + - - - SELECT LAST_INSERT_ID() - - insert into - dbo.ODS_OFFICE_BUILDING_PRICE_INFO_${yearMonth}(BuildingID,UnifiedID,ProjectID,BuildingID_P,ProjectID_P,MainPrice,MainPriceRent,MainPricePst,MainPriceRentPst,MainPriceType,MainPriceRentType,ModifyDate,Status,BuildingStd,AdjEvd) - select BuildingID,UnifiedID,ProjectID,BuildingID_P,ProjectID_P,MainPrice,MainPriceRent,MainPricePst,MainPriceRentPst,MainPriceType,MainPriceRentType,ModifyDate,0,BuildingStd,AdjEvd - from ODS_OFFICE_BUILDING_PRICE_INFO_${yearMonth} - where id=#{id} - - - - update a set ModifyDate=getdate(), mainPrice=#{mainPrice}, mainPriceRent=#{mainPriceRent}, - mainPricePst = #{mainPrice} * 1.0 / b.mainPrice, mainPriceRentPst = #{mainPriceRentPst} * 1.0 / b.mainPriceRentPst - from ODS_OFFICE_BUILDING_PRICE_INFO_${yearMonth} a join ODS_OFFICE_BUILDING_PRICE_INFO_${lastYearMonth} b on - a.BuildingID_p=b.BuildingID_P - where a.Status=1 and b.Status=1 and a.id=#{id} + + + update ODS_OFFICE_BUILDING_PRICE_INFO_${yearMonth} set Status=0 where id=#{id}; + insert into ODS_OFFICE_BUILDING_PRICE_INFO_${yearMonth}(BuildingID + ,UnifiedID + ,ProjectID + ,BuildingID_P + ,ProjectID_P + ,MainPrice + ,MainPriceRent + ,MainPricePst + ,MainPriceRentPst + ,MainPriceType + ,MainPriceRentType + ,ModifyDate + ,Status + ,BuildingStd + ,AdjEvd) + select BuildingID + ,UnifiedID + ,ProjectID + ,BuildingID_P + ,ProjectID_P + ,#{mainPrice} + ,#{mainPriceRent} + ,#{mainPricePst} + ,#{mainPriceRentPst} + ,MainPriceType + ,MainPriceRentType + ,getdate() + ,1 + ,BuildingStd + ,#{comment} + from ODS_OFFICE_BUILDING_PRICE_INFO_${yearMonth} where id=#{id}; @@ -149,9 +161,39 @@ order by cast(right(name,6) as int) desc - + select ID + ,BuildingID_P as buildingId + ,ProjectID_P as communityId + ,MainPrice as mainPrice + ,MainPriceRent as mainPriceRent + ,MainPricePst as mainPricePst + ,MainPriceRentPst as mainPriceRentPst + ,MainPriceType as mainPriceType + ,MainPriceRentType as mainPriceRentType + ,Status as status + ,BuildingStd as isStandardBuilding + ,AdjEvd as adjustPriceComment + ,${yearMonth} as yearMonth from ODS_OFFICE_BUILDING_PRICE_INFO_${yearMonth} - where BuildingID_P=#{buildingI} + where BuildingID_P=#{buildingId} AND status= 1 + + + \ No newline at end of file