From 0013ceeed0fad37eb0e5430eebcdff33b7bb37d0 Mon Sep 17 00:00:00 2001 From: mashuai Date: Wed, 23 Oct 2024 11:12:46 +0800 Subject: [PATCH 01/13] =?UTF-8?q?=E6=96=B0=E8=B4=AD=E7=BB=91=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/controller/PurchaseBindController.java | 2 +- .../material/purchase/mapper/PurchaseBindMapper.java | 8 ++++++++ .../service/impl/PurchaseBindServiceImpl.java | 12 ++++++++++++ .../mapper/material/purchase/PurchaseBindMapper.xml | 12 ++++++++---- 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseBindController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseBindController.java index 423707b9..0b2e12b4 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseBindController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseBindController.java @@ -89,7 +89,7 @@ public class PurchaseBindController extends BaseController { @ApiOperation(value = "二维码生成下载") @PostMapping(value = "/downloadQrCode") @PreventRepeatSubmit - //@RequiresPermissions("purchase:bind:download") + @RequiresPermissions("purchase:bind:download") public void downloadQrCode(HttpServletResponse response, PurchaseDto purchaseDto) { purchaseBindService.downloadQrCode(response, purchaseDto); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseBindMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseBindMapper.java index 6e9cdfac..6aa90310 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseBindMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseBindMapper.java @@ -80,4 +80,12 @@ public interface PurchaseBindMapper { * @param purchaseId */ void updateStatusById(@Param("updatedStatus") Integer updatedStatus, @Param("id") String purchaseId); + + /** + * 更新数量 + * @param dto + * @param num + * @return + */ + int updateNum(@Param("dto") PurchaseDto dto, @Param("num") int num); } 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 2905a499..79fdac7d 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 @@ -154,8 +154,20 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { purchaseDto.setCreateTime(DateUtils.getNowDate()); purchaseDto.setTaskId(dto.getTaskId()); purchaseDto.setTypeId(dto.getTypeId()); + purchaseDto.setStatus(0); result += purchaseBindMapper.add(purchaseDto); } + //根据前端传参更新绑定数量 + result += purchaseBindMapper.updateNum(dto, dto.getDtoList().size()); + //根据任务id和类型id查询状态 + List voList = purchaseBindMapper.selectPurchaseCheckInfoById(dto); + if (CollectionUtils.isNotEmpty(voList)) { + for (PurchaseVo purchaseVo : voList) { + if (purchaseVo.getBindNum().equals(purchaseVo.getCheckNum())) { + + } + } + } if (result > 0) { return AjaxResult.success("绑定成功"); } diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseBindMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseBindMapper.xml index b7f9f0e8..c8c04404 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseBindMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseBindMapper.xml @@ -88,9 +88,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" UPDATE purchase_check_details - SET input_num = #{purchaseNum} - WHERE - id = #{id} + SET bind_num = bind_num + COALESCE(#{num}, 0) + WHERE task_id = #{dto.taskId} + AND type_id = #{dto.typeId} + AND #{num} IS NOT NULL @@ -171,6 +172,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" pcd.production_time AS productDate, pm.qr_code AS qrCode, pm.qr_url AS qrUrl, + pcd.check_num AS purchaseNum, + pcd.check_num AS checkNum, + pcd.bind_num AS bindNum, pcd.status AS status FROM purchase_macode_info pm @@ -245,7 +249,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" FROM purchase_macode_info WHERE - DATE_FORMAT(create_time, '%Y-%m') = #{genMonth} + DATE_FORMAT(create_time, '%Y-%m') = #{genMonth} and ma_code is not null ORDER BY qr_code DESC From 315cce8cdc04f5556ba7a5823781332e95682558 Mon Sep 17 00:00:00 2001 From: mashuai Date: Wed, 23 Oct 2024 11:17:47 +0800 Subject: [PATCH 02/13] =?UTF-8?q?=E6=96=B0=E8=B4=AD=E7=BB=91=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/mapper/material/purchase/PurchaseBindMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseBindMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseBindMapper.xml index c8c04404..4e6c64a2 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseBindMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseBindMapper.xml @@ -249,7 +249,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" FROM purchase_macode_info WHERE - DATE_FORMAT(create_time, '%Y-%m') = #{genMonth} and ma_code is not null + DATE_FORMAT(create_time, '%Y-%m') = #{genMonth} and ma_code is null ORDER BY qr_code DESC From e177458116036523d505efce1ba3e79f542732c0 Mon Sep 17 00:00:00 2001 From: mashuai Date: Wed, 23 Oct 2024 13:50:04 +0800 Subject: [PATCH 03/13] =?UTF-8?q?=E6=96=B0=E8=B4=AD=E7=BB=91=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/constant/MaterialConstants.java | 5 +++ .../service/impl/PurchaseBindServiceImpl.java | 37 +++++++++++++++---- .../material/purchase/PurchaseBindMapper.xml | 1 + 3 files changed, 36 insertions(+), 7 deletions(-) diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/constant/MaterialConstants.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/constant/MaterialConstants.java index 29cb26c8..03129270 100644 --- a/bonus-common-biz/src/main/java/com/bonus/common/biz/constant/MaterialConstants.java +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/constant/MaterialConstants.java @@ -101,6 +101,11 @@ public class MaterialConstants { */ public static final Integer NINE_CONSTANT = 9; + /** + * 未完成 + */ + public static final Integer TEN_CONSTANT = 10; + /** * 已全部入库 */ 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 79fdac7d..3fcc59e9 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 @@ -164,10 +164,33 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { if (CollectionUtils.isNotEmpty(voList)) { for (PurchaseVo purchaseVo : voList) { if (purchaseVo.getBindNum().equals(purchaseVo.getCheckNum())) { - + purchaseBindMapper.updateStatusById(MaterialConstants.FOUR_CONSTANT, purchaseVo.getPurchaseId()); + } + if (purchaseVo.getBindNum() < purchaseVo.getCheckNum()) { + purchaseBindMapper.updateStatusById(MaterialConstants.THREE_CONSTANT, purchaseVo.getPurchaseId()); } } } + PurchaseDto purchaseDto = new PurchaseDto(); + purchaseDto.setTaskId(dto.getTaskId()); + List list = purchaseBindMapper.selectPurchaseCheckInfoById(dto); + Map> groupedByIdStatus = list.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(MaterialConstants.EIGHT_CONSTANT) || statusList.contains(MaterialConstants.THREE_CONSTANT)) { + return tmTaskMapper.updateStatusById(MaterialConstants.TEN_CONSTANT, taskId.toString()); + } else if (!statusList.contains(MaterialConstants.EIGHT_CONSTANT) && !statusList.contains(MaterialConstants.THREE_CONSTANT) + && statusList.contains(MaterialConstants.FOUR_CONSTANT)) { + return tmTaskMapper.updateStatusById(MaterialConstants.FIVE_CONSTANT, taskId.toString()); + } + return 0; + }).sum(); if (result > 0) { return AjaxResult.success("绑定成功"); } @@ -220,7 +243,7 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { purchaseBindMapper.updateStatusById(MaterialConstants.SEVEN_CONSTANT, purchaseVo.getPurchaseId()); } } - result += tmTaskMapper.updateStatusById(MaterialConstants.SEVEN_CONSTANT, dto.getTaskId()); + result += tmTaskMapper.updateStatusById(MaterialConstants.FIVE_CONSTANT, dto.getTaskId()); } //二级页面驳回 if (dto.getPurchaseId() != null) { @@ -263,11 +286,11 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { .mapToInt(entry -> { Integer taskId = entry.getKey(); List statusList = entry.getValue(); - if (statusList.contains(MaterialConstants.INBOUND_AUDIT) || statusList.contains(MaterialConstants.PURCHASE_STORAGE_NO_PASSED)) { - return tmTaskMapper.updateStatusById(MaterialConstants.NINE_CONSTANT, taskId.toString()); - } else if (!statusList.contains(MaterialConstants.INBOUND_AUDIT) && !statusList.contains(MaterialConstants.PURCHASE_STORAGE_NO_PASSED) - && !statusList.contains(MaterialConstants.PARTIALLY_WAREHOUSED) && statusList.contains(MaterialConstants.INVENTORY)) { - return tmTaskMapper.updateStatusById(MaterialConstants.FOUR_CONSTANT, taskId.toString()); + if (statusList.contains(MaterialConstants.SEVEN_CONSTANT) || statusList.contains(MaterialConstants.THREE_CONSTANT)) { + return tmTaskMapper.updateStatusById(MaterialConstants.TEN_CONSTANT, taskId.toString()); + } else if (!statusList.contains(MaterialConstants.SEVEN_CONSTANT) && !statusList.contains(MaterialConstants.THREE_CONSTANT) + && statusList.contains(MaterialConstants.FOUR_CONSTANT)) { + return tmTaskMapper.updateStatusById(MaterialConstants.FIVE_CONSTANT, taskId.toString()); } return 0; }).sum(); diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseBindMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseBindMapper.xml index 4e6c64a2..1d72459a 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseBindMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseBindMapper.xml @@ -179,6 +179,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" FROM purchase_macode_info pm LEFT JOIN purchase_check_details pcd ON pm.task_id = pcd.task_id + AND pm.type_id = pcd.type_id LEFT JOIN ma_type mt ON pcd.type_id = mt.type_id LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id WHERE From 57c582533e38f5a3426b0c6620fe5802abf3c106 Mon Sep 17 00:00:00 2001 From: mashuai Date: Wed, 23 Oct 2024 14:19:06 +0800 Subject: [PATCH 04/13] =?UTF-8?q?=E6=96=B0=E8=B4=AD=E7=BB=91=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PurchaseBindController.java | 2 +- .../service/impl/PurchaseBindServiceImpl.java | 81 +++++++++++++++---- 2 files changed, 67 insertions(+), 16 deletions(-) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseBindController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseBindController.java index 0b2e12b4..8428c749 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseBindController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseBindController.java @@ -100,7 +100,7 @@ public class PurchaseBindController extends BaseController { * @return */ @ApiOperation(value = "驳回或批量驳回操作") - @com.bonus.material.common.annotation.PreventRepeatSubmit + @PreventRepeatSubmit @RequiresPermissions("purchase:bind:reject") @PostMapping("/reject") public AjaxResult reject(@RequestBody PurchaseDto dto) { 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 3fcc59e9..bb1d6880 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 @@ -9,12 +9,15 @@ import com.bonus.common.core.constant.SecurityConstants; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; +import com.bonus.material.basic.domain.BmUnit; import com.bonus.material.purchase.dto.PurchaseDto; import com.bonus.material.purchase.mapper.PurchaseBindMapper; import com.bonus.material.purchase.service.IPurchaseBindService; import com.bonus.material.purchase.vo.PurchaseVo; import com.bonus.material.task.mapper.TmTaskMapper; +import com.bonus.system.api.RemoteDictDataService; import com.bonus.system.api.RemoteUserService; +import com.bonus.system.api.domain.SysDictData; import com.bonus.system.api.domain.SysUser; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; @@ -48,6 +51,9 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { @Resource private TmTaskMapper tmTaskMapper; + @Resource + private RemoteDictDataService remoteDictDataService; + /** * 查询所有绑定信息 * @param dto @@ -85,22 +91,38 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { * @param list */ private void extracted(List list) { - for (PurchaseVo purchaseVo : list) { - try { - AjaxResult ajaxResult = remoteUserService.getInfo(Long.parseLong(purchaseVo.getCreateBy()), SecurityConstants.INNER); - if (ajaxResult.isSuccess()) { - // ajaxResult.get("data") 返回的是 LinkedHashMap - LinkedHashMap rawDataList = (LinkedHashMap) ajaxResult.get("data"); - ObjectMapper objectMapper = new ObjectMapper(); - objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - if (rawDataList != null) { - SysUser sysUser = objectMapper.convertValue(rawDataList, SysUser.class); - purchaseVo.setCreateBy(sysUser.getNickName() == null ? "" : sysUser.getNickName()); + try { + AjaxResult result = remoteDictDataService.dictType("purchase_task_status", SecurityConstants.INNER); + if (result.isSuccess()) { + // 假设 ajaxResult.get("data") 返回的是 List + List rawData = (List) result.get("data"); + ObjectMapper mapper = new ObjectMapper(); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + // 将 rawData 转换为 SysDictData 列表 + List dataList = rawData.stream() + .map(rawDatum -> mapper.convertValue(rawDatum, SysDictData.class)) + .collect(Collectors.toList()); + // 使用 Map 存储字典数据以提高查找速度 + Map dictMap = dataList.stream() + .collect(Collectors.toMap(SysDictData::getDictValue, SysDictData::getDictLabel)); + for (PurchaseVo purchaseVo : list) { + AjaxResult ajaxResult = remoteUserService.getInfo(Long.parseLong(purchaseVo.getCreateBy()), SecurityConstants.INNER); + if (ajaxResult.isSuccess()) { + // ajaxResult.get("data") 返回的是 LinkedHashMap + LinkedHashMap rawDataList = (LinkedHashMap) ajaxResult.get("data"); + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + if (rawDataList != null) { + SysUser sysUser = objectMapper.convertValue(rawDataList, SysUser.class); + purchaseVo.setCreateBy(sysUser.getNickName() == null ? "" : sysUser.getNickName()); + } } + String name = dictMap.get(purchaseVo.getStatus().toString()); + purchaseVo.setStatusName(name == null ? "" : name); } - } catch (IllegalArgumentException e) { - log.error("远程调用查询失败:", e.getMessage()); } + } catch (IllegalArgumentException e) { + e.printStackTrace(); } } @@ -126,7 +148,36 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { */ @Override public List getDetails(PurchaseDto dto) { - return purchaseBindMapper.getDetails(dto); + List list = purchaseBindMapper.getDetails(dto); + extractedDict(list); + return list; + } + + private void extractedDict(List list) { + try { + AjaxResult ajaxResult = remoteDictDataService.dictType("purchase_task_status", SecurityConstants.INNER); + if (ajaxResult.isSuccess()) { + // 假设 ajaxResult.get("data") 返回的是 List + List rawData = (List) ajaxResult.get("data"); + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + // 将 rawData 转换为 SysDictData 列表 + List dataList = rawData.stream() + .map(rawDatum -> objectMapper.convertValue(rawDatum, SysDictData.class)) + .collect(Collectors.toList()); + // 使用 Map 存储字典数据以提高查找速度 + Map dictMap = dataList.stream() + .collect(Collectors.toMap(SysDictData::getDictValue, SysDictData::getDictLabel)); + if (CollectionUtils.isNotEmpty(list)) { + for (PurchaseVo purchaseVo : list) { + String name = dictMap.get(purchaseVo.getStatus().toString()); + purchaseVo.setStatusName(name == null ? "" : name); + } + } + } + } catch (Exception e) { + log.error("远程服务调用查询失败:", e.getMessage()); + } } /** @@ -173,7 +224,7 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { } PurchaseDto purchaseDto = new PurchaseDto(); purchaseDto.setTaskId(dto.getTaskId()); - List list = purchaseBindMapper.selectPurchaseCheckInfoById(dto); + List list = purchaseBindMapper.selectPurchaseCheckInfoById(purchaseDto); Map> groupedByIdStatus = list.stream() .collect(Collectors.groupingBy( PurchaseVo::getTaskId, From ea70eca3a440160f609a0bd0b72b8e60a19f2f49 Mon Sep 17 00:00:00 2001 From: mashuai Date: Wed, 23 Oct 2024 14:24:44 +0800 Subject: [PATCH 05/13] =?UTF-8?q?=E6=96=B0=E8=B4=AD=E7=BB=91=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/material/task/TmTaskMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/task/TmTaskMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/task/TmTaskMapper.xml index 9a61a07c..b5fccb36 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/task/TmTaskMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/task/TmTaskMapper.xml @@ -86,7 +86,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - update tm_task set status = #{updatedStatus} where id = #{id} + update tm_task set status = #{updatedStatus} where task_id = #{id} From b85fd88d328b172b194aae35fcc230a2d50f03ca Mon Sep 17 00:00:00 2001 From: mashuai Date: Wed, 23 Oct 2024 14:45:52 +0800 Subject: [PATCH 06/13] =?UTF-8?q?=E6=96=B0=E8=B4=AD=E7=BB=91=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../material/purchase/service/impl/PurchaseBindServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) 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 bb1d6880..a15f7c7f 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 @@ -25,6 +25,7 @@ import com.google.zxing.WriterException; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; @@ -186,6 +187,7 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { * @return */ @Override + @Transactional(rollbackFor = Exception.class) public AjaxResult bind(PurchaseDto dto) { //先查询提交的编码中是否存在重复提交 long distinctCodes = dto.getDtoList().stream().map(PurchaseDto::getMaCode).distinct().count(); From 831fb828631eccd21d79c7c214c45597a0a3a018 Mon Sep 17 00:00:00 2001 From: mashuai Date: Wed, 23 Oct 2024 14:57:50 +0800 Subject: [PATCH 07/13] =?UTF-8?q?=E6=96=B0=E8=B4=AD=E7=BB=91=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/PurchaseBindServiceImpl.java | 31 ++++++++++++------- .../mapper/material/task/TmTaskMapper.xml | 2 +- 2 files changed, 21 insertions(+), 12 deletions(-) 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 a15f7c7f..1375f574 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 @@ -233,23 +233,32 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { Collectors.mapping(PurchaseVo::getStatus, Collectors.toList()) )); result += groupedByIdStatus.entrySet().stream() - .mapToInt(entry -> { - Integer taskId = entry.getKey(); - List statusList = entry.getValue(); - if (statusList.contains(MaterialConstants.EIGHT_CONSTANT) || statusList.contains(MaterialConstants.THREE_CONSTANT)) { - return tmTaskMapper.updateStatusById(MaterialConstants.TEN_CONSTANT, taskId.toString()); - } else if (!statusList.contains(MaterialConstants.EIGHT_CONSTANT) && !statusList.contains(MaterialConstants.THREE_CONSTANT) - && statusList.contains(MaterialConstants.FOUR_CONSTANT)) { - return tmTaskMapper.updateStatusById(MaterialConstants.FIVE_CONSTANT, taskId.toString()); - } - return 0; - }).sum(); + .mapToInt(entry -> updateTaskStatus(entry.getKey(), entry.getValue())) + .sum(); if (result > 0) { return AjaxResult.success("绑定成功"); } return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); } + /** + * 提取状态更新逻辑到一个方法 + * @param taskId + * @param statusList + * @return + */ + private int updateTaskStatus(Integer taskId, List statusList) { + if (statusList.contains(MaterialConstants.EIGHT_CONSTANT) || + statusList.contains(MaterialConstants.THREE_CONSTANT)) { + return tmTaskMapper.updateStatusById(MaterialConstants.TEN_CONSTANT, taskId.toString()); + } else if (!statusList.contains(MaterialConstants.EIGHT_CONSTANT) && + !statusList.contains(MaterialConstants.THREE_CONSTANT) && + statusList.contains(MaterialConstants.FOUR_CONSTANT)) { + return tmTaskMapper.updateStatusById(MaterialConstants.FIVE_CONSTANT, taskId.toString()); + } + return 0; + } + /** * 下载二维码 * @param response diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/task/TmTaskMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/task/TmTaskMapper.xml index b5fccb36..26cb94d7 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/task/TmTaskMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/task/TmTaskMapper.xml @@ -86,7 +86,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - update tm_task set status = #{updatedStatus} where task_id = #{id} + update tm_task set task_status = #{updatedStatus} where task_id = #{id} From be0d514e891d73759f611e62fe2b9de66b2fee19 Mon Sep 17 00:00:00 2001 From: mashuai Date: Wed, 23 Oct 2024 15:11:04 +0800 Subject: [PATCH 08/13] =?UTF-8?q?=E6=96=B0=E8=B4=AD=E7=BB=91=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/service/impl/PurchaseBindServiceImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 1375f574..412b454c 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 @@ -226,7 +226,7 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { } PurchaseDto purchaseDto = new PurchaseDto(); purchaseDto.setTaskId(dto.getTaskId()); - List list = purchaseBindMapper.selectPurchaseCheckInfoById(purchaseDto); + List list = purchaseBindMapper.getDetails(purchaseDto); Map> groupedByIdStatus = list.stream() .collect(Collectors.groupingBy( PurchaseVo::getTaskId, @@ -298,7 +298,7 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { int result = 0; if (dto.getTaskId() != null) { //根据任务id查询详细信息 - List list = purchaseBindMapper.selectPurchaseCheckInfoById(dto); + List list = purchaseBindMapper.getDetails(dto); if (CollectionUtils.isNotEmpty(list)) { for (PurchaseVo purchaseVo : list) { //更新状态为已驳回 @@ -316,11 +316,11 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { for (String id : idList) { //根据二级页面驳回状态更新任务状态 dto.setPurchaseId(id); - List list = purchaseBindMapper.selectPurchaseCheckInfoById(dto); + List list = purchaseBindMapper.getDetails(dto); if (CollectionUtils.isNotEmpty(list)) { for (PurchaseVo purchaseVo : list) { dto.setTaskId(purchaseVo.getTaskId().toString()); - List voList = purchaseBindMapper.selectPurchaseCheckInfoById(dto); + List voList = purchaseBindMapper.getDetails(dto); result = getResult(result, voList); } } From 0b5f0bea3f04a93f99eed50d1ad2313bf889cf2c Mon Sep 17 00:00:00 2001 From: mashuai Date: Wed, 23 Oct 2024 16:32:02 +0800 Subject: [PATCH 09/13] =?UTF-8?q?=E6=96=B0=E8=B4=AD=E7=BB=91=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/service/impl/PurchaseBindServiceImpl.java | 1 + .../purchase/service/impl/PurchaseStorageServiceImpl.java | 3 +++ 2 files changed, 4 insertions(+) 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 412b454c..f2f63fc7 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 @@ -293,6 +293,7 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { * @return */ @Override + @Transactional(rollbackFor = Exception.class) public AjaxResult reject(PurchaseDto dto) { //一级页面驳回 int result = 0; 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 d4c17884..0b17dd41 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 @@ -11,6 +11,7 @@ import com.bonus.material.purchase.service.IPurchaseStorageService; import com.bonus.material.purchase.vo.PurchaseVo; import com.bonus.material.task.mapper.TmTaskMapper; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.Arrays; @@ -75,6 +76,7 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService { * @return */ @Override + @Transactional(rollbackFor = Exception.class) public AjaxResult warehouse(PurchaseDto dto) { if (dto.getTaskId() != null) { //外层入库 @@ -92,6 +94,7 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService { * @return */ @Override + @Transactional(rollbackFor = Exception.class) public AjaxResult reject(PurchaseDto dto) { if (dto.getTaskId() != null) { //外层驳回 From cc0f05de550ad75df6627025b074019c6c336a79 Mon Sep 17 00:00:00 2001 From: mashuai Date: Wed, 23 Oct 2024 16:50:16 +0800 Subject: [PATCH 10/13] =?UTF-8?q?=E6=96=B0=E8=B4=AD=E7=BB=91=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/config/RemoteConfig.java | 90 +++++++++++++++++++ .../controller/PurchaseBindController.java | 2 +- .../service/impl/PurchaseBindServiceImpl.java | 83 +++-------------- 3 files changed, 103 insertions(+), 72 deletions(-) create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/config/RemoteConfig.java diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/config/RemoteConfig.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/config/RemoteConfig.java new file mode 100644 index 00000000..64803918 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/config/RemoteConfig.java @@ -0,0 +1,90 @@ +package com.bonus.material.purchase.config; + +import com.bonus.common.core.constant.SecurityConstants; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.system.api.RemoteDictDataService; +import com.bonus.system.api.RemoteUserService; +import com.bonus.system.api.domain.SysDictData; +import com.bonus.system.api.domain.SysUser; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 框架远程调用配置类 + * @Author ma_sh + * @create 2024/10/23 16:10 + */ +@Component +@Slf4j +public class RemoteConfig { + + @Resource + private RemoteDictDataService remoteDictDataService; + + @Resource + private RemoteUserService remoteUserService; + + /** + * 获取字典值 + * @param dictType + * @param dictLabel + * @return + */ + public String getDictValue(String dictType, String dictLabel) { + try { + Map dictMap = new LinkedHashMap<>(); + AjaxResult ajaxResult = remoteDictDataService.dictType(dictType, SecurityConstants.INNER); + if (ajaxResult.isSuccess()) { + // 假设 ajaxResult.get("data") 返回的是 List + List rawData = (List) ajaxResult.get("data"); + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + // 将 rawData 转换为 SysDictData 列表 + List dataList = rawData.stream() + .map(rawDatum -> objectMapper.convertValue(rawDatum, SysDictData.class)) + .collect(Collectors.toList()); + // 使用 Map 存储字典数据以提高查找速度 + dictMap = dataList.stream() + .collect(Collectors.toMap(SysDictData::getDictValue, SysDictData::getDictLabel)); + } + return dictMap.get(dictLabel); + } catch (Exception e) { + log.error("远程调用查询字典键值失败:", e.getMessage()); + } + return null; + } + + /** + * 获取用户名 + * @param userId + * @return + */ + public String getUserName(String userId) { + try { + String userName = ""; + AjaxResult ajaxResult = remoteUserService.getInfo(Long.parseLong(userId), SecurityConstants.INNER); + if (ajaxResult.isSuccess()) { + // ajaxResult.get("data") 返回的是 LinkedHashMap + LinkedHashMap rawDataList = (LinkedHashMap) ajaxResult.get("data"); + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + if (rawDataList != null) { + SysUser sysUser = objectMapper.convertValue(rawDataList, SysUser.class); + userName = sysUser.getNickName(); + } + } + return userName; + } catch (IllegalArgumentException e) { + log.error("远程调用查询用户名失败:", e.getMessage()); + } + return null; + } +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseBindController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseBindController.java index 8428c749..321d07f3 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseBindController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseBindController.java @@ -36,7 +36,7 @@ public class PurchaseBindController extends BaseController { * 一级分页查询 */ @ApiOperation(value = "查询新购验收绑定详细列表") - @RequiresPermissions("purchase:bind:list") + //@RequiresPermissions("purchase:bind:list") @GetMapping(value = "/list") public TableDataInfo getList(PurchaseDto dto) { startPage(); 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 f2f63fc7..3a47b537 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 @@ -5,22 +5,15 @@ import com.bonus.common.biz.config.DateTimeHelper; import com.bonus.common.biz.config.QrCodeUtils; import com.bonus.common.biz.constant.MaterialConstants; import com.bonus.common.biz.enums.HttpCodeEnum; -import com.bonus.common.core.constant.SecurityConstants; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; -import com.bonus.material.basic.domain.BmUnit; +import com.bonus.material.purchase.config.RemoteConfig; import com.bonus.material.purchase.dto.PurchaseDto; import com.bonus.material.purchase.mapper.PurchaseBindMapper; import com.bonus.material.purchase.service.IPurchaseBindService; import com.bonus.material.purchase.vo.PurchaseVo; import com.bonus.material.task.mapper.TmTaskMapper; -import com.bonus.system.api.RemoteDictDataService; -import com.bonus.system.api.RemoteUserService; -import com.bonus.system.api.domain.SysDictData; -import com.bonus.system.api.domain.SysUser; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; import com.google.zxing.WriterException; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -46,14 +39,11 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { @Resource private PurchaseBindMapper purchaseBindMapper; - @Resource - private RemoteUserService remoteUserService; - @Resource private TmTaskMapper tmTaskMapper; @Resource - private RemoteDictDataService remoteDictDataService; + private RemoteConfig remoteConfig; /** * 查询所有绑定信息 @@ -92,38 +82,11 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { * @param list */ private void extracted(List list) { - try { - AjaxResult result = remoteDictDataService.dictType("purchase_task_status", SecurityConstants.INNER); - if (result.isSuccess()) { - // 假设 ajaxResult.get("data") 返回的是 List - List rawData = (List) result.get("data"); - ObjectMapper mapper = new ObjectMapper(); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - // 将 rawData 转换为 SysDictData 列表 - List dataList = rawData.stream() - .map(rawDatum -> mapper.convertValue(rawDatum, SysDictData.class)) - .collect(Collectors.toList()); - // 使用 Map 存储字典数据以提高查找速度 - Map dictMap = dataList.stream() - .collect(Collectors.toMap(SysDictData::getDictValue, SysDictData::getDictLabel)); - for (PurchaseVo purchaseVo : list) { - AjaxResult ajaxResult = remoteUserService.getInfo(Long.parseLong(purchaseVo.getCreateBy()), SecurityConstants.INNER); - if (ajaxResult.isSuccess()) { - // ajaxResult.get("data") 返回的是 LinkedHashMap - LinkedHashMap rawDataList = (LinkedHashMap) ajaxResult.get("data"); - ObjectMapper objectMapper = new ObjectMapper(); - objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - if (rawDataList != null) { - SysUser sysUser = objectMapper.convertValue(rawDataList, SysUser.class); - purchaseVo.setCreateBy(sysUser.getNickName() == null ? "" : sysUser.getNickName()); - } - } - String name = dictMap.get(purchaseVo.getStatus().toString()); - purchaseVo.setStatusName(name == null ? "" : name); - } - } - } catch (IllegalArgumentException e) { - e.printStackTrace(); + for (PurchaseVo purchaseVo : list) { + String userName = remoteConfig.getUserName(purchaseVo.getCreateBy()); + purchaseVo.setCreateBy(userName == null ? "" : userName); + String dictValue = remoteConfig.getDictValue("purchase_task_status", purchaseVo.getStatus().toString()); + purchaseVo.setStatusName(dictValue == null ? "" : dictValue); } } @@ -150,35 +113,13 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { @Override public List getDetails(PurchaseDto dto) { List list = purchaseBindMapper.getDetails(dto); - extractedDict(list); - return list; - } - - private void extractedDict(List list) { - try { - AjaxResult ajaxResult = remoteDictDataService.dictType("purchase_task_status", SecurityConstants.INNER); - if (ajaxResult.isSuccess()) { - // 假设 ajaxResult.get("data") 返回的是 List - List rawData = (List) ajaxResult.get("data"); - ObjectMapper objectMapper = new ObjectMapper(); - objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - // 将 rawData 转换为 SysDictData 列表 - List dataList = rawData.stream() - .map(rawDatum -> objectMapper.convertValue(rawDatum, SysDictData.class)) - .collect(Collectors.toList()); - // 使用 Map 存储字典数据以提高查找速度 - Map dictMap = dataList.stream() - .collect(Collectors.toMap(SysDictData::getDictValue, SysDictData::getDictLabel)); - if (CollectionUtils.isNotEmpty(list)) { - for (PurchaseVo purchaseVo : list) { - String name = dictMap.get(purchaseVo.getStatus().toString()); - purchaseVo.setStatusName(name == null ? "" : name); - } - } + if (CollectionUtils.isNotEmpty(list)) { + for (PurchaseVo purchaseVo : list) { + String name = remoteConfig.getDictValue("purchase_task_status", purchaseVo.getStatus().toString()); + purchaseVo.setStatusName(name == null ? "" : name); } - } catch (Exception e) { - log.error("远程服务调用查询失败:", e.getMessage()); } + return list; } /** From 8f4bb21f9399f6dfe9aba30bfc95ad2440338387 Mon Sep 17 00:00:00 2001 From: mashuai Date: Wed, 23 Oct 2024 16:54:58 +0800 Subject: [PATCH 11/13] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E7=B1=BB=E5=AE=9A?= =?UTF-8?q?=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/config/RemoteConfig.java | 90 ------------------- .../service/impl/PurchaseBindServiceImpl.java | 4 - 2 files changed, 94 deletions(-) delete mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/config/RemoteConfig.java diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/config/RemoteConfig.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/config/RemoteConfig.java deleted file mode 100644 index 64803918..00000000 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/config/RemoteConfig.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.bonus.material.purchase.config; - -import com.bonus.common.core.constant.SecurityConstants; -import com.bonus.common.core.web.domain.AjaxResult; -import com.bonus.system.api.RemoteDictDataService; -import com.bonus.system.api.RemoteUserService; -import com.bonus.system.api.domain.SysDictData; -import com.bonus.system.api.domain.SysUser; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -/** - * 框架远程调用配置类 - * @Author ma_sh - * @create 2024/10/23 16:10 - */ -@Component -@Slf4j -public class RemoteConfig { - - @Resource - private RemoteDictDataService remoteDictDataService; - - @Resource - private RemoteUserService remoteUserService; - - /** - * 获取字典值 - * @param dictType - * @param dictLabel - * @return - */ - public String getDictValue(String dictType, String dictLabel) { - try { - Map dictMap = new LinkedHashMap<>(); - AjaxResult ajaxResult = remoteDictDataService.dictType(dictType, SecurityConstants.INNER); - if (ajaxResult.isSuccess()) { - // 假设 ajaxResult.get("data") 返回的是 List - List rawData = (List) ajaxResult.get("data"); - ObjectMapper objectMapper = new ObjectMapper(); - objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - // 将 rawData 转换为 SysDictData 列表 - List dataList = rawData.stream() - .map(rawDatum -> objectMapper.convertValue(rawDatum, SysDictData.class)) - .collect(Collectors.toList()); - // 使用 Map 存储字典数据以提高查找速度 - dictMap = dataList.stream() - .collect(Collectors.toMap(SysDictData::getDictValue, SysDictData::getDictLabel)); - } - return dictMap.get(dictLabel); - } catch (Exception e) { - log.error("远程调用查询字典键值失败:", e.getMessage()); - } - return null; - } - - /** - * 获取用户名 - * @param userId - * @return - */ - public String getUserName(String userId) { - try { - String userName = ""; - AjaxResult ajaxResult = remoteUserService.getInfo(Long.parseLong(userId), SecurityConstants.INNER); - if (ajaxResult.isSuccess()) { - // ajaxResult.get("data") 返回的是 LinkedHashMap - LinkedHashMap rawDataList = (LinkedHashMap) ajaxResult.get("data"); - ObjectMapper objectMapper = new ObjectMapper(); - objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - if (rawDataList != null) { - SysUser sysUser = objectMapper.convertValue(rawDataList, SysUser.class); - userName = sysUser.getNickName(); - } - } - return userName; - } catch (IllegalArgumentException e) { - log.error("远程调用查询用户名失败:", e.getMessage()); - } - return null; - } -} 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 3a47b537..4407f19c 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 @@ -8,7 +8,6 @@ import com.bonus.common.biz.enums.HttpCodeEnum; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; -import com.bonus.material.purchase.config.RemoteConfig; import com.bonus.material.purchase.dto.PurchaseDto; import com.bonus.material.purchase.mapper.PurchaseBindMapper; import com.bonus.material.purchase.service.IPurchaseBindService; @@ -42,9 +41,6 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { @Resource private TmTaskMapper tmTaskMapper; - @Resource - private RemoteConfig remoteConfig; - /** * 查询所有绑定信息 * @param dto From bd92d12d5ca9717346cb5c080951d9d8676ce515 Mon Sep 17 00:00:00 2001 From: mashuai Date: Wed, 23 Oct 2024 17:04:30 +0800 Subject: [PATCH 12/13] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E7=B1=BB=E5=AE=9A?= =?UTF-8?q?=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/service/impl/PurchaseBindServiceImpl.java | 5 +++++ 1 file changed, 5 insertions(+) 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 4407f19c..a4d66569 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 @@ -8,6 +8,7 @@ import com.bonus.common.biz.enums.HttpCodeEnum; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; +import com.bonus.material.purchase.config.RemoteConfig; import com.bonus.material.purchase.dto.PurchaseDto; import com.bonus.material.purchase.mapper.PurchaseBindMapper; import com.bonus.material.purchase.service.IPurchaseBindService; @@ -41,6 +42,10 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { @Resource private TmTaskMapper tmTaskMapper; + @Resource + private RemoteConfig remoteConfig; + + /** * 查询所有绑定信息 * @param dto From e4ff53d048179ec7289ce08ebbce71cdbf929a9c Mon Sep 17 00:00:00 2001 From: mashuai Date: Wed, 23 Oct 2024 17:49:11 +0800 Subject: [PATCH 13/13] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E7=B1=BB=E5=AE=9A?= =?UTF-8?q?=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/constant/MaterialConstants.java | 21 ----- .../controller/PurchaseBindController.java | 2 +- .../controller/PurchaseStorageController.java | 10 --- .../mapper/PurchaseStorageMapper.java | 9 +- .../service/IPurchaseStorageService.java | 7 -- .../service/impl/PurchaseBindServiceImpl.java | 11 ++- .../impl/PurchaseStorageServiceImpl.java | 69 +++++++++------ .../purchase/PurchaseStorageMapper.xml | 83 +++++++++++++------ 8 files changed, 112 insertions(+), 100 deletions(-) diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/constant/MaterialConstants.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/constant/MaterialConstants.java index 03129270..22664782 100644 --- a/bonus-common-biz/src/main/java/com/bonus/common/biz/constant/MaterialConstants.java +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/constant/MaterialConstants.java @@ -106,25 +106,4 @@ public class MaterialConstants { */ public static final Integer TEN_CONSTANT = 10; - /** - * 已全部入库 - */ - public static final Integer INVENTORY = 4; - - /** - * 部分已入库 - */ - public static final Integer PARTIALLY_WAREHOUSED = 9; - - /** - * 入库审核中 - */ - public static final Integer INBOUND_AUDIT = 5; - - /** - * 入库审核未通过 - */ - public static final Integer PURCHASE_STORAGE_NO_PASSED = 7; - - } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseBindController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseBindController.java index 321d07f3..8428c749 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseBindController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseBindController.java @@ -36,7 +36,7 @@ public class PurchaseBindController extends BaseController { * 一级分页查询 */ @ApiOperation(value = "查询新购验收绑定详细列表") - //@RequiresPermissions("purchase:bind:list") + @RequiresPermissions("purchase:bind:list") @GetMapping(value = "/list") public TableDataInfo getList(PurchaseDto dto) { startPage(); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseStorageController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseStorageController.java index 89d033ae..d3c65457 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseStorageController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseStorageController.java @@ -44,16 +44,6 @@ public class PurchaseStorageController extends BaseController { return getDataTable(list); } - /** - * 获取新购验收入库详细信息 - */ - @ApiOperation(value = "获取新购验收入库详细信息") - @RequiresPermissions("purchase:storage:query") - @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") Long id) { - return AjaxResult.success(purchaseStorageService.selectPurchaseCheckInfoById(id)); - } - /** * 获取新购入库二级明细列表 * @param 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 d46a7e07..1e83eee9 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 @@ -20,13 +20,6 @@ public interface PurchaseStorageMapper { */ List selectAll(PurchaseDto dto); - /** - * 根据id查询详情 - * @param id - * @return - */ - List selectPurchaseCheckInfoById(Long id); - /** * 查询详情 * @param dto @@ -40,7 +33,7 @@ public interface PurchaseStorageMapper { * @param bindNum * @return */ - int updateNum(@Param("id") String purchaseId, @Param("purchaseNum") Integer bindNum); + int updateNum(@Param("id") String purchaseId, @Param("bindNum") Integer bindNum); /** * 更新状态 diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseStorageService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseStorageService.java index 74e70c14..84eee556 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseStorageService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseStorageService.java @@ -20,13 +20,6 @@ public interface IPurchaseStorageService { */ List selectAll(PurchaseDto dto); - /** - * 根据id查询 - * @param id - * @return - */ - List selectPurchaseCheckInfoById(Long id); - /** * 查询二级明细 * @param dto 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 a4d66569..6a12044d 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 @@ -245,10 +245,12 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { if (CollectionUtils.isNotEmpty(list)) { for (PurchaseVo purchaseVo : list) { //更新状态为已驳回 - purchaseBindMapper.updateStatusById(MaterialConstants.SEVEN_CONSTANT, purchaseVo.getPurchaseId()); + if (purchaseVo.getStatus().equals(MaterialConstants.THREE_CONSTANT) || purchaseVo.getStatus().equals(MaterialConstants.SEVEN_CONSTANT)) { + purchaseBindMapper.updateStatusById(MaterialConstants.SEVEN_CONSTANT, purchaseVo.getPurchaseId()); + } } } - result += tmTaskMapper.updateStatusById(MaterialConstants.FIVE_CONSTANT, dto.getTaskId()); + result += tmTaskMapper.updateStatusById(MaterialConstants.TEN_CONSTANT, dto.getTaskId()); } //二级页面驳回 if (dto.getPurchaseId() != null) { @@ -262,8 +264,9 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { List list = purchaseBindMapper.getDetails(dto); if (CollectionUtils.isNotEmpty(list)) { for (PurchaseVo purchaseVo : list) { - dto.setTaskId(purchaseVo.getTaskId().toString()); - List voList = purchaseBindMapper.getDetails(dto); + PurchaseDto purchaseDto = new PurchaseDto(); + purchaseDto.setTaskId(purchaseVo.getTaskId().toString()); + List voList = purchaseBindMapper.getDetails(purchaseDto); result = getResult(result, voList); } } 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 0b17dd41..87933f85 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 @@ -5,7 +5,9 @@ import com.bonus.common.biz.constant.MaterialConstants; import com.bonus.common.biz.enums.HttpCodeEnum; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.material.ma.mapper.MachineMapper; +import com.bonus.material.purchase.config.RemoteConfig; import com.bonus.material.purchase.dto.PurchaseDto; +import com.bonus.material.purchase.mapper.PurchaseBindMapper; import com.bonus.material.purchase.mapper.PurchaseStorageMapper; import com.bonus.material.purchase.service.IPurchaseStorageService; import com.bonus.material.purchase.vo.PurchaseVo; @@ -36,9 +38,15 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService { @Resource private MachineMapper machineMapper; + @Resource + private PurchaseBindMapper purchaseBindMapper; + @Resource private TmTaskMapper tmTaskMapper; + @Resource + private RemoteConfig remoteConfig; + /** * 查询所有 * @param dto @@ -47,17 +55,21 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService { @Override public List selectAll(PurchaseDto dto) { List list = purchaseStorageMapper.selectAll(dto); + extracted(list); return list; } /** - * 根据id查询详情 - * @param id - * @return + * 远程调用方法抽取 + * @param list */ - @Override - public List selectPurchaseCheckInfoById(Long id) { - return purchaseStorageMapper.selectPurchaseCheckInfoById(id); + private void extracted(List list) { + for (PurchaseVo purchaseVo : list) { + String userName = remoteConfig.getUserName(purchaseVo.getCreateBy()); + purchaseVo.setCreateBy(userName == null ? "" : userName); + String dictValue = remoteConfig.getDictValue("purchase_task_status", purchaseVo.getStatus().toString()); + purchaseVo.setStatusName(dictValue == null ? "" : dictValue); + } } /** @@ -67,7 +79,14 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService { */ @Override public List getDetails(PurchaseDto dto) { - return purchaseStorageMapper.getDetails(dto); + List list = purchaseBindMapper.getDetails(dto); + if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(list)) { + for (PurchaseVo purchaseVo : list) { + String name = remoteConfig.getDictValue("purchase_task_status", purchaseVo.getStatus().toString()); + purchaseVo.setStatusName(name == null ? "" : name); + } + } + return list; } /** @@ -112,10 +131,10 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService { * @return */ private AjaxResult rejectByPurchaseIds(PurchaseDto purchaseDto) { - purchaseDto.setStatus(MaterialConstants.PURCHASE_STORAGE_NO_PASSED); + purchaseDto.setStatus(MaterialConstants.EIGHT_CONSTANT); int result = 0; try { - List details = purchaseStorageMapper.getDetails(purchaseDto); + List details = purchaseBindMapper.getDetails(purchaseDto); if (CollectionUtils.isNotEmpty(details)) { result += updateRejectAndStatus(Integer.parseInt(purchaseDto.getPurchaseId())); List statusList = purchaseStorageMapper.select(details.get(0).getTaskId().toString()); @@ -136,7 +155,7 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService { * @return */ private int updateRejectAndStatus(int purchaseId) { - return purchaseStorageMapper.updateStatusById(MaterialConstants.PURCHASE_STORAGE_NO_PASSED, purchaseId); + return purchaseStorageMapper.updateStatusById(MaterialConstants.EIGHT_CONSTANT, purchaseId); } /** @@ -151,11 +170,13 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService { for (Integer taskId : taskIdList) { dto.setTaskId(String.valueOf(taskId)); List details; - details = purchaseStorageMapper.getDetails(dto); + details = purchaseBindMapper.getDetails(dto); for (PurchaseVo purchaseVo : details) { - result += purchaseStorageMapper.updateStatusById(MaterialConstants.PURCHASE_STORAGE_NO_PASSED, Integer.parseInt(purchaseVo.getPurchaseId())); + if (purchaseVo.getStatus().equals(MaterialConstants.EIGHT_CONSTANT) || purchaseVo.getStatus().equals(MaterialConstants.FOUR_CONSTANT)) { + result += purchaseStorageMapper.updateStatusById(MaterialConstants.EIGHT_CONSTANT, Integer.parseInt(purchaseVo.getPurchaseId())); + } } - details = purchaseStorageMapper.getDetails(dto); + details = purchaseBindMapper.getDetails(dto); result += updateTaskStatus(details); } if (result > 0) { @@ -173,10 +194,10 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService { * @return */ private AjaxResult processByPurchaseIds(PurchaseDto purchaseDto) { - purchaseDto.setStatus(MaterialConstants.INVENTORY); + purchaseDto.setStatus(MaterialConstants.FIVE_CONSTANT); int result = 0; try { - List details = purchaseStorageMapper.getDetails(purchaseDto); + List details = purchaseBindMapper.getDetails(purchaseDto); if (CollectionUtils.isNotEmpty(details)) { result += updatePurchaseInfoAndDetails(details.get(0), Integer.parseInt(purchaseDto.getPurchaseId())); List statusList = purchaseStorageMapper.select(details.get(0).getTaskId().toString()); @@ -198,7 +219,7 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService { * @return */ private int updatePurchaseInfoAndDetails(PurchaseVo detail, int purchaseId) { - int result = purchaseStorageMapper.updateStatusById(MaterialConstants.INVENTORY, purchaseId); + int result = purchaseStorageMapper.updateStatusById(MaterialConstants.FIVE_CONSTANT, purchaseId); if (ZERO_CONSTANT.equals(detail.getManageType())) { result += purchaseStorageMapper.insertMachine(detail); } else if (ONE_CONSTANT.equals(detail.getManageType())) { @@ -219,9 +240,9 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService { for (Integer taskId : taskIdList) { dto.setTaskId(String.valueOf(taskId)); List details; - details = purchaseStorageMapper.getDetails(dto); + details = purchaseBindMapper.getDetails(dto); result += updateDetailsAndStatus(details); - details = purchaseStorageMapper.getDetails(dto); + details = purchaseBindMapper.getDetails(dto); result += updateTaskStatus(details); } if (result > 0) { @@ -242,7 +263,7 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService { return details.stream() .mapToInt(detail -> { int result = purchaseStorageMapper.updateNum(detail.getPurchaseId(), detail.getBindNum()); - result += purchaseStorageMapper.updateStatusById(MaterialConstants.INVENTORY, Integer.parseInt(detail.getPurchaseId())); + result += purchaseStorageMapper.updateStatusById(MaterialConstants.FIVE_CONSTANT, Integer.parseInt(detail.getPurchaseId())); if (ZERO_CONSTANT.equals(detail.getManageType())) { result += purchaseStorageMapper.insertMachine(detail); } else if (ONE_CONSTANT.equals(detail.getManageType())) { @@ -268,11 +289,11 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService { .mapToInt(entry -> { Integer id = entry.getKey(); List statusList = entry.getValue(); - if (statusList.contains(MaterialConstants.INBOUND_AUDIT) || statusList.contains(MaterialConstants.PURCHASE_STORAGE_NO_PASSED)) { - return tmTaskMapper.updateStatusById(MaterialConstants.NINE_CONSTANT, id.toString()); - } else if (!statusList.contains(MaterialConstants.INBOUND_AUDIT) && !statusList.contains(MaterialConstants.PURCHASE_STORAGE_NO_PASSED) - && !statusList.contains(MaterialConstants.PARTIALLY_WAREHOUSED) && statusList.contains(MaterialConstants.INVENTORY)) { - return tmTaskMapper.updateStatusById(MaterialConstants.FOUR_CONSTANT, id.toString()); + if (statusList.contains(MaterialConstants.FOUR_CONSTANT) || statusList.contains(MaterialConstants.EIGHT_CONSTANT)) { + return tmTaskMapper.updateStatusById(MaterialConstants.TEN_CONSTANT, id.toString()); + } else if (!statusList.contains(MaterialConstants.FOUR_CONSTANT) && !statusList.contains(MaterialConstants.EIGHT_CONSTANT) + && statusList.contains(MaterialConstants.FIVE_CONSTANT)) { + return tmTaskMapper.updateStatusById(MaterialConstants.FIVE_CONSTANT, id.toString()); } return 0; }).sum(); diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseStorageMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseStorageMapper.xml index 25cb8f52..c93a5b3d 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseStorageMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseStorageMapper.xml @@ -5,12 +5,66 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + insert into ma_machine + + type_id, + ma_code, + pre_code, + ma_status, + qr_code, + buy_price, + ma_vender, + out_fac_time, + out_fac_code, + assets_code, + check_man, + this_check_time, + next_check_time, + gps_code, + rfid_code, + erp_code, + transfer_code, + in_out_num, + buy_task, + own_house, + company_id, + create_time, + inspect_man, + inspect_status, + phone, + + + #{typeId}, + #{maCode}, + #{preCode}, + #{maStatus}, + #{qrCode}, + #{buyPrice}, + #{maVender}, + #{outFacTime}, + #{outFacCode}, + #{assetsCode}, + #{checkMan}, + #{thisCheckTime}, + #{nextCheckTime}, + #{gpsCode}, + #{rfidCode}, + #{erpCode}, + #{transferCode}, + #{inOutNum}, + #{buyTask}, + #{ownHouse}, + #{companyId}, + now(), + #{inspectMan}, + #{inspectStatus}, + #{phone}, + UPDATE purchase_check_details - SET input_num = #{purchaseNum}, + SET input_num = #{bindNum}, input_time = now() WHERE id = #{id} @@ -66,29 +120,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" pci.arrival_time DESC -