From a3158e6bb30ce6c82c5be798ac2d7a09c2a50a24 Mon Sep 17 00:00:00 2001 From: hongchao <3228015117@qq.com> Date: Mon, 26 Jan 2026 16:26:55 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=B4=E8=BD=AC=E9=97=AE=E9=A2=98=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DirectRotationController.java | 36 ++++ .../ma/domain/DirectApplyExportDetails.java | 181 ++++++++++++++++++ .../ma/mapper/DirectRotationMapper.java | 3 + .../ma/service/DirectRotationService.java | 8 +- .../ma/service/impl/DirectRotationImpl.java | 6 + .../settlement/domain/SltAgreementInfo.java | 10 + .../mapper/material/lease/LeaseTaskMapper.xml | 1 + .../material/ma/DirectRotationMapper.xml | 71 +++++++ 8 files changed, 312 insertions(+), 4 deletions(-) create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/DirectApplyExportDetails.java diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/DirectRotationController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/DirectRotationController.java index 2f431e00..facea018 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/DirectRotationController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/DirectRotationController.java @@ -1,5 +1,8 @@ package com.bonus.material.ma.controller; +import cn.hutool.core.convert.Convert; +import com.alibaba.fastjson.JSONObject; +import com.bonus.common.biz.config.PoiOutPage; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.poi.ExcelUtil; import com.bonus.common.core.web.controller.BaseController; @@ -13,14 +16,20 @@ import com.bonus.material.ma.domain.*; import com.bonus.material.ma.service.DirectRotationService; import com.bonus.material.ma.service.ITypeService; import com.bonus.material.settlement.domain.SltAgreementInfo; +import com.bonus.material.settlement.domain.vo.SltLeaseInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import java.io.OutputStream; import java.math.BigDecimal; +import java.math.RoundingMode; +import java.net.URLEncoder; +import java.text.SimpleDateFormat; import java.util.*; @@ -214,6 +223,33 @@ public class DirectRotationController extends BaseController { util.exportExcel(response, list, fileName, title); } + /** + * 导出直转记录详情 + * + * @param response + * @param directApplyInfo + */ + @PostMapping("/exportDetail") + public void exportDetail(HttpServletResponse response, DirectApplyInfo directApplyInfo) { + try { + + String fileName = "直转申请详情"; + List details = service.getDetailList(directApplyInfo); + // 根据list集合数,去填充序号 + for (int i = 0; i < details.size(); i++) { + details.get(i).setSerialNumber(i + 1); + } + ExcelUtil util = new ExcelUtil<>(DirectApplyExportDetails.class); + // 获取当前年月日时分秒导出时间,用括号拼接在后面 + String title = "直转申请详情" + "(" + "导出时间:" + DateUtils.getTime() + ")"; + util.exportExcel(response, details, fileName, title); + } catch (Exception e) { + log.error(e.toString(), e); + } + } + + + /** * 直转记录查询列表--app */ diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/DirectApplyExportDetails.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/DirectApplyExportDetails.java new file mode 100644 index 00000000..653a2893 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/DirectApplyExportDetails.java @@ -0,0 +1,181 @@ +package com.bonus.material.ma.domain; + +import com.bonus.common.core.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.apache.poi.ss.usermodel.HorizontalAlignment; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * @Author ma_sh + * @create 2025/6/17 10:00 + */ +@EqualsAndHashCode(callSuper = false) +@Data +public class DirectApplyExportDetails { + + @ApiModelProperty(value = "序号") + @Excel(name = "序号", isSequence = true, sort = 0, width = 5) + private Integer serialNumber; + + /** + * id + */ + private Integer id; + /** + * 直转单号(ZZ20240226-1) + */ + private String code; + /** + * 退料单位协议 + */ + private Integer backAgreementId; + + /** + * 退料工程id + */ + private String backProId; + /** + * 关键字 + */ + private String keyWord; + + private String createBy; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "申请时间", sort = 1, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + private String updateBy; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + private String remark; + /** + * 退料工程名称 + */ + @Excel(name = "转出工程", sort = 4, width = 30) + private String backProName; + + /** + * 退料单位id + */ + private String backUnitId; + + /** + * 退料单位名称 + */ + @Excel(name = "转出单位", sort = 3, width = 30) + private String backUnitName; + + /** + * 领料工程id + */ + private String leaseProId; + /** + * 领料工程名称 + */ + @Excel(name = "转入工程", sort = 6, width = 30) + private String leaseProName; + /** + * 领料单位id + */ + private String leaseUnitId; + /** + * 领料单位名称 + */ + @Excel(name = "转入单位", sort = 5, width = 30) + private String leaseUnitName; + /** + * 退料人 + */ + private String backMan; + /** + * 手机号 + */ + private String backPhone; + + private String backManAndPhone; + /** + * 退料备注 + */ + private String backRemark; + /** + * 领料单位协议 + */ + private int leaseAgreementId; + /** + * 领料人 + */ + private String leaseMan; + /** + * 领料联系电话 + */ + private String leasePhone; + + private String leaseManAndPhone; + /** + * 领料备注 + */ + private String leaseRemark; + + + /** + * 0待审批1审批同意2驳回 + */ + @Excel(name = "状态", sort = 7, readConverterExp = "0=待审核,1=审核中,2=已完成,3=已驳回") + private String status; + + /** + * 退料单位协议 + */ + private String backAgreementCode; + /** + * 领料单位协议 + */ + private String leaseAgreementCode; + + /** + * 退料工程id + */ + private String lotId; + /** + * 退料单位id + */ + private String unitId; + + @Excel(name = "类型名称", sort = 8, width = 30) + private String typeName; + + @Excel(name = "规格型号", sort = 9, width = 30) + private String typeModelName; + + @Excel(name = "直转数量", sort = 10, align = HorizontalAlignment.RIGHT, cellType = Excel.ColumnType.NUMERIC) + private BigDecimal directNum; + + @Excel(name = "机具编号", sort = 11, width = 30) + private String maCode; + + @Excel(name = "计量单位", sort = 12, width = 30) + private String unitName; + + @Excel(name = "申请人", sort = 2) + private String createName; + + + @ApiModelProperty(value = "开始时间") + private String startTime; + + @ApiModelProperty(value = "结束时间") + private String endTime; + + @ApiModelProperty(value = "业务联系单号") + private String businessCode; +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/DirectRotationMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/DirectRotationMapper.java index 35aca694..b36ce74e 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/DirectRotationMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/DirectRotationMapper.java @@ -4,6 +4,7 @@ import com.bonus.common.biz.domain.lease.LeaseOutSign; import com.bonus.material.basic.domain.BmUnit; import com.bonus.material.clz.domain.direct.ClzDirectApplyInfo; import com.bonus.material.ma.domain.DirectApplyDetails; +import com.bonus.material.ma.domain.DirectApplyExportDetails; import com.bonus.material.ma.domain.DirectApplyExportInfo; import com.bonus.material.ma.domain.DirectApplyInfo; import com.bonus.material.settlement.domain.SltAgreementInfo; @@ -137,4 +138,6 @@ public interface DirectRotationMapper { List getXmList(DirectApplyDetails applyDetail); List getClzList(DirectApplyDetails applyDetail); + + List getDetailList(DirectApplyInfo directApplyInfo); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/DirectRotationService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/DirectRotationService.java index 823050cc..c1a8e0b1 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/DirectRotationService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/DirectRotationService.java @@ -3,10 +3,7 @@ package com.bonus.material.ma.service; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.material.basic.domain.BmUnit; -import com.bonus.material.ma.domain.DirectApplyExportInfo; -import com.bonus.material.ma.domain.DirectApplyInfo; -import com.bonus.material.ma.domain.DirectApplyInfoDetails; -import com.bonus.material.ma.domain.DirectApplySignInfo; +import com.bonus.material.ma.domain.*; import com.bonus.material.settlement.domain.SltAgreementInfo; import org.apache.ibatis.annotations.Param; @@ -48,6 +45,7 @@ public interface DirectRotationService { */ DirectApplyInfo getInfoById(SltAgreementInfo sltAgreementInfo); + /** * 查看详情 * @param sltAgreementInfo @@ -129,4 +127,6 @@ public interface DirectRotationService { * @return */ AjaxResult getCodeList(DirectApplyInfo directApplyInfo); + + List getDetailList(DirectApplyInfo directApplyInfo); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/DirectRotationImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/DirectRotationImpl.java index a80f2240..dca1fa36 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/DirectRotationImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/DirectRotationImpl.java @@ -316,6 +316,12 @@ public class DirectRotationImpl implements DirectRotationService { return directApplyInfo; } + @Override + public List getDetailList(DirectApplyInfo directApplyInfo) { + List detailById = mapper.getDetailList(directApplyInfo); + return detailById; + } + @Override public DirectApplyInfo getInfoApp(SltAgreementInfo sltAgreementInfo) { DirectApplyInfo directApplyInfo = mapper.getInfoById(sltAgreementInfo); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/settlement/domain/SltAgreementInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/settlement/domain/SltAgreementInfo.java index 31bc7b3b..aa6a404d 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/settlement/domain/SltAgreementInfo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/settlement/domain/SltAgreementInfo.java @@ -325,4 +325,14 @@ public class SltAgreementInfo extends BaseEntity { @ApiModelProperty(value = "结算协议书编号") private String bookCode; + + /** + * 退料工程id + */ + private String backProId; + + /** + * 领料工程id + */ + private String leaseProId; } 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 653fef03..4e94bfc6 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 @@ -641,6 +641,7 @@ and swr.workflow_status = 1 and swr.workflow_status = 2 and swr.workflow_status = 3 + and sd.dept_name = #{impUnitName} GROUP BY lai.id ORDER BY tt.create_time desc diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/DirectRotationMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/DirectRotationMapper.xml index 95af3816..981c2aee 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/DirectRotationMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/DirectRotationMapper.xml @@ -125,6 +125,12 @@ left join sys_user su on dai.create_by = su.user_id left join sys_workflow_record swr on swr.task_id = dai.id + + and bpl.pro_id = #{backProId} + + + and bpl1.pro_id = #{leaseProId} + and bpl.pro_id = #{lotId} @@ -145,6 +151,7 @@ AND DATE_FORMAT( dai.create_time, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime} + GROUP BY dai.id order by dai.create_time desc @@ -520,4 +527,68 @@ order by start_time asc +