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..8f10b6a4 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,7 +13,7 @@ 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, "出库已完成"); private final Integer status; 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 522fbf30..56f70389 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 @@ -10,47 +10,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 @@ -144,6 +128,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 +153,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/service/ILeaseTaskService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/ILeaseTaskService.java index 77903b3c..69b5f79e 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 @@ -5,10 +5,10 @@ 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 +114,19 @@ public interface ILeaseTaskService { * @return */ AjaxResult addPublish(LeaseApplyRequestVo leaseApplyRequestVo); + + /** + * 领用发布终结 + * @param leaseApplyInfo + * @return + */ + AjaxResult endPublish(LeaseApplyInfo leaseApplyInfo); + + /** + * 导出领料发布详情 + * @param leaseApplyInfo + * @return + */ + List getPublishDetails(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..81bc1662 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 @@ -5,16 +5,19 @@ import com.bonus.common.biz.constant.MaterialConstants; import com.bonus.common.biz.domain.BmFileInfo; 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; @@ -704,7 +707,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 +729,44 @@ 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 thisMonthMaxOrder 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..0dd74e61 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -741,7 +778,7 @@