From a04795ee22180dc5d39eb204289a62b643db22ca Mon Sep 17 00:00:00 2001 From: hongchao <3228015117@qq.com> Date: Tue, 8 Jul 2025 19:03:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=90=E6=96=99=E5=91=98=E7=A1=AE=E8=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/domain/lease/LeaseApplyInfo.java | 3 + .../biz/domain/lease/LeaseConfirmSign.java | 22 +++ .../controller/LeaseApplyInfoController.java | 25 ++- .../lease/domain/LeaseApplyDetails.java | 23 +++ .../lease/domain/vo/LeaseApplyRequestVo.java | 3 + .../lease/mapper/LeaseApplyDetailsMapper.java | 2 + .../lease/mapper/LeaseApplyInfoMapper.java | 23 ++- .../lease/service/ILeaseApplyInfoService.java | 10 +- .../impl/LeaseApplyInfoServiceImpl.java | 173 ++++++++++++++--- .../material/lease/LeaseApplyInfoMapper.xml | 181 +++++++++++++++++- 10 files changed, 425 insertions(+), 40 deletions(-) create mode 100644 bonus-common-biz/src/main/java/com/bonus/common/biz/domain/lease/LeaseConfirmSign.java diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/lease/LeaseApplyInfo.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/lease/LeaseApplyInfo.java index 2629dfe2..f10ca7cb 100644 --- a/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/lease/LeaseApplyInfo.java +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/lease/LeaseApplyInfo.java @@ -307,4 +307,7 @@ public class LeaseApplyInfo extends BaseEntity{ @ApiModelProperty(value = "有无电子签名 0 否,1 是") private Integer hasSign; + + @ApiModelProperty(value = "i8工程id") + private String externalId; } diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/lease/LeaseConfirmSign.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/lease/LeaseConfirmSign.java new file mode 100644 index 00000000..93484957 --- /dev/null +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/lease/LeaseConfirmSign.java @@ -0,0 +1,22 @@ +package com.bonus.common.biz.domain.lease; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * @Author ma_sh + * @create 2025/6/20 17:16 + */ +@EqualsAndHashCode(callSuper = false) +@Data +@ToString +public class LeaseConfirmSign { + + @ApiModelProperty(value = "确认人签名URL") + private String confirmSignUrl; + + @ApiModelProperty(value = "确认人签名类型") + private int confirmSignType; +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/controller/LeaseApplyInfoController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/controller/LeaseApplyInfoController.java index 0400f497..6408df60 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/controller/LeaseApplyInfoController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/controller/LeaseApplyInfoController.java @@ -80,9 +80,8 @@ public class LeaseApplyInfoController extends BaseController { @ApiOperation(value = "材料员确认接口") @PostMapping("/confirmMaterial") - public AjaxResult confirmMaterial(@RequestBody LeaseApplyInfo leaseApplyInfo) { - int confirmResult = leaseApplyInfoService.confirmLeaseTask(leaseApplyInfo.getId().toString(), leaseApplyInfo.getIsConfirm(), - leaseApplyInfo.getConfirmRemark()); + public AjaxResult confirmMaterial(@RequestBody LeaseApplyDetails detail) { + int confirmResult = leaseApplyInfoService.confirmLeaseTask(detail); return confirmResult > 0 ? success("确认成功") : error("确认失败"); } @@ -135,6 +134,26 @@ public class LeaseApplyInfoController extends BaseController { return success(leaseApplyInfoService.selectLeaseApplyInfoById(id, keyWord, publishTask)); } + /** + * 获取领料任务详细信息 + */ + @ApiOperation(value = "获取领料任务详细信息") + //@RequiresPermissions("lease:info:query") + @GetMapping(value = "/getInfoById") + public AjaxResult getLeaseInfo(LeaseApplyInfo bean) { + return success(leaseApplyInfoService.selectLeaseApplyInfoByIdTwo(bean)); + } + + /** + * 获取领料单 + */ + @ApiOperation(value = "获取领料单") + //@RequiresPermissions("lease:info:query") + @GetMapping(value = "/getLeaseRequestVo") + public AjaxResult getLeaseRequestVo(LeaseApplyDetails bean) { + return success(leaseApplyInfoService.getLeaseRequestVo(bean)); + } + /** * 获取领料出库内部详细信息 * @param leaseApplyDetails diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/domain/LeaseApplyDetails.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/domain/LeaseApplyDetails.java index 6747aa2e..597af222 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/domain/LeaseApplyDetails.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/domain/LeaseApplyDetails.java @@ -2,12 +2,14 @@ package com.bonus.material.lease.domain; import com.bonus.common.core.annotation.Excel; import com.bonus.material.back.domain.vo.MaCodeVo; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.ToString; import com.bonus.common.core.web.domain.BaseEntity; import java.math.BigDecimal; +import java.util.Date; import java.util.List; /** @@ -158,6 +160,27 @@ public class LeaseApplyDetails extends BaseEntity { @ApiModelProperty(value = "租赁工程") private String leaseProject; + @ApiModelProperty(value = "是否确认") + private Integer isConfirm; + + @ApiModelProperty(value = "确认人") + private String confirmPerson; + + @ApiModelProperty(value = "确认时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date confirmTime; + + @ApiModelProperty(value = "材料员确认备注") + private String confirmRemark; + + @ApiModelProperty(value = "出库时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date outTime; + + private String leaseSignId; + + @ApiModelProperty(value = "领料物资名称汇总") + private String maTypeNames; public LeaseApplyDetails(Long id, Long parentId, Long typeId, BigDecimal preNum, BigDecimal auditNum, BigDecimal alNum, String status, Long companyId) { this.id = id; this.parentId = parentId; diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/domain/vo/LeaseApplyRequestVo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/domain/vo/LeaseApplyRequestVo.java index 319899f6..b02545b8 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/domain/vo/LeaseApplyRequestVo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/domain/vo/LeaseApplyRequestVo.java @@ -1,5 +1,6 @@ package com.bonus.material.lease.domain.vo; +import com.bonus.common.biz.domain.lease.LeaseConfirmSign; import com.bonus.common.biz.domain.lease.LeaseOutSign; import com.bonus.common.core.web.domain.BaseEntity; import com.bonus.material.lease.domain.LeaseApplyDetails; @@ -34,6 +35,8 @@ public class LeaseApplyRequestVo extends BaseEntity { private List leaseOutVoList; + private LeaseConfirmSign confirmSign; + /** * 库管签名集合 */ diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseApplyDetailsMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseApplyDetailsMapper.java index 532de993..ec370818 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseApplyDetailsMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseApplyDetailsMapper.java @@ -2,6 +2,7 @@ package com.bonus.material.lease.mapper; import java.util.List; +import com.bonus.common.biz.domain.lease.LeaseApplyInfo; import com.bonus.material.back.domain.vo.MaCodeVo; import com.bonus.material.basic.domain.BmQrcodeInfo; import com.bonus.material.lease.domain.LeaseApplyDetails; @@ -162,4 +163,5 @@ public interface LeaseApplyDetailsMapper { * @return */ int deletePublishTask(LeaseOutDetails leaseOutDetails); + } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseApplyInfoMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseApplyInfoMapper.java index 31e41b2f..ee15f264 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseApplyInfoMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseApplyInfoMapper.java @@ -3,7 +3,9 @@ package com.bonus.material.lease.mapper; import java.util.Date; import java.util.List; import com.bonus.common.biz.domain.lease.LeaseApplyInfo; +import com.bonus.common.biz.domain.lease.LeaseConfirmSign; import com.bonus.common.biz.domain.lease.LeaseOutSign; +import com.bonus.material.lease.domain.LeaseApplyDetails; import org.apache.ibatis.annotations.Param; /** @@ -52,13 +54,10 @@ public interface LeaseApplyInfoMapper { /** * 材料员确认 - * @param id - * @param isConfirm - * @param confirmTime - * @param confirmRemark + * @return */ - int confirmLeaseTask(@Param("id") String id,@Param("isConfirm") Integer isConfirm,@Param("materialMan") Long materialMan,@Param("confirmTime") Date confirmTime, @Param("confirmRemark") String confirmRemark); + int confirmLeaseTask(LeaseApplyDetails details); /** * 删除领料任务 @@ -107,4 +106,18 @@ public interface LeaseApplyInfoMapper { * @return */ int updateLeasePublishInfoSign(LeaseApplyInfo leaseApplyInfo); + + List selectCompleteOutList(LeaseApplyInfo leaseApplyInfo); + + int checkPermission(@Param("externalId") String externalId,@Param("username") String username); + + List selectOutDetailsList(LeaseApplyInfo leaseApplyInfo); + + int updateLeaseApplyInfoConfirm(Long id); + + LeaseApplyInfo getLeaseInfoById(LeaseApplyInfo bean); + + List getDetailsLeaseList(LeaseApplyDetails bean); + + LeaseConfirmSign getLeaseConfirmSign(LeaseApplyDetails bean); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/ILeaseApplyInfoService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/ILeaseApplyInfoService.java index 7b3963eb..105b7f09 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/ILeaseApplyInfoService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/ILeaseApplyInfoService.java @@ -42,12 +42,10 @@ public interface ILeaseApplyInfoService { /** * 材料员确认service - * @param id - * @param isConfirm - * @param confirmRemark + * @return */ - int confirmLeaseTask(@Param("id") String id, @Param("isConfirm") Integer isConfirm, @Param("confirmRemark") String confirmRemark); + int confirmLeaseTask(LeaseApplyDetails details); /** @@ -174,4 +172,8 @@ public interface ILeaseApplyInfoService { * @return */ AjaxResult leaseOutByInfo(LeaseOutRequestVo leaseOutRequestVo); + + List selectLeaseApplyInfoByIdTwo(LeaseApplyInfo bean); + + LeaseApplyRequestVo getLeaseRequestVo(LeaseApplyDetails bean); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseApplyInfoServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseApplyInfoServiceImpl.java index 69cfb247..6859759c 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseApplyInfoServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseApplyInfoServiceImpl.java @@ -10,7 +10,7 @@ import cn.hutool.core.collection.CollectionUtil; import com.bonus.common.biz.config.PoiOutPage; import com.bonus.common.biz.constant.MaterialConstants; import com.bonus.common.biz.domain.BmFileInfo; -import com.bonus.common.biz.domain.lease.LeaseOutSign; +import com.bonus.common.biz.domain.lease.*; import com.bonus.common.biz.enums.HttpCodeEnum; import com.bonus.common.biz.enums.LeaseTaskStatusEnum; import com.bonus.common.biz.enums.MaMachineStatusEnum; @@ -23,10 +23,9 @@ import com.bonus.common.security.utils.SecurityUtils; import com.bonus.material.back.domain.vo.MaCodeVo; import com.bonus.material.basic.domain.BmQrcodeInfo; import com.bonus.material.basic.mapper.BmFileInfoMapper; +import com.bonus.material.clz.domain.lease.MaterialLeaseApplyInfo; import com.bonus.material.lease.domain.LeaseApplyDetails; -import com.bonus.common.biz.domain.lease.LeaseOutDetails; import com.bonus.material.lease.domain.vo.LeaseApplyRequestVo; -import com.bonus.common.biz.domain.lease.LeaseOutRequestVo; import com.bonus.material.lease.domain.vo.LeaseOutVo; import com.bonus.material.lease.mapper.LeaseApplyDetailsMapper; import com.bonus.material.lease.service.ILeaseOutDetailsService; @@ -39,7 +38,6 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; import com.bonus.material.lease.mapper.LeaseApplyInfoMapper; -import com.bonus.common.biz.domain.lease.LeaseApplyInfo; import com.bonus.material.lease.service.ILeaseApplyInfoService; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -183,6 +181,76 @@ public class LeaseApplyInfoServiceImpl implements ILeaseApplyInfoService { } } + @Override + public List selectLeaseApplyInfoByIdTwo(LeaseApplyInfo bean) { + try { + if(bean.getId() == null){ + throw new RuntimeException("领料id不能为空" ); + } + List leaseApplyDetailsList = leaseApplyInfoMapper.selectOutDetailsList(bean); + return leaseApplyDetailsList; + } catch (Exception e) { + // 记录异常日志 + throw new RuntimeException("Failed to select lease apply info", e); + } + } + + @Override + public LeaseApplyRequestVo getLeaseRequestVo(LeaseApplyDetails bean) { + try { + LeaseApplyInfo leaseApplyInfo = new LeaseApplyInfo(); + leaseApplyInfo.setId(bean.getId()); + Long userId = SecurityUtils.getLoginUser().getUserid(); + leaseApplyInfo.setUserId(userId); + LeaseApplyInfo info = leaseApplyInfoMapper.getLeaseInfoById(leaseApplyInfo); + LeaseApplyRequestVo leaseApplyRequestVo = new LeaseApplyRequestVo(); + // 查询领用出库数据 + /** 设置审批人签名url 防止代码冲突 **/ + String directAuditUrl = leaseApplyInfoMapper.getDirectAuditUrl(info); + info.setDirectAuditSignUrl(directAuditUrl); + /** 设置审批人签名url 防止代码冲突 **/ + + // 电子签名进行base64拼接 + if (StringUtils.isNotBlank(info.getLeaseSignUrl())) { + info.setLeaseSignUrl("data:image/png;base64," + info.getLeaseSignUrl()); + } + /** 设置发料单位 防止代码冲突 **/ + + leaseApplyRequestVo.setLeaseApplyInfo(info); + // 获取领料单详情 + List details = leaseApplyInfoMapper.getDetailsLeaseList(bean); + if (!CollectionUtils.isEmpty(details)) { + leaseApplyRequestVo.setLeaseApplyDetailsList(details); + } + + // 根据id查询领料出库情况,查询出库人电子签名详情 + List outSignList = leaseApplyInfoMapper.selectLeaseApplyOutList(bean.getId()); + if (!CollectionUtils.isEmpty(outSignList)) { + for (LeaseOutSign applyInfo : outSignList) { + if (StringUtils.isNotBlank(applyInfo.getOutSignUrl())) { + applyInfo.setOutSignUrl("data:image/png;base64," + applyInfo.getOutSignUrl()); + } + } + leaseApplyRequestVo.setKgSignList(outSignList); + } + // 根据id查询领料出库情况,查询材料员电子签名详情 + if(details != null && !details.isEmpty()){ + bean.setConfirmPerson(details.get(0).getConfirmPerson()); + LeaseConfirmSign confirmSign = leaseApplyInfoMapper.getLeaseConfirmSign(bean); + if(confirmSign != null){ + confirmSign.setConfirmSignUrl("data:image/png;base64," + confirmSign.getConfirmSignUrl()); + leaseApplyRequestVo.setConfirmSign(confirmSign); + } + } + + return leaseApplyRequestVo; + } catch (Exception e) { + // 记录异常日志 + throw new RuntimeException("Failed to select lease apply info", e); + } + } + + /** * 查询领料任务列表 * @@ -264,14 +332,43 @@ public class LeaseApplyInfoServiceImpl implements ILeaseApplyInfoService { /** * 材料员确认service * - * @param id - * @param isConfirm - * @param confirmRemark * @return */ @Override - public int confirmLeaseTask(String id, Integer isConfirm, String confirmRemark) { - return leaseApplyInfoMapper.confirmLeaseTask(id, isConfirm, SecurityUtils.getLoginUser().getUserid(), new Date(), confirmRemark); + public int confirmLeaseTask(LeaseApplyDetails details) { + details.setConfirmPerson(String.valueOf(SecurityUtils.getLoginUser().getUserid())); + details.setConfirmTime(new Date()); + //进行确认通过 + int count = leaseApplyInfoMapper.confirmLeaseTask(details); + return count; +// if (count > 0) { +// //查询是否都已确认 +// LeaseApplyInfo leaseApplyInfo = new LeaseApplyInfo(); +// leaseApplyInfo.setId(Long.valueOf(id)); +// List details = leaseApplyInfoMapper.selectOutDetailsList(leaseApplyInfo); +// //查询details中是否有未确认的数据isConfirm==1 +// int flag = 0; +// if (!CollectionUtils.isEmpty(details)) { +// for (LeaseApplyDetails detail : details) { +// if (detail.getIsConfirm() == null || detail.getIsConfirm() == 1) { +// flag = 1; +// } +// } +// } +// if (flag == 0) { +// //leaseApplyInfo表全部确认 +// int countTwo = leaseApplyInfoMapper.updateLeaseApplyInfoConfirm(Long.valueOf(id)); +// if(countTwo ==0){ +// throw new ServiceException("确认失败,lease_apply_info表更新失败"); +// }else{ +// return countTwo; +// } +// } +// return count; +// +// }else{ +// throw new ServiceException("确认失败,lease_out_details表更新失败"); +// } } /** @@ -283,13 +380,33 @@ public class LeaseApplyInfoServiceImpl implements ILeaseApplyInfoService { @Override public List getCompleteOutTaskList(LeaseApplyInfo leaseApplyInfo) { leaseApplyInfo.setUserId(SecurityUtils.getLoginUser().getUserid()); - List list = leaseApplyInfoMapper.selectLeaseApplyInfoList(leaseApplyInfo); - // 如果statusList包含3、4、5,则为领料出库查询,需查询领用出库数据,进行拼接 - if (!CollectionUtils.isEmpty(leaseApplyInfo.getStatusList())) { - if (leaseApplyInfo.getStatusList().contains(4)) { - // 查询领用出库数据 - extracted(leaseApplyInfo, list); + + List list = leaseApplyInfoMapper.selectCompleteOutList(leaseApplyInfo); + //材料站权限过滤 + String username = SecurityUtils.getLoginUser().getUsername(); + if(!CollectionUtils.isEmpty(list)){ + list = list.stream() + .filter(info -> { + // 调用 mapper 方法检查是否有符合条件的数据 + int count = leaseApplyInfoMapper.checkPermission(info.getExternalId(), username); + return count > 0; + }) + .collect(Collectors.toList()); + } + + if (leaseApplyInfo.getIsConfirm()!=null) { + if (leaseApplyInfo.getIsConfirm() == 2) { + // 已确认 + list = list.stream() + .filter(item -> item.getIsConfirm() == 2) + .collect(Collectors.toList()); + } else { + // 未确认 + list = list.stream() + .filter(item -> item.getIsConfirm() == 1) + .collect(Collectors.toList()); } + } // 使用 Stream API 进行降序排序 List sortedList = list.stream() @@ -304,18 +421,26 @@ public class LeaseApplyInfoServiceImpl implements ILeaseApplyInfoService { .filter(item -> containsKeyword(item, keyWord)) .collect(Collectors.toList()); } - // 判断状态 - if (!CollectionUtils.isEmpty(leaseApplyInfo.getStatusList())) { - // 将集合sortedList中状态taskStatus包含在leaseApplyInfo.getStatusList()中的元素 - sortedList = sortedList.stream() - .filter(item -> leaseApplyInfo.getStatusList().contains(item.getTaskStatus())) - .collect(Collectors.toList()); - } +// // 判断状态 +// if (!CollectionUtils.isEmpty(leaseApplyInfo.getStatusList())) { +// // 将集合sortedList中状态taskStatus包含在leaseApplyInfo.getStatusList()中的元素 +// sortedList = sortedList.stream() +// .filter(item -> leaseApplyInfo.getStatusList().contains(item.getTaskStatus())) +// .collect(Collectors.toList()); +// } } sortedList.removeIf(Objects::isNull); if (leaseApplyInfo.getIsConfirm() != null) { if (leaseApplyInfo.getIsConfirm() == 1) { - sortedList.removeIf(item -> item.getIsConfirm() != null && item.getIsConfirm() == 2); + for (LeaseApplyInfo item : sortedList) { + if(item.getPreCountNum().compareTo(item.getAlNum()) != 0){ + item.setIsConfirm(1); + }else{ + //查找签名的数量之和是否为 + + } + } +// sortedList.removeIf(item -> item.getIsConfirm() != null && item.getIsConfirm() == 2); } else if (leaseApplyInfo.getIsConfirm() == 2) { sortedList.removeIf(item -> item.getIsConfirm() == null || item.getIsConfirm() != 2); } @@ -323,7 +448,7 @@ public class LeaseApplyInfoServiceImpl implements ILeaseApplyInfoService { // 再次移除可能的null值 sortedList.removeIf(Objects::isNull); // 只有出库完成的任务才需要进行确认,这里过滤掉任务状态不等于4(出库已完成)的 - sortedList.removeIf(item -> item.getTaskStatus() != 4); +// sortedList.removeIf(item -> item.getTaskStatus() != 4); return sortedList; } diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseApplyInfoMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseApplyInfoMapper.xml index 704d784c..0d4c683a 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseApplyInfoMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseApplyInfoMapper.xml @@ -50,7 +50,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" lai.create_by, lai.create_time, lai.update_by, lai.update_time, lai.remark, lai.company_id, lai.direct_id, lai.lease_type, lai.estimate_lease_time, lai.cost_bearing_party, lai.lease_sign_url, lai.lease_sign_type, lai.material_man, lai.confirm_time, lai.is_confirm, lai.confirm_remark, - bai.unit_id,bai.project_id,bu.unit_name, bp.pro_name, bai.agreement_code, tt.task_status as taskStatus, + bai.unit_id,bai.project_id,bu.unit_name as unitName, bp.pro_name as projectName, bai.agreement_code as agreementCode, tt.task_status as taskStatus, sda.dict_label as taskStatusName, IFNULL(sum(lad.pre_num),0) as preCountNum, IFNULL(sum(lad.al_num),0) as alNum, @@ -76,6 +76,42 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + select + lai.id, lai.code, lai.task_id, lai.lease_person as leasePerson, lai.phone, lai.type, lai.company_audit_by, + lai.company_audit_time, lai.company_audit_remark, lai.dept_audit_by, lai.dept_audit_time, + lai.dept_audit_remark, lai.direct_audit_by, lai.direct_audit_time, lai.direct_audit_remark, + lai.create_by, lai.create_time, lai.update_by, lai.update_time, lai.remark, lai.company_id, + lai.direct_id, lai.lease_type, lai.estimate_lease_time, lai.cost_bearing_party, lai.lease_sign_url, lai.lease_sign_type, + lai.material_man, lai.confirm_time, lai.is_confirm, lai.confirm_remark, + bai.unit_id,bai.project_id,bu.unit_name as unitName, bp.pro_name as projectName,bp.external_id as externalId, bai.agreement_code as agreementCode, tt.task_status as taskStatus, + sda.dict_label as taskStatusName, + IFNULL(sum(lad.pre_num),0) as preCountNum, + IFNULL(sum(lod.out_num),0) as alNum, + CASE + WHEN IFNULL(sum(lad.pre_num),0) = SUM(CASE WHEN lod.is_confirm = 2 THEN lod.out_num ELSE 0 END) THEN 2 + ELSE 1 + END as isConfirm, + GROUP_CONCAT(DISTINCT mt1.type_name) as maTypeNames, + bp.contract_part as contractPart, + sd.dept_name as impUnitName, + tt.task_type as taskType + 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 lease_out_details lod on lai.id = lod.parent_id + left join tm_task_agreement tta on lai.task_id = tta.task_id + left join bm_agreement_info bai on tta.agreement_id = bai.agreement_id + left join bm_unit bu on bu.unit_id = bai.unit_id + left join bm_project bp on bp.pro_id = bai.project_id + left join sys_dept sd on sd.dept_id = bp.imp_unit + left join sys_dict_data sda on tt.task_status = sda.dict_value + and sda.dict_type = 'lease_task_status' + left join ma_type mt on lad.type_id = mt.type_id and mt.del_flag = '0' + left join ma_type mt1 on mt.parent_id = mt1.type_id and mt1.del_flag = '0' + + + + + + + + update - lease_apply_info + lease_out_details set - material_man = #{materialMan}, confirm_time = #{confirmTime}, is_confirm = #{isConfirm}, + is_confirm = #{isConfirm}, confirm_time = #{confirmTime}, confirm_person = #{confirmPerson}, confirm_remark = #{confirmRemark} where - id = #{id} + parent_id = #{id} and lease_sign_id = #{leaseSignId} @@ -350,4 +518,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and publish_task = #{publishTask} + + update lease_apply_info + is_confirm = 2 + where id = #{id} + \ No newline at end of file