领料流程修改
This commit is contained in:
parent
6c86a132be
commit
15798022e3
@ -124,4 +124,7 @@ public class DlRepairSo extends TenantBaseDO {
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private String licenseNumber;
|
||||
|
||||
/** 用户记录那些人可以看这条记录 */
|
||||
private String userIds;
|
||||
}
|
@ -50,6 +50,7 @@ import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0;
|
||||
|
||||
/**
|
||||
* 针对表【dl_repair_so(采购单领料单)】的数据库操作Service实现
|
||||
@ -128,7 +129,7 @@ public class DlRepairSoServiceImpl extends ServiceImpl<DlRepairSoMapper, DlRepai
|
||||
// });
|
||||
// }
|
||||
//保存供应商
|
||||
if (StringUtils.isEmpty(repairSoRespVO.getSupplierId())){
|
||||
if (StringUtils.isEmpty(repairSoRespVO.getSupplierId())) {
|
||||
//采购单中录入供应商或无供应商情况
|
||||
if (StringUtils.isNotEmpty(repairSoRespVO.getSupplierName())) {
|
||||
//没有选择直接录入的情况
|
||||
@ -152,7 +153,7 @@ public class DlRepairSoServiceImpl extends ServiceImpl<DlRepairSoMapper, DlRepai
|
||||
|
||||
// 新增主表
|
||||
// 如果是采购单,就把状态变为部分入库
|
||||
if (repairSoRespVO.getSoType() != null && repairSoRespVO.getSoType().equals("01")){
|
||||
if (repairSoRespVO.getSoType() != null && repairSoRespVO.getSoType().equals("01")) {
|
||||
repairSoRespVO.setSoStatus("02");
|
||||
}
|
||||
baseMapper.insertOrUpdate(repairSoRespVO);
|
||||
@ -218,7 +219,16 @@ public class DlRepairSoServiceImpl extends ServiceImpl<DlRepairSoMapper, DlRepai
|
||||
@Override
|
||||
@DSTransactional
|
||||
public void voidRepairSo(DlRepairSoReqVO repairSoReqVO) {
|
||||
baseMapper.updateById(repairSoReqVO);
|
||||
int update = baseMapper.update(new LambdaUpdateWrapper<DlRepairSo>()
|
||||
.set(DlRepairSo::getSoStatus, SoStatusEnum.DEPRECATED.getCode())
|
||||
.and(i ->
|
||||
i.eq(DlRepairSo::getId, repairSoReqVO.getId())
|
||||
.ne(DlRepairSo::getSoStatus, SoStatusEnum.DEPRECATED.getCode())
|
||||
.ne(DlRepairSo::getSoStatus, SoStatusEnum.PICKED.getCode())
|
||||
));
|
||||
if (update == 0) {
|
||||
throw exception0(500, "该单据已有其他人操作");
|
||||
}
|
||||
|
||||
// 下面的代码是因为这个接口还有地方在用
|
||||
// 查主表
|
||||
@ -248,11 +258,11 @@ public class DlRepairSoServiceImpl extends ServiceImpl<DlRepairSoMapper, DlRepai
|
||||
DlTwItem dlTwItem = new DlTwItem();
|
||||
dlTwItem.setId(item.getId());
|
||||
sois.stream().filter(i -> i.getGoodsId().equals(item.getWaresId())).findFirst().ifPresent(repairSoiByTwItem -> {
|
||||
if (so.getSoType().equals("02")){
|
||||
if (so.getSoType().equals("02")) {
|
||||
dlTwItem.setWaresAlreadyCount(item.getWaresAlreadyCount() - repairSoiByTwItem.getGoodsCount());
|
||||
// 不操作配件申请表子表的状态
|
||||
// dlTwItem.setWaresStatus("02");
|
||||
}else {
|
||||
} else {
|
||||
dlTwItem.setWaresAlreadyCount(item.getWaresAlreadyCount() + repairSoiByTwItem.getGoodsCount());
|
||||
}
|
||||
});
|
||||
@ -263,7 +273,7 @@ public class DlRepairSoServiceImpl extends ServiceImpl<DlRepairSoMapper, DlRepai
|
||||
RepairWares wares = new RepairWares();
|
||||
wares.setId(item.getId());
|
||||
sois.stream().filter(i -> i.getGoodsId().equals(wares.getId())).findFirst().ifPresent(repairSoiByWares -> {
|
||||
if (so.getSoType().equals("02")){
|
||||
if (so.getSoType().equals("02")) {
|
||||
wares.setStock(item.getStock().add(BigDecimal.valueOf(repairSoiByWares.getGoodsCount())));
|
||||
}
|
||||
// 采购改了入库逻辑,不能在这里扣库存
|
||||
@ -325,11 +335,22 @@ public class DlRepairSoServiceImpl extends ServiceImpl<DlRepairSoMapper, DlRepai
|
||||
@Override
|
||||
@DSTransactional
|
||||
public void confirmGet(String id, String image) {
|
||||
// 更新主表状态 为已领料
|
||||
DlRepairSo dlRepairSo = new DlRepairSo();
|
||||
dlRepairSo.setId(id);
|
||||
dlRepairSo.setSoStatus(SoStatusEnum.PICKED.getCode());
|
||||
baseMapper.updateById(dlRepairSo);
|
||||
// 更新主表状态 为已领料 需要判断是否已经领料过了
|
||||
int update = baseMapper.update(new LambdaUpdateWrapper<DlRepairSo>()
|
||||
.set(DlRepairSo::getSoStatus, SoStatusEnum.PICKED.getCode())
|
||||
.and(i -> {
|
||||
i.eq(DlRepairSo::getId, id)
|
||||
.ne(DlRepairSo::getSoStatus, SoStatusEnum.PICKED.getCode())
|
||||
.ne(DlRepairSo::getSoStatus, SoStatusEnum.DEPRECATED.getCode());
|
||||
})
|
||||
);
|
||||
if (update == 0) {
|
||||
throw exception0(500, "该领料单已有其他人操作");
|
||||
}
|
||||
// DlRepairSo dlRepairSo = new DlRepairSo();
|
||||
// dlRepairSo.setId(id);
|
||||
// dlRepairSo.setSoStatus(SoStatusEnum.PICKED.getCode());
|
||||
// baseMapper.u
|
||||
|
||||
// 查最新的子表信息
|
||||
DlRepairSo so = baseMapper.selectById(id);
|
||||
@ -469,7 +490,7 @@ public class DlRepairSoServiceImpl extends ServiceImpl<DlRepairSoMapper, DlRepai
|
||||
//入库配件按照原始配件库id分组,目的取出数量---不是用wareId,是用GoodsId,wareId是仓库
|
||||
Map<String, DlRepairSoi> wareMap = filterWare.stream().collect(Collectors.toMap(DlRepairSoi::getGoodsId, soi -> soi));
|
||||
//采购配件按照按照原始配件库id分组,目的取出价格---不是用wareId,是用GoodsId,wareId是仓库
|
||||
Map<String, DlRepairSoi> itemsMap = pmsWaresList.stream().collect(Collectors.toMap(DlRepairSoi::getGoodsId,soi -> soi));
|
||||
Map<String, DlRepairSoi> itemsMap = pmsWaresList.stream().collect(Collectors.toMap(DlRepairSoi::getGoodsId, soi -> soi));
|
||||
waresList.forEach(item -> {
|
||||
DlRepairSoi filterSoi = wareMap.get(item.getId());
|
||||
DlRepairSoi itemSoi = itemsMap.get(item.getId());
|
||||
@ -526,7 +547,7 @@ public class DlRepairSoServiceImpl extends ServiceImpl<DlRepairSoMapper, DlRepai
|
||||
List<AppWaresGroupVO> waresGroupList = new ArrayList<>();
|
||||
if (CollectionUtil.isNotEmpty(dlRepairSoiRespVOList)) {
|
||||
//先过滤出itenTypeId为null或空,或者itemTypeName为null或空的,为单独一个组
|
||||
List<DlRepairSoiRespVO> nullList = dlRepairSoiRespVOList.stream().filter(item-> StringUtils.isEmpty(item.getTypeId()) || StringUtils.isEmpty(item.getTypeName())).collect(Collectors.toList());
|
||||
List<DlRepairSoiRespVO> nullList = dlRepairSoiRespVOList.stream().filter(item -> StringUtils.isEmpty(item.getTypeId()) || StringUtils.isEmpty(item.getTypeName())).collect(Collectors.toList());
|
||||
if (CollectionUtil.isNotEmpty(nullList)) {
|
||||
AppWaresGroupVO waresGroupVO = new AppWaresGroupVO();
|
||||
waresGroupVO.setSoiRespVOList(nullList);
|
||||
@ -535,8 +556,8 @@ public class DlRepairSoServiceImpl extends ServiceImpl<DlRepairSoMapper, DlRepai
|
||||
waresGroupList.add(waresGroupVO);
|
||||
}
|
||||
//过滤出有分类的进行分组
|
||||
Map<String,List<DlRepairSoiRespVO>> groupListMap = dlRepairSoiRespVOList.stream().filter(item->StringUtils.isNotEmpty(item.getTypeId()) && StringUtils.isNotEmpty(item.getTypeName())).collect(Collectors.groupingBy(DlRepairSoiRespVO::getTypeId));
|
||||
for (String key:groupListMap.keySet()){
|
||||
Map<String, List<DlRepairSoiRespVO>> groupListMap = dlRepairSoiRespVOList.stream().filter(item -> StringUtils.isNotEmpty(item.getTypeId()) && StringUtils.isNotEmpty(item.getTypeName())).collect(Collectors.groupingBy(DlRepairSoiRespVO::getTypeId));
|
||||
for (String key : groupListMap.keySet()) {
|
||||
AppWaresGroupVO waresGroupVO = new AppWaresGroupVO();
|
||||
waresGroupVO.setSoiRespVOList(groupListMap.get(key));
|
||||
waresGroupVO.setGroupName(groupListMap.get(key).get(0).getTypeName());
|
||||
|
@ -26,6 +26,7 @@
|
||||
<result property="updater" column="updater" jdbcType="VARCHAR"/>
|
||||
<result property="twId" column="tw_id" />
|
||||
<result property="licenseNumber" column="license_number" />
|
||||
<result property="userIds" column="user_ids" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_SQL">
|
||||
@ -50,7 +51,8 @@
|
||||
so.update_time,
|
||||
so.updater,
|
||||
so.tw_id,
|
||||
dtw.license_number
|
||||
dtw.license_number,
|
||||
so.user_ids
|
||||
from dl_repair_so so
|
||||
LEFT JOIN dl_ticket_wares dtw ON so.tw_id = dtw.id
|
||||
where so.deleted = '0'
|
||||
@ -83,7 +85,7 @@
|
||||
and (so.so_no like concat('%', #{map.soNo}, '%') or so.remark like concat('%', #{map.soNo}, '%'))
|
||||
</if>
|
||||
<if test="map.userId != null and map.userId != ''">
|
||||
and (so.user_id = #{map.userId})
|
||||
and (so.user_id = #{map.userId} or find_in_set(#{map.userId}, so.user_ids) > 0)
|
||||
</if>
|
||||
<if test="map.mainId != null and map.mainId != ''">
|
||||
and so.main_id = #{map.mainId}
|
||||
|
Loading…
Reference in New Issue
Block a user