材料站结算超期费用修改
This commit is contained in:
parent
20f399eb35
commit
3bd67c598b
|
|
@ -182,9 +182,10 @@ public class ClzSltAgreementInfoController extends BaseController {
|
||||||
|
|
||||||
List<MaterialSltAgreementInfo> oneOfList = clzSltAgreementInfoMapper.getLeaseList(sltAgreementInfo);
|
List<MaterialSltAgreementInfo> oneOfList = clzSltAgreementInfoMapper.getLeaseList(sltAgreementInfo);
|
||||||
//设定班组实际出场时间
|
//设定班组实际出场时间
|
||||||
|
String date = null;
|
||||||
if(!oneOfList.isEmpty()){
|
if(!oneOfList.isEmpty()){
|
||||||
|
|
||||||
String date = "暂无" ;
|
|
||||||
//先判断是否在场
|
//先判断是否在场
|
||||||
String exitTime = clzSltAgreementInfoMapper.getTeamSjOutTime(oneOfList.get(0));
|
String exitTime = clzSltAgreementInfoMapper.getTeamSjOutTime(oneOfList.get(0));
|
||||||
if( exitTime!=null && !exitTime.isEmpty() ){
|
if( exitTime!=null && !exitTime.isEmpty() ){
|
||||||
|
|
@ -196,7 +197,10 @@ public class ClzSltAgreementInfoController extends BaseController {
|
||||||
|
|
||||||
if(date!=null && !date.isEmpty()){
|
if(date!=null && !date.isEmpty()){
|
||||||
oneOfList.get(0).setActualExitTime(date);
|
oneOfList.get(0).setActualExitTime(date);
|
||||||
|
}else{
|
||||||
|
oneOfList.get(0).setActualExitTime("暂无");
|
||||||
}
|
}
|
||||||
|
|
||||||
actualTimeAndNames.add(oneOfList.get(0).getUnitName() + "(" + oneOfList.get(0).getActualExitTime()+")");
|
actualTimeAndNames.add(oneOfList.get(0).getUnitName() + "(" + oneOfList.get(0).getActualExitTime()+")");
|
||||||
projectNames.add(oneOfList.get(0).getProjectName());
|
projectNames.add(oneOfList.get(0).getProjectName());
|
||||||
unitNames.add(oneOfList.get(0).getUnitName());
|
unitNames.add(oneOfList.get(0).getUnitName());
|
||||||
|
|
@ -216,7 +220,7 @@ public class ClzSltAgreementInfoController extends BaseController {
|
||||||
if (Objects.isNull(bean.getLeaseDays())) {
|
if (Objects.isNull(bean.getLeaseDays())) {
|
||||||
bean.setLeaseDay(0L);
|
bean.setLeaseDay(0L);
|
||||||
}
|
}
|
||||||
|
bean.setActualExitTime(date);
|
||||||
BigDecimal leasePrice = bean.getLeasePrice();
|
BigDecimal leasePrice = bean.getLeasePrice();
|
||||||
BigDecimal num = bean.getNum();
|
BigDecimal num = bean.getNum();
|
||||||
// 根据班组退场时间计算租赁费用
|
// 根据班组退场时间计算租赁费用
|
||||||
|
|
@ -290,9 +294,9 @@ public class ClzSltAgreementInfoController extends BaseController {
|
||||||
List<MaterialSltAgreementInfo> overdueReturnedList = getOverdueReturnedMaterials(sltAgreementInfo);
|
List<MaterialSltAgreementInfo> overdueReturnedList = getOverdueReturnedMaterials(sltAgreementInfo);
|
||||||
loseList.addAll(overdueReturnedList);
|
loseList.addAll(overdueReturnedList);
|
||||||
//设定班组实际出场时间
|
//设定班组实际出场时间
|
||||||
|
String date = null;
|
||||||
if(!loseList.isEmpty()){
|
if(!loseList.isEmpty()){
|
||||||
|
|
||||||
String date = "暂无" ;
|
|
||||||
//先判断是否在场
|
//先判断是否在场
|
||||||
String exitTime = clzSltAgreementInfoMapper.getTeamSjOutTime(oneOfList.get(0));
|
String exitTime = clzSltAgreementInfoMapper.getTeamSjOutTime(oneOfList.get(0));
|
||||||
if( exitTime!=null && !exitTime.isEmpty() ){
|
if( exitTime!=null && !exitTime.isEmpty() ){
|
||||||
|
|
@ -303,6 +307,8 @@ public class ClzSltAgreementInfoController extends BaseController {
|
||||||
|
|
||||||
if(date!=null && !date.isEmpty()){
|
if(date!=null && !date.isEmpty()){
|
||||||
loseList.get(0).setActualExitTime(date);
|
loseList.get(0).setActualExitTime(date);
|
||||||
|
}else{
|
||||||
|
loseList.get(0).setActualExitTime("暂无");
|
||||||
}
|
}
|
||||||
actualTimeAndNames.add(loseList.get(0).getUnitName() + "(" + loseList.get(0).getActualExitTime()+")");
|
actualTimeAndNames.add(loseList.get(0).getUnitName() + "(" + loseList.get(0).getActualExitTime()+")");
|
||||||
projectNames.add(loseList.get(0).getProjectName());
|
projectNames.add(loseList.get(0).getProjectName());
|
||||||
|
|
@ -462,7 +468,7 @@ public class ClzSltAgreementInfoController extends BaseController {
|
||||||
}
|
}
|
||||||
//设定班组实际出场时间
|
//设定班组实际出场时间
|
||||||
if(!listAll.isEmpty()){
|
if(!listAll.isEmpty()){
|
||||||
String date = "暂无" ;
|
String date = null ;
|
||||||
//先判断是否在场
|
//先判断是否在场
|
||||||
String exitTime = clzSltAgreementInfoMapper.getTeamSjOutTime(listAll.get(0));
|
String exitTime = clzSltAgreementInfoMapper.getTeamSjOutTime(listAll.get(0));
|
||||||
if( exitTime!=null && !exitTime.isEmpty() ){
|
if( exitTime!=null && !exitTime.isEmpty() ){
|
||||||
|
|
@ -593,27 +599,19 @@ public class ClzSltAgreementInfoController extends BaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 物资是否已退还(根据endTime字段判断)
|
|
||||||
boolean isReturned = bean.getEndTime() != null;
|
|
||||||
|
|
||||||
if (!isReturned) {
|
|
||||||
// 1.4 如果当前领用物资还未退还,不收取任何租赁费用,直接计作丢失,收取物资原值 不在租赁费用中体现
|
|
||||||
return BigDecimal.ZERO;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 物资已退还,按照天数来计算费用
|
// 物资已退还,按照天数来计算费用
|
||||||
Date materialReturnTime = bean.getEndTime();
|
Date materialReturnTime = bean.getEndTime();
|
||||||
|
|
||||||
|
if(materialReturnTime == null){
|
||||||
|
materialReturnTime = DateTime.now();
|
||||||
|
}
|
||||||
// 计算超期天数
|
// 计算超期天数
|
||||||
long overdueDays = calculateOverdueDays(materialReturnTime, exitTime);
|
long overdueDays = calculateOverdueDays(materialReturnTime, exitTime);
|
||||||
|
|
||||||
if (overdueDays <= 0) {
|
if (overdueDays <= 0) {
|
||||||
// 1.3 在班组退场之前归还的物资不收费
|
// 1.3 在班组退场之前归还的物资不收费
|
||||||
return BigDecimal.ZERO;
|
return BigDecimal.ZERO;
|
||||||
} else if (overdueDays >= 16) {
|
|
||||||
// 1.2 超期15天以上也就是16天及以上计为丢失,算作丢失的话直接收取原值、所有租赁费用不收费了
|
|
||||||
// 注意:丢失费用应该在getLoseList中处理,这里不收费
|
|
||||||
return BigDecimal.ZERO;
|
|
||||||
} else {
|
} else {
|
||||||
// 计算超期费用
|
// 计算超期费用
|
||||||
return calculateOverdueCost(bean, leasePrice, num, overdueDays);
|
return calculateOverdueCost(bean, leasePrice, num, overdueDays);
|
||||||
|
|
@ -629,7 +627,7 @@ public class ClzSltAgreementInfoController extends BaseController {
|
||||||
if (overdueDays <= 7) {
|
if (overdueDays <= 7) {
|
||||||
// 超期1~7天不收费
|
// 超期1~7天不收费
|
||||||
overdueCost = BigDecimal.ZERO;
|
overdueCost = BigDecimal.ZERO;
|
||||||
} else if (overdueDays <= 15) {
|
} else {
|
||||||
// 超期第8天~第15天双倍计费
|
// 超期第8天~第15天双倍计费
|
||||||
// 前7天不收费,只计算第8天开始的双倍费用
|
// 前7天不收费,只计算第8天开始的双倍费用
|
||||||
long doubleBillingDays = overdueDays - 7;
|
long doubleBillingDays = overdueDays - 7;
|
||||||
|
|
|
||||||
|
|
@ -156,6 +156,13 @@ public class MaterialSltAgreementInfo extends BaseEntity {
|
||||||
@ApiModelProperty(value = "租赁天数")
|
@ApiModelProperty(value = "租赁天数")
|
||||||
private Long leaseDay;
|
private Long leaseDay;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 超期天数
|
||||||
|
*/
|
||||||
|
@Excel(name = "超期天数")
|
||||||
|
@ApiModelProperty(value = "超期天数")
|
||||||
|
private Long overDay;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 租赁费用
|
* 租赁费用
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -807,7 +807,33 @@ public class ClzSltAgreementInfoServiceImpl implements ClzSltAgreementInfoServic
|
||||||
if (Objects.isNull(bean.getLeaseDays())) {
|
if (Objects.isNull(bean.getLeaseDays())) {
|
||||||
bean.setLeaseDay(0L);
|
bean.setLeaseDay(0L);
|
||||||
}
|
}
|
||||||
|
// 物资已退还,按照天数来计算费用
|
||||||
|
Date materialReturnTime = bean.getEndTime();
|
||||||
|
|
||||||
|
if(materialReturnTime == null){
|
||||||
|
materialReturnTime = DateTime.now();
|
||||||
|
}
|
||||||
|
String teamExitTime = bean.getActualExitTime();
|
||||||
|
if (teamExitTime == null) {
|
||||||
|
teamExitTime = DateTime.now().toString("yyyy-MM-dd");
|
||||||
|
}
|
||||||
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
Date exitTime = null;
|
||||||
|
try {
|
||||||
|
exitTime = format.parse(teamExitTime);
|
||||||
|
}catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
// 计算超期天数
|
||||||
|
long overdueDays = calculateOverdueDays(materialReturnTime, exitTime);
|
||||||
|
if(overdueDays < 8 ){
|
||||||
|
bean.setOverDay(0L);
|
||||||
|
}else{
|
||||||
|
bean.setOverDay(overdueDays-7);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bean.setActualExitTime(date);
|
||||||
BigDecimal leasePrice = bean.getLeasePrice();
|
BigDecimal leasePrice = bean.getLeasePrice();
|
||||||
BigDecimal num = bean.getNum();
|
BigDecimal num = bean.getNum();
|
||||||
// 根据班组退场时间计算租赁费用
|
// 根据班组退场时间计算租赁费用
|
||||||
|
|
@ -840,27 +866,21 @@ public class ClzSltAgreementInfoServiceImpl implements ClzSltAgreementInfoServic
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 物资是否已退还(根据endTime字段判断)
|
|
||||||
boolean isReturned = bean.getEndTime() != null;
|
|
||||||
|
|
||||||
if (!isReturned) {
|
|
||||||
// 1.4 如果当前领用物资还未退还,不收取任何租赁费用,直接计作丢失,收取物资原值 不在租赁费用中体现
|
|
||||||
return BigDecimal.ZERO;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 物资已退还,按照天数来计算费用
|
// 物资已退还,按照天数来计算费用
|
||||||
Date materialReturnTime = bean.getEndTime();
|
Date materialReturnTime = bean.getEndTime();
|
||||||
|
|
||||||
|
if(materialReturnTime == null){
|
||||||
|
materialReturnTime = DateTime.now();
|
||||||
|
}
|
||||||
|
|
||||||
// 计算超期天数
|
// 计算超期天数
|
||||||
long overdueDays = calculateOverdueDays(materialReturnTime, exitTime);
|
long overdueDays = calculateOverdueDays(materialReturnTime, exitTime);
|
||||||
|
|
||||||
if (overdueDays <= 0) {
|
if (overdueDays <= 0) {
|
||||||
// 1.3 在班组退场之前归还的物资不收费
|
// 1.3 在班组退场之前归还的物资不收费
|
||||||
return BigDecimal.ZERO;
|
return BigDecimal.ZERO;
|
||||||
} else if (overdueDays >= 16) {
|
|
||||||
// 1.2 超期15天以上也就是16天及以上计为丢失,算作丢失的话直接收取原值、所有租赁费用不收费了
|
|
||||||
// 注意:丢失费用应该在getLoseList中处理,这里不收费
|
|
||||||
return BigDecimal.ZERO;
|
|
||||||
} else {
|
} else {
|
||||||
// 计算超期费用
|
// 计算超期费用
|
||||||
return calculateOverdueCost(bean, leasePrice, num, overdueDays);
|
return calculateOverdueCost(bean, leasePrice, num, overdueDays);
|
||||||
|
|
@ -876,7 +896,7 @@ public class ClzSltAgreementInfoServiceImpl implements ClzSltAgreementInfoServic
|
||||||
if (overdueDays <= 7) {
|
if (overdueDays <= 7) {
|
||||||
// 超期1~7天不收费
|
// 超期1~7天不收费
|
||||||
overdueCost = BigDecimal.ZERO;
|
overdueCost = BigDecimal.ZERO;
|
||||||
} else if (overdueDays <= 15) {
|
} else {
|
||||||
// 超期第8天~第15天双倍计费
|
// 超期第8天~第15天双倍计费
|
||||||
// 前7天不收费,只计算第8天开始的双倍费用
|
// 前7天不收费,只计算第8天开始的双倍费用
|
||||||
long doubleBillingDays = overdueDays - 7;
|
long doubleBillingDays = overdueDays - 7;
|
||||||
|
|
|
||||||
|
|
@ -193,7 +193,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
LEFT JOIN bm_unit bui ON bui.unit_id = bai.unit_id
|
LEFT JOIN bm_unit bui ON bui.unit_id = bai.unit_id
|
||||||
left join ma_type mt on sai.type_id = mt.type_id
|
left join ma_type mt on sai.type_id = mt.type_id
|
||||||
left join ma_type mt1 on mt.parent_id = mt1.type_id
|
left join ma_type mt1 on mt.parent_id = mt1.type_id
|
||||||
where sai.agreement_id = #{agreementId} and sai.end_time is null
|
where sai.agreement_id = #{agreementId} and sai.end_time is null and sai.is_slt=1
|
||||||
) res
|
) res
|
||||||
GROUP BY res.typeId,res.startTime,res.endTime
|
GROUP BY res.typeId,res.startTime,res.endTime
|
||||||
</select>
|
</select>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue