| | |
| | | import com.vincent.rsf.framework.exception.CoolException; |
| | | import com.vincent.rsf.server.manager.controller.params.IsptItemsParams; |
| | | import com.vincent.rsf.server.manager.controller.params.QlyInspectAndItem; |
| | | import com.vincent.rsf.server.manager.entity.QlyInspect; |
| | | import com.vincent.rsf.server.manager.mapper.QlyIsptItemMapper; |
| | | import com.vincent.rsf.server.manager.entity.QlyIsptItem; |
| | | import com.vincent.rsf.server.manager.service.QlyInspectService; |
| | | import com.vincent.rsf.server.manager.service.QlyIsptItemService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service("qlyIsptItemService") |
| | | public class QlyIsptItemServiceImpl extends ServiceImpl<QlyIsptItemMapper, QlyIsptItem> implements QlyIsptItemService { |
| | | |
| | | @Autowired |
| | | private QlyInspectService qlyInspectService; |
| | | |
| | | /** |
| | | * @author Ryan |
| | |
| | | * @time 2025/4/1 09:40 |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean batchUpdate(IsptItemsParams params) { |
| | | if (Objects.isNull(params.getIds()) || params.getIds().isEmpty()) { |
| | | if (Objects.isNull(params.getIsptItem()) || params.getIsptItem().isEmpty()) { |
| | | throw new CoolException("ID不能为空!!"); |
| | | } |
| | | QlyIsptItem isptItem = params.getIsptItem(); |
| | | if (Objects.isNull(isptItem)) { |
| | | throw new CoolException("参数不能为空!"); |
| | | List<QlyIsptItem> isptItem = params.getIsptItem(); |
| | | List<Long> list = isptItem.stream().map(QlyIsptItem::getId).collect(Collectors.toList()); |
| | | if (params.getType().equals("2") || params.getType().equals("1")) { |
| | | if (!this.update(new LambdaUpdateWrapper<QlyIsptItem>() |
| | | .set(QlyIsptItem::getIsptResult, params.getType()) |
| | | .in(QlyIsptItem::getId, list))) { |
| | | throw new CoolException("修改失败!!"); |
| | | } |
| | | } else { |
| | | if (!this.updateBatchById(isptItem)) { |
| | | throw new CoolException("明细修改失败"); |
| | | } |
| | | } |
| | | |
| | | return this.update(new LambdaUpdateWrapper<QlyIsptItem>() |
| | | .in(QlyIsptItem::getId, params.getIds()) |
| | | .set(!Objects.isNull(isptItem.getIsptStatus()), QlyIsptItem::getIsptStatus, !Objects.isNull(isptItem.getIsptStatus()) ? isptItem.getIsptStatus() : "0") |
| | | .set(!Objects.isNull(isptItem.getDisQty()), QlyIsptItem::getDisQty, !Objects.isNull(isptItem.getDisQty()) ? isptItem.getDisQty() : 0) |
| | | .set(!Objects.isNull(isptItem.getDlyQty()), QlyIsptItem::getDlyQty, !Objects.isNull(isptItem.getDlyQty()) ? isptItem.getDlyQty() : 0) |
| | | .set(!Objects.isNull(isptItem.getIsptResult()), QlyIsptItem::getIsptResult, !Objects.isNull(isptItem.getIsptResult()) ? isptItem.getIsptResult() : "0")); |
| | | List<QlyIsptItem> isptItems = this.list(new LambdaQueryWrapper<QlyIsptItem>().in(QlyIsptItem::getId, list)); |
| | | if (isptItems.isEmpty()) { |
| | | throw new CoolException("数据错误:明细不存在!!"); |
| | | } |
| | | Map<Long, List<QlyIsptItem>> listMap = isptItems.stream().collect(Collectors.groupingBy(QlyIsptItem::getIspectId)); |
| | | for (Long key : listMap.keySet()) { |
| | | QlyInspect inspect = qlyInspectService.getById(key); |
| | | List<QlyIsptItem> items = listMap.get(key); |
| | | Double safeQty = items.stream().mapToDouble(QlyIsptItem::getSafeQty).sum(); |
| | | Double rcptQty = items.stream().mapToDouble(QlyIsptItem::getSafeQty).sum(); |
| | | Double disQty = items.stream().mapToDouble(QlyIsptItem::getDisQty).sum(); |
| | | Double qlyQty = safeQty + disQty; |
| | | //安全数量,质检数量 |
| | | inspect.setSafeQty(safeQty) |
| | | .setIsptQty(qlyQty); |
| | | if (Double.compare(disQty, 0) > 0) { |
| | | inspect.setIsptResult(Short.parseShort("4")); |
| | | } |
| | | if (Double.compare(safeQty, rcptQty) == 0) { |
| | | inspect.setIsptResult(Short.parseShort("1")); |
| | | } |
| | | if (!qlyInspectService.updateById(inspect)) { |
| | | throw new CoolException("质检数量修改失败!!"); |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | } |