package com.gkhy.exam.system.service.impl;
|
|
import cn.hutool.core.util.ObjectUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.gkhy.exam.common.api.CommonPage;
|
import com.gkhy.exam.common.api.CommonResult;
|
import com.gkhy.exam.common.constant.UserConstant;
|
import com.gkhy.exam.common.utils.PageUtils;
|
import com.gkhy.exam.common.utils.SecurityUtils;
|
import com.gkhy.exam.system.domain.OutsourcedUnqualified;
|
import com.gkhy.exam.system.domain.WarehousingRecord;
|
import com.gkhy.exam.system.domain.WarehousingRecordDetails;
|
import com.gkhy.exam.system.mapper.WarehousingRecordDetailsMapper;
|
import com.gkhy.exam.system.mapper.WarehousingRecordMapper;
|
import com.gkhy.exam.system.service.WarehousingRecordService;
|
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.time.LocalDateTime;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 出入库记录主表 服务实现类
|
* </p>
|
*
|
* @author hh
|
* @since 2025-08-13 09:16:37
|
*/
|
@Service
|
public class WarehousingRecordServiceImpl extends ServiceImpl<WarehousingRecordMapper, WarehousingRecord> implements WarehousingRecordService {
|
|
@Autowired
|
private WarehousingRecordMapper warehousingRecordMapper;
|
@Autowired
|
private WarehousingRecordDetailsMapper warehousingRecordDetailsMapper;
|
|
@Override
|
public CommonPage selectWarehousingRecordList(WarehousingRecord warehousingRecord) {
|
PageUtils.startPage();
|
List<WarehousingRecord> warehousingRecords = warehousingRecordMapper.selectWarehousingRecordList(warehousingRecord);
|
return CommonPage.restPage(warehousingRecords);
|
}
|
|
@Override
|
@Transactional
|
public CommonResult saveWarehousingRecord(WarehousingRecord warehousingRecord) {
|
List<WarehousingRecordDetails> warehousingRecordDetails = warehousingRecord.getWarehousingRecordDetails();
|
if (ObjectUtil.isEmpty(warehousingRecordDetails)){
|
return CommonResult.validateFailed("请选择入库记录详情");
|
}
|
int i = 0;
|
if (warehousingRecord.getId() == null){
|
warehousingRecord.setCreateTime(LocalDateTime.now());
|
warehousingRecord.setCreateBy(SecurityUtils.getUsername());
|
i = warehousingRecordMapper.insert(warehousingRecord);
|
}else {
|
|
warehousingRecord.setUpdateTime(LocalDateTime.now());
|
warehousingRecord.setUpdateBy(SecurityUtils.getUsername());
|
i = warehousingRecordMapper.updateById(warehousingRecord);
|
}
|
if (i > 0){
|
batchSave(warehousingRecord.getId(), warehousingRecordDetails,warehousingRecord.getDelDetails());
|
}
|
return CommonResult.success();
|
}
|
|
private void batchSave(Long id, List<WarehousingRecordDetails> warehousingRecordDetails,List<Long> delDetails) {
|
warehousingRecordDetails.stream().filter(item -> item.getId() == null).forEach(item -> {
|
item.setRecordId(id);
|
item.setCreateTime(LocalDateTime.now());
|
item.setCreateBy(SecurityUtils.getUsername());
|
warehousingRecordDetailsMapper.insert(item);
|
});
|
warehousingRecordDetails.stream().filter(item -> item.getId() != null).forEach(item -> {
|
item.setRecordId(id);
|
item.setUpdateTime(LocalDateTime.now());
|
item.setUpdateBy(SecurityUtils.getUsername());
|
warehousingRecordDetailsMapper.updateById(item);
|
});
|
if (delDetails != null){
|
warehousingRecordDetailsMapper.update(new WarehousingRecordDetails(),
|
new LambdaUpdateWrapper<WarehousingRecordDetails>().in(WarehousingRecordDetails::getId, delDetails)
|
.set(WarehousingRecordDetails::getDelFlag, UserConstant.DEPT_DISABLE)
|
.set(WarehousingRecordDetails::getUpdateTime, LocalDateTime.now())
|
.set(WarehousingRecordDetails::getUpdateBy, SecurityUtils.getUsername()));
|
}
|
|
}
|
|
@Override
|
public CommonResult getWarehousingRecord(Long id) {
|
WarehousingRecord warehousingRecord = warehousingRecordMapper.selectById(id);
|
List<WarehousingRecordDetails > de = warehousingRecordDetailsMapper.selectList(
|
new LambdaQueryWrapper<>(WarehousingRecordDetails.class).eq(WarehousingRecordDetails::getRecordId, id)
|
.eq(WarehousingRecordDetails::getDelFlag, UserConstant.ENABLE).orderByAsc(WarehousingRecordDetails::getCreateTime));
|
warehousingRecord.setWarehousingRecordDetails(de);
|
return CommonResult.success(warehousingRecord);
|
}
|
|
@Override
|
@Transactional
|
public CommonResult deletedWarehousingRecord(Long id) {
|
warehousingRecordMapper.update(new WarehousingRecord(),
|
new LambdaUpdateWrapper<WarehousingRecord>().eq(WarehousingRecord::getId, id)
|
.set(WarehousingRecord::getDelFlag, UserConstant.DEPT_DISABLE)
|
.set(WarehousingRecord::getUpdateTime, LocalDateTime.now())
|
.set(WarehousingRecord::getUpdateBy, SecurityUtils.getUsername()));
|
warehousingRecordDetailsMapper.update(new WarehousingRecordDetails(),
|
new LambdaUpdateWrapper<WarehousingRecordDetails>().eq(WarehousingRecordDetails::getRecordId, id)
|
.set(WarehousingRecordDetails::getDelFlag, UserConstant.DEPT_DISABLE)
|
.set(WarehousingRecordDetails::getUpdateTime, LocalDateTime.now())
|
.set(WarehousingRecordDetails::getUpdateBy, SecurityUtils.getUsername()));
|
return CommonResult.success();
|
}
|
}
|