分堆打包管理Sonar代码检查问题修改

This commit is contained in:
liuzhaotian
2024-10-23 17:06:22 +08:00
parent 603bd88469
commit d77c6964db
2 changed files with 138 additions and 170 deletions
@@ -36,6 +36,7 @@ import com.cf.imes.module.system.enums.ErrorCodeConstants;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.aop.framework.AopContext;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
@@ -47,7 +48,6 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.cf.imes.framework.common.util.string.SearchUtil.insertSeparator;
@@ -56,7 +56,6 @@ import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
@Service
@Validated
@Transactional
public class PackServiceImpl implements PackService {
@Resource
@@ -101,104 +100,21 @@ public class PackServiceImpl implements PackService {
List<Long> orderIds = new ArrayList<>();
IPage<PackRespVO> packRespVOS = new PageDTO<>();
if (pageReqVO.getIsUp() != null) {
OrderDO order = ordersMapper.selectById(pageReqVO.getOrderId());
// 判断是否为空
AssertUtils.notEmpty(order,ORDER_DATE_ERROR);
List<PackRespVO> packRespVOList = pageReqVO.getIsUp() ?
ordersMapper.selectOrderIds(order.getCreateTime().toString(), getUserOrganId(), order.getId()) :
ordersMapper.selectOrderIdsFalse(order.getCreateTime().toString(), getUserOrganId(), order.getId());
if (packRespVOList.isEmpty()) {
throw exception(NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE, pageReqVO.getIsUp() ? "" : "最后");
}
packRespVOS.setRecords(packRespVOList);
packRespVOS.setTotal(1);
orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList());
return handleIsUpCase(pageReqVO, orderIds,pageReqVO.getIsUp());
} else {
pageReqVO.setCustomer(insertSeparator(pageReqVO.getCustomer()));
pageReqVO.setCustomOrderNo(insertSeparator(pageReqVO.getCustomOrderNo()));
pageReqVO.setAddress(insertSeparator(pageReqVO.getAddress()));
// 查询查询分页
packRespVOS = ordersMapper.selectOrderIdList(page, pageReqVO, getUserOrganId());
if (CollUtil.isEmpty(packRespVOS.getRecords())) {
return new PageResult<>();
}
orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList());
if (orderIds.isEmpty()) {
return null;
}
}
// 查询板材的总量
List<PackRespVO> packRespVOList = orderPlateMapper.selectPlateNum(orderIds, getUserOrganId());
AssertUtils.notEmpty(packRespVOList, ErrorCodeConstants.ORDER_PLATE_ERROR);
for (PackRespVO packRespVO : packRespVOList) {
packRespVO.setTotalPieceCount((long) packRespVO.getPlateIdList().size());
packRespVO.setPlateIdList(null);
}
// 查询当前生产的包裹数量
List<PackRespVO> respVOS = orderPackageMapper.selectPackPage(orderIds, getUserOrganId());
for (PackRespVO packRespVO : respVOS) {
packRespVO.setPackCount((long) packRespVO.getPackIdList().size());
packRespVO.setPackIdList(null);
}
// 查询当前生产单已经打包的板材数量
List<PackRespVO> plateNum = orderPackageMapper.selectPackPieceCount(orderIds, getUserOrganId());
for (PackRespVO packRespVO : plateNum) {
packRespVO.setPackPieceCount((long) packRespVO.getPlateIdList().size());
packRespVO.setPlateIdList(null);
}
for (PackRespVO record : packRespVOS.getRecords()) {
// 板材总数
record.setTotalPieceCount(packRespVOList.stream().filter(f -> Objects.equals(f.getId(), record.getId())).mapToLong(PackRespVO::getTotalPieceCount).sum());
// 已打包数
record.setPackCount(respVOS.stream().filter(f -> Objects.equals(f.getId(), record.getId())).mapToLong(PackRespVO::getPackCount).sum());
// 已打包片数
record.setPackPieceCount(plateNum.stream().filter(f -> Objects.equals(f.getId(), record.getId())).mapToLong(PackRespVO::getPackPieceCount).sum());
// 待处理量
record.setPendingNum(record.getTotalPieceCount() - record.getPackPieceCount());
return handleNormalCase(pageReqVO, orderIds, page);
}
return new PageResult<>(packRespVOS.getRecords(), packRespVOS.getTotal());
}
// 查看生产订单对应的板材信息
@Override
public List<PlateDetailsRespVO> getOrderPlateList(Long orderId) {
@@ -207,20 +123,20 @@ public class PackServiceImpl implements PackService {
List<PlateDetailsRespVO> plateDetailsRespVOS = orderPlateMapper.selectOrderNoPackPlateList(orderId, getUserOrganId());
if(plateDetailsRespVOS.isEmpty()){
return null;
return new ArrayList<>();
}
for (PlateDetailsRespVO plateDetailsRespVO : plateDetailsRespVOS) {
String name = "";
StringBuilder name = new StringBuilder();
if (!plateDetailsRespVO.getProcessGroupNameList().isEmpty()) {
for (GroupNameList groupNameList : plateDetailsRespVO.getProcessGroupNameList()) {
// 去除最后的逗号
name += groupNameList.getName() + ",";
name.append(groupNameList.getName()).append(",");
}
name = name.substring(0, name.length() - 1);
name = new StringBuilder(name.substring(0, name.length() - 1));
}
plateDetailsRespVO.setProcessGroup(name);
plateDetailsRespVO.setProcessGroup(name.toString());
}
return plateDetailsRespVOS;
@@ -238,7 +154,7 @@ public class PackServiceImpl implements PackService {
if (plateDetailsRespVOS.isEmpty()) {
return null;
return new ArrayList<>();
}
List<Long> packageIds = plateDetailsRespVOS.stream().map(PlateDetailsRespVO::getPackageId).distinct().toList();
@@ -249,15 +165,15 @@ public class PackServiceImpl implements PackService {
for (PlateDetailsRespVO plateDetailsRespVO : plateDetailsRespVOS) {
String name = "";
StringBuilder name = new StringBuilder();
if (!plateDetailsRespVO.getProcessGroupNameList().isEmpty()) {
for (GroupNameList groupNameList : plateDetailsRespVO.getProcessGroupNameList()) {
// 去除最后的逗号
name += groupNameList.getName() + ",";
name.append(groupNameList.getName()).append(",");
}
name = name.substring(0, name.length() - 1);
name = new StringBuilder(name.substring(0, name.length() - 1));
}
plateDetailsRespVO.setProcessGroup(name);
plateDetailsRespVO.setProcessGroup(name.toString());
plateDetailsRespVO.setPackageNo(orderPackageDOS.stream()
.filter(m -> m.getId().equals(plateDetailsRespVO.getPackageId()))
@@ -284,18 +200,18 @@ public class PackServiceImpl implements PackService {
OrderDO orderDO = ordersMapper.selectById(reqVO.getOrderId());
// AssertUtils.notEmpty(orderPackageVOS,orderDO,ORDER_PLATE_ERROR);
AssertUtils.notEmpty(orderDO,ORDER_DATE_ERROR);
return orderPackageVOS.stream().peek(m -> {
orderPackageVOS.forEach(m -> {
m.setCustomOrderNo(orderDO.getCustomOrderNo());
m.setCustomer(orderDO.getCustomer());
m.setAddress(orderDO.getAddress());
m.setDealer(orderDO.getDealer());
m.setOrderRemark(orderDO.getRemark());
}
).toList();
);
return orderPackageVOS;
}
@@ -353,20 +269,7 @@ public class PackServiceImpl implements PackService {
public List<OrderPartsRespVO> getPartsList(OrderPartsReqVO reqVO) {
List<OrderPartsRespVO> orderPartsRespVOS = orderPartsMapper.selectPartsList(reqVO.getOrderId(), getUserOrganId());
return orderPartsRespVOS;
// PageDTO<OrderPartsRespVO> page = new PageDTO<>(reqVO.getPageNo(), reqVO.getPageSize());
//
// IPage<OrderPartsRespVO> orderPartsRespVOS = orderPartsMapper.selectPartsList(page,reqVO.getOrderId(),getUserOrganId());
//
// if (CollectionUtil.isEmpty(orderPartsRespVOS.getRecords())) {
// return new PageResult<>();
// }
//
// return new PageResult<>(orderPartsRespVOS.getRecords(), orderPartsRespVOS.getTotal());
return orderPartsMapper.selectPartsList(reqVO.getOrderId(), getUserOrganId());
}
@@ -395,7 +298,8 @@ public class PackServiceImpl implements PackService {
// 判断当前生产单的板材和配件是否已全部打包且当前生产单的包裹已全部封包
if (validateOrderPack(reqVO.getOrderId())) {
updateOrderStatus(reqVO.getOrderId());
PackServiceImpl p = (PackServiceImpl)AopContext.currentProxy();
p.updateOrderStatus(reqVO.getOrderId());
}
@@ -449,7 +353,8 @@ public class PackServiceImpl implements PackService {
// 判断当前生产单的板材和配件是否已全部打包且当前生产单的包裹已全部封包
if (validateOrderPack(reqVO.getOrderId())) {
updateOrderStatus(reqVO.getOrderId());
PackServiceImpl p = (PackServiceImpl)AopContext.currentProxy();
p.updateOrderStatus(reqVO.getOrderId());
}
@@ -511,7 +416,9 @@ public class PackServiceImpl implements PackService {
}
if (validateOrderPack(packageVO.getOrderId())) {
updateOrderStatus(packageVO.getOrderId());
PackServiceImpl p = (PackServiceImpl)AopContext.currentProxy();
p.updateOrderStatus(packageVO.getOrderId());
}
return typeConversion(orderPackageDO);
@@ -565,7 +472,8 @@ public class PackServiceImpl implements PackService {
if (validateOrderPack(packageVO.getOrderId())) {
// 修改生产单的打包状态
updateOrderStatus(packageVO.getOrderId());
PackServiceImpl p = (PackServiceImpl)AopContext.currentProxy();
p.updateOrderStatus(packageVO.getOrderId());
}
@@ -620,7 +528,7 @@ public class PackServiceImpl implements PackService {
List<OrderPackageDO> orderPackageDOS = orderPackageMapper.selectPackStatus(orderId, getUserOrganId());
return orderPackageDOS.stream().map(this::typeConversion).collect(Collectors.toList());
return orderPackageDOS.stream().map(this::typeConversion).toList();
}
@@ -1004,4 +912,112 @@ public class PackServiceImpl implements PackService {
}
// 打包翻页查询
private PageResult<PackRespVO> handleIsUpCase(PackPageReqVO pageReqVO, List<Long> orderIds,Boolean isUp) {
IPage<PackRespVO> packRespVOS = new PageDTO<>();
OrderDO order = ordersMapper.selectById(pageReqVO.getOrderId());
AssertUtils.notEmpty(order, ORDER_DATE_ERROR);
List<PackRespVO> packRespVOList = Boolean.TRUE.equals(isUp) ?
ordersMapper.selectOrderIds(order.getCreateTime().toString(), getUserOrganId(), order.getId()) :
ordersMapper.selectOrderIdsFalse(order.getCreateTime().toString(), getUserOrganId(), order.getId());
if (packRespVOList.isEmpty()) {
throw exception(NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE, Boolean.TRUE.equals(isUp) ? "" : "最后");
}
packRespVOS.setRecords(packRespVOList);
packRespVOS.setTotal(1);
orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList());
return buildPageResult(orderIds,packRespVOS);
}
// 打包分页查询
private PageResult<PackRespVO> handleNormalCase(PackPageReqVO pageReqVO, List<Long> orderIds, PageDTO<PackRespVO> page) {
pageReqVO.setCustomer(insertSeparator(pageReqVO.getCustomer()));
pageReqVO.setCustomOrderNo(insertSeparator(pageReqVO.getCustomOrderNo()));
pageReqVO.setAddress(insertSeparator(pageReqVO.getAddress()));
// 查询查询分页
IPage<PackRespVO> packRespVOS = ordersMapper.selectOrderIdList(page, pageReqVO, getUserOrganId());
if (CollUtil.isEmpty(packRespVOS.getRecords())) {
return new PageResult<>();
}
orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList());
return buildPageResult(orderIds, packRespVOS);
}
// 打包分页页面显示数据查询
private PageResult<PackRespVO> buildPageResult(List<Long> orderIds,IPage<PackRespVO> packRespVOS){
if(orderIds.isEmpty()){
return new PageResult<>();
}
// 查询板材的总量
List<PackRespVO> packRespVOList = orderPlateMapper.selectPlateNum(orderIds, getUserOrganId());
AssertUtils.notEmpty(packRespVOList, ErrorCodeConstants.ORDER_PLATE_ERROR);
for (PackRespVO packRespVO : packRespVOList) {
packRespVO.setTotalPieceCount((long) packRespVO.getPlateIdList().size());
packRespVO.setPlateIdList(null);
}
// 查询当前生产的包裹数量
List<PackRespVO> respVOS = orderPackageMapper.selectPackPage(orderIds, getUserOrganId());
for (PackRespVO packRespVO : respVOS) {
packRespVO.setPackCount((long) packRespVO.getPackIdList().size());
packRespVO.setPackIdList(null);
}
// 查询当前生产单已经打包的板材数量
List<PackRespVO> plateNum = orderPackageMapper.selectPackPieceCount(orderIds, getUserOrganId());
for (PackRespVO packRespVO : plateNum) {
packRespVO.setPackPieceCount((long) packRespVO.getPlateIdList().size());
packRespVO.setPlateIdList(null);
}
for (PackRespVO vosRecords : packRespVOS.getRecords()) {
// 板材总数
vosRecords.setTotalPieceCount(packRespVOList.stream().filter(f -> Objects.equals(f.getId(), vosRecords.getId())).mapToLong(PackRespVO::getTotalPieceCount).sum());
// 已打包数
vosRecords.setPackCount(respVOS.stream().filter(f -> Objects.equals(f.getId(), vosRecords.getId())).mapToLong(PackRespVO::getPackCount).sum());
// 已打包片数
vosRecords.setPackPieceCount(plateNum.stream().filter(f -> Objects.equals(f.getId(), vosRecords.getId())).mapToLong(PackRespVO::getPackPieceCount).sum());
// 待处理量
vosRecords.setPendingNum(vosRecords.getTotalPieceCount() - vosRecords.getPackPieceCount());
}
return new PageResult<>(packRespVOS.getRecords(), packRespVOS.getTotal());
}
}