机具一览表
This commit is contained in:
parent
93574630ed
commit
32822b3f6a
|
|
@ -1,8 +1,8 @@
|
|||
package com.bonus.material.main.controller;
|
||||
|
||||
import com.bonus.common.core.web.domain.AjaxResult;
|
||||
import com.bonus.common.security.utils.SecurityUtils;
|
||||
import com.bonus.material.main.domain.DemandAndSupplyVo;
|
||||
import com.bonus.material.main.domain.MaTypeHomeVo;
|
||||
import com.bonus.material.main.service.MainService;
|
||||
import io.swagger.annotations.Api;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -12,8 +12,6 @@ import org.springframework.web.bind.annotation.RestController;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
import static com.bonus.common.core.web.domain.AjaxResult.success;
|
||||
|
||||
|
|
@ -28,50 +26,112 @@ public class MainController {
|
|||
private MainService mainService;
|
||||
|
||||
/**
|
||||
* 查询机具设备管理列表
|
||||
* 查询机具需求供应情况
|
||||
*/
|
||||
|
||||
@GetMapping("/demandAndSupply")
|
||||
public AjaxResult demandAndSupply(DemandAndSupplyVo demandAndSupplyVo)
|
||||
{
|
||||
//Long userId = SecurityUtils.getUserId();
|
||||
//demandAndSupplyVo.setUserId(userId == 0 ? null : userId);
|
||||
if (demandAndSupplyVo.getStartTime() ==null || demandAndSupplyVo.getStartTime() ==" "){
|
||||
// 定义日期格式
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
//获取当前时间
|
||||
LocalDate currentDate = LocalDate.now();
|
||||
String currentDateStr = currentDate.format(formatter);
|
||||
// 获取本月第一天的日期
|
||||
LocalDate firstDayOfMonth = currentDate.withDayOfMonth(1);
|
||||
String firstDayOfMonthStr = firstDayOfMonth.format(formatter);
|
||||
demandAndSupplyVo.setStartTime(firstDayOfMonthStr);
|
||||
demandAndSupplyVo.setEndTime(currentDateStr);
|
||||
}
|
||||
DemandAndSupplyVo demandAndSupplyVoRes = new DemandAndSupplyVo();
|
||||
//需求量
|
||||
BigDecimal demandNum = mainService.getDemandNum(demandAndSupplyVo);
|
||||
//需求增长量
|
||||
BigDecimal demandIncrease = mainService.getDemandIncrease(demandAndSupplyVo);
|
||||
//已供应数量
|
||||
BigDecimal suppliedQuantityNum = mainService.getSuppliedQuantityNum(demandAndSupplyVo);
|
||||
//已供应增长量
|
||||
BigDecimal suppliedQuantityIncrease = mainService.getSuppliedQuantityIncrease(demandAndSupplyVo);
|
||||
//待供应量
|
||||
BigDecimal suppliedToBeQuantityNum = mainService.getSuppliedToBeQuantityNum(demandAndSupplyVo);
|
||||
//待供应量增长量
|
||||
BigDecimal suppliedToBeQuantityIncrease = mainService.getSuppliedToBeQuantityIncrease(demandAndSupplyVo);
|
||||
//工程总数量
|
||||
Integer projectNum = mainService.getProjectNum(demandAndSupplyVo);
|
||||
//供应总件数
|
||||
|
||||
demandAndSupplyVoRes.setDemandNum(demandNum);
|
||||
demandAndSupplyVoRes.setDemandIncrease(demandIncrease);
|
||||
demandAndSupplyVoRes.setSuppliedQuantityNum(suppliedQuantityNum);
|
||||
demandAndSupplyVoRes.setSuppliedQuantityIncrease(suppliedQuantityIncrease);
|
||||
demandAndSupplyVoRes.setSuppliedToBeQuantityNum(suppliedToBeQuantityNum);
|
||||
demandAndSupplyVoRes.setSuppliedToBeQuantityIncrease(suppliedToBeQuantityIncrease);
|
||||
demandAndSupplyVoRes.setProjectNum(projectNum);
|
||||
try {
|
||||
//需求量
|
||||
BigDecimal demandNum = mainService.getDemandNum(demandAndSupplyVo);
|
||||
//需求增长量
|
||||
BigDecimal demandIncrease = mainService.getDemandIncrease(demandAndSupplyVo);
|
||||
//已供应数量
|
||||
BigDecimal suppliedQuantityNum = mainService.getSuppliedQuantityNum(demandAndSupplyVo);
|
||||
//已供应增长量
|
||||
BigDecimal suppliedQuantityIncrease = mainService.getSuppliedQuantityIncrease(demandAndSupplyVo);
|
||||
//待供应量
|
||||
BigDecimal suppliedToBeQuantityNum = mainService.getSuppliedToBeQuantityNum(demandAndSupplyVo);
|
||||
//待供应量增长量
|
||||
BigDecimal suppliedToBeQuantityIncrease = mainService.getSuppliedToBeQuantityIncrease(demandAndSupplyVo);
|
||||
//获取未结算工程总数量
|
||||
Integer projectNum = mainService.getProjectNum(demandAndSupplyVo);
|
||||
//供应总件数(机具出库数量,不带条件查询)
|
||||
BigDecimal outNum = mainService.getSuppliedQuantityNum(new DemandAndSupplyVo());
|
||||
// 供应总价值
|
||||
BigDecimal suppliedQuantityPrice = mainService.getSuppliedQuantityPrice(new DemandAndSupplyVo());
|
||||
demandAndSupplyVoRes.setDemandNum(demandNum);
|
||||
demandAndSupplyVoRes.setDemandIncrease(demandIncrease);
|
||||
demandAndSupplyVoRes.setSuppliedQuantityNum(suppliedQuantityNum);
|
||||
demandAndSupplyVoRes.setSuppliedQuantityIncrease(suppliedQuantityIncrease);
|
||||
demandAndSupplyVoRes.setSuppliedToBeQuantityNum(suppliedToBeQuantityNum);
|
||||
demandAndSupplyVoRes.setSuppliedToBeQuantityIncrease(suppliedToBeQuantityIncrease);
|
||||
demandAndSupplyVoRes.setProjectNum(projectNum);
|
||||
demandAndSupplyVoRes.setSuppliedQuantityAllNum(outNum);
|
||||
demandAndSupplyVoRes.setSuppliedQuantityPrice(suppliedQuantityPrice);
|
||||
} catch (Exception e) {
|
||||
return AjaxResult.error("查询机具需求供应情况失败");
|
||||
}
|
||||
return success(demandAndSupplyVoRes);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询机具仓储状态首页
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/getMaTypeHomeList")
|
||||
public AjaxResult getMaTypeHome(MaTypeHomeVo dto) {
|
||||
// 根据时间段查询当前仓储状态详情数据
|
||||
try {
|
||||
return mainService.getInStockNum(dto);
|
||||
} catch (Exception e) {
|
||||
return AjaxResult.error("查询机具仓储状态首页失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* todo 查询机具状态统计占比饼图(暂时弃用)
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/getMaTypeStatusTotal")
|
||||
public AjaxResult getMaTypeStatusTotal(MaTypeHomeVo dto) {
|
||||
// 根据时间段查询当前仓储状态详情数据
|
||||
try {
|
||||
return mainService.getMaTypeStatusTotal(dto);
|
||||
} catch (Exception e) {
|
||||
return AjaxResult.error("查询机具状态统计占比饼图失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询机具需求供应情况统计占比饼图
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/getDemandTotal")
|
||||
public AjaxResult getDemandTotal(DemandAndSupplyVo demandAndSupplyVo) {
|
||||
DemandAndSupplyVo vo = null;
|
||||
try {
|
||||
vo = new DemandAndSupplyVo();
|
||||
//需求量
|
||||
BigDecimal demandNum = mainService.getDemandNum(demandAndSupplyVo);
|
||||
//已供应数量
|
||||
BigDecimal suppliedQuantityNum = mainService.getSuppliedQuantityNum(demandAndSupplyVo);
|
||||
//待供应量
|
||||
BigDecimal suppliedToBeQuantityNum = mainService.getSuppliedToBeQuantityNum(demandAndSupplyVo);
|
||||
vo.setDemandNum(demandNum);
|
||||
vo.setSuppliedQuantityNum(suppliedQuantityNum);
|
||||
vo.setSuppliedToBeQuantityNum(suppliedToBeQuantityNum);
|
||||
} catch (Exception e) {
|
||||
return AjaxResult.error("查询机具需求供应情况统计占比饼图失败");
|
||||
}
|
||||
return success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询机具需求供应情况统计柱状图
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/getDemandList")
|
||||
public AjaxResult getDemandList(DemandAndSupplyVo demandAndSupplyVo) {
|
||||
try {
|
||||
return mainService.getDemandList(demandAndSupplyVo);
|
||||
} catch (Exception e) {
|
||||
return AjaxResult.error("查询机具需求供应情况统计柱状图失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import lombok.Data;
|
|||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class DemandAndSupplyVo {
|
||||
|
|
@ -70,4 +71,48 @@ public class DemandAndSupplyVo {
|
|||
* 当前时间
|
||||
*/
|
||||
private LocalDate currentDate;
|
||||
|
||||
@ApiModelProperty(value = "往来单位id")
|
||||
private Long unitId;
|
||||
|
||||
@ApiModelProperty(value = "工程id")
|
||||
private Long projectId;
|
||||
|
||||
@ApiModelProperty(value = "设备单价")
|
||||
private BigDecimal buyPrice;
|
||||
|
||||
/**
|
||||
* 设备类型id
|
||||
*/
|
||||
private Long typeId;
|
||||
|
||||
/**
|
||||
* 设备类型名称
|
||||
*/
|
||||
private String typeName;
|
||||
|
||||
/**
|
||||
* 规格型号
|
||||
*/
|
||||
private String typeModelName;
|
||||
|
||||
/**
|
||||
* 设备类型名称集合
|
||||
*/
|
||||
private List<String> typeNameList;
|
||||
|
||||
/**
|
||||
* 需求量集合
|
||||
*/
|
||||
private List<BigDecimal> demandNumList;
|
||||
|
||||
/**
|
||||
* 已供应量集合
|
||||
*/
|
||||
private List<BigDecimal> suppliedQuantityNumList;
|
||||
|
||||
/**
|
||||
* 待供应量集合
|
||||
*/
|
||||
private List<BigDecimal> suppliedToBeQuantityNumList;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,102 @@
|
|||
package com.bonus.material.main.domain;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 首页仓储状态供应一览表
|
||||
* @Author ma_sh
|
||||
* @create 2025/3/27 14:25
|
||||
*/
|
||||
@Data
|
||||
public class MaTypeHomeVo {
|
||||
|
||||
/**
|
||||
* 在库数量
|
||||
*/
|
||||
private BigDecimal inStockNum;
|
||||
|
||||
/**
|
||||
* 在库增长量
|
||||
*/
|
||||
private BigDecimal inStockIncrease;
|
||||
|
||||
/**
|
||||
* 在用数量
|
||||
*/
|
||||
private BigDecimal inUseNum;
|
||||
|
||||
/**
|
||||
* 在用增长量
|
||||
*/
|
||||
private BigDecimal inUseIncrease;
|
||||
|
||||
/**
|
||||
* 在修数量
|
||||
*/
|
||||
private BigDecimal inRepairNum;
|
||||
|
||||
/**
|
||||
* 在修增长量
|
||||
*/
|
||||
private BigDecimal inRepairIncrease;
|
||||
|
||||
/**
|
||||
* 新购待入库量
|
||||
*/
|
||||
private BigDecimal newPurchaseNum;
|
||||
|
||||
/**
|
||||
* 新购待入库增长量
|
||||
*/
|
||||
private BigDecimal newPurchaseIncrease;
|
||||
|
||||
/**
|
||||
* 修饰待入库量
|
||||
*/
|
||||
private BigDecimal newRepairNum;
|
||||
|
||||
/**
|
||||
* 修饰待入库增长量
|
||||
*/
|
||||
private BigDecimal newRepairIncrease;
|
||||
|
||||
/**
|
||||
* 在库量占比
|
||||
*/
|
||||
private BigDecimal inStockProportion;
|
||||
|
||||
/**
|
||||
* 在用量占比
|
||||
*/
|
||||
private BigDecimal inUseProportion;
|
||||
|
||||
/**
|
||||
* 在修量占比
|
||||
*/
|
||||
private BigDecimal inRepairProportion;
|
||||
|
||||
/**
|
||||
* 新购待入库量占比
|
||||
*/
|
||||
private BigDecimal newPurchaseProportion;
|
||||
|
||||
/**
|
||||
* 修饰待入库量占比
|
||||
*/
|
||||
private BigDecimal newRepairProportion;
|
||||
|
||||
@ApiModelProperty(value = "开始时间")
|
||||
private String startTime;
|
||||
|
||||
@ApiModelProperty(value = "结束时间")
|
||||
private String endTime;
|
||||
|
||||
@ApiModelProperty(value = "往来单位id")
|
||||
private Long unitId;
|
||||
|
||||
@ApiModelProperty(value = "工程id")
|
||||
private Long projectId;
|
||||
}
|
||||
|
|
@ -2,16 +2,71 @@ package com.bonus.material.main.mapper;
|
|||
|
||||
import com.bonus.common.biz.domain.lease.LeasePublishInfo;
|
||||
import com.bonus.material.main.domain.DemandAndSupplyVo;
|
||||
import com.bonus.material.main.domain.MaTypeHomeVo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
public interface MainMapper {
|
||||
List<LeasePublishInfo> getPublishList(DemandAndSupplyVo demandAndSupplyVo);
|
||||
/**
|
||||
* 获取领料需求数量
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
LeasePublishInfo getPublishList(DemandAndSupplyVo demandAndSupplyVo);
|
||||
|
||||
/**
|
||||
* 获取领用发布数量
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
BigDecimal getPublishListNew(DemandAndSupplyVo demandAndSupplyVo);
|
||||
|
||||
/**
|
||||
* 获取领料已出库数量
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
BigDecimal getSuppliedQuantityNum(DemandAndSupplyVo demandAndSupplyVo);
|
||||
|
||||
/**
|
||||
* 获取工程总数
|
||||
* @return
|
||||
*/
|
||||
Integer getProjectNum();
|
||||
|
||||
/**
|
||||
* 供应总价值
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
List<DemandAndSupplyVo> getSuppliedQuantityPrice(DemandAndSupplyVo demandAndSupplyVo);
|
||||
|
||||
/**
|
||||
* 查询领料需求列表
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
List<DemandAndSupplyVo> getDemandList(DemandAndSupplyVo demandAndSupplyVo);
|
||||
|
||||
/**
|
||||
* 查询领用需求列表
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
List<DemandAndSupplyVo> getUseList(DemandAndSupplyVo demandAndSupplyVo);
|
||||
|
||||
/**
|
||||
* 查询领用已出库列表
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
List<DemandAndSupplyVo> getSuppliedQuantityList(DemandAndSupplyVo demandAndSupplyVo);
|
||||
|
||||
/**
|
||||
* 获取所选当前时间数据
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
MaTypeHomeVo getInStockNum(MaTypeHomeVo dto);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,21 +1,86 @@
|
|||
package com.bonus.material.main.service;
|
||||
|
||||
import com.bonus.common.core.web.domain.AjaxResult;
|
||||
import com.bonus.material.main.domain.DemandAndSupplyVo;
|
||||
import com.bonus.material.main.domain.MaTypeHomeVo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
public interface MainService {
|
||||
/**
|
||||
* 需求数量
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
BigDecimal getDemandNum(DemandAndSupplyVo demandAndSupplyVo);
|
||||
|
||||
/**
|
||||
* 需求数量增长量
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
BigDecimal getDemandIncrease(DemandAndSupplyVo demandAndSupplyVo);
|
||||
|
||||
/**
|
||||
* 已供应数量
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
BigDecimal getSuppliedQuantityNum(DemandAndSupplyVo demandAndSupplyVo);
|
||||
|
||||
/**
|
||||
* 已供应数量增长量
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
BigDecimal getSuppliedQuantityIncrease(DemandAndSupplyVo demandAndSupplyVo);
|
||||
|
||||
/**
|
||||
* 待供应数量
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
BigDecimal getSuppliedToBeQuantityNum(DemandAndSupplyVo demandAndSupplyVo);
|
||||
|
||||
/**
|
||||
* 待供应数量增长量
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
BigDecimal getSuppliedToBeQuantityIncrease(DemandAndSupplyVo demandAndSupplyVo);
|
||||
|
||||
/**
|
||||
* 未结算工程数量
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
Integer getProjectNum(DemandAndSupplyVo demandAndSupplyVo);
|
||||
|
||||
/**
|
||||
* 供应总价值
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
BigDecimal getSuppliedQuantityPrice(DemandAndSupplyVo demandAndSupplyVo);
|
||||
|
||||
/**
|
||||
* 根据时间段查询当前仓储状态详情数据
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
AjaxResult getInStockNum(MaTypeHomeVo dto);
|
||||
|
||||
/**
|
||||
* 需求列表
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
AjaxResult getDemandList(DemandAndSupplyVo demandAndSupplyVo);
|
||||
|
||||
/**
|
||||
* 查询机具状态统计占比饼图
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
AjaxResult getMaTypeStatusTotal(MaTypeHomeVo dto);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
package com.bonus.material.main.service.impl;
|
||||
|
||||
import com.bonus.common.biz.domain.lease.LeasePublishInfo;
|
||||
import com.bonus.common.core.utils.StringUtils;
|
||||
import com.bonus.common.security.utils.SecurityUtils;
|
||||
import com.bonus.common.core.web.domain.AjaxResult;
|
||||
import com.bonus.material.main.domain.DemandAndSupplyVo;
|
||||
import com.bonus.material.main.domain.MaTypeHomeVo;
|
||||
import com.bonus.material.main.mapper.MainMapper;
|
||||
import com.bonus.material.main.service.MainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -16,9 +16,11 @@ import java.math.BigDecimal;
|
|||
import java.math.RoundingMode;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.bonus.common.core.web.domain.AjaxResult.success;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class MainServiceImpl implements MainService {
|
||||
|
|
@ -34,9 +36,8 @@ public class MainServiceImpl implements MainService {
|
|||
@Override
|
||||
public BigDecimal getDemandNum(DemandAndSupplyVo demandAndSupplyVo) {
|
||||
//获取领料的需求数量
|
||||
List<LeasePublishInfo> list = mainMapper.getPublishList(demandAndSupplyVo);
|
||||
BigDecimal preCountNum = list.stream().map(LeasePublishInfo::getPreCountNum)
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
LeasePublishInfo leasePublishInfo = mainMapper.getPublishList(demandAndSupplyVo);
|
||||
BigDecimal preCountNum = leasePublishInfo.getPreCountNum();
|
||||
//获取领用的需求数量
|
||||
BigDecimal preCountNumNew = mainMapper.getPublishListNew(demandAndSupplyVo);
|
||||
preCountNum = preCountNum.add(preCountNumNew);
|
||||
|
|
@ -70,9 +71,11 @@ public class MainServiceImpl implements MainService {
|
|||
BigDecimal lastPreCountNum = this.getDemandNum(demandAndSupplyVoNew);
|
||||
//计算增长量
|
||||
BigDecimal demandIncrease= BigDecimal.ZERO;
|
||||
if (lastPreCountNum.compareTo(BigDecimal.ZERO)==0){
|
||||
if (lastPreCountNum.compareTo(BigDecimal.ZERO)==0 && preCountNum.compareTo(BigDecimal.ZERO) > 0){
|
||||
demandIncrease = BigDecimal.valueOf(100);
|
||||
}else {
|
||||
}else if (preCountNum.compareTo(BigDecimal.ZERO)==0 && lastPreCountNum.compareTo(BigDecimal.ZERO) > 0){
|
||||
demandIncrease = BigDecimal.valueOf(-100);
|
||||
}else if (lastPreCountNum.compareTo(BigDecimal.ZERO) > 0){
|
||||
demandIncrease = preCountNum.subtract(lastPreCountNum).divide(lastPreCountNum, 4, RoundingMode.HALF_UP);
|
||||
demandIncrease = demandIncrease.multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP);
|
||||
}
|
||||
|
|
@ -88,8 +91,7 @@ public class MainServiceImpl implements MainService {
|
|||
@Override
|
||||
public BigDecimal getSuppliedQuantityNum(DemandAndSupplyVo demandAndSupplyVo) {
|
||||
//已供应量
|
||||
BigDecimal suppliedQuantityNum = mainMapper.getSuppliedQuantityNum(demandAndSupplyVo);
|
||||
return suppliedQuantityNum;
|
||||
return mainMapper.getSuppliedQuantityNum(demandAndSupplyVo);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -119,9 +121,11 @@ public class MainServiceImpl implements MainService {
|
|||
BigDecimal lastSuppliedQuantityNum = this.getSuppliedQuantityNum(demandAndSupplyVoNew);
|
||||
//计算增长量
|
||||
BigDecimal suppliedQuantityIncrease = BigDecimal.ZERO;
|
||||
if (lastSuppliedQuantityNum.compareTo(BigDecimal.ZERO)==0){
|
||||
if (lastSuppliedQuantityNum.compareTo(BigDecimal.ZERO)==0 && suppliedQuantityNum.compareTo(BigDecimal.ZERO) > 0){
|
||||
suppliedQuantityIncrease = BigDecimal.valueOf(100);
|
||||
}else {
|
||||
}else if (suppliedQuantityNum.compareTo(BigDecimal.ZERO)==0 && lastSuppliedQuantityNum.compareTo(BigDecimal.ZERO) > 0){
|
||||
suppliedQuantityIncrease = BigDecimal.valueOf(-100);
|
||||
} else if (lastSuppliedQuantityNum.compareTo(BigDecimal.ZERO) > 0){
|
||||
suppliedQuantityIncrease = suppliedQuantityNum.subtract(lastSuppliedQuantityNum).divide(lastSuppliedQuantityNum, 4, RoundingMode.HALF_UP);
|
||||
suppliedQuantityIncrease = suppliedQuantityIncrease.multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP);
|
||||
}
|
||||
|
|
@ -172,9 +176,11 @@ public class MainServiceImpl implements MainService {
|
|||
BigDecimal lastSuppliedToBeQuantityNum = this.getSuppliedToBeQuantityNum(demandAndSupplyVoNew);
|
||||
//计算增长量
|
||||
BigDecimal suppliedToBeQuantityIncrease = BigDecimal.ZERO;
|
||||
if (lastSuppliedToBeQuantityNum.compareTo(BigDecimal.ZERO)==0){
|
||||
if (lastSuppliedToBeQuantityNum.compareTo(BigDecimal.ZERO)==0 && suppliedToBeQuantityNum.compareTo(BigDecimal.ZERO) > 0){
|
||||
suppliedToBeQuantityIncrease = BigDecimal.valueOf(100);
|
||||
}else {
|
||||
}else if (suppliedToBeQuantityNum.compareTo(BigDecimal.ZERO)==0 && lastSuppliedToBeQuantityNum.compareTo(BigDecimal.ZERO) > 0){
|
||||
suppliedToBeQuantityIncrease = BigDecimal.valueOf(-100);
|
||||
}else if (lastSuppliedToBeQuantityNum.compareTo(BigDecimal.ZERO) > 0){
|
||||
suppliedToBeQuantityIncrease = suppliedToBeQuantityNum.subtract(lastSuppliedToBeQuantityNum).divide(lastSuppliedToBeQuantityNum, 4, RoundingMode.HALF_UP);
|
||||
suppliedToBeQuantityIncrease = suppliedToBeQuantityIncrease.multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP);
|
||||
}
|
||||
|
|
@ -182,7 +188,7 @@ public class MainServiceImpl implements MainService {
|
|||
}
|
||||
|
||||
/**
|
||||
* 工程总量
|
||||
* 获取未结算工程总数
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
|
|
@ -190,4 +196,240 @@ public class MainServiceImpl implements MainService {
|
|||
public Integer getProjectNum(DemandAndSupplyVo demandAndSupplyVo) {
|
||||
return mainMapper.getProjectNum();
|
||||
}
|
||||
|
||||
/**
|
||||
* 供应总价值
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public BigDecimal getSuppliedQuantityPrice(DemandAndSupplyVo demandAndSupplyVo) {
|
||||
BigDecimal supplyPrice = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
|
||||
List<DemandAndSupplyVo> list = mainMapper.getSuppliedQuantityPrice(demandAndSupplyVo);
|
||||
if (!CollectionUtils.isEmpty(list)) {
|
||||
for (DemandAndSupplyVo andSupplyVo : list) {
|
||||
supplyPrice = supplyPrice.add(andSupplyVo.getSuppliedQuantityNum().multiply(andSupplyVo.getBuyPrice()));
|
||||
}
|
||||
// 总计算结果换算为万元
|
||||
supplyPrice = supplyPrice.divide(BigDecimal.valueOf(10000), 2, RoundingMode.HALF_UP);
|
||||
}
|
||||
return supplyPrice;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据时间段查询当前仓储状态详情数据
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public AjaxResult getInStockNum(MaTypeHomeVo dto) {
|
||||
// 根据时间段查询当前仓储状态详情数据
|
||||
// 获取所选当前时间数据
|
||||
MaTypeHomeVo resultVo = mainMapper.getInStockNum(dto);
|
||||
|
||||
// 根据所选时间段查询上一个月的数据
|
||||
if (dto.getStartTime() != null && !dto.getStartTime().isEmpty() && dto.getEndTime() != null && !dto.getEndTime().isEmpty()) {
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
try {
|
||||
LocalDate startDate = LocalDate.parse(dto.getStartTime(), formatter);
|
||||
LocalDate endDate = LocalDate.parse(dto.getEndTime(), formatter);
|
||||
// 获取上月同期开始时间
|
||||
LocalDate lastMonthStart = startDate.minusMonths(1);
|
||||
// 获取上月同期结束时间
|
||||
LocalDate lastMonthEnd = endDate.minusMonths(1);
|
||||
dto.setStartTime(lastMonthStart.format(formatter));
|
||||
dto.setEndTime(lastMonthEnd.format(formatter));
|
||||
MaTypeHomeVo lastMonthResultVo = mainMapper.getInStockNum(dto);
|
||||
|
||||
// 计算各项增长量
|
||||
resultVo.setInStockIncrease(calculateIncrease(resultVo.getInStockNum(), lastMonthResultVo.getInStockNum()));
|
||||
resultVo.setInUseIncrease(calculateIncrease(resultVo.getInUseNum(), lastMonthResultVo.getInUseNum()));
|
||||
resultVo.setInRepairIncrease(calculateIncrease(resultVo.getInRepairNum(), lastMonthResultVo.getInRepairNum()));
|
||||
resultVo.setNewPurchaseIncrease(calculateIncrease(resultVo.getNewPurchaseNum(), lastMonthResultVo.getNewPurchaseNum()));
|
||||
resultVo.setNewRepairIncrease(calculateIncrease(resultVo.getNewRepairNum(), lastMonthResultVo.getNewRepairNum()));
|
||||
} catch (Exception e) {
|
||||
// 处理日期解析异常
|
||||
throw new RuntimeException("日期解析出错", e);
|
||||
}
|
||||
}
|
||||
return success(resultVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取机具设备状态总数据
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public AjaxResult getMaTypeStatusTotal(MaTypeHomeVo dto) {
|
||||
BigDecimal totalNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
|
||||
BigDecimal inStockProportion = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
|
||||
BigDecimal inUseProportion = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
|
||||
BigDecimal inRepairProportion = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
|
||||
BigDecimal newPurchaseProportion = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
|
||||
BigDecimal newRepairProportion = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
|
||||
// 获取所选当前时间数据
|
||||
MaTypeHomeVo resultVo = mainMapper.getInStockNum(dto);
|
||||
if (resultVo != null) {
|
||||
totalNum = totalNum.add(resultVo.getInStockNum()).add(resultVo.getInUseNum()).add(resultVo.getInRepairNum()).add(resultVo.getNewPurchaseNum()).add(resultVo.getNewRepairNum());
|
||||
// 计算需求量百分占比,结果保留2位小数
|
||||
if (totalNum.compareTo(BigDecimal.ZERO) != 0) {
|
||||
inStockProportion = resultVo.getInStockNum().divide(totalNum, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
|
||||
inUseProportion = resultVo.getInUseNum().divide(totalNum, 4, RoundingMode.HALF_UP)
|
||||
.multiply(BigDecimal.valueOf(100));
|
||||
inRepairProportion = resultVo.getInRepairNum().divide(totalNum, 4, RoundingMode.HALF_UP)
|
||||
.multiply(BigDecimal.valueOf(100));
|
||||
newPurchaseProportion = resultVo.getNewPurchaseNum().divide(totalNum, 4, RoundingMode.HALF_UP)
|
||||
.multiply(BigDecimal.valueOf(100));
|
||||
newRepairProportion = resultVo.getNewRepairNum().divide(totalNum, 4, RoundingMode.HALF_UP)
|
||||
.multiply(BigDecimal.valueOf(100));
|
||||
}
|
||||
}
|
||||
resultVo.setInStockProportion(inStockProportion);
|
||||
resultVo.setInUseProportion(inUseProportion);
|
||||
resultVo.setInRepairProportion(inRepairProportion);
|
||||
resultVo.setNewPurchaseProportion(newPurchaseProportion);
|
||||
resultVo.setNewRepairProportion(newRepairProportion);
|
||||
return success(resultVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算增长量
|
||||
* @param currentNum
|
||||
* @param lastMonthNum
|
||||
* @return
|
||||
*/
|
||||
private BigDecimal calculateIncrease(BigDecimal currentNum, BigDecimal lastMonthNum) {
|
||||
if (lastMonthNum.compareTo(BigDecimal.ZERO) == 0 && currentNum.compareTo(BigDecimal.ZERO) > 0) {
|
||||
return BigDecimal.valueOf(100);
|
||||
} else if (currentNum.compareTo(BigDecimal.ZERO) == 0 && lastMonthNum.compareTo(BigDecimal.ZERO) > 0) {
|
||||
return BigDecimal.valueOf(-100);
|
||||
} else if (lastMonthNum.compareTo(BigDecimal.ZERO) > 0) {
|
||||
return currentNum.subtract(lastMonthNum)
|
||||
.divide(lastMonthNum, 4, RoundingMode.HALF_UP)
|
||||
.multiply(BigDecimal.valueOf(100))
|
||||
.setScale(2, RoundingMode.HALF_UP);
|
||||
}
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
/**
|
||||
* 需求列表
|
||||
* @param demandAndSupplyVo
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public AjaxResult getDemandList(DemandAndSupplyVo demandAndSupplyVo) {
|
||||
DemandAndSupplyVo resultVo = new DemandAndSupplyVo();
|
||||
List<String> typeNameList = new ArrayList<>();
|
||||
List<BigDecimal> demandNumList = new ArrayList<>();
|
||||
List<BigDecimal> suppliedQuantityNumList = new ArrayList<>();
|
||||
List<BigDecimal> suppliedToBeQuantityNumList = new ArrayList<>();
|
||||
|
||||
// 查询列表
|
||||
List<DemandAndSupplyVo> demandList = mainMapper.getDemandList(demandAndSupplyVo);
|
||||
List<DemandAndSupplyVo> useList = mainMapper.getUseList(demandAndSupplyVo);
|
||||
List<DemandAndSupplyVo> suppliedQuantityList = mainMapper.getSuppliedQuantityList(demandAndSupplyVo);
|
||||
|
||||
// 过滤 suppliedQuantityNum 为 0 的数据
|
||||
suppliedQuantityList = filterZeroSuppliedQuantity(suppliedQuantityList);
|
||||
|
||||
// 合并 demandNum
|
||||
mergeDemandNum(demandList, useList);
|
||||
|
||||
// 提取需求量排名前 10 的数据
|
||||
demandList = getTop10DemandList(demandList);
|
||||
|
||||
// 构建结果列表
|
||||
buildResultLists(demandList, suppliedQuantityList, typeNameList, demandNumList, suppliedQuantityNumList, suppliedToBeQuantityNumList);
|
||||
|
||||
// 设置结果
|
||||
resultVo.setTypeNameList(typeNameList);
|
||||
resultVo.setDemandNumList(demandNumList);
|
||||
resultVo.setSuppliedQuantityNumList(suppliedQuantityNumList);
|
||||
resultVo.setSuppliedToBeQuantityNumList(suppliedToBeQuantityNumList);
|
||||
|
||||
return success(resultVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 过滤数量为0的数据
|
||||
* @param suppliedQuantityList
|
||||
* @return
|
||||
*/
|
||||
private static List<DemandAndSupplyVo> filterZeroSuppliedQuantity(List<DemandAndSupplyVo> suppliedQuantityList) {
|
||||
return suppliedQuantityList.stream()
|
||||
.filter(item -> item.getSuppliedQuantityNum().compareTo(BigDecimal.ZERO) != 0)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 合并总需求量
|
||||
* @param demandList
|
||||
* @param useList
|
||||
*/
|
||||
private static void mergeDemandNum(List<DemandAndSupplyVo> demandList, List<DemandAndSupplyVo> useList) {
|
||||
// 创建一个 Map 用于存储 typeId 对应的 DemandAndSupplyVo 对象
|
||||
Map<Long, DemandAndSupplyVo> typeIdMap = new HashMap<>();
|
||||
// 将 demandList 中的元素放入 Map 中
|
||||
for (DemandAndSupplyVo vo : demandList) {
|
||||
typeIdMap.put(vo.getTypeId(), vo);
|
||||
}
|
||||
// 遍历 useList,合并 demandNum
|
||||
for (DemandAndSupplyVo vo : useList) {
|
||||
Long typeId = vo.getTypeId();
|
||||
if (typeIdMap.containsKey(typeId)) {
|
||||
// 如果 Map 中已经存在该 typeId,则合并 demandNum
|
||||
DemandAndSupplyVo existingVo = typeIdMap.get(typeId);
|
||||
existingVo.setDemandNum(existingVo.getDemandNum().add(vo.getDemandNum()));
|
||||
} else {
|
||||
// 如果 Map 中不存在该 typeId,则将该元素添加到 Map 中
|
||||
typeIdMap.put(typeId, vo);
|
||||
}
|
||||
}
|
||||
demandList.clear();
|
||||
demandList.addAll(typeIdMap.values());
|
||||
}
|
||||
|
||||
/**
|
||||
* 去总数量前10的数据
|
||||
* @param demandList
|
||||
* @return
|
||||
*/
|
||||
private static List<DemandAndSupplyVo> getTop10DemandList(List<DemandAndSupplyVo> demandList) {
|
||||
return demandList.stream()
|
||||
.sorted(Comparator.comparing(DemandAndSupplyVo::getDemandNum).reversed())
|
||||
.limit(10)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建数据
|
||||
* @param demandList
|
||||
* @param suppliedQuantityList
|
||||
* @param typeNameList
|
||||
* @param demandNumList
|
||||
* @param suppliedQuantityNumList
|
||||
* @param suppliedToBeQuantityNumList
|
||||
*/
|
||||
private static void buildResultLists(List<DemandAndSupplyVo> demandList, List<DemandAndSupplyVo> suppliedQuantityList,
|
||||
List<String> typeNameList, List<BigDecimal> demandNumList,
|
||||
List<BigDecimal> suppliedQuantityNumList, List<BigDecimal> suppliedToBeQuantityNumList) {
|
||||
Map<Long, DemandAndSupplyVo> suppliedQuantityMap = suppliedQuantityList.stream()
|
||||
.collect(Collectors.toMap(DemandAndSupplyVo::getTypeId, vo -> vo, (existing, replacement) -> existing));
|
||||
for (DemandAndSupplyVo demandVo : demandList) {
|
||||
Long typeId = demandVo.getTypeId();
|
||||
if (suppliedQuantityMap.containsKey(typeId)) {
|
||||
DemandAndSupplyVo suppliedQuantityVo = suppliedQuantityMap.get(typeId);
|
||||
typeNameList.add(demandVo.getTypeName() + demandVo.getTypeModelName());
|
||||
demandNumList.add(demandVo.getDemandNum());
|
||||
suppliedQuantityNumList.add(suppliedQuantityVo.getSuppliedQuantityNum());
|
||||
suppliedToBeQuantityNumList.add(demandVo.getDemandNum().subtract(suppliedQuantityVo.getSuppliedQuantityNum()));
|
||||
} else {
|
||||
typeNameList.add(demandVo.getTypeName() + demandVo.getTypeModelName());
|
||||
demandNumList.add(demandVo.getDemandNum());
|
||||
suppliedQuantityNumList.add(BigDecimal.ZERO);
|
||||
suppliedToBeQuantityNumList.add(demandVo.getDemandNum());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -256,11 +256,15 @@ public class RepairAuditDetailsController extends BaseController {
|
|||
@ApiOperation(value = "查询修饰一览表")
|
||||
@GetMapping("/getRepairHomeList")
|
||||
public AjaxResult getRepairHomeList(RepairHomeInfo dto) {
|
||||
dto.setIsExport(1);
|
||||
Integer pageIndex = Convert.toInt(ServletUtils.getParameter("pageNum"), 1);
|
||||
Integer pageSize = Convert.toInt(ServletUtils.getParameter("pageSize"), 10);
|
||||
List<RepairHomeInfo> pageList = repairAuditDetailsService.getRepairHomeList(dto);
|
||||
return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, pageList));
|
||||
try {
|
||||
dto.setIsExport(1);
|
||||
Integer pageIndex = Convert.toInt(ServletUtils.getParameter("pageNum"), 1);
|
||||
Integer pageSize = Convert.toInt(ServletUtils.getParameter("pageSize"), 10);
|
||||
List<RepairHomeInfo> pageList = repairAuditDetailsService.getRepairHomeList(dto);
|
||||
return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, pageList));
|
||||
} catch (Exception e) {
|
||||
return error("查询修饰一览表失败, " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -271,9 +275,13 @@ public class RepairAuditDetailsController extends BaseController {
|
|||
@ApiOperation(value = "查询修饰一览表总计")
|
||||
@GetMapping("/getRepairHomeTotalList")
|
||||
public AjaxResult getRepairHomeTotalList(RepairHomeInfo dto) {
|
||||
dto.setIsExport(0);
|
||||
List<RepairHomeInfo> pageList = repairAuditDetailsService.getRepairHomeTotalList(dto);
|
||||
return AjaxResult.success(pageList);
|
||||
try {
|
||||
dto.setIsExport(0);
|
||||
List<RepairHomeInfo> pageList = repairAuditDetailsService.getRepairHomeTotalList(dto);
|
||||
return AjaxResult.success(pageList);
|
||||
} catch (Exception e) {
|
||||
return error("查询修饰一览表总计失败, " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1061,32 +1061,57 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
|
|||
info.setIsIncrease(true);
|
||||
infos.add(info);
|
||||
} else if (!CollectionUtils.isEmpty(lastMonthList) && CollectionUtils.isEmpty(repairHomeList)) {
|
||||
RepairHomeInfo lastMonthInfo = lastMonthList.get(0);
|
||||
RepairHomeInfo info = new RepairHomeInfo();
|
||||
info.setBackNum(lastMonthInfo.getBackNum());
|
||||
info.setBackNum(BigDecimal.ZERO);
|
||||
info.setIncrease(BigDecimal.valueOf(100));
|
||||
info.setIsIncrease(false);
|
||||
infos.add(info);
|
||||
info = new RepairHomeInfo();
|
||||
info.setRepairedNum(lastMonthInfo.getRepairedNum());
|
||||
info.setRepairedNum(BigDecimal.ZERO);
|
||||
info.setIncrease(BigDecimal.valueOf(100));
|
||||
info.setIsIncrease(false);
|
||||
infos.add(info);
|
||||
info = new RepairHomeInfo();
|
||||
info.setRepairingNum(lastMonthInfo.getRepairingNum());
|
||||
info.setRepairingNum(BigDecimal.ZERO);
|
||||
info.setIncrease(BigDecimal.valueOf(100));
|
||||
info.setIsIncrease(false);
|
||||
infos.add(info);
|
||||
info = new RepairHomeInfo();
|
||||
info.setScrapNum(lastMonthInfo.getScrapNum());
|
||||
info.setScrapNum(BigDecimal.ZERO);
|
||||
info.setIncrease(BigDecimal.valueOf(100));
|
||||
info.setIsIncrease(false);
|
||||
infos.add(info);
|
||||
info = new RepairHomeInfo();
|
||||
info.setTestNum(lastMonthInfo.getTestNum());
|
||||
info.setTestNum(BigDecimal.ZERO);
|
||||
info.setIncrease(BigDecimal.valueOf(100));
|
||||
info.setIsIncrease(false);
|
||||
infos.add(info);
|
||||
} else {
|
||||
RepairHomeInfo info = new RepairHomeInfo();
|
||||
info.setBackNum(BigDecimal.ZERO);
|
||||
info.setIncrease(BigDecimal.ZERO);
|
||||
info.setIsIncrease(true);
|
||||
infos.add(info);
|
||||
info = new RepairHomeInfo();
|
||||
info.setRepairedNum(BigDecimal.ZERO);
|
||||
info.setIncrease(BigDecimal.ZERO);
|
||||
info.setIsIncrease(true);
|
||||
infos.add(info);
|
||||
info = new RepairHomeInfo();
|
||||
info.setRepairingNum(BigDecimal.ZERO);
|
||||
info.setIncrease(BigDecimal.ZERO);
|
||||
info.setIsIncrease(true);
|
||||
infos.add(info);
|
||||
info = new RepairHomeInfo();
|
||||
info.setScrapNum(BigDecimal.ZERO);
|
||||
info.setIncrease(BigDecimal.ZERO);
|
||||
info.setIsIncrease(true);
|
||||
infos.add(info);
|
||||
info = new RepairHomeInfo();
|
||||
info.setTestNum(BigDecimal.ZERO);
|
||||
info.setIncrease(BigDecimal.ZERO);
|
||||
info.setIsIncrease(true);
|
||||
infos.add(info);
|
||||
}
|
||||
}
|
||||
return infos;
|
||||
|
|
|
|||
|
|
@ -482,6 +482,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
LEFT JOIN ma_type mt3 ON mt3.type_id = mt2.parent_id
|
||||
LEFT JOIN ma_type mt4 ON mt4.type_id = mt3.parent_id
|
||||
LEFT JOIN ma_machine mm ON mm.ma_id = bcd.ma_id
|
||||
WHERE bcd.is_finished = '1'
|
||||
GROUP BY mt.type_id) AS subquery2
|
||||
ON subquery1.type_id = subquery2.type_id) AS subquery1
|
||||
ON mt.type_id = subquery1.type_id
|
||||
|
|
|
|||
|
|
@ -6,67 +6,213 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
|
||||
|
||||
<select id="getPublishList" resultType="com.bonus.common.biz.domain.lease.LeasePublishInfo">
|
||||
select
|
||||
IFNULL(sum(lad.pre_num),0) as preCountNum
|
||||
from
|
||||
SELECT
|
||||
IFNULL( sum( lad.pre_num ), 0 ) AS preCountNum
|
||||
FROM
|
||||
lease_apply_info lai
|
||||
left join tm_task tt on lai.task_id = tt.task_id
|
||||
left join lease_apply_details lad on lai.id = lad.parent_id
|
||||
left join tm_task_agreement tta on lai.task_id = tta.task_id
|
||||
left join bm_unit bu on bu.unit_id = lai.unit_id
|
||||
left join bm_project bp on bp.pro_id = lai.project_id
|
||||
left join sys_dept sd on sd.dept_id = bp.imp_unit
|
||||
left join sys_dict_data sda on tt.task_status = sda.dict_value
|
||||
and sda.dict_type = 'lease_task_status'
|
||||
left join ma_type mt on lad.type_id = mt.type_id and mt.del_flag = '0'
|
||||
left join ma_type mt1 on mt.parent_id = mt1.type_id and mt1.del_flag = '0'
|
||||
<if test="userId != null">
|
||||
JOIN ma_type_keeper mtk ON mtk.type_id = lad.type_id AND mtk.user_id = #{userId}
|
||||
</if>
|
||||
where tt.task_status = 3
|
||||
and tt.task_type =2
|
||||
LEFT JOIN tm_task tt ON lai.task_id = tt.task_id
|
||||
LEFT JOIN lease_apply_details lad ON lai.id = lad.parent_id
|
||||
LEFT JOIN tm_task_agreement tta on tta.task_id = tt.task_id
|
||||
LEFT JOIN bm_agreement_info bagi on bagi.agreement_id = tta.agreement_id
|
||||
AND bagi.`status` = '1'
|
||||
LEFT JOIN bm_project bp on bp.pro_id = bagi.project_id
|
||||
AND bp.del_flag = '0'
|
||||
LEFT JOIN bm_unit bu on bu.unit_id = bagi.unit_id
|
||||
AND bu.del_flag = '0'
|
||||
WHERE
|
||||
tt.task_status IN (3, 4)
|
||||
AND tt.task_type = 2
|
||||
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
|
||||
AND DATE_FORMAT( lai.create_time, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
|
||||
</if>
|
||||
GROUP BY lai.id
|
||||
ORDER BY tt.task_status,tt.create_time desc
|
||||
|
||||
<if test="unitId != null ">
|
||||
AND bu.unit_id = #{unitId}
|
||||
</if>
|
||||
<if test="projectId != null ">
|
||||
AND bp.pro_id = #{projectId}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="getPublishListNew" resultType="java.math.BigDecimal">
|
||||
select
|
||||
IFNULL(sum(lpd.num),0) as preCountNum
|
||||
from
|
||||
lease_publish_details lpd
|
||||
<if test="userId != null">
|
||||
JOIN ma_type_keeper mtk ON mtk.type_id = lpd.type_id AND mtk.user_id = #{userId}
|
||||
</if>
|
||||
where 1=1
|
||||
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
|
||||
AND DATE_FORMAT( lpd.create_time, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
|
||||
</if>
|
||||
<if test="unitId != null ">
|
||||
AND lpd.unit_id = #{unitId}
|
||||
</if>
|
||||
<if test="projectId != null ">
|
||||
AND lpd.project_id = #{projectId}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="getSuppliedQuantityNum" resultType="java.math.BigDecimal">
|
||||
select
|
||||
SELECT
|
||||
IFNULL(sum(lod.out_num),0) as preCountNum
|
||||
from
|
||||
lease_out_details lod
|
||||
<if test="userId != null">
|
||||
JOIN ma_type_keeper mtk ON mtk.type_id = lod.type_id AND mtk.user_id = #{userId}
|
||||
</if>
|
||||
where 1=1
|
||||
FROM
|
||||
lease_apply_info lai
|
||||
LEFT JOIN tm_task tt ON lai.task_id = tt.task_id
|
||||
LEFT JOIN lease_out_details lod ON lai.id = lod.parent_id
|
||||
LEFT JOIN tm_task_agreement tta on tta.task_id = tt.task_id
|
||||
LEFT JOIN bm_agreement_info bagi on bagi.agreement_id = tta.agreement_id
|
||||
AND bagi.`status` = '1'
|
||||
LEFT JOIN bm_project bp on bp.pro_id = bagi.project_id
|
||||
AND bp.del_flag = '0'
|
||||
LEFT JOIN bm_unit bu on bu.unit_id = bagi.unit_id
|
||||
AND bu.del_flag = '0'
|
||||
WHERE
|
||||
tt.task_status IN (3, 4)
|
||||
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
|
||||
AND DATE_FORMAT( lod.create_time, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
|
||||
</if>
|
||||
<if test="unitId != null ">
|
||||
AND bu.unit_id = #{unitId}
|
||||
</if>
|
||||
<if test="projectId != null ">
|
||||
AND bp.pro_id = #{projectId}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="getProjectNum" resultType="java.lang.Integer">
|
||||
select
|
||||
count(bp.pro_id) as projectNum
|
||||
from
|
||||
bm_project bp
|
||||
where bp.pro_status in ('0','1','3')
|
||||
SELECT
|
||||
count( DISTINCT bp.pro_id ) AS projectNum
|
||||
FROM
|
||||
bm_project bp
|
||||
LEFT JOIN bm_agreement_info ba ON bp.pro_id = ba.project_id
|
||||
LEFT JOIN ( SELECT agreement_id, is_slt FROM slt_agreement_info GROUP BY agreement_id ) a
|
||||
ON a.agreement_id = ba.agreement_id
|
||||
WHERE
|
||||
bp.del_flag = '0'
|
||||
AND a.is_slt = '0'
|
||||
</select>
|
||||
|
||||
<select id="getSuppliedQuantityPrice" resultType="com.bonus.material.main.domain.DemandAndSupplyVo">
|
||||
SELECT
|
||||
IFNULL( sum( lod.out_num ), 0 ) AS suppliedQuantityNum,
|
||||
IFNULL(mt.buy_price, 0) AS buyPrice
|
||||
FROM
|
||||
lease_out_details lod
|
||||
LEFT JOIN ma_type mt ON lod.type_id = mt.type_id
|
||||
GROUP BY
|
||||
lod.type_id
|
||||
</select>
|
||||
|
||||
<select id="getDemandList" resultType="com.bonus.material.main.domain.DemandAndSupplyVo">
|
||||
SELECT
|
||||
lad.type_id AS typeId,
|
||||
mt.type_name AS typeName,
|
||||
mt1.type_name AS typeModelName,
|
||||
IFNULL( sum( lad.pre_num ), 0 ) AS demandNum
|
||||
FROM
|
||||
lease_apply_info lai
|
||||
LEFT JOIN tm_task tt ON lai.task_id = tt.task_id
|
||||
LEFT JOIN lease_apply_details lad ON lai.id = lad.parent_id
|
||||
LEFT JOIN tm_task_agreement tta ON tta.task_id = tt.task_id
|
||||
LEFT JOIN bm_agreement_info bagi ON bagi.agreement_id = tta.agreement_id
|
||||
AND bagi.`status` = '1'
|
||||
LEFT JOIN bm_project bp ON bp.pro_id = bagi.project_id
|
||||
AND bp.del_flag = '0'
|
||||
LEFT JOIN bm_unit bu ON bu.unit_id = bagi.unit_id
|
||||
AND bu.del_flag = '0'
|
||||
LEFT JOIN ma_type mt1 ON lad.type_id = mt1.type_id
|
||||
AND mt1.del_flag = '0'
|
||||
LEFT JOIN ma_type mt ON mt1.parent_id = mt.type_id
|
||||
AND mt.del_flag = '0'
|
||||
WHERE
|
||||
tt.task_status IN ( 3, 4 )
|
||||
AND tt.task_type = 2
|
||||
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
|
||||
AND DATE_FORMAT( lad.create_time, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
|
||||
</if>
|
||||
<if test="unitId != null ">
|
||||
AND bu.unit_id = #{unitId}
|
||||
</if>
|
||||
<if test="projectId != null ">
|
||||
AND bp.pro_id = #{projectId}
|
||||
</if>
|
||||
GROUP BY
|
||||
lad.type_id
|
||||
</select>
|
||||
|
||||
<select id="getUseList" resultType="com.bonus.material.main.domain.DemandAndSupplyVo">
|
||||
SELECT
|
||||
lpd.new_type AS typeId,
|
||||
IFNULL( sum( lpd.num ), 0 ) AS demandNum,
|
||||
mt.type_name AS typeName,
|
||||
mt1.type_name AS typeModelName
|
||||
FROM
|
||||
lease_publish_details lpd
|
||||
LEFT JOIN ma_type mt1 ON lpd.new_type = mt1.type_id
|
||||
AND mt1.del_flag = '0'
|
||||
LEFT JOIN ma_type mt ON mt1.parent_id = mt.type_id
|
||||
AND mt.del_flag = '0'
|
||||
WHERE 1 = 1
|
||||
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
|
||||
AND DATE_FORMAT( lpd.create_time, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
|
||||
</if>
|
||||
<if test="unitId != null ">
|
||||
AND lpd.unit_id = #{unitId}
|
||||
</if>
|
||||
<if test="projectId != null ">
|
||||
AND lpd.project_id = #{projectId}
|
||||
</if>
|
||||
GROUP BY
|
||||
lpd.new_type
|
||||
</select>
|
||||
<select id="getSuppliedQuantityList" resultType="com.bonus.material.main.domain.DemandAndSupplyVo">
|
||||
SELECT
|
||||
IFNULL( sum( lod.out_num ), 0 ) AS suppliedQuantityNum,
|
||||
lod.type_id AS typeId,
|
||||
mt.type_name AS typeName,
|
||||
mt1.type_name AS typeModelName
|
||||
FROM
|
||||
lease_apply_info lai
|
||||
LEFT JOIN tm_task tt ON lai.task_id = tt.task_id
|
||||
LEFT JOIN lease_out_details lod ON lai.id = lod.parent_id
|
||||
LEFT JOIN tm_task_agreement tta ON tta.task_id = tt.task_id
|
||||
LEFT JOIN bm_agreement_info bagi ON bagi.agreement_id = tta.agreement_id
|
||||
AND bagi.`status` = '1'
|
||||
LEFT JOIN bm_project bp ON bp.pro_id = bagi.project_id
|
||||
AND bp.del_flag = '0'
|
||||
LEFT JOIN bm_unit bu ON bu.unit_id = bagi.unit_id
|
||||
AND bu.del_flag = '0'
|
||||
LEFT JOIN ma_type mt1 ON lod.type_id = mt1.type_id
|
||||
AND mt1.del_flag = '0'
|
||||
LEFT JOIN ma_type mt ON mt1.parent_id = mt.type_id
|
||||
AND mt.del_flag = '0'
|
||||
WHERE
|
||||
tt.task_status IN ( 3, 4 )
|
||||
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
|
||||
AND DATE_FORMAT( lod.create_time, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
|
||||
</if>
|
||||
<if test="unitId != null ">
|
||||
AND bu.unit_id = #{unitId}
|
||||
</if>
|
||||
<if test="projectId != null ">
|
||||
AND bp.pro_id = #{projectId}
|
||||
</if>
|
||||
GROUP BY
|
||||
lod.type_id
|
||||
</select>
|
||||
|
||||
<select id="getInStockNum" resultType="com.bonus.material.main.domain.MaTypeHomeVo">
|
||||
SELECT
|
||||
IFNULL( SUM( storage_num ), 0 ) AS inStockNum,
|
||||
IFNULL( SUM( inuse_num ), 0 ) AS inUseNum,
|
||||
IFNULL( SUM( repair_num ), 0 ) AS inRepairNum,
|
||||
IFNULL( SUM( new_num ), 0 ) AS newPurchaseNum,
|
||||
IFNULL( SUM( repaired_num ), 0 ) AS newRepairNum,
|
||||
IFNULL( SUM( scrap_num ), 0 ) AS newScrapNum
|
||||
FROM
|
||||
ma_status_backup
|
||||
WHERE 1 = 1
|
||||
<if test="endTime != null and endTime != ''">
|
||||
AND DATE_FORMAT( time, '%Y-%m-%d' ) = #{endTime}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
|||
Loading…
Reference in New Issue