申请配件单、审核配件单逻辑改造完成

This commit is contained in:
Vinjor 2024-12-04 09:48:07 +08:00
parent cd258a589c
commit 4797d5d1c9
4 changed files with 85 additions and 69 deletions

View File

@ -62,7 +62,7 @@ public class DlTicketWaresController {
}
/**
* 新增修改
* 维修工新增配件申请单
*
* @author 小李
* @date 12:14 2024/10/15

View File

@ -2,17 +2,13 @@ package cn.iocoder.yudao.module.tickets.entity;
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* 工单配件申请/退回子
* 工单配件申请单配件明细表
*
* @author 小李
* @date 11:49 2024/10/15
@ -43,6 +39,12 @@ public class DlTwItem extends TenantBaseDO {
/** 配件状态:使用字典yes_no1通过0没通过 */
private String waresStatus;
/** 配件添加人id */
private Long addUserId;
/** 配件添加人姓名 */
private String addUserName;
/** 是否仓管添加的0否|1是 */
private Boolean ifHouseAdd;
/** 审核人IDsystem_users的ID */
private Long handleId;

View File

@ -223,6 +223,10 @@ public class DlTicketWaresServiceImpl extends ServiceImpl<DlTicketWaresMapper, D
twItem.setTwId(ticketWares.getId());
twItem.setWaresStatus("");
twItem.setWaresAlreadyCount(0);
//非仓管添加
twItem.setIfHouseAdd(false);
twItem.setAddUserId(customerMain.getUserId());
twItem.setAddUserName(customerMain.getCusName());
return twItem;
}).collect(Collectors.toList());
if (CollectionUtil.isEmpty(list)) {
@ -289,7 +293,6 @@ public class DlTicketWaresServiceImpl extends ServiceImpl<DlTicketWaresMapper, D
List<DlTwItem> twItems = twItemService.listByIds(twItemIds);
// 取所有的配件信息
List<String> wareIds = twItems.stream().map(DlTwItem::getWaresId).collect(Collectors.toList());
List<RepairWares> repairWares = repairWaresService.listByIds(wareIds);
// 更新配件申请表子表
List<DlTwItem> newTwitems = twItemIds.stream().map(item -> {
DlTwItem twItem = new DlTwItem();
@ -307,68 +310,70 @@ public class DlTicketWaresServiceImpl extends ServiceImpl<DlTicketWaresMapper, D
if (isStatus) {
baseMapper.update(new LambdaUpdateWrapper<DlTicketWares>().set(DlTicketWares::getStatus, "02").eq(DlTicketWares::getId, respVO.getId()));
}
// 更新维修工单子表
if (status.equals("01")) {
DlTicketWares ticketWares = baseMapper.selectById(respVO.getId());
List<DlRepairTitem> titems = repairTitemService.list(new LambdaQueryWrapper<DlRepairTitem>().and(i -> {
i.in(DlRepairTitem::getTicketId, ticketWares.getTicketId())
.eq(DlRepairTitem::getItemType, "02");
}));
// 要修改的
List<DlRepairTitem> updateTitems = titems.stream().filter(item -> wareIds.contains(item.getPartId())).collect(Collectors.toList());
// 修改
if (CollectionUtil.isNotEmpty(updateTitems)) {
List<DlRepairTitem> newTitems = updateTitems.stream().map(item -> {
DlRepairTitem titem = new DlRepairTitem();
titem.setId(item.getId());
DlTwItem twItem = allTwitems.stream().filter(i -> i.getWaresId().equals(item.getPartId())).findFirst().orElse(null);
if (twItem != null) {
titem.setItemCount(item.getItemCount() + twItem.getWaresCount());
titem.setItemMoney(item.getItemPrice().multiply(BigDecimal.valueOf(titem.getItemCount())).multiply(item.getItemDiscount()));
}
return titem;
}).collect(Collectors.toList());
repairTitemService.updateBatchById(newTitems);
}
// 要新增的
if (updateTitems.size() < wareIds.size()) {
List<String> titemIds = updateTitems.stream().map(DlRepairTitem::getPartId).collect(Collectors.toList());
List<RepairWares> newWares = repairWares.stream().filter(item -> !titemIds.contains(item.getId())).collect(Collectors.toList());
// 新增
List<DlRepairTitem> newTitems = newWares.stream().map(item -> {
DlRepairTitem titem = new DlRepairTitem();
titem.setTicketId(ticketWares.getTicketId());
titem.setItemType("02");
titem.setItemName(item.getName());
DlTwItem twItem = allTwitems.stream().filter(i -> i.getWaresId().equals(item.getId())).findFirst().orElse(null);
titem.setItemCount(twItem != null ? twItem.getWaresCount() : 0);
titem.setItemUnit(item.getUnit());
titem.setItemPrice((item.getPrice() != null) ? item.getPrice() : BigDecimal.ZERO);
titem.setItemDiscount(BigDecimal.ONE);
titem.setItemMoney(titem.getItemPrice().multiply(BigDecimal.valueOf(titem.getItemCount())).multiply(titem.getItemDiscount()));
titem.setRepairIds(String.valueOf(ticketWares.getRepairId()));
titem.setRepairNames(ticketWares.getRepairName());
titem.setSaleId(ticketWares.getAdviserId());
titem.setSaleName(ticketWares.getAdviserName());
titem.setPartId(item.getId());
titem.setItemStatus("04");
titem.setRemark(twItem != null ? twItem.getRemark() : null);
return titem;
}).collect(Collectors.toList());
repairTitemService.saveBatch(newTitems);
}
// 更新维修工单主表
boolean flag = repairTicketsService.computeTicket(ticketWares.getTicketId());
if (!flag) {
throw exception0(500, "重新计算工单错误");
}
// 发送通过的消息给仓库
RoleReqDTO roleInfo = roleApi.getRoleInfo(RepairRoleEnum.WAREHOUSE.getCode());
List<Long> ids = permissionApi.getUserIdByRoleId(roleInfo.getId());
if (CollectionUtil.isNotEmpty(ids)) {
ids.forEach(id -> repairWorkerService.sentMessage(id, "您有新的配件申请单需要处理"));
}
}
/* 审核配件申请单暂时不操作工单子表 */
// // 更新维修工单子表
// List<RepairWares> repairWares = repairWaresService.listByIds(wareIds);
// if (status.equals("01")) {
// DlTicketWares ticketWares = baseMapper.selectById(respVO.getId());
// List<DlRepairTitem> titems = repairTitemService.list(new LambdaQueryWrapper<DlRepairTitem>().and(i -> {
// i.in(DlRepairTitem::getTicketId, ticketWares.getTicketId())
// .eq(DlRepairTitem::getItemType, "02");
// }));
// // 要修改的
// List<DlRepairTitem> updateTitems = titems.stream().filter(item -> wareIds.contains(item.getPartId())).collect(Collectors.toList());
// // 修改
// if (CollectionUtil.isNotEmpty(updateTitems)) {
// List<DlRepairTitem> newTitems = updateTitems.stream().map(item -> {
// DlRepairTitem titem = new DlRepairTitem();
// titem.setId(item.getId());
// DlTwItem twItem = allTwitems.stream().filter(i -> i.getWaresId().equals(item.getPartId())).findFirst().orElse(null);
// if (twItem != null) {
// titem.setItemCount(item.getItemCount() + twItem.getWaresCount());
// titem.setItemMoney(item.getItemPrice().multiply(BigDecimal.valueOf(titem.getItemCount())).multiply(item.getItemDiscount()));
// }
// return titem;
// }).collect(Collectors.toList());
// repairTitemService.updateBatchById(newTitems);
// }
// // 要新增的
// if (updateTitems.size() < wareIds.size()) {
// List<String> titemIds = updateTitems.stream().map(DlRepairTitem::getPartId).collect(Collectors.toList());
// List<RepairWares> newWares = repairWares.stream().filter(item -> !titemIds.contains(item.getId())).collect(Collectors.toList());
// // 新增
// List<DlRepairTitem> newTitems = newWares.stream().map(item -> {
// DlRepairTitem titem = new DlRepairTitem();
// titem.setTicketId(ticketWares.getTicketId());
// titem.setItemType("02");
// titem.setItemName(item.getName());
// DlTwItem twItem = allTwitems.stream().filter(i -> i.getWaresId().equals(item.getId())).findFirst().orElse(null);
// titem.setItemCount(twItem != null ? twItem.getWaresCount() : 0);
// titem.setItemUnit(item.getUnit());
// titem.setItemPrice((item.getPrice() != null) ? item.getPrice() : BigDecimal.ZERO);
// titem.setItemDiscount(BigDecimal.ONE);
// titem.setItemMoney(titem.getItemPrice().multiply(BigDecimal.valueOf(titem.getItemCount())).multiply(titem.getItemDiscount()));
// titem.setRepairIds(String.valueOf(ticketWares.getRepairId()));
// titem.setRepairNames(ticketWares.getRepairName());
// titem.setSaleId(ticketWares.getAdviserId());
// titem.setSaleName(ticketWares.getAdviserName());
// titem.setPartId(item.getId());
// titem.setItemStatus("04");
// titem.setRemark(twItem != null ? twItem.getRemark() : null);
// return titem;
// }).collect(Collectors.toList());
// repairTitemService.saveBatch(newTitems);
// }
// // 更新维修工单主表
// boolean flag = repairTicketsService.computeTicket(ticketWares.getTicketId());
// if (!flag) {
// throw exception0(500, "重新计算工单错误");
// }
// // 发送通过的消息给仓库
// RoleReqDTO roleInfo = roleApi.getRoleInfo(RepairRoleEnum.WAREHOUSE.getCode());
// List<Long> ids = permissionApi.getUserIdByRoleId(roleInfo.getId());
// if (CollectionUtil.isNotEmpty(ids)) {
// ids.forEach(id -> repairWorkerService.sentMessage(id, "您有新的配件申请单需要处理"));
// }
// }
// 通知维修工
DlTicketWares ticketWares = baseMapper.selectById(respVO.getId());
repairWorkerService.sentMessage(ticketWares.getRepairId(), "您有新的配件申请单" + (status.equals("01") ? "审批通过了" : "被驳回了"));

View File

@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.tickets.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.project.entity.RepairWares;
import cn.iocoder.yudao.module.project.service.RepairWaresService;
import cn.iocoder.yudao.module.system.api.dict.DictDataApi;
@ -101,6 +103,7 @@ public class DlTwItemServiceImpl extends ServiceImpl<DlTwItemMapper, DlTwItem>
**/
@Override
public void addTwi(AddTwiVO addTwiVO){
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
// 构建子表数据
if (CollectionUtil.isEmpty(addTwiVO.getItems())){
throw exception0(500, "请选择配件");
@ -125,6 +128,9 @@ public class DlTwItemServiceImpl extends ServiceImpl<DlTwItemMapper, DlTwItem>
twItem.setWaresId(item.getId());
twItem.setWaresName(item.getName());
twItem.setWaresCount(item.getCount());
twItem.setAddUserId(loginUser.getId());
twItem.setAddUserName(loginUser.getInfo().get("nickname"));
twItem.setIfHouseAdd(false);
twItem.setWaresAlreadyCount(0);
twItem.setWaresStatus("");
twItem.setRemark(item.getRemark());
@ -152,6 +158,9 @@ public class DlTwItemServiceImpl extends ServiceImpl<DlTwItemMapper, DlTwItem>
twItem.setWaresId(item.getId());
twItem.setWaresName(item.getName());
twItem.setWaresCount(item.getCount());
twItem.setAddUserId(loginUser.getId());
twItem.setAddUserName(loginUser.getInfo().get("nickname"));
twItem.setIfHouseAdd(false);
twItem.setWaresAlreadyCount(0);
twItem.setWaresStatus("");
twItem.setRemark(item.getRemark());