物资类型价格变更记录接口
This commit is contained in:
parent
0e10b67591
commit
40c7f30b02
|
|
@ -13,6 +13,7 @@ import com.bonus.common.biz.config.ListPagingUtil;
|
||||||
import com.bonus.common.core.utils.ServletUtils;
|
import com.bonus.common.core.utils.ServletUtils;
|
||||||
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.ma.domain.MaTypeHistory;
|
||||||
import com.bonus.material.ma.domain.vo.MaTypeVo;
|
import com.bonus.material.ma.domain.vo.MaTypeVo;
|
||||||
import com.bonus.material.ma.domain.vo.MaTypeSelectVo;
|
import com.bonus.material.ma.domain.vo.MaTypeSelectVo;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
|
|
@ -53,6 +54,14 @@ public class TypeController extends BaseController {
|
||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "查询物资历史价格列表")
|
||||||
|
@GetMapping("/getMaTypeHistoryList")
|
||||||
|
public TableDataInfo getMaTypeHistoryList(MaTypeHistory maTypeHistory) {
|
||||||
|
startPage();
|
||||||
|
List<MaTypeHistory> maTypeHistories = typeService.getMaTypeHistoryListBy(maTypeHistory);
|
||||||
|
return getDataTable(maTypeHistories);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出物资类型管理列表
|
* 导出物资类型管理列表
|
||||||
*/
|
*/
|
||||||
|
|
@ -222,6 +231,8 @@ public class TypeController extends BaseController {
|
||||||
return toAjax(typeService.updateType(type));
|
return toAjax(typeService.updateType(type));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除物资类型管理
|
* 删除物资类型管理
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
package com.bonus.material.ma.domain;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : 阮世耀
|
||||||
|
* @version : 1.0
|
||||||
|
* @PackagePath: com.bonus.material.ma.domain
|
||||||
|
* @CreateTime: 2025-02-13 17:33
|
||||||
|
* @Description: 物资类型记录表
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class MaTypeHistory {
|
||||||
|
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
private Long typeId;
|
||||||
|
|
||||||
|
private String typeName;
|
||||||
|
|
||||||
|
private BigDecimal beforePrice;
|
||||||
|
|
||||||
|
private BigDecimal afterPrice;
|
||||||
|
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
private String createBy;
|
||||||
|
}
|
||||||
|
|
@ -127,6 +127,9 @@ public class Type extends BaseEntity {
|
||||||
@ApiModelProperty(value = "内部租赁单价")
|
@ApiModelProperty(value = "内部租赁单价")
|
||||||
private BigDecimal leasePrice;
|
private BigDecimal leasePrice;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否更新租赁价格")
|
||||||
|
private Boolean isUpdateLeasePrice;
|
||||||
|
|
||||||
/** 租赁费用生效时间 */
|
/** 租赁费用生效时间 */
|
||||||
@ApiModelProperty(value = "租赁费用生效时间")
|
@ApiModelProperty(value = "租赁费用生效时间")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
package com.bonus.material.ma.mapper;
|
package com.bonus.material.ma.mapper;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.bonus.common.biz.domain.lease.LeaseOutDetails;
|
import com.bonus.common.biz.domain.lease.LeaseOutDetails;
|
||||||
|
import com.bonus.material.ma.domain.MaTypeHistory;
|
||||||
import com.bonus.material.ma.domain.Type;
|
import com.bonus.material.ma.domain.Type;
|
||||||
import com.bonus.material.ma.domain.vo.MaTypeConfigVo;
|
import com.bonus.material.ma.domain.vo.MaTypeConfigVo;
|
||||||
import com.bonus.material.ma.domain.vo.MaTypeVo;
|
import com.bonus.material.ma.domain.vo.MaTypeVo;
|
||||||
|
|
@ -17,6 +19,9 @@ import org.apache.ibatis.annotations.Param;
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface TypeMapper {
|
public interface TypeMapper {
|
||||||
|
|
||||||
|
// 查询物资类型的内部租赁价
|
||||||
|
BigDecimal selectLeasePriceByTypeId(Long typeId);
|
||||||
|
|
||||||
List<Type> selectMaTypeList(String typeName);
|
List<Type> selectMaTypeList(String typeName);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -131,6 +136,10 @@ public interface TypeMapper {
|
||||||
|
|
||||||
Type queryByNameAndParentId(@Param("typeName") String typeName, @Param("parentId") Long parentId);
|
Type queryByNameAndParentId(@Param("typeName") String typeName, @Param("parentId") Long parentId);
|
||||||
|
|
||||||
|
int insertMaTypeLeasePriceHistory(MaTypeHistory maTypeHistory);
|
||||||
|
|
||||||
|
List<MaTypeHistory> getMaTypeHistoryListBy(MaTypeHistory maTypeHistory);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据ID查询
|
* 根据ID查询
|
||||||
* @param typeId
|
* @param typeId
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import java.util.List;
|
||||||
|
|
||||||
import com.bonus.common.biz.domain.TreeSelect;
|
import com.bonus.common.biz.domain.TreeSelect;
|
||||||
import com.bonus.common.core.web.domain.AjaxResult;
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
|
import com.bonus.material.ma.domain.MaTypeHistory;
|
||||||
import com.bonus.material.ma.domain.Type;
|
import com.bonus.material.ma.domain.Type;
|
||||||
import com.bonus.material.ma.domain.vo.MaTypeConfigVo;
|
import com.bonus.material.ma.domain.vo.MaTypeConfigVo;
|
||||||
import com.bonus.material.ma.domain.vo.MaTypeVo;
|
import com.bonus.material.ma.domain.vo.MaTypeVo;
|
||||||
|
|
@ -73,6 +74,13 @@ public interface ITypeService {
|
||||||
*/
|
*/
|
||||||
int updateType(Type type);
|
int updateType(Type type);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取物资类型历史价格
|
||||||
|
* @param maTypeHistory 物资类型历史价格
|
||||||
|
* @return 物资类型历史价格集合
|
||||||
|
*/
|
||||||
|
List<MaTypeHistory> getMaTypeHistoryListBy(MaTypeHistory maTypeHistory);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量删除物资类型
|
* 批量删除物资类型
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package com.bonus.material.ma.service.impl;
|
package com.bonus.material.ma.service.impl;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
@ -11,6 +13,7 @@ import com.bonus.common.core.utils.DateUtils;
|
||||||
import com.bonus.common.core.utils.StringUtils;
|
import com.bonus.common.core.utils.StringUtils;
|
||||||
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 com.bonus.material.ma.domain.MaTypeHistory;
|
||||||
import com.bonus.material.ma.domain.TypeKeeper;
|
import com.bonus.material.ma.domain.TypeKeeper;
|
||||||
import com.bonus.material.ma.domain.TypeRepair;
|
import com.bonus.material.ma.domain.TypeRepair;
|
||||||
import com.bonus.material.ma.service.ITypeKeeperService;
|
import com.bonus.material.ma.service.ITypeKeeperService;
|
||||||
|
|
@ -18,6 +21,8 @@ import com.bonus.material.ma.service.ITypeRepairService;
|
||||||
import com.bonus.material.ma.domain.vo.MaTypeConfigVo;
|
import com.bonus.material.ma.domain.vo.MaTypeConfigVo;
|
||||||
import com.bonus.material.ma.domain.vo.MaTypeVo;
|
import com.bonus.material.ma.domain.vo.MaTypeVo;
|
||||||
import com.bonus.material.ma.domain.vo.MaTypeSelectVo;
|
import com.bonus.material.ma.domain.vo.MaTypeSelectVo;
|
||||||
|
import com.bonus.material.settlement.domain.SltAgreementInfo;
|
||||||
|
import com.bonus.material.settlement.mapper.SltAgreementInfoMapper;
|
||||||
import com.bonus.material.warehouse.domain.WhHouseSet;
|
import com.bonus.material.warehouse.domain.WhHouseSet;
|
||||||
import com.bonus.material.warehouse.service.IWhHouseSetService;
|
import com.bonus.material.warehouse.service.IWhHouseSetService;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
|
@ -53,6 +58,9 @@ public class TypeServiceImpl implements ITypeService {
|
||||||
@Resource
|
@Resource
|
||||||
private IWhHouseSetService houseSetService;
|
private IWhHouseSetService houseSetService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SltAgreementInfoMapper sltAgreementInfoMapper;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询物资类型 -- 根据id
|
* 查询物资类型 -- 根据id
|
||||||
|
|
@ -358,10 +366,12 @@ public class TypeServiceImpl implements ITypeService {
|
||||||
throw new RuntimeException("同级下类型名称存在重复!");
|
throw new RuntimeException("同级下类型名称存在重复!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BigDecimal oriLeasePrice = typeMapper.selectLeasePriceByTypeId(type.getTypeId());
|
||||||
|
|
||||||
//维护库管信息
|
//维护库管信息
|
||||||
List<String> keeperArr = type.getKeeperArr();
|
List<String> keeperArr = type.getKeeperArr();
|
||||||
|
|
||||||
if (keeperArr != null && keeperArr.size()>0){
|
if (keeperArr != null && !keeperArr.isEmpty()) {
|
||||||
typeMapper.deleteTypeKeeperByTypeId(type);
|
typeMapper.deleteTypeKeeperByTypeId(type);
|
||||||
for(int i=0 ; i<keeperArr.size();i++){
|
for(int i=0 ; i<keeperArr.size();i++){
|
||||||
Type keeper = new Type();
|
Type keeper = new Type();
|
||||||
|
|
@ -369,11 +379,10 @@ public class TypeServiceImpl implements ITypeService {
|
||||||
keeper.setTypeId(type.getTypeId());
|
keeper.setTypeId(type.getTypeId());
|
||||||
typeMapper.insertTypeKeeper(keeper);
|
typeMapper.insertTypeKeeper(keeper);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
//维护维修员信息
|
//维护维修员信息
|
||||||
List<String> repairerArr = type.getRepairerArr();
|
List<String> repairerArr = type.getRepairerArr();
|
||||||
if (repairerArr != null && repairerArr.size()>0){
|
if (repairerArr != null && !repairerArr.isEmpty()){
|
||||||
typeMapper.deleteTypeRepairerByTypeId(type);
|
typeMapper.deleteTypeRepairerByTypeId(type);
|
||||||
for(int i=0 ; i<repairerArr.size();i++){
|
for(int i=0 ; i<repairerArr.size();i++){
|
||||||
Type repairer = new Type();
|
Type repairer = new Type();
|
||||||
|
|
@ -385,7 +394,65 @@ public class TypeServiceImpl implements ITypeService {
|
||||||
}
|
}
|
||||||
type.setUpdateTime(DateUtils.getNowDate());
|
type.setUpdateTime(DateUtils.getNowDate());
|
||||||
type.setUpdateBy(SecurityUtils.getUserId().toString());
|
type.setUpdateBy(SecurityUtils.getUserId().toString());
|
||||||
return typeMapper.updateType(type);
|
int updateTypeResult = typeMapper.updateType(type);
|
||||||
|
// 判断是否更新租赁价格
|
||||||
|
if (updateTypeResult > 0 && null != type.getIsUpdateLeasePrice() && type.getIsUpdateLeasePrice()) {
|
||||||
|
// 插入lease_out_details表,记录租赁价格修改记录
|
||||||
|
MaTypeHistory maTypeHistory = new MaTypeHistory();
|
||||||
|
maTypeHistory.setTypeId(type.getTypeId());
|
||||||
|
maTypeHistory.setCreateTime(LocalDateTime.now());
|
||||||
|
maTypeHistory.setBeforePrice(oriLeasePrice);
|
||||||
|
maTypeHistory.setAfterPrice(type.getLeasePrice());
|
||||||
|
maTypeHistory.setCreateBy(SecurityUtils.getUsername());
|
||||||
|
typeMapper.insertMaTypeLeasePriceHistory(maTypeHistory);
|
||||||
|
|
||||||
|
SltAgreementInfo sltAgreementInfo = new SltAgreementInfo();
|
||||||
|
sltAgreementInfo.setTypeId(type.getTypeId());
|
||||||
|
sltAgreementInfo.setStatus("0");
|
||||||
|
// 获取状态为在用的,受影响物资类型的结算数据
|
||||||
|
List<SltAgreementInfo> agreementInfos = sltAgreementInfoMapper.selectSltAgreementInfoList(sltAgreementInfo);
|
||||||
|
|
||||||
|
// 获取今日最后一秒钟
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
// 设置时间为今天的23时59分59秒
|
||||||
|
calendar.set(Calendar.HOUR_OF_DAY, 23);
|
||||||
|
calendar.set(Calendar.MINUTE, 59);
|
||||||
|
calendar.set(Calendar.SECOND, 59);
|
||||||
|
|
||||||
|
// 获取明天第一分钟
|
||||||
|
// 获取当前时间
|
||||||
|
Calendar startOfTomorrow = Calendar.getInstance();
|
||||||
|
// 增加一天
|
||||||
|
startOfTomorrow.add(Calendar.DAY_OF_YEAR, 1);
|
||||||
|
// 设置时间为明天的00:00:01
|
||||||
|
startOfTomorrow.set(Calendar.HOUR_OF_DAY, 0);
|
||||||
|
startOfTomorrow.set(Calendar.MINUTE, 0);
|
||||||
|
startOfTomorrow.set(Calendar.SECOND, 1);
|
||||||
|
|
||||||
|
for (SltAgreementInfo info : agreementInfos) {
|
||||||
|
// 循环修改原数据
|
||||||
|
SltAgreementInfo updateInfo = new SltAgreementInfo();
|
||||||
|
updateInfo.setEndTime(calendar.getTime());
|
||||||
|
updateInfo.setStatus("1");
|
||||||
|
updateInfo.setId(info.getId());
|
||||||
|
sltAgreementInfoMapper.updateSltAgreementInfo(updateInfo);
|
||||||
|
|
||||||
|
// 插入一条新的数据
|
||||||
|
info.setId(null);
|
||||||
|
info.setStartTime(startOfTomorrow.getTime());
|
||||||
|
info.setEndTime(null);
|
||||||
|
info.setLeasePrice(type.getLeasePrice());
|
||||||
|
info.setCreateTime(DateUtils.getNowDate());
|
||||||
|
info.setStatus("0");
|
||||||
|
sltAgreementInfoMapper.insertSltAgreementInfo(info);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return updateTypeResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<MaTypeHistory> getMaTypeHistoryListBy(MaTypeHistory maTypeHistory) {
|
||||||
|
return typeMapper.getMaTypeHistoryListBy(maTypeHistory);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -822,5 +822,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
type_id = #{record.typeId}
|
type_id = #{record.typeId}
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
<insert id="insertMaTypeLeasePriceHistory">
|
||||||
|
INSERT INTO ma_type_history(type_id, before_price, after_price, create_time, create_by)
|
||||||
|
VALUES (#{typeId}, #{beforePrice} ,#{afterPrice}, #{createTime}, #{createBy})
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<select id="getMaTypeHistoryListBy" resultType="com.bonus.material.ma.domain.MaTypeHistory">
|
||||||
|
select
|
||||||
|
id, type_id, before_price, after_price, create_time, create_by
|
||||||
|
from
|
||||||
|
ma_type_history
|
||||||
|
<where>
|
||||||
|
<if test="typeId != null">
|
||||||
|
and type_id = #{typeId}
|
||||||
|
</if>
|
||||||
|
<if test="createBy != null">
|
||||||
|
and create_by = #{createBy}
|
||||||
|
</if>
|
||||||
|
<if test="createTime != null and createTime != ''">
|
||||||
|
and create_time between #{startTime} and #{endTime}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectLeasePriceByTypeId" resultType="java.math.BigDecimal">
|
||||||
|
select lease_price from ma_type where type_id = #{typeId}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue