diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/LeaseRecordInfo.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/LeaseRecordInfo.java new file mode 100644 index 00000000..5d1c6eeb --- /dev/null +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/LeaseRecordInfo.java @@ -0,0 +1,291 @@ +package com.bonus.common.biz.domain; + +import com.bonus.common.core.annotation.Excel; +import com.bonus.common.core.web.domain.BaseEntity; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * 领料任务对象 lease_apply_info + * + * @author xsheng + * @date 2024-10-16 + */ + +@EqualsAndHashCode(callSuper = false) +@Data +@ToString +public class LeaseRecordInfo extends BaseEntity{ + + private static final long serialVersionUID = 1L; + + /** ID */ + private Long id; + + @ApiModelProperty(value = "登录用户id") + private Long userId; + + @ApiModelProperty(value = "申请时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "申请时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + @Excel(name = "申请人") + @ApiModelProperty(value = "申请人") + private String createBy; + + @ApiModelProperty(value = "实施单位") + private String impUnitName; + + @ApiModelProperty(value = "合同主体") + private String contractPart; + + @ApiModelProperty(value = "领料单位") + @Excel(name = "领用单位") + private String leaseUnit; + + @ApiModelProperty(value = "发料单位") + private String sendUnit; + + @ApiModelProperty(value = "领料id") + private Integer leaseUnitId; + + @ApiModelProperty(value = "租赁工程") + @Excel(name = "领用工程") + private String leaseProject; + + @ApiModelProperty(value = "领料工程id") + private Integer leaseProjectId; + + @ApiModelProperty(value = "领料人签名URL") + private String leaseSignUrl; + + @ApiModelProperty(value = "领料人签名类型") + private Byte leaseSignType; + + /** + * 领料物资名称汇总 + */ + @ApiModelProperty(value = "领料物资名称汇总") + @Excel(name = "领料物资类型") + private String maTypeNames; + + @ApiModelProperty(value = "协议号") + @Excel(name = "协议号") + private String agreementCode; + + /** 任务编号: 领料单号 */ + @ApiModelProperty(value = "领料单号") + @Excel(name = "业务单号") + private String code; + + /** 任务ID */ + @ApiModelProperty(value = "任务ID") + private Long taskId; + + /** 领料人 */ + @Excel(name = "领料人") + @ApiModelProperty(value = "领料人") + private String leasePerson; + + @ApiModelProperty(value = "联系方式") + @Excel(name = "领料电话") + private String phone; + + /** 1:1级审批,2:2级审批 */ + @ApiModelProperty(value = "1:1级审批,2:2级审批") + private String type; + + /** 公司审批人 */ + @ApiModelProperty(value = "公司审批人") + private Long companyAuditBy; + + /** 公司审批时间 */ + @ApiModelProperty(value = "公司审批时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date companyAuditTime; + + /** 公司审批备注 */ + @ApiModelProperty(value = "公司审批备注") + private String companyAuditRemark; + + /** 分管审批人 */ + @ApiModelProperty(value = "分管审批人") + private Long deptAuditBy; + + /** 分管审批时间 */ + @ApiModelProperty(value = "分管审批时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date deptAuditTime; + + /** 分管审批备注 */ + @ApiModelProperty(value = "分管审批备注") + private String deptAuditRemark; + + /** 机具分公司审批 */ + @ApiModelProperty(value = "机具分公司审批") + private Long directAuditBy; + + /** 机具分公司审批时间 */ + @ApiModelProperty(value = "机具分公司审批时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date directAuditTime; + + /** 机具分公司审批备注 */ + @ApiModelProperty(value = "机具分公司审批备注") + private String directAuditRemark; + + /** 数据所属组织 */ + @ApiModelProperty(value = "数据所属组织") + private Long companyId; + + /** 1机具分公司审核通过,2调试分公司审核通过3机具分公司审核驳回4调试分公司审核驳回5出库进行中5出库完成 */ +// @Excel(name = "1机具分公司审核通过,2调试分公司审核通过3机具分公司审核驳回4调试分公司审核驳回5出库进行中5出库完成") +// @ApiModelProperty(value = "1机具分公司审核通过,2调试分公司审核通过3机具分公司审核驳回4调试分公司审核驳回5出库进行中5出库完成") +// private String status; + + /** $column.columnComment */ + private Long directId; + + /** 0工程1长期 */ + @ApiModelProperty(value = "0工程1长期") + private String leaseType; + + /** 预领料时间 */ + @ApiModelProperty(value = "预领料时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date estimateLeaseTime; + + /** 费用承担方(01项目03分包) */ + @ApiModelProperty(value = "费用承担方(01项目03分包)") + private String costBearingParty; + + @ApiModelProperty(value = "协议id") + private Long agreementId; + + /** 任务类型(定义数据字典) */ + @ApiModelProperty(value = "任务类型(定义数据字典)") + private Integer taskType; + + /** 任务状态(定义数据字典) */ + @ApiModelProperty(value = "任务状态(定义数据字典)") + private Integer taskStatus; + + @Excel(name = "状态") + @ApiModelProperty(value = "任务状态(定义数据字典)") + private String taskStatusName; + + @ApiModelProperty(value = "任务当月序号 例如:1 插入及查询时请携带任务类型") + private Integer monthOrder; + + @ApiModelProperty(value = "领料人手机号") + private String leasePhone; + + @ApiModelProperty(value = "往来单位id") + private Long unitId; + + @ApiModelProperty(value = "往来单位") + private String unitName; + + @ApiModelProperty(value = "工程id") + private Long projectId; + + /** + * 工程名称 + */ + @ApiModelProperty(value = "工程名称") + private String projectName; + + /** + * 预领料合计数 + */ + @ApiModelProperty(value = "预领料合计数") + private BigDecimal preCountNum; + + @ApiModelProperty(value = "已出库数量") + private BigDecimal alNum; + + @ApiModelProperty(value = "开始时间") + private String startTime; + + @ApiModelProperty(value = "结束时间") + private String endTime; + + @ApiModelProperty(value = "关键字") + private String keyWord; + + @ApiModelProperty(value = "备注") + private String remark; + + @ApiModelProperty(value = "任务状态列表") + private List statusList; + + @ApiModelProperty(value = "审批人人签名URL") + private String directAuditSignUrl; + + /** + * 分包商单位委托书 + */ + @ApiModelProperty(value = "分包商单位委托书") + List bmFileInfos; + + + /** + * 标准配置id + */ + @ApiModelProperty(value = "标准配置id") + private Long configId; + + /** + * 是否为领用申请 + */ + @ApiModelProperty(value = "是否为领用申请") + private Integer isLease; + + @ApiModelProperty(value = "采购申请编号") + private String applyCode; + + private Integer isApp; + + @ApiModelProperty(value = "供应时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date supplierTime; + + @ApiModelProperty(value = "供应地点") + private String supplierPlace; + + @ApiModelProperty(value = "公司名称") + private String companyName; + + @ApiModelProperty(value = "本流程节点id") + private Integer nodeId; + + @ApiModelProperty(value = "下个流程节点id") + private Integer nextNodeId; + + @ApiModelProperty(value = "流程配置值") + private String configValue; + + @ApiModelProperty(value = "所属记录") + private Integer recordId; + + @ApiModelProperty(value = "设备编码") + private String maCode; + + @ApiModelProperty(value = "设备id") + private Long maId; + + @ApiModelProperty(value = "流程节点签名方式 0:或签 1:会签") + private Integer nodeSignType; + + + @ApiModelProperty(value = "发布批次") + private String publishTask; +} diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/LeaseTaskStatusEnum.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/LeaseTaskStatusEnum.java index 8ed0b179..07904636 100644 --- a/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/LeaseTaskStatusEnum.java +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/LeaseTaskStatusEnum.java @@ -13,9 +13,10 @@ public enum LeaseTaskStatusEnum { LEASE_TASK_ZERO(0, "待审核"), LEASE_TASK_SUBMIT(5, "待提交"), LEASE_TASK_TO_PUBLISHED(1, "待发布"), - LEASE_TASK_TO_AUDIT(2, "已终结"), + LEASE_TASK_TO_AUDIT(2, "已终止"), LEASE_TASK_IN_PROGRESS(3, "出库进行中"), - LEASE_TASK_FINISHED(4, "出库已完成"); + LEASE_TASK_FINISHED(4, "出库已完成"), + LEASE_AUDIT_ING(6, "审核中"); private final Integer status; private final String statusName; diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/ComplexQueryController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/ComplexQueryController.java index 509e13f7..4296caea 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/ComplexQueryController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/ComplexQueryController.java @@ -222,6 +222,58 @@ public class ComplexQueryController extends BaseController { util.exportExcel(response, list, "综合查询--导出修饰待入库详情"); } + /** + * 查询待报废设备详情 + * @param bean + * @return + */ + @ApiOperation(value = "综合查询--查询待报废设备详情") + @GetMapping("/getScrapList") + public AjaxResult getScrapList(ScrapRecordInfo bean) { + startPage(); + List list = complexQueryService.getScrapList(bean); + return AjaxResult.success(getDataTable(list)); + } + + /** + * 导出待报废设备详情 + * @param response + * @param bean + */ + @ApiOperation(value = "综合查询--导出待报废设备详情") + @PostMapping("/exportScrapList") + public void exportScrapList(HttpServletResponse response, ScrapRecordInfo bean) { + List list = complexQueryService.getScrapList(bean); + ExcelUtil util = new ExcelUtil<>(ScrapRecordInfo.class); + util.exportExcel(response, list, "综合查询--导出待报废设备详情"); + } + + /** + * 查询已审核报废设备详情 + * @param bean + * @return + */ + @ApiOperation(value = "综合查询--查询已审核报废设备详情") + @GetMapping("/getScrapAuditList") + public AjaxResult getScrapAuditList(ScrapAuditInfo bean) { + startPage(); + List list = complexQueryService.getScrapAuditList(bean); + return AjaxResult.success(getDataTable(list)); + } + + /** + * 导出已审核报废设备详情 + * @param response + * @param bean + */ + @ApiOperation(value = "综合查询--导出已审核报废设备详情") + @PostMapping("/exportScrapAuditList") + public void exportScrapAuditList(HttpServletResponse response, ScrapAuditInfo bean) { + List list = complexQueryService.getScrapAuditList(bean); + ExcelUtil util = new ExcelUtil<>(ScrapAuditInfo.class); + util.exportExcel(response, list, "综合查询--导出已审核报废设备详情"); + } + /** * 工程机具使用列表 * @param bean diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/OutRecordInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/OutRecordInfo.java index 1d53dc27..fc891ff2 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/OutRecordInfo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/OutRecordInfo.java @@ -8,6 +8,7 @@ import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; import java.util.Date; +import java.util.List; /** * 综合查询-机具出库列表查询 @@ -105,6 +106,6 @@ public class OutRecordInfo { @ApiModelProperty(value = "二级ID") private Integer secondTypeId; - @ApiModelProperty(value = "一级ID") - private Integer firstTypeId; + @ApiModelProperty(value = "一级ID集合") + private List firstTypeIdList; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/ScrapAuditInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/ScrapAuditInfo.java new file mode 100644 index 00000000..4d96a4c5 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/ScrapAuditInfo.java @@ -0,0 +1,62 @@ +package com.bonus.material.basic.domain; + +import com.bonus.common.core.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 已报废审核详情 + * @Author ma_sh + * @create 2025/3/7 9:23 + */ +@Data +public class ScrapAuditInfo { + + @ApiModelProperty(value = "主键id") + private Integer id; + + @ApiModelProperty(value = "机具名称") + @Excel(name = "机具名称") + private String typeName; + + @ApiModelProperty(value = "规格ID") + private Integer typeId; + + @ApiModelProperty(value = "规格型号") + @Excel(name = "规格型号") + private String typeModelName; + + @ApiModelProperty(value = "购置单价") + @Excel(name = "原值(元)") + private BigDecimal buyPrice; + + @ApiModelProperty(value = "设备编码") + @Excel(name = "设备编码") + private String maCode; + + @ApiModelProperty(value = "报废人员") + @Excel(name = "报废人员") + private String scrapBy; + + @ApiModelProperty(value = "审核人员") + @Excel(name = "审核人员") + private String auditBy; + + @ApiModelProperty(value = "审核时间") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date auditTime; + + @ApiModelProperty(value = "报废类型") + @Excel(name = "报废类型") + private String scrapType; + + @ApiModelProperty(value = "关键字") + private String keyWord; +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/ScrapRecordInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/ScrapRecordInfo.java new file mode 100644 index 00000000..a9d41a77 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/ScrapRecordInfo.java @@ -0,0 +1,62 @@ +package com.bonus.material.basic.domain; + +import com.bonus.common.core.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 待报废详情 + * @Author ma_sh + * @create 2025/3/7 9:23 + */ +@Data +public class ScrapRecordInfo { + + @ApiModelProperty(value = "主键id") + private Integer id; + + @ApiModelProperty(value = "机具名称") + @Excel(name = "机具名称") + private String typeName; + + @ApiModelProperty(value = "规格ID") + private Integer typeId; + + @ApiModelProperty(value = "规格型号") + @Excel(name = "规格型号") + private String typeModelName; + + @ApiModelProperty(value = "购置单价") + @Excel(name = "原值(元)") + private BigDecimal buyPrice; + + @ApiModelProperty(value = "设备编码") + @Excel(name = "设备编码") + private String maCode; + + @ApiModelProperty(value = "报废人员") + @Excel(name = "报废人员") + private String scrapBy; + + @ApiModelProperty(value = "审核人员") + @Excel(name = "审核人员") + private String auditBy; + + @ApiModelProperty(value = "报废时间") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "报废时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date scrapTime; + + @ApiModelProperty(value = "报废类型") + @Excel(name = "报废类型") + private String scrapType; + + @ApiModelProperty(value = "关键字") + private String keyWord; +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/ComplexQueryMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/ComplexQueryMapper.java index d8fab774..1ff55c8d 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/ComplexQueryMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/ComplexQueryMapper.java @@ -109,4 +109,18 @@ public interface ComplexQueryMapper { * @return */ UseStorageInfo selectInFo(UseStorageInfo useStorageInfo); + + /** + * 查询待报废设备详情 + * @param bean + * @return + */ + List getScrapList(ScrapRecordInfo bean); + + /** + * 查询已审核报废设备详情 + * @param bean + * @return + */ + List getScrapAuditList(ScrapAuditInfo bean); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/ComplexQueryService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/ComplexQueryService.java index 919bfd8d..f995ddc2 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/ComplexQueryService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/ComplexQueryService.java @@ -87,4 +87,18 @@ public interface ComplexQueryService { * @return */ List getRepairInputList(RepairInputRecord bean); + + /** + * 查询待报废设备详情 + * @param bean + * @return + */ + List getScrapList(ScrapRecordInfo bean); + + /** + * 查询已审核报废设备详情 + * @param bean + * @return + */ + List getScrapAuditList(ScrapAuditInfo bean); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java index 113be177..898bf8aa 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java @@ -483,4 +483,24 @@ public class ComplexQueryServiceImpl implements ComplexQueryService { return complexQueryMapper.getRepairInputList(bean); } + /** + * 查询待报废设备详情 + * @param bean + * @return + */ + @Override + public List getScrapList(ScrapRecordInfo bean) { + return complexQueryMapper.getScrapList(bean); + } + + /** + * 查询已审核报废设备详情 + * @param bean + * @return + */ + @Override + public List getScrapAuditList(ScrapAuditInfo bean) { + return complexQueryMapper.getScrapAuditList(bean); + } + } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/controller/LeaseTaskController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/controller/LeaseTaskController.java index 35ef4889..cf6f649f 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/controller/LeaseTaskController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/controller/LeaseTaskController.java @@ -2,6 +2,7 @@ package com.bonus.material.lease.controller; import cn.hutool.core.convert.Convert; import com.bonus.common.biz.config.ListPagingUtil; +import com.bonus.common.biz.domain.LeaseRecordInfo; import com.bonus.common.biz.domain.lease.LeaseApplyInfo; import com.bonus.common.biz.domain.lease.LeasePublishInfo; import com.bonus.common.core.utils.ServletUtils; @@ -10,47 +11,31 @@ import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.log.annotation.SysLog; import com.bonus.common.log.enums.OperaType; -import com.bonus.common.security.annotation.RequiresPermissions; import com.bonus.material.common.annotation.PreventRepeatSubmit; import com.bonus.material.lease.domain.LeaseApplyDetails; +import com.bonus.material.lease.domain.LeasePublishDetails; import com.bonus.material.lease.domain.vo.LeaseApplyRequestVo; -import com.bonus.material.lease.service.ILeaseApplyInfoService; import com.bonus.material.lease.service.ILeaseTaskService; import com.bonus.material.ma.domain.Type; -import com.bonus.material.ma.domain.vo.MaTypeVo; import com.bonus.material.ma.domain.vo.MaTypeVoLevelTwo; -import com.bonus.material.ma.domain.vo.StandardConfigDetailsVo; import com.bonus.system.api.RemoteFileService; -import com.itextpdf.text.Paragraph; -import feign.Param; -import fr.opensagres.poi.xwpf.converter.pdf.PdfConverter; -import fr.opensagres.poi.xwpf.converter.pdf.PdfOptions; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.apache.commons.lang3.BooleanUtils; import org.apache.poi.xwpf.usermodel.*; import org.springframework.http.MediaType; -import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.mock.web.MockMultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.NotNull; -import java.awt.*; import java.io.*; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.net.URL; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.*; import java.util.List; -import java.awt.Font; /** * @author hay @@ -107,6 +92,20 @@ public class LeaseTaskController extends BaseController { } } + /** + * 导出领料记录查询 + * @param response + * @param leaseApplyInfo + */ + @ApiOperation(value = "导出领料记录查询") + @PostMapping("/exportLeaseRecord") + public void exportLeaseRecord(HttpServletResponse response, LeaseApplyInfo leaseApplyInfo) { + List list = service.getLeaseRecordList(leaseApplyInfo); + ExcelUtil util = new ExcelUtil<>(LeaseRecordInfo.class); + util.exportExcel(response, list, "领料记录查询数据"); + + } + /** * 领用发布查询 * @param leaseApplyInfo @@ -144,6 +143,20 @@ public class LeaseTaskController extends BaseController { return success(service.getDetailsById(leaseApplyInfo)); } + /** + * 导出领料发布详情 + * @param response + * @param leaseApplyInfo + */ + @ApiOperation(value = "导出领料发布详情") + @PostMapping("/exportPublishDetails") + public void exportPublishDetails(HttpServletResponse response, LeaseApplyInfo leaseApplyInfo) { + List list = service.getPublishDetails(leaseApplyInfo); + ExcelUtil util = new ExcelUtil<>(LeasePublishDetails.class); + util.exportExcel(response, list, "领料发布详情数据"); + + } + /** * 发布数据保存 * @param leaseApplyRequestVo @@ -155,6 +168,17 @@ public class LeaseTaskController extends BaseController { return service.addPublish(leaseApplyRequestVo); } + /** + * 领用发布终结 + * @param leaseApplyInfo + * @return + */ + @ApiOperation(value = "领用发布终结") + @PostMapping("/endPublish") + public AjaxResult endPublish(@RequestBody LeaseApplyInfo leaseApplyInfo) { + return service.endPublish(leaseApplyInfo); + } + /** * 导出领料发布列表 * @param response diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/domain/LeasePublishDetails.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/domain/LeasePublishDetails.java new file mode 100644 index 00000000..c1ba9b9f --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/domain/LeasePublishDetails.java @@ -0,0 +1,145 @@ +package com.bonus.material.lease.domain; + +import com.bonus.common.core.annotation.Excel; +import com.bonus.common.core.web.domain.BaseEntity; +import com.bonus.material.back.domain.vo.MaCodeVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.ToString; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 领料任务详细对象 lease_apply_details + * + * @author xsheng + * @date 2024-10-16 + */ +@Data +@ToString +public class LeasePublishDetails extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** ID */ + private Long id; + + /** 任务ID */ + @ApiModelProperty(value = "任务ID") + private Long parentId; + + @ApiModelProperty(value = "机具ID") + private Long maId; + + /** 物资类型 */ + @ApiModelProperty(value = "物资类型名称") + @Excel(name = "类型名称") + private String maTypeName; + + /** 规格型号id */ + @ApiModelProperty(value = "规格型号id") + private Long typeId; + + @ApiModelProperty(value = "规格型号id") + private Long newTypeId; + + @ApiModelProperty(value = "三级id") + private Long thirdTypeId; + + @ApiModelProperty(value = "规格型号id") + private Long taskId; + + /** 规格型号 */ + @ApiModelProperty(value = "规格型号名称") + @Excel(name = "规格型号") + private String typeName; + + @ApiModelProperty(value = "机具编码") + private String maCode; + + /** 计量单位 */ + @ApiModelProperty(value = "计量单位") + @Excel(name = "计量单位") + private String unitName; + + /** 计量单位数值 */ + @ApiModelProperty(value = "计量单位数值") + private String unitValue; + + @Excel(name = "需求数量") + @ApiModelProperty(value = "需求数量") + private BigDecimal preNum; + + /** 库存数量 */ + @ApiModelProperty(value = "库存数量") + @Excel(name = "当前库存") + private BigDecimal storageNum; + + @ApiModelProperty(value = "已发布数量") + @Excel(name = "已发布数量") + private BigDecimal publishNum; + + @ApiModelProperty(value = "剩余最大出库数量") + @Excel(name = "已供应数量") + private BigDecimal outNum; + + @ApiModelProperty(value = "待发布数量") + @Excel(name = "待发布数量") + private BigDecimal pendingNum; + + @ApiModelProperty(value = "本次发布数量") + private BigDecimal num; + + /** 审批数量 */ + @ApiModelProperty(value = "审批数量") + private BigDecimal auditNum; + + /** 已领数量 */ + @ApiModelProperty(value = "已领数量") + private BigDecimal alNum; + + /** 备注 */ + @ApiModelProperty(value = "备注") + private String remark; + + /** + * 装备管理方式(0编号 1计数) + */ + @ApiModelProperty(name = "装备管理方式") + private int manageType; + + /** 状态(0待审批,1进行中,2已出库) */ + private String status; + + /** 数据所属组织 */ + @ApiModelProperty(value = "数据所属组织") + private Long companyId; + + private String keyword; + + @ApiModelProperty(value = "用户ID") + private Long userId; + + @ApiModelProperty(value = "编码类型集合") + private List maCodeVoList; + + @ApiModelProperty(value = "往来单位id") + private Long unitId; + + @ApiModelProperty(value = "工程id") + private Long projectId; + + @ApiModelProperty(value = "领料人") + private String leasePerson; + + @ApiModelProperty(value = "联系方式") + private String phone; + + @ApiModelProperty(value = "任务当月序号 例如:1 插入及查询时请携带任务类型") + private Integer monthOrder; + + @ApiModelProperty(value = "发布批次") + private String publishTask; + +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseTaskMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseTaskMapper.java index 1add9fe3..ee272373 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseTaskMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseTaskMapper.java @@ -141,4 +141,11 @@ public interface LeaseTaskMapper { * @return */ int getMonthMaxOrderByDate(@Param("year") String year, @Param("month") String month); + + /** + * 根据taskId查询状态 + * @param taskId + * @return + */ + Integer selectStatusByTaskId(Long taskId); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/ILeaseTaskService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/ILeaseTaskService.java index 77903b3c..63f78877 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/ILeaseTaskService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/ILeaseTaskService.java @@ -1,14 +1,15 @@ package com.bonus.material.lease.service; +import com.bonus.common.biz.domain.LeaseRecordInfo; import com.bonus.common.biz.domain.lease.LeaseApplyInfo; import com.bonus.common.biz.domain.lease.LeasePublishInfo; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.material.lease.domain.LeaseApplyDetails; +import com.bonus.material.lease.domain.LeasePublishDetails; import com.bonus.material.lease.domain.vo.LeaseApplyRequestVo; import com.bonus.material.lease.domain.vo.LeaseDeptInfo; import com.bonus.material.ma.domain.Type; -import com.bonus.material.ma.domain.vo.MaTypeVo; import com.bonus.material.ma.domain.vo.MaTypeVoLevelTwo; import java.util.List; @@ -114,5 +115,26 @@ public interface ILeaseTaskService { * @return */ AjaxResult addPublish(LeaseApplyRequestVo leaseApplyRequestVo); + + /** + * 领用发布终结 + * @param leaseApplyInfo + * @return + */ + AjaxResult endPublish(LeaseApplyInfo leaseApplyInfo); + + /** + * 导出领料发布详情 + * @param leaseApplyInfo + * @return + */ + List getPublishDetails(LeaseApplyInfo leaseApplyInfo); + + /** + * 导出领料记录查询 + * @param leaseApplyInfo + * @return + */ + List getLeaseRecordList(LeaseApplyInfo leaseApplyInfo); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseTaskServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseTaskServiceImpl.java index 572ecb9a..96ab0492 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseTaskServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseTaskServiceImpl.java @@ -3,18 +3,22 @@ package com.bonus.material.lease.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.bonus.common.biz.constant.MaterialConstants; import com.bonus.common.biz.domain.BmFileInfo; +import com.bonus.common.biz.domain.LeaseRecordInfo; import com.bonus.common.biz.domain.lease.LeaseApplyInfo; import com.bonus.common.biz.domain.lease.LeasePublishInfo; +import com.bonus.common.biz.enums.HttpCodeEnum; import com.bonus.common.biz.enums.LeaseTaskStatusEnum; import com.bonus.common.biz.enums.TmTaskTypeEnum; import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.StringUtils; +import com.bonus.common.core.utils.bean.BeanUtils; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; import com.bonus.material.back.domain.vo.MaCodeVo; import com.bonus.material.basic.mapper.BmFileInfoMapper; import com.bonus.material.lease.domain.LeaseApplyDetails; +import com.bonus.material.lease.domain.LeasePublishDetails; import com.bonus.material.lease.domain.vo.LeaseApplyRequestVo; import com.bonus.material.lease.domain.vo.LeaseDeptInfo; import com.bonus.material.lease.mapper.LeaseApplyDetailsMapper; @@ -22,16 +26,12 @@ import com.bonus.material.lease.mapper.LeaseApplyInfoMapper; import com.bonus.material.lease.mapper.LeaseTaskMapper; import com.bonus.material.lease.service.ILeaseTaskService; import com.bonus.material.ma.domain.Type; -import com.bonus.material.ma.domain.vo.MaTypeVo; import com.bonus.material.ma.domain.vo.MaTypeVoLevelTwo; import com.bonus.material.task.domain.TmTask; -import com.bonus.material.task.domain.TmTaskAgreement; import com.bonus.material.task.mapper.TmTaskAgreementMapper; import com.bonus.material.task.mapper.TmTaskMapper; import com.bonus.material.work.domain.SysWorkflowNode; -import com.bonus.material.work.domain.SysWorkflowRecord; import com.bonus.material.work.domain.SysWorkflowRecordHistory; -import com.bonus.material.work.domain.SysWorkflowType; import com.bonus.material.work.mapper.*; import com.bonus.material.work.service.SysWorkflowRecordService; import lombok.extern.slf4j.Slf4j; @@ -165,7 +165,7 @@ public class LeaseTaskServiceImpl implements ILeaseTaskService { }); } if(statusFlag!= null && statusFlag == 0){ - sysWorkflowRecordService.addSysWorkflowRecord(tmTask.getTaskId().intValue(),taskCode,2); + sysWorkflowRecordService.addSysWorkflowRecord(tmTask.getTaskId().intValue(),taskCode,19); } if (count > 0) { return insertPurchaseCheckDetails(leaseApplyRequestVo.getLeaseApplyDetailsList(), leaseApplyRequestVo.getLeaseApplyInfo().getId()); @@ -191,6 +191,16 @@ public class LeaseTaskServiceImpl implements ILeaseTaskService { leaseApplyInfo.setUserId(userId == 0 ? null : userId); List list = mapper.selectLeaseApplyInfoList(leaseApplyInfo); if (!CollectionUtils.isEmpty(list)) { + for (LeaseApplyInfo applyInfo : list) { + // 根据任务id查询sys_workflow_record表,看任务是否已经开始,修改tm_task表状态为审核中 + Integer status = mapper.selectStatusByTaskId(applyInfo.getTaskId()); + if (status != null && status == 1) { + applyInfo.setTaskStatus(LeaseTaskStatusEnum.LEASE_AUDIT_ING.getStatus()); + applyInfo.setTaskStatusName(LeaseTaskStatusEnum.LEASE_AUDIT_ING.getStatusName()); + mapper.updateLeaseTaskStatus(applyInfo.getTaskId(), LeaseTaskStatusEnum.LEASE_AUDIT_ING.getStatus()); + } + } + Integer taskStatus = leaseApplyInfo.getTaskStatus(); String keyWord = leaseApplyInfo.getKeyWord(); // 如果关键字不为空,进行过滤 if (!StringUtils.isBlank(keyWord)) { @@ -198,6 +208,11 @@ public class LeaseTaskServiceImpl implements ILeaseTaskService { .filter(item -> containsKeyword(item, keyWord)) .collect(Collectors.toList()); } + if (taskStatus != null) { + list = list.stream() + .filter(item -> item.getTaskStatus().equals(taskStatus)) + .collect(Collectors.toList()); + } } return list; } @@ -704,7 +719,7 @@ public class LeaseTaskServiceImpl implements ILeaseTaskService { boolean allMatch = true; if (!CollectionUtils.isEmpty(leaseApplyDetails)) { for (LeaseApplyDetails leaseApplyDetail : leaseApplyDetails) { - if (leaseApplyDetail.getPreNum().compareTo(leaseApplyDetail.getPublishNum()) != 0) { + if (leaseApplyDetail.getPreNum().compareTo(leaseApplyDetail.getPublishNum()) <= 0) { allMatch = false; break; } @@ -726,6 +741,63 @@ public class LeaseTaskServiceImpl implements ILeaseTaskService { } } + /** + * 结束发布 + * @param leaseApplyInfo + * @return + */ + @Override + public AjaxResult endPublish(LeaseApplyInfo leaseApplyInfo) { + if (leaseApplyInfo == null || leaseApplyInfo.getTaskId() == null) { + return AjaxResult.error("参数不能为空"); + } + // 根据taskId修改任务状态为终结 + int result = tmTaskMapper.updateTaskStatus(String.valueOf(leaseApplyInfo.getTaskId()), LeaseTaskStatusEnum.LEASE_TASK_TO_AUDIT.getStatus()); + if (result == 0) { + return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); + } + return AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()); + } + + /** + * 导出领料发布详情 + * @param leaseApplyInfo + * @return + */ + @Override + public List getPublishDetails(LeaseApplyInfo leaseApplyInfo) { + List list = new ArrayList<>(); + // 获取领料单详情 + List details = mapper.selectPublishDetails(leaseApplyInfo); + if (!CollectionUtils.isEmpty(details)) { + for (LeaseApplyDetails detail : details) { + LeasePublishDetails leasePublishDetails = new LeasePublishDetails(); + BeanUtils.copyProperties(detail, leasePublishDetails); + list.add(leasePublishDetails); + } + } + return list; + } + + /** + * 导出领料记录查询 + * @param leaseApplyInfo + * @return + */ + @Override + public List getLeaseRecordList(LeaseApplyInfo leaseApplyInfo) { + List leaseRecordInfos = new ArrayList<>(); + List list = selectLeaseApplyInfoList(leaseApplyInfo); + if (!CollectionUtils.isEmpty(list)) { + for (LeaseApplyInfo applyInfo : list) { + LeaseRecordInfo leaseRecordInfo = new LeaseRecordInfo(); + BeanUtils.copyProperties(applyInfo, leaseRecordInfo); + leaseRecordInfos.add(leaseRecordInfo); + } + } + return leaseRecordInfos; + } + /** * 生成发布批次任务 * @param thisMonthMaxOrder diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/controller/RepairAuditDetailsController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/controller/RepairAuditDetailsController.java index 13170472..bdc7f462 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/controller/RepairAuditDetailsController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/controller/RepairAuditDetailsController.java @@ -56,7 +56,7 @@ public class RepairAuditDetailsController extends BaseController { @ApiOperation("查询修试审核任务列表") @GetMapping("/questList") @SysLog(title = "查询修试审核任务列表", businessType = OperaType.QUERY, module = "机具系统->查询修试审核任务列表") - @RequiresPermissions("service:auditing:list") + //@RequiresPermissions("service:auditing:list") public AjaxResult questList(RepairAuditDetails repairAuditDetails) { Integer pageIndex = Convert.toInt(ServletUtils.getParameter("pageNum"), 1); Integer pageSize = Convert.toInt(ServletUtils.getParameter("pageSize"), 10); @@ -100,7 +100,7 @@ public class RepairAuditDetailsController extends BaseController { */ @ApiOperation("查看修饰审核任务详细列表") @GetMapping("/getRepairAuditList") - @RequiresPermissions("service:auditing:list") + //@RequiresPermissions("service:auditing:list") public AjaxResult getRepairAuditList(RepairAuditDetails repairAuditDetails) { List list = repairAuditDetailsService.getRepairAuditList(repairAuditDetails); return AjaxResult.success(list); @@ -214,7 +214,7 @@ public class RepairAuditDetailsController extends BaseController { @ApiOperation(value = "(外层)批量修改修试审核详细") @PreventRepeatSubmit - @RequiresPermissions("repair:details:edit") + //@RequiresPermissions("repair:details:edit") @SysLog(title = "批量修试审核详细", businessType = OperaType.UPDATE, logType = 1,module = "仓储管理->批量修改修试审核详细") @PostMapping("/outerAudit") public AjaxResult outerAudit(@RequestBody @NotNull List repairAuditDetails) { diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/scrap/service/impl/ScrapApplyDetailsServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/scrap/service/impl/ScrapApplyDetailsServiceImpl.java index 623b3d44..d30a8465 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/scrap/service/impl/ScrapApplyDetailsServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/scrap/service/impl/ScrapApplyDetailsServiceImpl.java @@ -380,19 +380,23 @@ public class ScrapApplyDetailsServiceImpl implements IScrapApplyDetailsService { if (scrapApplyDetails == null || CollectionUtils.isEmpty(scrapApplyDetails.getIdList())) { return AjaxResult.error("参数为空"); } - // 根据传参修改报废状态 - int result = 0; - for (Long id : scrapApplyDetails.getIdList()) { - scrapApplyDetails.setId(id); - scrapApplyDetails.setLedgerStatus("1"); - scrapApplyDetails.setLedgerBy(SecurityUtils.getUserId()); - scrapApplyDetails.setLedgerTime(DateUtils.getNowDate()); - result += scrapApplyDetailsMapper.ledgerApprove(scrapApplyDetails); + try { + // 根据传参修改报废状态 + int result = 0; + for (Long id : scrapApplyDetails.getIdList()) { + scrapApplyDetails.setId(id); + scrapApplyDetails.setLedgerStatus("1"); + scrapApplyDetails.setLedgerBy(SecurityUtils.getUserId()); + scrapApplyDetails.setLedgerTime(DateUtils.getNowDate()); + result += scrapApplyDetailsMapper.ledgerApprove(scrapApplyDetails); + } + if (result > 0) { + return AjaxResult.success("审核通过"); + } + return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); + } catch (Exception e) { + return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); } - if (result > 0) { - return AjaxResult.success("审核通过"); - } - return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); } /** diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowRecordHistoryServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowRecordHistoryServiceImpl.java index 17a10864..c066f2d7 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowRecordHistoryServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowRecordHistoryServiceImpl.java @@ -108,8 +108,8 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis } // 根据任务类型修改业务状态 switch (sysWorkflowRecodeInfo.getTaskType()) { - // 领料任务:2 - case 2: + // 领用任务:19 + case 19: //修改业务状态 TmTask tmTask = new TmTask(); tmTask.setTaskId(sysWorkflowRecordHistory.getTaskId().longValue()); diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml index 7a4cdc1c..892de484 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml @@ -363,8 +363,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and bs.type_model_name like CONCAT('%',#{typeModelName},'%') - - and mt3.type_id = #{firstTypeId} + + and mt3.type_id in + + #{item} + AND bs.create_time BETWEEN CONCAT(#{startTime}, ' 00:00:00') AND CONCAT(#{endTime}, ' 23:59:59') @@ -816,4 +819,79 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" LIMIT 1 + + + + diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseTaskMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseTaskMapper.xml index da48682a..5bb1c33c 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseTaskMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseTaskMapper.xml @@ -105,6 +105,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -348,21 +385,25 @@ case tt.task_status when 0 then '待审核' - when 1 then '待审核' - when 2 then '审核中' + when 1 then '已完成' when 3 then '已完成' when 4 then '已完成' + when 6 then '审核中' end as taskStatusName, IFNULL(sum(lad.pre_num),0) as preCountNum, IFNULL(sum(lad.al_num),0) as alNum, GROUP_CONCAT(DISTINCT mt1.type_name) AS maTypeNames, bp.contract_part as contractPart, - sd.dept_name as impUnitName + sd.dept_name as impUnitName, + bai.agreement_code 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 (SELECT parent_id, unit_id, project_id from lease_publish_details + GROUP BY parent_id ) a on a.parent_id = lai.id + LEFT JOIN bm_agreement_info bai on a.unit_id = bai.unit_id + and a.project_id = bai.project_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 @@ -741,7 +782,7 @@ @@ -813,4 +857,10 @@ where month(create_time) = #{month} and year(create_time) = #{year} + +