Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
5232ed983d
|
|
@ -3,6 +3,7 @@ package com.bonus.material.basic.controller;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import com.alibaba.nacos.common.utils.CollectionUtils;
|
import com.alibaba.nacos.common.utils.CollectionUtils;
|
||||||
import com.bonus.common.biz.config.ListPagingUtil;
|
import com.bonus.common.biz.config.ListPagingUtil;
|
||||||
|
import com.bonus.common.core.utils.DateUtils;
|
||||||
import com.bonus.common.core.utils.ServletUtils;
|
import com.bonus.common.core.utils.ServletUtils;
|
||||||
import com.bonus.common.core.utils.bean.BeanUtils;
|
import com.bonus.common.core.utils.bean.BeanUtils;
|
||||||
import com.bonus.common.core.utils.poi.ExcelUtil;
|
import com.bonus.common.core.utils.poi.ExcelUtil;
|
||||||
|
|
@ -16,11 +17,8 @@ import com.bonus.material.basic.domain.*;
|
||||||
import com.bonus.material.basic.domain.vo.MaTypeSelectInfo;
|
import com.bonus.material.basic.domain.vo.MaTypeSelectInfo;
|
||||||
import com.bonus.material.basic.service.ComplexQueryService;
|
import com.bonus.material.basic.service.ComplexQueryService;
|
||||||
import com.bonus.material.common.annotation.PreventRepeatSubmit;
|
import com.bonus.material.common.annotation.PreventRepeatSubmit;
|
||||||
import com.bonus.material.lease.mapper.LeaseApplyInfoMapper;
|
|
||||||
import com.bonus.material.ma.domain.Type;
|
import com.bonus.material.ma.domain.Type;
|
||||||
import com.bonus.material.part.domain.PartInventory;
|
import com.bonus.material.part.domain.PartInventory;
|
||||||
import com.bonus.material.part.domain.PartTypeCheckInfo;
|
|
||||||
import com.bonus.material.part.domain.PartTypeQueryDto;
|
|
||||||
import com.bonus.system.api.model.LoginUser;
|
import com.bonus.system.api.model.LoginUser;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
|
@ -507,6 +505,47 @@ public class ComplexQueryController extends BaseController {
|
||||||
return AjaxResult.success(getDataTable(pageList));
|
return AjaxResult.success(getDataTable(pageList));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出供应统计报表
|
||||||
|
* @param response
|
||||||
|
* @param bean
|
||||||
|
*/
|
||||||
|
@ApiOperation("导出供应统计报表")
|
||||||
|
@PostMapping("/exportStatisticsList")
|
||||||
|
public void exportStatisticsList(HttpServletResponse response, ProjUsingRecord bean)
|
||||||
|
{
|
||||||
|
String fileName = "供应统计报表";
|
||||||
|
if (bean.getStartTime() != null && bean.getEndTime() != null) {
|
||||||
|
fileName = "供应统计报表"+ "(统计日期" + bean.getStartTime() + "至" + bean.getEndTime() + ")";
|
||||||
|
}
|
||||||
|
List<ProjUsingRecord> list = complexQueryService.getStatisticsList(bean);
|
||||||
|
List<ProjUsingExport> exportList = new ArrayList<>();
|
||||||
|
//将list复制到exportList
|
||||||
|
for (int i = 0; i < list.size(); i++) {
|
||||||
|
ProjUsingExport projUsingExport = new ProjUsingExport();
|
||||||
|
projUsingExport.setSerialNumber(i + 1);
|
||||||
|
BeanUtils.copyProperties(list.get(i), projUsingExport);
|
||||||
|
exportList.add(projUsingExport);
|
||||||
|
}
|
||||||
|
ExcelUtil<ProjUsingExport> util = new ExcelUtil<>(ProjUsingExport.class);
|
||||||
|
// 获取当前年月日时分秒导出时间,用括号拼接在后面
|
||||||
|
String title = "供应统计报表" + "(" + "导出时间:" + DateUtils.getTime() + ")";
|
||||||
|
util.exportExcel(response, exportList, fileName, title);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应统计报表二级页面
|
||||||
|
* @param bean
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "供应统计报表二级页面")
|
||||||
|
@GetMapping("/getSecondStatisticsList")
|
||||||
|
public AjaxResult getSecondStatisticsList(ProjUsingRecord bean) {
|
||||||
|
startPage();
|
||||||
|
List<ProjUsingRecordExport> pageList = complexQueryService.getSecondStatisticsList(bean);
|
||||||
|
return AjaxResult.success(getDataTable(pageList));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 施工机具需求、供应分析统计表二级页面---总在用工程明细
|
* 施工机具需求、供应分析统计表二级页面---总在用工程明细
|
||||||
* @param bean
|
* @param bean
|
||||||
|
|
@ -522,38 +561,52 @@ public class ComplexQueryController extends BaseController {
|
||||||
return AjaxResult.success(getDataTable(pageList));
|
return AjaxResult.success(getDataTable(pageList));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出供应统计报表二级页面
|
||||||
@ApiOperation("导出施工机具需求、供应分析统计表")
|
* @param response
|
||||||
@PostMapping("/exportStatisticsList")
|
* @param bean
|
||||||
public void exportStatisticsList(HttpServletResponse response, ProjUsingRecord bean)
|
*/
|
||||||
|
@ApiOperation("导出供应统计报表二级页面")
|
||||||
|
@PostMapping("/exportSecondStatisticsList")
|
||||||
|
public void exportSecondStatisticsList(HttpServletResponse response, ProjUsingRecord bean)
|
||||||
{
|
{
|
||||||
List<ProjUsingRecord> list = complexQueryService.getStatisticsList(bean);
|
String fileName = "供应统计报表二级页面";
|
||||||
List<ProjUsingRecordExport> exportList = new ArrayList<>();
|
if (bean.getStartTime() != null && bean.getEndTime() != null) {
|
||||||
//将list复制到exportList
|
fileName = "供应统计报表二级页面"+ "(统计日期" + bean.getStartTime() + "至" + bean.getEndTime() + ")";
|
||||||
for (ProjUsingRecord projUsingRecord : list) {
|
|
||||||
ProjUsingRecordExport projUsingRecordExport = new ProjUsingRecordExport();
|
|
||||||
BeanUtils.copyProperties(projUsingRecord, projUsingRecordExport);
|
|
||||||
exportList.add(projUsingRecordExport);
|
|
||||||
}
|
}
|
||||||
|
List<ProjUsingRecordExport> list = complexQueryService.getSecondStatisticsList(bean);
|
||||||
ExcelUtil<ProjUsingRecordExport> util = new ExcelUtil<>(ProjUsingRecordExport.class);
|
ExcelUtil<ProjUsingRecordExport> util = new ExcelUtil<>(ProjUsingRecordExport.class);
|
||||||
util.exportExcel(response, exportList, "施工机具需求、供应分析统计表");
|
// 获取当前年月日时分秒导出时间,用括号拼接在后面
|
||||||
|
String title = "供应统计报表二级页面" + "(" + "导出时间:" + DateUtils.getTime() + ")";
|
||||||
|
util.exportExcel(response, list, fileName, title);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出总在用工程明细
|
||||||
|
* @param response
|
||||||
|
* @param bean
|
||||||
|
*/
|
||||||
@ApiOperation("导出总在用工程明细")
|
@ApiOperation("导出总在用工程明细")
|
||||||
@PostMapping("/exportAllUsDetails")
|
@PostMapping("/exportAllUsDetails")
|
||||||
public void exportAllUsDetails(HttpServletResponse response, ProjUsingRecord bean)
|
public void exportAllUsDetails(HttpServletResponse response, ProjUsingRecord bean)
|
||||||
{
|
{
|
||||||
|
String fileName = "总在用工程明细";
|
||||||
|
if (bean.getStartTime() != null && bean.getEndTime() != null) {
|
||||||
|
fileName = "总在用工程明细"+ "(统计日期" + bean.getStartTime() + "至" + bean.getEndTime() + ")";
|
||||||
|
}
|
||||||
List<ProjUsingRecord> list = complexQueryService.getAllUsDetails(bean);
|
List<ProjUsingRecord> list = complexQueryService.getAllUsDetails(bean);
|
||||||
List<ProjUsingRecordExports> exportList = new ArrayList<>();
|
List<ProjUsingRecordExports> exportList = new ArrayList<>();
|
||||||
//将list复制到exportList
|
//将list复制到exportList
|
||||||
for (ProjUsingRecord projUsingRecord : list) {
|
for (int i = 0; i < list.size(); i++) {
|
||||||
ProjUsingRecordExports projUsingRecordExports = new ProjUsingRecordExports();
|
ProjUsingRecordExports projUsingRecordExports = new ProjUsingRecordExports();
|
||||||
BeanUtils.copyProperties(projUsingRecord, projUsingRecordExports);
|
projUsingRecordExports.setSerialNumber(i + 1);
|
||||||
|
BeanUtils.copyProperties(list.get(i), projUsingRecordExports);
|
||||||
exportList.add(projUsingRecordExports);
|
exportList.add(projUsingRecordExports);
|
||||||
}
|
}
|
||||||
ExcelUtil<ProjUsingRecordExports> util = new ExcelUtil<>(ProjUsingRecordExports.class);
|
ExcelUtil<ProjUsingRecordExports> util = new ExcelUtil<>(ProjUsingRecordExports.class);
|
||||||
util.exportExcel(response, exportList, "总在用工程明细");
|
// 获取当前年月日时分秒导出时间,用括号拼接在后面
|
||||||
|
String title = "总在用工程明细" + "(" + "导出时间:" + DateUtils.getTime() + ")";
|
||||||
|
util.exportExcel(response, exportList, fileName, title);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ public class BmUnitType
|
||||||
private Long dictCode;
|
private Long dictCode;
|
||||||
|
|
||||||
/** 单位类型名称 */
|
/** 单位类型名称 */
|
||||||
@Excel(name = "单位类型名称")
|
@Excel(name = "单位类型")
|
||||||
private String dictLabel;
|
private String dictLabel;
|
||||||
|
|
||||||
/** 字典键值 */
|
/** 字典键值 */
|
||||||
|
|
@ -43,7 +43,7 @@ public class BmUnitType
|
||||||
private String dictValue;
|
private String dictValue;
|
||||||
|
|
||||||
/** 字典排序 */
|
/** 字典排序 */
|
||||||
@Excel(name = "字典排序")
|
@Excel(name = "字典排序", cellType = Excel.ColumnType.NUMERIC)
|
||||||
private Long dictSort;
|
private Long dictSort;
|
||||||
|
|
||||||
/** 字典类型 */
|
/** 字典类型 */
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,145 @@
|
||||||
|
package com.bonus.material.basic.domain;
|
||||||
|
|
||||||
|
import com.bonus.common.core.annotation.Excel;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 综合查询--退料查询
|
||||||
|
* @author hay
|
||||||
|
* @date 2024/2/26 14:51
|
||||||
|
*/
|
||||||
|
@ApiModel(description = "退料查询")
|
||||||
|
@Data
|
||||||
|
public class ProjUsingExport implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 2227217051604273598L;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "主键id")
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "序号")
|
||||||
|
@Excel(name = "序号", isSequence = true, sort = 0, width = 5)
|
||||||
|
private Integer serialNumber;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "分公司")
|
||||||
|
@Excel(name = "分公司")
|
||||||
|
private String impUnitName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "协议号")
|
||||||
|
private String agreementCode;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "工程Id")
|
||||||
|
private Integer proId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "工程名称")
|
||||||
|
@Excel(name = "工程名称")
|
||||||
|
private String proName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "机具类型")
|
||||||
|
@Excel(name = "机具类型")
|
||||||
|
private String jijuType;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "往来单位Id")
|
||||||
|
private Integer unitId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "往来单位")
|
||||||
|
private String unitName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "合同主体")
|
||||||
|
private String contractPart;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "物资名称")
|
||||||
|
private String typeName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "规格ID")
|
||||||
|
private Integer typeId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "规格型号")
|
||||||
|
private String typeModelName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "设备编码")
|
||||||
|
private String maCode;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "计量单位")
|
||||||
|
private String unit;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "领用数量")
|
||||||
|
private BigDecimal leaseNum;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "归还数量")
|
||||||
|
private BigDecimal backNum;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "需求数量")
|
||||||
|
@Excel(name = "需求数量", cellType = Excel.ColumnType.NUMERIC, align = HorizontalAlignment.RIGHT)
|
||||||
|
private String needNum;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "已供数量")
|
||||||
|
@Excel(name = "已供数量(累计)", cellType = Excel.ColumnType.NUMERIC, align = HorizontalAlignment.RIGHT)
|
||||||
|
private String supplyNum;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "差值")
|
||||||
|
@Excel(name = "差值(已供G-需求F)", cellType = Excel.ColumnType.NUMERIC, align = HorizontalAlignment.RIGHT)
|
||||||
|
private String diffNum;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "在用数量")
|
||||||
|
private BigDecimal usNum;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "在库数量")
|
||||||
|
private BigDecimal storeNum;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "在修数量")
|
||||||
|
private BigDecimal repairNum;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "待入库数量")
|
||||||
|
private BigDecimal inputNum;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "总保有量")
|
||||||
|
private BigDecimal allNum;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "总在用数量")
|
||||||
|
private BigDecimal allUsNum;
|
||||||
|
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "在用总价值(元)")
|
||||||
|
private BigDecimal usPrice;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "投入总价值(元)")
|
||||||
|
private BigDecimal totalPrice;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "关键字")
|
||||||
|
private String keyWord;
|
||||||
|
|
||||||
|
@ApiModelProperty(value="开始时间")
|
||||||
|
private String startTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value="结束时间")
|
||||||
|
private String endTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "数据所属组织")
|
||||||
|
private Integer companyId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "装备管理方式(0编号 1计数)")
|
||||||
|
private String manageType;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否结算 0否 1是")
|
||||||
|
private String isSlt;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否结算 0否 1是")
|
||||||
|
private String isSltName;
|
||||||
|
|
||||||
|
private String externalIds;
|
||||||
|
@ApiModelProperty(value = "关联外部(第三方)的工程ID")
|
||||||
|
private String externalId;
|
||||||
|
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -23,6 +23,10 @@ public class ProjUsingRecordExport implements Serializable {
|
||||||
@ApiModelProperty(value = "主键id")
|
@ApiModelProperty(value = "主键id")
|
||||||
private Integer id;
|
private Integer id;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "序号")
|
||||||
|
@Excel(name = "序号", isSequence = true, sort = 0, width = 5)
|
||||||
|
private Integer serialNumber;
|
||||||
|
|
||||||
@ApiModelProperty(value = "协议号")
|
@ApiModelProperty(value = "协议号")
|
||||||
private String agreementCode;
|
private String agreementCode;
|
||||||
|
|
||||||
|
|
@ -140,7 +144,6 @@ public class ProjUsingRecordExport implements Serializable {
|
||||||
private Long userId;
|
private Long userId;
|
||||||
|
|
||||||
@ApiModelProperty(value = "备注")
|
@ApiModelProperty(value = "备注")
|
||||||
@Excel(name = "备注")
|
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,10 @@ public class ProjUsingRecordExports implements Serializable {
|
||||||
@ApiModelProperty(value = "主键id")
|
@ApiModelProperty(value = "主键id")
|
||||||
private Integer id;
|
private Integer id;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "序号")
|
||||||
|
@Excel(name = "序号", isSequence = true, sort = 0, width = 5)
|
||||||
|
private Integer serialNumber;
|
||||||
|
|
||||||
@ApiModelProperty(value = "协议号")
|
@ApiModelProperty(value = "协议号")
|
||||||
private String agreementCode;
|
private String agreementCode;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -175,14 +175,14 @@ public interface ComplexQueryMapper {
|
||||||
* @param item
|
* @param item
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
ProjUsingRecord getUsNum(ProjUsingRecord item);
|
ProjUsingRecord getUsNum(ProjUsingRecordExport item);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据typeId查询,总库存数量、总在修数量、总待入库数量、总保有量
|
* 根据typeId查询,总库存数量、总在修数量、总待入库数量、总保有量
|
||||||
* @param item
|
* @param item
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
RetainedEquipmentInfo selectInventory(ProjUsingRecord item);
|
RetainedEquipmentInfo selectInventory(ProjUsingRecordExport item);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取所有在用详情
|
* 获取所有在用详情
|
||||||
|
|
@ -248,4 +248,11 @@ public interface ComplexQueryMapper {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<PartInventory> getPartInventory(RetainedEquipmentInfo bean);
|
List<PartInventory> getPartInventory(RetainedEquipmentInfo bean);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取二级统计数据
|
||||||
|
* @param bean
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<ProjUsingRecordExport> getSecondStatisticsList(ProjUsingRecord bean);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -161,4 +161,11 @@ public interface ComplexQueryService {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<PartInventory> getPartInventory(RetainedEquipmentInfo bean);
|
List<PartInventory> getPartInventory(RetainedEquipmentInfo bean);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应统计报表二级页面
|
||||||
|
* @param bean
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<ProjUsingRecordExport> getSecondStatisticsList(ProjUsingRecord bean);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -804,4 +804,57 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应统计报表二级页面
|
||||||
|
* @param bean
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<ProjUsingRecordExport> getSecondStatisticsList(ProjUsingRecord bean) {
|
||||||
|
try {
|
||||||
|
// 1、查询工程对应的物资名称、型号、需求数量、已供数量
|
||||||
|
List<ProjUsingRecordExport> list = complexQueryMapper.getSecondStatisticsList(bean);
|
||||||
|
|
||||||
|
// 创建缓存Map,key为typeId,value为对应的库存信息
|
||||||
|
Map<Long, RetainedEquipmentInfo> inventoryCache = new HashMap<>();
|
||||||
|
|
||||||
|
for (int i = 0; i < list.size(); i++) {
|
||||||
|
ProjUsingRecordExport item = list.get(i);
|
||||||
|
item.setSerialNumber(i + 1);
|
||||||
|
// 3、查询该工程设备的在用数量
|
||||||
|
ProjUsingRecord projUsingRecord3 = complexQueryMapper.getUsNum(item);
|
||||||
|
if (projUsingRecord3 != null && projUsingRecord3.getUsNum() != null) {
|
||||||
|
item.setUsNum(projUsingRecord3.getUsNum());
|
||||||
|
} else {
|
||||||
|
item.setUsNum(BigDecimal.ZERO);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 4、根据typeId查询库存信息(使用缓存优化)
|
||||||
|
Long typeId = Long.valueOf(item.getTypeId());
|
||||||
|
|
||||||
|
RetainedEquipmentInfo bean1 = inventoryCache.get(typeId);
|
||||||
|
if (bean1 == null) {
|
||||||
|
// 如果缓存中没有,则查询数据库并放入缓存
|
||||||
|
bean1 = complexQueryMapper.selectInventory(item);
|
||||||
|
inventoryCache.put(typeId, bean1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置库存相关信息
|
||||||
|
item.setStoreNum(bean1.getStoreNum());
|
||||||
|
item.setRepairNum(bean1.getRepairNum());
|
||||||
|
item.setAllUsNum(bean1.getUsNum());
|
||||||
|
|
||||||
|
// 使用三元运算符处理null值
|
||||||
|
BigDecimal inputNum = bean1.getInputNum() != null ? bean1.getInputNum() : BigDecimal.ZERO;
|
||||||
|
BigDecimal repairInputNum = bean1.getRepairInputNum() != null ? bean1.getRepairInputNum() : BigDecimal.ZERO;
|
||||||
|
item.setInputNum(inputNum.add(repairInputNum));
|
||||||
|
item.setAllNum(bean1.getAllNum());
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -598,7 +598,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
LEFT JOIN bm_project bp on bai.project_id=bp.pro_id
|
LEFT JOIN bm_project bp on bai.project_id=bp.pro_id
|
||||||
LEFT JOIN sys_dept sd ON sd.dept_id = bp.imp_unit
|
LEFT JOIN sys_dept sd ON sd.dept_id = bp.imp_unit
|
||||||
WHERE
|
WHERE
|
||||||
sai.lease_id is not null
|
sai.is_slt = '0'
|
||||||
and bp.pro_name is not null
|
and bp.pro_name is not null
|
||||||
and mt.del_flag='0'
|
and mt.del_flag='0'
|
||||||
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
|
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
|
||||||
|
|
@ -609,14 +609,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
mt2.type_name like concat('%', #{keyWord}, '%') or
|
mt2.type_name like concat('%', #{keyWord}, '%') or
|
||||||
mt.type_name like concat('%', #{keyWord}, '%') or
|
mt.type_name like concat('%', #{keyWord}, '%') or
|
||||||
bp.pro_name like concat('%', #{keyWord}, '%') or
|
bp.pro_name like concat('%', #{keyWord}, '%') or
|
||||||
mt.unit_name like concat('%', #{keyWord}, '%')
|
mt.unit_name like concat('%', #{keyWord}, '%') or
|
||||||
|
sd.dept_name like concat('%', #{keyWord}, '%')
|
||||||
)
|
)
|
||||||
</if>
|
</if>
|
||||||
<if test="proName != null and proName != ''">
|
<if test="proName != null and proName != ''">
|
||||||
and bp.pro_name like concat('%', #{proName}, '%')
|
and bp.pro_name like concat('%', #{proName}, '%')
|
||||||
</if>
|
</if>
|
||||||
<if test="typeName != null and typeName != ''">
|
<if test="jijuType != null and jijuType != ''">
|
||||||
and mt2.type_name like concat('%', #{typeName}, '%')
|
and mt.jiju_type = #{jijuType}
|
||||||
</if>
|
</if>
|
||||||
GROUP BY bp.pro_id, mt.type_id
|
GROUP BY bp.pro_id, mt.type_id
|
||||||
|
|
||||||
|
|
@ -651,6 +652,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
LEFT JOIN sys_dept sd ON sd.dept_id = bp.imp_unit
|
LEFT JOIN sys_dept sd ON sd.dept_id = bp.imp_unit
|
||||||
WHERE
|
WHERE
|
||||||
bp.pro_name is not null
|
bp.pro_name is not null
|
||||||
|
and lai.direct_id is null
|
||||||
and mt.del_flag=0
|
and mt.del_flag=0
|
||||||
and tt.task_type = '2'
|
and tt.task_type = '2'
|
||||||
and tt.task_status in (3, 4)
|
and tt.task_status in (3, 4)
|
||||||
|
|
@ -662,14 +664,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
mt2.type_name like concat('%', #{keyWord}, '%') or
|
mt2.type_name like concat('%', #{keyWord}, '%') or
|
||||||
mt.type_name like concat('%', #{keyWord}, '%') or
|
mt.type_name like concat('%', #{keyWord}, '%') or
|
||||||
bp.pro_name like concat('%', #{keyWord}, '%') or
|
bp.pro_name like concat('%', #{keyWord}, '%') or
|
||||||
mt.unit_name like concat('%', #{keyWord}, '%')
|
mt.unit_name like concat('%', #{keyWord}, '%') or
|
||||||
|
sd.dept_name like concat('%', #{keyWord}, '%')
|
||||||
)
|
)
|
||||||
</if>
|
</if>
|
||||||
<if test="proName != null and proName != ''">
|
<if test="proName != null and proName != ''">
|
||||||
and bp.pro_name like concat('%', #{proName}, '%')
|
and bp.pro_name like concat('%', #{proName}, '%')
|
||||||
</if>
|
</if>
|
||||||
<if test="typeName != null and typeName != ''">
|
<if test="jijuType != null and jijuType != ''">
|
||||||
and mt2.type_name like concat('%', #{typeName}, '%')
|
and mt.jiju_type = #{jijuType}
|
||||||
</if>
|
</if>
|
||||||
GROUP BY bp.pro_id, mt.type_id
|
GROUP BY bp.pro_id, mt.type_id
|
||||||
|
|
||||||
|
|
@ -712,14 +715,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
mt2.type_name like concat('%', #{keyWord}, '%') or
|
mt2.type_name like concat('%', #{keyWord}, '%') or
|
||||||
mt.type_name like concat('%', #{keyWord}, '%') or
|
mt.type_name like concat('%', #{keyWord}, '%') or
|
||||||
bp.pro_name like concat('%', #{keyWord}, '%') or
|
bp.pro_name like concat('%', #{keyWord}, '%') or
|
||||||
mt.unit_name like concat('%', #{keyWord}, '%')
|
mt.unit_name like concat('%', #{keyWord}, '%') or
|
||||||
|
sd.dept_name like concat('%', #{keyWord}, '%')
|
||||||
)
|
)
|
||||||
</if>
|
</if>
|
||||||
<if test="proName != null and proName != ''">
|
<if test="proName != null and proName != ''">
|
||||||
and bp.pro_name like concat('%', #{proName}, '%')
|
and bp.pro_name like concat('%', #{proName}, '%')
|
||||||
</if>
|
</if>
|
||||||
<if test="typeName != null and typeName != ''">
|
<if test="jijuType != null and jijuType != ''">
|
||||||
and mt2.type_name like concat('%', #{typeName}, '%')
|
and mt.jiju_type = #{jijuType}
|
||||||
</if>
|
</if>
|
||||||
GROUP BY bp.pro_id, mt.type_id
|
GROUP BY bp.pro_id, mt.type_id
|
||||||
) combined
|
) combined
|
||||||
|
|
@ -1940,4 +1944,162 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getSecondStatisticsList" resultType="com.bonus.material.basic.domain.ProjUsingRecordExport">
|
||||||
|
SELECT
|
||||||
|
typeId,
|
||||||
|
proId,
|
||||||
|
proName,
|
||||||
|
typeName,
|
||||||
|
modelName as typeModelName,
|
||||||
|
unit,
|
||||||
|
SUM(needNum) as needNum,
|
||||||
|
SUM(outNum) as supplyNum,
|
||||||
|
SUM(outNum) - SUM(needNum) as diffNum
|
||||||
|
FROM (
|
||||||
|
-- 语句一的结果,作为outNum
|
||||||
|
SELECT
|
||||||
|
mt.type_id as typeId,
|
||||||
|
bp.pro_id as proId,
|
||||||
|
sd.dept_name AS impUnitName,
|
||||||
|
bp.pro_name as proName,
|
||||||
|
mt2.type_name as typeName,
|
||||||
|
mt.type_name as modelName,
|
||||||
|
mt.unit_name as unit,
|
||||||
|
SUM(sai.num) as outNum,
|
||||||
|
0 as needNum
|
||||||
|
FROM
|
||||||
|
slt_agreement_info sai
|
||||||
|
LEFT JOIN ma_type mt on mt.type_id = sai.type_id
|
||||||
|
LEFT JOIN ma_type mt2 on mt2.type_id = mt.parent_id
|
||||||
|
LEFT JOIN bm_agreement_info bai on sai.agreement_id=bai.agreement_id
|
||||||
|
LEFT JOIN bm_project bp on bai.project_id = bp.pro_id
|
||||||
|
LEFT JOIN sys_dept sd ON sd.dept_id = bp.imp_unit
|
||||||
|
WHERE
|
||||||
|
sai.is_slt = '0'
|
||||||
|
and bp.pro_name is not null
|
||||||
|
and mt.del_flag='0'
|
||||||
|
<if test="keyWord != null and keyWord != ''">
|
||||||
|
and (
|
||||||
|
mt2.type_name like concat('%', #{keyWord}, '%') or
|
||||||
|
mt.type_name like concat('%', #{keyWord}, '%') or
|
||||||
|
bp.pro_name like concat('%', #{keyWord}, '%') or
|
||||||
|
mt.unit_name like concat('%', #{keyWord}, '%')
|
||||||
|
)
|
||||||
|
</if>
|
||||||
|
<if test="proId != null">
|
||||||
|
and bp.pro_id = #{proId}
|
||||||
|
</if>
|
||||||
|
<if test="jijuType != null and jijuType != ''">
|
||||||
|
and mt.jiju_type = #{jijuType}
|
||||||
|
</if>
|
||||||
|
<if test="proName != null and proName != ''">
|
||||||
|
and bp.pro_name like concat('%', #{proName}, '%')
|
||||||
|
</if>
|
||||||
|
<if test="typeName != null and typeName != ''">
|
||||||
|
and mt2.type_name like concat('%', #{typeName}, '%')
|
||||||
|
</if>
|
||||||
|
GROUP BY bp.pro_id, mt.type_id
|
||||||
|
|
||||||
|
UNION ALL
|
||||||
|
|
||||||
|
-- 语句二的结果,作为needNum
|
||||||
|
SELECT
|
||||||
|
mt.type_id as typeId,
|
||||||
|
bp.pro_id as proId,
|
||||||
|
sd.dept_name AS impUnitName,
|
||||||
|
bp.pro_name as proName,
|
||||||
|
mt2.type_name as typeName,
|
||||||
|
mt.type_name as modelName,
|
||||||
|
mt.unit_name as unit,
|
||||||
|
0 as outNum,
|
||||||
|
SUM(lad.pre_num) as needNum
|
||||||
|
FROM
|
||||||
|
lease_apply_details lad
|
||||||
|
LEFT JOIN lease_apply_info lai on lad.parent_id=lai.id
|
||||||
|
LEFT JOIN tm_task tt on lai.task_id = tt.task_id
|
||||||
|
LEFT JOIN tm_task_agreement tta on tt.task_id = tta.task_id
|
||||||
|
LEFT JOIN bm_agreement_info bai on tta.agreement_id = bai.agreement_id
|
||||||
|
LEFT JOIN ma_type mt on mt.type_id=lad.type_id
|
||||||
|
LEFT JOIN ma_type mt2 on mt2.type_id=mt.parent_id
|
||||||
|
LEFT JOIN bm_project bp on bai.project_id=bp.pro_id
|
||||||
|
LEFT JOIN sys_dept sd ON sd.dept_id = bp.imp_unit
|
||||||
|
WHERE
|
||||||
|
bp.pro_name is not null
|
||||||
|
and lai.direct_id is null
|
||||||
|
and mt.del_flag=0
|
||||||
|
and tt.task_type = '2'
|
||||||
|
and tt.task_status in (3, 4)
|
||||||
|
<if test="proId != null">
|
||||||
|
and bp.pro_id = #{proId}
|
||||||
|
</if>
|
||||||
|
<if test="jijuType != null and jijuType != ''">
|
||||||
|
and mt.jiju_type = #{jijuType}
|
||||||
|
</if>
|
||||||
|
<if test="keyWord != null and keyWord != ''">
|
||||||
|
and (
|
||||||
|
mt2.type_name like concat('%', #{keyWord}, '%') or
|
||||||
|
mt.type_name like concat('%', #{keyWord}, '%') or
|
||||||
|
bp.pro_name like concat('%', #{keyWord}, '%') or
|
||||||
|
mt.unit_name like concat('%', #{keyWord}, '%')
|
||||||
|
)
|
||||||
|
</if>
|
||||||
|
<if test="proName != null and proName != ''">
|
||||||
|
and bp.pro_name like concat('%', #{proName}, '%')
|
||||||
|
</if>
|
||||||
|
<if test="typeName != null and typeName != ''">
|
||||||
|
and mt2.type_name like concat('%', #{typeName}, '%')
|
||||||
|
</if>
|
||||||
|
GROUP BY bp.pro_id, mt.type_id
|
||||||
|
|
||||||
|
UNION ALL
|
||||||
|
|
||||||
|
-- 语句三的结果,作为needNum
|
||||||
|
SELECT
|
||||||
|
mt.type_id as typeId,
|
||||||
|
bp.pro_id as proId,
|
||||||
|
sd.dept_name AS impUnitName,
|
||||||
|
bp.pro_name as proName,
|
||||||
|
mt2.type_name as typeName,
|
||||||
|
mt.type_name as modelName,
|
||||||
|
mt.unit_name as unit,
|
||||||
|
0 as outNum,
|
||||||
|
SUM(lpd.num) as needNum
|
||||||
|
FROM
|
||||||
|
lease_publish_details lpd
|
||||||
|
LEFT JOIN lease_apply_info lai on lpd.parent_id=lai.id
|
||||||
|
LEFT JOIN tm_task tt on lai.task_id = tt.task_id
|
||||||
|
LEFT JOIN ma_type mt on mt.type_id=lpd.type_id
|
||||||
|
LEFT JOIN ma_type mt2 on mt2.type_id=mt.parent_id
|
||||||
|
LEFT JOIN bm_project bp on lai.project_id=bp.pro_id
|
||||||
|
LEFT JOIN sys_dept sd ON sd.dept_id = bp.imp_unit
|
||||||
|
WHERE
|
||||||
|
bp.pro_name is not null
|
||||||
|
and mt.del_flag='0'
|
||||||
|
and tt.task_type = '19'
|
||||||
|
<if test="proId != null">
|
||||||
|
and bp.pro_id = #{proId}
|
||||||
|
</if>
|
||||||
|
<if test="jijuType != null and jijuType != ''">
|
||||||
|
and mt.jiju_type = #{jijuType}
|
||||||
|
</if>
|
||||||
|
<if test="keyWord != null and keyWord != ''">
|
||||||
|
and (
|
||||||
|
mt2.type_name like concat('%', #{keyWord}, '%') or
|
||||||
|
mt.type_name like concat('%', #{keyWord}, '%') or
|
||||||
|
bp.pro_name like concat('%', #{keyWord}, '%') or
|
||||||
|
mt.unit_name like concat('%', #{keyWord}, '%')
|
||||||
|
)
|
||||||
|
</if>
|
||||||
|
<if test="proName != null and proName != ''">
|
||||||
|
and bp.pro_name like concat('%', #{proName}, '%')
|
||||||
|
</if>
|
||||||
|
<if test="typeName != null and typeName != ''">
|
||||||
|
and mt2.type_name like concat('%', #{typeName}, '%')
|
||||||
|
</if>
|
||||||
|
GROUP BY bp.pro_id, mt.type_id
|
||||||
|
) combined
|
||||||
|
GROUP BY proId,typeId
|
||||||
|
ORDER BY proId
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue