diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/config/ListPagingUtil.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/config/ListPagingUtil.java index 69a5bd95..3b1cdbfc 100644 --- a/bonus-common-biz/src/main/java/com/bonus/common/biz/config/ListPagingUtil.java +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/config/ListPagingUtil.java @@ -1,5 +1,6 @@ package com.bonus.common.biz.config; +import java.util.Collections; import java.util.List; /** @@ -83,7 +84,7 @@ public class ListPagingUtil { this.setPageSize(pageSize); } - public static ListPagingUtil paging(Integer currentPage, Integer pageSize, List list) { + /*public static ListPagingUtil paging(Integer currentPage, Integer pageSize, List list) { ListPagingUtil pagingUtil = new ListPagingUtil(); //初始化 pagingUtil.pageStartInfo(currentPage, pageSize); @@ -95,6 +96,43 @@ public class ListPagingUtil { pagingUtil.setTotalPage(pagingUtil.getTotal() % pagingUtil.getPageSize() == 0 ? pagingUtil.getTotal()/pagingUtil.getPageSize() :pagingUtil.getTotal()/pagingUtil.getPageSize()+1); //截取list pagingUtil.setRows(list.subList(pagingUtil.getStar(), pagingUtil.getTotal()-pagingUtil.getStar()>pagingUtil.getPageSize()?pagingUtil.getStar()+pagingUtil.getPageSize():pagingUtil.getTotal())); + return pagingUtil; + }*/ + + public static ListPagingUtil paging(Integer currentPage, Integer pageSize, List list) { + ListPagingUtil pagingUtil = new ListPagingUtil(); + + // 初始化分页信息 + pagingUtil.pageStartInfo(currentPage, pageSize); + + // 计算起始索引 + pagingUtil.setStar((pagingUtil.getCurrentPage() - 1) * pagingUtil.getPageSize()); + + // 设置总数 + pagingUtil.setTotal(list.size()); + + // 设置总页数 + int totalPage = pagingUtil.getTotal() / pagingUtil.getPageSize(); + if (pagingUtil.getTotal() % pagingUtil.getPageSize() != 0) { + totalPage++; // 如果有余数,则总页数 +1 + } + pagingUtil.setTotalPage(totalPage); + + // 确保起始索引不会大于列表大小 + int fromIndex = pagingUtil.getStar(); + if (fromIndex >= pagingUtil.getTotal()) { + // 当前页的起始索引超过了总数据,返回空数据 + pagingUtil.setRows(Collections.emptyList()); + return pagingUtil; + } + + // 计算结束索引,确保不超过总数据大小 + int toIndex = Math.min(fromIndex + pagingUtil.getPageSize(), pagingUtil.getTotal()); + + // 获取当前页的数据 + pagingUtil.setRows(list.subList(fromIndex, toIndex)); + return pagingUtil; } + } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/BackApplyDetails.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/BackApplyDetails.java index 420b97c6..fdb7d401 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/BackApplyDetails.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/BackApplyDetails.java @@ -91,6 +91,12 @@ public class BackApplyDetails extends BaseEntity { @ApiModelProperty(value = "审批数量") private BigDecimal auditNum; + @ApiModelProperty(value = "外观判断不合格数量") + private BigDecimal badNum; + + @ApiModelProperty(value = "外观判断合格数量") + private BigDecimal goodNum; + /** 在用数量 */ @ApiModelProperty(value = "在用数量") private BigDecimal num; diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/MaCodeDto.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/MaCodeDto.java index d591bdd7..4bd9c05b 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/MaCodeDto.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/MaCodeDto.java @@ -5,6 +5,7 @@ import com.bonus.common.biz.domain.BmFileInfo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.List; /** @@ -43,6 +44,12 @@ public class MaCodeDto extends BaseEntity { private String maStatus; + @ApiModelProperty(value = "外观判断不合格数量") + private BigDecimal badNum; + + @ApiModelProperty(value = "外观判断合格数量") + private BigDecimal goodNum; + /** * 附件列表 */ diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/vo/MaCodeVo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/vo/MaCodeVo.java index 3976f7b5..5aaa9fe1 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/vo/MaCodeVo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/vo/MaCodeVo.java @@ -72,4 +72,10 @@ public class MaCodeVo { @ApiModelProperty(value = "驳回数量") private BigDecimal rejectNum; + + @ApiModelProperty(value = "外观判断不合格数量") + private BigDecimal badNum; + + @ApiModelProperty(value = "外观判断合格数量") + private BigDecimal goodNum; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/impl/BackApplyInfoServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/impl/BackApplyInfoServiceImpl.java index 8de6337b..57980de9 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/impl/BackApplyInfoServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/impl/BackApplyInfoServiceImpl.java @@ -8,6 +8,7 @@ import java.util.stream.Collectors; import cn.hutool.core.util.PhoneUtil; import com.alibaba.nacos.common.utils.CollectionUtils; import com.bonus.common.biz.constant.MaterialConstants; +import com.bonus.common.biz.domain.TypeTreeNode; import com.bonus.common.biz.domain.lease.LeaseOutDetails; import com.bonus.common.biz.enums.*; import com.bonus.common.core.exception.ServiceException; @@ -23,6 +24,9 @@ import com.bonus.material.back.domain.vo.BackApplyRequestVo; import com.bonus.material.back.domain.vo.MaCodeVo; import com.bonus.common.biz.domain.BmFileInfo; import com.bonus.material.basic.mapper.BmFileInfoMapper; +import com.bonus.material.common.domain.dto.SelectDto; +import com.bonus.material.common.domain.vo.AgreementVo; +import com.bonus.material.common.mapper.SelectMapper; import com.bonus.material.ma.mapper.MachineMapper; import com.bonus.material.purchase.config.RemoteConfig; import com.bonus.material.settlement.domain.SltAgreementInfo; @@ -71,6 +75,9 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { @Resource private SltAgreementInfoMapper sltAgreementInfoMapper; + @Resource + private SelectMapper mapper; + /** * 查询退料任务 * @@ -290,6 +297,16 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { return AjaxResult.error(backApplyDetails.getTypeName() + "退料数量不能大于预退数量,请重新填写!"); } } + if (backApplyDetails.getGoodNum() != null && backApplyDetails.getBadNum() != null && backApplyDetails.getPreNum() != null) { + if (backApplyDetails.getGoodNum().add(backApplyDetails.getBadNum()).compareTo( backApplyDetails.getPreNum())>0) { + return AjaxResult.error(backApplyDetails.getTypeName() + "完好数量和损坏数量之和不能大于预退数量,请重新填写!"); + } + } + if (backApplyDetails.getGoodNum() != null && backApplyDetails.getBadNum() != null && CollectionUtils.isNotEmpty(backApplyDetails.getMaCodeList())) { + if (backApplyDetails.getGoodNum().add(backApplyDetails.getBadNum()).compareTo( BigDecimal.valueOf(backApplyDetails.getMaCodeList().size()))>0) { + return AjaxResult.error(backApplyDetails.getTypeName() + "完好数量和损坏数量之和不能大于预退数量,请重新填写!"); + } + } } int result = 0; try { @@ -349,7 +366,28 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { * @return */ private int saveBackApplyDetails(BackApplyRequestVo dto, BackApplyInfo backApplyInfo, int result) { + List listL4 = new ArrayList<>(); + // 针对app二维码扫描时,需要根据单位id和工程id获取协议id,然后根据协议id获取退料在用数量 + if (backApplyInfo.getUnitId() != null && backApplyInfo.getProId() != null) { + SelectDto selectDto = new SelectDto(); + selectDto.setUnitId(backApplyInfo.getUnitId().intValue()); + selectDto.setProjectId(backApplyInfo.getProId().intValue()); + List list = mapper.getAgreementInfoById(selectDto); + if (CollectionUtils.isNotEmpty(list)) { + backApplyInfo.setAgreementId(Long.valueOf(list.get(0).getAgreementId())); + listL4 = mapper.getUseTypeTreeL4(backApplyInfo); + } + } for (BackApplyDetails details : dto.getBackApplyDetailsList()) { + if (details.getNum() == null && CollectionUtils.isNotEmpty(listL4)) { + for (TypeTreeNode typeTreeNode : listL4) { + // 如果找到匹配的 typeId,则更新数量 + if (typeTreeNode.getTypeId() == details.getTypeId()) { + details.setNum(typeTreeNode.getNum()); + break; + } + } + } details.setCode(backApplyInfo.getCode()); details.setParentId(backApplyInfo.getId()); details.setAuditNum(details.getPreNum()); @@ -403,6 +441,8 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { details.setMaId(maCodeDto.getMaId()); details.setPreNum(BigDecimal.valueOf(1)); details.setApDetection(maCodeDto.getApDetection()); + details.setGoodNum(maCodeDto.getGoodNum()); + details.setBadNum(maCodeDto.getBadNum()); // 插入 CheckDetails result += backApplyInfoMapper.insertCheckDetails(details); //更新ma_machine表状态为11(退料暂存) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairApplyRecord.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairApplyRecord.java index 1b46b0b0..51a708fa 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairApplyRecord.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairApplyRecord.java @@ -62,6 +62,9 @@ public class RepairApplyRecord extends BaseEntity { @ApiModelProperty(value = "数据所属组织") private Long companyId; + /** 报废原因id */ + private Long scrapId; + /** 报废原因 */ @Excel(name = "报废原因") @ApiModelProperty(value = "报废原因") diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairPartDetails.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairPartDetails.java index dc575a1d..38b21cc2 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairPartDetails.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairPartDetails.java @@ -90,6 +90,9 @@ public class RepairPartDetails extends BaseEntity { @ApiModelProperty(value = "报废数量") private BigDecimal scrapNum; + /** 报废原因id */ + private Long scrapId; + /** 报废原因 */ @ApiModelProperty(value = "报废原因") private String scrapReason; diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairAuditDetailsServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairAuditDetailsServiceImpl.java index 3cd008b2..de137a2b 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairAuditDetailsServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairAuditDetailsServiceImpl.java @@ -631,12 +631,32 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService // } private void batchInsertRepairInputDetails(List repairAuditDetailsByQuery, Long agreementId) { + boolean inputFlag = false; + boolean scrapFlag = false; + for (RepairAuditDetails repairAuditDetails : repairAuditDetailsByQuery) { + if (repairAuditDetails.getRepairedNum().compareTo(BigDecimal.ZERO) > 0) { + inputFlag = true; // 标记需要插入修饰任务 + } + if (repairAuditDetails.getScrapNum().compareTo(BigDecimal.ZERO) > 0) { + scrapFlag = true; // 标记需要插入报废任务 + } + // 如果两个标志都已满足,提前跳出循环 + if (inputFlag && scrapFlag) { + break; + } + } //插入修饰审核入库任务表 - final Long newTaskId = insertTt(); + Long newTaskId = null; + if (inputFlag) { + newTaskId = insertTt(); + insertTta(newTaskId, agreementId); + } //插入报废任务表 - Long newScrapTaskId = insertScrapTt(); - insertTta(newTaskId, agreementId); - insertScrapTta(newScrapTaskId, agreementId); + Long newScrapTaskId = null; + if (scrapFlag) { + newScrapTaskId = insertScrapTt(); + insertScrapTta(newScrapTaskId, agreementId); + } final List inputList = new ArrayList<>(); for (final RepairAuditDetails details : repairAuditDetailsByQuery) { //修改机具状态 diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java index ff8f8764..ade0fd70 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java @@ -617,6 +617,7 @@ public class RepairServiceImpl implements RepairService { .setRepairType(RepairTypeEnum.TO_SCRAP.getTypeId()).setStatus(0L).setIsSlt(0L).setPartNum(0) .setFileIds(null == fileInfo.getId() ? "" : String.valueOf(fileInfo.getId())) .setRepairNum(BigDecimal.valueOf(0)).setScrapNum(bean.getNumberScrapRepairPartList().get(0).getScrapNum()) + .setScrapId(bean.getNumberScrapRepairPartList().get(0).getScrapId()) .setScrapReason(bean.getNumberScrapRepairPartList().get(0).getScrapReason()) .setScrapType(bean.getNumberScrapRepairPartList().get(0).getScrapType()) .setRepairer(loginUser.getUsername()).setCreateBy(loginUser.getUsername()); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/scrap/mapper/ScrapReasonMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/scrap/mapper/ScrapReasonMapper.java index 77bd7f18..418ef38f 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/scrap/mapper/ScrapReasonMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/scrap/mapper/ScrapReasonMapper.java @@ -1,9 +1,7 @@ package com.bonus.material.scrap.mapper; -import com.bonus.material.basic.domain.BmUnitType; -import com.bonus.material.scrap.domain.ScrapApplyDetails; +import com.bonus.material.repair.domain.RepairPartDetails; import com.bonus.material.scrap.domain.ScrapReason; -import com.bonus.material.scrap.domain.vo.ScrapTaskListVo; import java.util.List; @@ -78,4 +76,13 @@ public interface ScrapReasonMapper * @return */ List getList(ScrapReason scrapReason); + + /** + * 查询维修记录 + * @param scrapReason + * @return + */ + List getRepairRecord(ScrapReason scrapReason); + + int updateRepairRecord(ScrapReason scrapReason); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/scrap/service/impl/ScrapReasonServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/scrap/service/impl/ScrapReasonServiceImpl.java index f4080a96..b67e6669 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/scrap/service/impl/ScrapReasonServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/scrap/service/impl/ScrapReasonServiceImpl.java @@ -3,14 +3,13 @@ package com.bonus.material.scrap.service.impl; import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.security.utils.SecurityUtils; +import com.bonus.material.repair.domain.RepairPartDetails; import com.bonus.material.scrap.domain.ScrapReason; import com.bonus.material.scrap.mapper.ScrapReasonMapper; import com.bonus.material.scrap.service.IScrapReasonService; -import com.bonus.material.warehouse.domain.WhHouseInfo; -import com.bonus.material.warehouse.mapper.WhHouseInfoMapper; -import com.bonus.material.warehouse.service.IWhHouseInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.util.List; @@ -108,6 +107,14 @@ public class ScrapReasonServiceImpl implements IScrapReasonService scrapReason.setUpdateTime(DateUtils.getNowDate()); scrapReason.setUpdateBy(String.valueOf(SecurityUtils.getUserId())); try { + // 先根据id查询报修记录,如果存在,修改报修记录的报废原因 + List list = scrapReasonMapper.getRepairRecord(scrapReason); + if (!CollectionUtils.isEmpty(list)) { + int res = scrapReasonMapper.updateRepairRecord(scrapReason); + if (res == 0) { + throw new ServiceException("修改报废原因记录失败"); + } + } return scrapReasonMapper.updateScrapReasonInfo(scrapReason); } catch (Exception e) { throw new ServiceException("修改失败"); diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/back/BackApplyInfoMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/back/BackApplyInfoMapper.xml index 3e96e7cb..689370b4 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/back/BackApplyInfoMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/back/BackApplyInfoMapper.xml @@ -176,7 +176,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ba.update_by AS updateBy, ba.update_time AS updateTime, ba.remark AS remark, - ba.ap_detection AS apDetection + ba.ap_detection AS apDetection, + ba.bad_num AS badNum, + ba.good_num AS goodNum FROM back_apply_details ba LEFT JOIN ma_type mt ON mt.type_id = ba.type_id and mt.del_flag = 0 @@ -201,7 +203,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mt.type_name AS materialName, mt1.type_name AS typeName, bcd.ap_detection AS apDetection, - mm.ma_status AS maStatus + mm.ma_status AS maStatus, + bcd.bad_num AS badNum, + bcd.good_num AS goodNum FROM back_check_details bcd left join ma_machine mm on bcd.ma_id = mm.ma_id @@ -484,6 +488,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" type_id, pre_num, audit_num, + bad_num, + good_num, use_num, status, create_by, @@ -498,6 +504,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{typeId}, #{preNum}, #{auditNum}, + #{badNum}, + #{goodNum}, #{num}, #{status}, #{createBy}, @@ -522,6 +530,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" create_time, remark, ap_detection, + bad_num, + good_num, company_id, @@ -536,6 +546,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{createTime}, #{remark}, #{apDetection}, + #{badNum}, + #{goodNum}, #{companyId}, diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml index c2eca528..dd31e450 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml @@ -2,8 +2,8 @@ - insert into repair_apply_record (task_id,ma_id,type_id,repair_num,scrap_num,repair_type,create_by,create_time,repair_content,company_id,scrap_reason,scrap_type,supplier_id,part_num,part_price,part_type,part_name,repairer,file_ids,remark,part_id) - values (#{taskId},#{maId},#{typeId},#{repairNum},#{scrapNum},#{repairType},#{createBy},now(),#{repairContent},#{companyId},#{scrapReason},#{scrapType},#{supplierId},#{partNum},#{partPrice},#{partType},#{partName},#{repairer},#{fileIds},#{remark},#{partId}); + insert into repair_apply_record (task_id,ma_id,type_id,repair_num,scrap_num,repair_type,create_by,create_time,repair_content,company_id,scrap_id,scrap_reason,scrap_type,supplier_id,part_num,part_price,part_type,part_name,repairer,file_ids,remark,part_id) + values (#{taskId},#{maId},#{typeId},#{repairNum},#{scrapNum},#{repairType},#{createBy},now(),#{repairContent},#{companyId}, #{scrapId},#{scrapReason},#{scrapType},#{supplierId},#{partNum},#{partPrice},#{partType},#{partName},#{repairer},#{fileIds},#{remark},#{partId}); @@ -12,8 +12,8 @@ - insert into tm_task (pre_task_id,task_status,task_type,code,create_by,create_time,company_id) - values (#{preTaskId},#{taskStatus},#{taskType},#{repairCode},#{createBy},now(),#{companyId}); + insert into tm_task (pre_task_id,task_status,task_type,code,create_by,create_time,company_id,month_order) + values (#{preTaskId},#{taskStatus},#{taskType},#{repairCode},#{createBy},now(),#{companyId},#{monthOrder}); diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/scrap/ScrapReasonMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/scrap/ScrapReasonMapper.xml index cea37be7..cb594cf6 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/scrap/ScrapReasonMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/scrap/ScrapReasonMapper.xml @@ -128,6 +128,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" GROUP BY sc.id + + update scrap_reason set type_id = #{typeId}, @@ -143,8 +155,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} and del_flag = 0 + + update + repair_apply_details + set + scrap_reason = #{scrapReason} + where scrap_id = #{id} + - + +