新购绑定

This commit is contained in:
mashuai 2024-10-23 14:19:06 +08:00
parent 2c3ee99151
commit 57c582533e
2 changed files with 67 additions and 16 deletions

View File

@ -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) {

View File

@ -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<PurchaseVo> list) {
for (PurchaseVo purchaseVo : list) {
try {
AjaxResult ajaxResult = remoteUserService.getInfo(Long.parseLong(purchaseVo.getCreateBy()), SecurityConstants.INNER);
if (ajaxResult.isSuccess()) {
// ajaxResult.get("data") 返回的是 LinkedHashMap
LinkedHashMap<String, Object> rawDataList = (LinkedHashMap<String, Object>) 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<LinkedHashMap>
List<LinkedHashMap> rawData = (List<LinkedHashMap>) result.get("data");
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
// rawData 转换为 SysDictData 列表
List<SysDictData> dataList = rawData.stream()
.map(rawDatum -> mapper.convertValue(rawDatum, SysDictData.class))
.collect(Collectors.toList());
// 使用 Map 存储字典数据以提高查找速度
Map<String, String> 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<String, Object> rawDataList = (LinkedHashMap<String, Object>) 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<PurchaseVo> getDetails(PurchaseDto dto) {
return purchaseBindMapper.getDetails(dto);
List<PurchaseVo> list = purchaseBindMapper.getDetails(dto);
extractedDict(list);
return list;
}
private void extractedDict(List<PurchaseVo> list) {
try {
AjaxResult ajaxResult = remoteDictDataService.dictType("purchase_task_status", SecurityConstants.INNER);
if (ajaxResult.isSuccess()) {
// 假设 ajaxResult.get("data") 返回的是 List<LinkedHashMap>
List<LinkedHashMap> rawData = (List<LinkedHashMap>) ajaxResult.get("data");
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
// rawData 转换为 SysDictData 列表
List<SysDictData> dataList = rawData.stream()
.map(rawDatum -> objectMapper.convertValue(rawDatum, SysDictData.class))
.collect(Collectors.toList());
// 使用 Map 存储字典数据以提高查找速度
Map<String, String> 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<PurchaseVo> list = purchaseBindMapper.selectPurchaseCheckInfoById(dto);
List<PurchaseVo> list = purchaseBindMapper.selectPurchaseCheckInfoById(purchaseDto);
Map<Integer, List<Integer>> groupedByIdStatus = list.stream()
.collect(Collectors.groupingBy(
PurchaseVo::getTaskId,