diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckDetails.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckDetails.java index 2e59dff7..7fbf5bc4 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckDetails.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckDetails.java @@ -47,6 +47,9 @@ public class PurchaseCheckDetails extends BaseEntity { @ApiModelProperty(value = "物资单位名称") private String unitName; + @ApiModelProperty(value = "数值") + private String unitValue; + @Excel(name = "物资名称", sort = 1) @ApiModelProperty(value = "物资名称--规格parent类型") private String maTypeName; @@ -64,17 +67,17 @@ public class PurchaseCheckDetails extends BaseEntity { /** 采购数量 */ @Excel(name = "采购数量", sort = 5) @ApiModelProperty(value = "采购数量") - private Long purchaseNum; + private BigDecimal purchaseNum; /** 验收数量 */ @Excel(name = "验收数量", sort = 6) @ApiModelProperty(value = "验收数量") - private Long checkNum; + private BigDecimal checkNum; /** 绑定数量 */ @Excel(name = "绑定数量", sort = 7) @ApiModelProperty(value = "绑定数量") - private Long bindNum; + private BigDecimal bindNum; /** 验收结论 */ //@Excel(name = "验收结论") @@ -123,7 +126,7 @@ public class PurchaseCheckDetails extends BaseEntity { /** 入库数量 */ @Excel(name = "入库数量", sort = 8) @ApiModelProperty(value = "入库数量") - private Long inputNum; + private BigDecimal inputNum; /** 是否入库 */ @Excel(name = "是否入库", readConverterExp = "0=否,1=是") diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckInfo.java index 57298161..f06b9a36 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckInfo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckInfo.java @@ -85,7 +85,7 @@ public class PurchaseCheckInfo extends BaseEntity { */ @Excel(name = "采购数量", sort = 4) @ApiModelProperty(value = "采购数量--外层Table字段") - private Long purchaseMaNumber; + private BigDecimal purchaseMaNumber; /** * 采购单价(不含税) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchasePartDetails.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchasePartDetails.java index b3e35785..30108ac5 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchasePartDetails.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchasePartDetails.java @@ -11,7 +11,7 @@ import com.bonus.common.core.web.domain.BaseEntity; /** * 新购配件验收任务详细对象 purchase_part_details - * + * * @author xsheng * @date 2024-10-16 */ @@ -43,7 +43,7 @@ public class PurchasePartDetails extends BaseEntity { /** 采购数量 */ @Excel(name = "采购数量") @ApiModelProperty(value = "采购数量") - private Long purchaseNum; + private BigDecimal purchaseNum; /** 供应商id */ @Excel(name = "供应商id") @@ -59,7 +59,7 @@ public class PurchasePartDetails extends BaseEntity { /** 验收数量 */ @Excel(name = "验收数量") @ApiModelProperty(value = "验收数量") - private Long checkNum; + private BigDecimal checkNum; /** 验收结论 */ @Excel(name = "验收结论") @@ -69,7 +69,7 @@ public class PurchasePartDetails extends BaseEntity { /** 入库数量 */ @Excel(name = "入库数量") @ApiModelProperty(value = "入库数量") - private Long inputNum; + private BigDecimal inputNum; /** 入库时间 */ @ApiModelProperty(value = "入库时间") diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/vo/PurchaseVo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/vo/PurchaseVo.java index fc31ba8d..fa9cb376 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/vo/PurchaseVo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/vo/PurchaseVo.java @@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; /** @@ -54,19 +55,19 @@ public class PurchaseVo { @ApiModelProperty(value="采购数量") @Excel(name = "采购数量") - private Integer purchaseNum; + private BigDecimal purchaseNum; @ApiModelProperty(value="验收数量") - private Integer checkNum; + private BigDecimal checkNum; @ApiModelProperty(value="绑定数量") - private Integer bindNum; + private BigDecimal bindNum; @ApiModelProperty(value="采购价格(元含税)") - private Integer purchasePrice; + private BigDecimal purchasePrice; @ApiModelProperty(value="采购价格(元不含税)") - private Integer notaxPrice; + private BigDecimal notaxPrice; @ApiModelProperty(value="税率") private Integer taxRate; @@ -109,5 +110,5 @@ public class PurchaseVo { private String qrUrl; @ApiModelProperty(value = "异常数量") - private Integer exceptionNum; + private BigDecimal exceptionNum; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseStorageMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseStorageMapper.java index 5a740c84..6d7ab899 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseStorageMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseStorageMapper.java @@ -4,6 +4,7 @@ import com.bonus.material.purchase.domain.dto.PurchaseDto; import com.bonus.material.purchase.domain.vo.PurchaseVo; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.util.List; /** @@ -33,7 +34,7 @@ public interface PurchaseStorageMapper { * @param bindNum * @return */ - int updateNum(@Param("id") String purchaseId, @Param("bindNum") Integer bindNum); + int updateNum(@Param("id") String purchaseId, @Param("bindNum") BigDecimal bindNum); /** * 更新状态 @@ -56,7 +57,7 @@ public interface PurchaseStorageMapper { * @param typeId * @return */ - int updateStorageNum(@Param("inputNum") Integer inputNum, @Param("typeId") Integer typeId); + int updateStorageNum(@Param("inputNum") BigDecimal inputNum, @Param("typeId") Integer typeId); /** * 查询详情单子状态 diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseBindServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseBindServiceImpl.java index e9a2adfe..213c3f39 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseBindServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseBindServiceImpl.java @@ -24,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.*; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; import java.util.zip.ZipEntry; @@ -153,7 +154,7 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { if (purchaseVo.getBindNum().equals(purchaseVo.getCheckNum())) { purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_STORE.getStatus(), purchaseVo.getPurchaseId()); } - if (purchaseVo.getBindNum() < purchaseVo.getCheckNum()) { + if (purchaseVo.getBindNum().compareTo(purchaseVo.getCheckNum()) <0 ) { purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_BIND.getStatus(), purchaseVo.getPurchaseId()); } } @@ -251,19 +252,7 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { for (String purchaseId : idList) { result += purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus(), purchaseId); } -// for (String id : idList) { -// //根据二级页面驳回状态更新任务状态 -// dto.setPurchaseId(id); -// List list = purchaseBindMapper.getDetails(dto); -// if (CollectionUtils.isNotEmpty(list)) { -// for (PurchaseVo purchaseVo : list) { -// PurchaseDto purchaseDto = new PurchaseDto(); -// purchaseDto.setTaskId(purchaseVo.getTaskId().toString()); -// List voList = purchaseBindMapper.getDetails(purchaseDto); -// result = getResult(result, voList); -// } -// } -// } + } if (result > 0) { return AjaxResult.success("操作成功"); @@ -271,33 +260,7 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); } - /** - * 获取结果方法抽取 - * @param result - * @param voList - * @return - */ -// private int getResult(int result, List voList) { -// Map> groupedByIdStatus = voList.stream() -// .collect(Collectors.groupingBy( -// PurchaseVo::getTaskId, -// Collectors.mapping(PurchaseVo::getStatus, Collectors.toList()) -// )); -// result += groupedByIdStatus.entrySet().stream() -// .mapToInt(entry -> { -// Integer taskId = entry.getKey(); -// List statusList = entry.getValue(); -// if (statusList.contains(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus()) || -// statusList.contains(PurchaseTaskStatusEnum.TO_BIND.getStatus())) { -// return tmTaskMapper.updateStatusById(MaterialConstants.TEN_CONSTANT, taskId.toString()); -// } else if (!statusList.contains(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus()) && !statusList.contains(PurchaseTaskStatusEnum.TO_BIND.getStatus()) -// && statusList.contains(PurchaseTaskStatusEnum.TO_STORE.getStatus())) { -// return tmTaskMapper.updateStatusById(PurchaseTaskStatusEnum.IN_STORE.getStatus(), taskId.toString()); -// } -// return 0; -// }).sum(); -// return result; -// } + /** * 内层二维码下载 @@ -318,8 +281,8 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { if (CollectionUtils.isNotEmpty(details)) { PurchaseVo detail = details.get(0); purchaseDto.setTaskId(detail.getTaskId().toString()); - if (detail.getBindNum() != null && detail.getBindNum() > 0) { - detail.setCheckNum(detail.getCheckNum() - detail.getBindNum()); + if (detail.getBindNum() != null ) { + detail.setCheckNum(detail.getCheckNum().subtract(detail.getBindNum()) ); } getString(addedEntries, purchaseDto, genMonth, num, zos, detail.getMaterialModel(), detail.getMaterialName(), detail.getTypeId(), detail.getCheckNum()); extractedUpStatus(purchaseDto); @@ -340,8 +303,9 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { * @throws WriterException * @throws IOException */ - private void getString(Set addedEntries, PurchaseDto purchaseDto, String genMonth, int num, ZipOutputStream zos, String materialModel, String materialName, Integer typeId, Integer checkNum) throws WriterException, IOException { - for (int j = 1; j <= checkNum; j++) { + private void getString(Set addedEntries, PurchaseDto purchaseDto, String genMonth, int num, ZipOutputStream zos, String materialModel, String materialName, Integer typeId, BigDecimal checkNum) throws WriterException, IOException { + int genNum = Integer.parseInt(String.valueOf(checkNum)); + for (int j = 1; j <= genNum; j++) { genMonth = genMonth.replace("-", ""); String code = genMonth + "-" + String.format("%5d", num + j).replace(" ", "0"); // 新购管理-二维码打印-新增 diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckInfoServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckInfoServiceImpl.java index d2fc7644..40d5329a 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckInfoServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckInfoServiceImpl.java @@ -39,7 +39,7 @@ import javax.annotation.Resource; /** * 新购验收任务Service业务层处理 - * + * * @author syruan */ @Service @@ -67,7 +67,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { /** * 查询新购验收任务 - * + * * @param purchaseQueryDto 新购验收任务请求参数封装dto * @return 新购验收任务 */ @@ -152,19 +152,19 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { purchaseInfo.setPurchaseMaTypeName(purchaseCheckDetailsMapper.selectMaTypeNameByTaskAndStatusList(purchaseInfo.getTaskId(), new ArrayList<>())); } if (!CollectionUtils.isEmpty(purchaseCheckDetails)) { - AtomicLong purchaseMaTotalNumber = new AtomicLong(0L); + BigDecimal purchaseMaTotalNumber = new BigDecimal("0"); AtomicReference purchaseMaTotalPrice = new AtomicReference<>(BigDecimal.ZERO); for (PurchaseCheckDetails detail : purchaseCheckDetails) { if (detail.getPurchaseNum() == null || detail.getPurchasePrice() == null) { continue; } - if (detail.getPurchaseNum() < 0 || detail.getPurchasePrice().compareTo(BigDecimal.ZERO) < 0) { + if (detail.getPurchaseNum().compareTo(BigDecimal.ZERO) < 0 || detail.getPurchasePrice().compareTo(BigDecimal.ZERO) < 0) { throw new IllegalArgumentException("采购数量和价格必须为非负数"); } - purchaseMaTotalNumber.addAndGet(detail.getPurchaseNum()); - purchaseMaTotalPrice.updateAndGet(v -> v.add(new BigDecimal(detail.getPurchaseNum()).multiply(detail.getPurchasePrice()))); + purchaseMaTotalNumber.add(detail.getPurchaseNum()); + purchaseMaTotalPrice.updateAndGet(v -> v.add(detail.getPurchaseNum().multiply(detail.getPurchasePrice()))); } - purchaseInfo.setPurchaseMaNumber(purchaseMaTotalNumber.get()); + purchaseInfo.setPurchaseMaNumber(purchaseMaTotalNumber); purchaseInfo.setPurchasePrice(purchaseMaTotalPrice.get()); if (purchaseInfo.getTaxRate() != null && purchaseInfo.getPurchasePrice() != null) { purchaseInfo.setPurchaseTaxPrice(calculateTaxPrice(purchaseMaTotalPrice.get(), purchaseInfo.getTaxRate())); @@ -209,7 +209,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { /** * 新增新购验收任务 - * + * * @param purchaseCheckInfo 新购验收任务 * @return 结果 */ @@ -381,7 +381,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { /** * 修改新购验收任务 - * + * * @param purchaseCheckDto 新购验收任务 * @return 结果 */ @@ -403,7 +403,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { /** * 批量删除新购验收任务 - * + * * @param ids 需要删除的新购验收任务主键 * @return 结果 */ @@ -417,7 +417,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { /** * 删除新购验收任务信息 - * + * * @param id 新购验收任务主键 * @return 结果 */ diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseStorageServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseStorageServiceImpl.java index 7e59e819..b1db8818 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseStorageServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseStorageServiceImpl.java @@ -18,6 +18,7 @@ import com.bonus.material.task.mapper.TmTaskMapper; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -212,7 +213,7 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService { } else { //编码入库 List purchaseVoList = purchaseBindMapper.selectPurchaseCheckInfoById(purchaseDto); - result += purchaseStorageMapper.updateNum(purchaseDto.getPurchaseId(), purchaseDto.getInPutList().size()); + result += purchaseStorageMapper.updateNum(purchaseDto.getPurchaseId(), BigDecimal.valueOf(purchaseDto.getInPutList().size())); for (PurchaseDto dto : purchaseDto.getInPutList()) { if (CollectionUtils.isNotEmpty(purchaseVoList)) { for (PurchaseVo purchaseVo : purchaseVoList) { diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/TypeMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/TypeMapper.xml index eac5c29b..cedbc8b1 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/TypeMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/TypeMapper.xml @@ -489,7 +489,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + and task_id = #{taskId} and type_id = #{typeId} and purchase_price = #{purchasePrice} @@ -81,7 +82,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where task_id = #{taskId} - + - + insert into purchase_check_details @@ -230,7 +231,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from purchase_check_details where id in + delete from purchase_check_details where id in #{id} @@ -362,4 +363,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and (del_flag = '0' or del_flag is null) and task_id = #{taskId} - \ No newline at end of file +