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