入库明细 添加操作记录
parent
104d17606a
commit
27fc77b6d1
|
|
@ -2,6 +2,7 @@ package net.lab1024.sa.admin.module.business.wms.receive;
|
|||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.lab1024.sa.admin.module.business.wms.base.item.domain.entity.ItemEntity;
|
||||
import net.lab1024.sa.admin.module.business.wms.base.item.service.ItemQueryService;
|
||||
import net.lab1024.sa.admin.module.business.wms.base.location.dao.LocationDao;
|
||||
|
|
@ -42,6 +43,8 @@ import net.lab1024.sa.base.common.code.UserErrorCode;
|
|||
import net.lab1024.sa.base.common.domain.ResponseDTO;
|
||||
import net.lab1024.sa.base.common.util.SmartBigDecimalUtil;
|
||||
import net.lab1024.sa.base.common.util.SmartRequestUtil;
|
||||
import net.lab1024.sa.base.module.support.datatracer.constant.DataTracerTypeEnum;
|
||||
import net.lab1024.sa.base.module.support.datatracer.service.DataTracerService;
|
||||
import net.lab1024.sa.base.module.support.serialnumber.constant.SerialNumberIdEnum;
|
||||
import net.lab1024.sa.base.module.support.serialnumber.service.SerialNumberService;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
|
|
@ -53,6 +56,7 @@ import java.util.*;
|
|||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ReceiveService {
|
||||
@Resource
|
||||
private AsnDao asnDao;
|
||||
|
|
@ -99,6 +103,9 @@ public class ReceiveService {
|
|||
@Resource
|
||||
private SerialNumberService serialNumberService;
|
||||
|
||||
@Resource
|
||||
private DataTracerService dataTracerService;
|
||||
|
||||
|
||||
/**
|
||||
* 批量收货
|
||||
|
|
@ -108,6 +115,7 @@ public class ReceiveService {
|
|||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ResponseDTO<String> batchReceive(BatchReceiveForm batchReceiveForm) {
|
||||
Long statrTime = System.currentTimeMillis();
|
||||
List<AsnDetailEntity> asnDetails = asnDetailQueryService.queryAsnDetailList(batchReceiveForm.getAsnDetailIds());
|
||||
if (CollectionUtils.isEmpty(asnDetails)) {
|
||||
return ResponseDTO.userErrorParam(UserErrorCode.PARAM_ERROR.getMsg());
|
||||
|
|
@ -183,9 +191,15 @@ public class ReceiveService {
|
|||
//批量操作
|
||||
batchUpdateOrInsert(updateToAsnDetail, insertToTask, insertToInventory, updateToInventory);
|
||||
|
||||
//操作日志
|
||||
dataTracerService.addTrace(asn.getAsnId(), DataTracerTypeEnum.ASN, "批量收货:" + joiner.getSussMsg().toString());
|
||||
|
||||
//刷新入库单
|
||||
asnDetailService.refreshAsn(batchReceiveForm.getAsnId());
|
||||
|
||||
Long endTime = System.currentTimeMillis();
|
||||
log.info("批量收货耗时:{}ms", endTime - statrTime);
|
||||
|
||||
return ResponseDTOUtils.buildResponseDTO(joiner);
|
||||
}
|
||||
|
||||
|
|
@ -228,6 +242,7 @@ public class ReceiveService {
|
|||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ResponseDTO<String> batchReturn(BatchReturnForm batchReturnForm) {
|
||||
Long statrTime = System.currentTimeMillis();
|
||||
List<TaskEntity> tasks = taskQueryService.queryByTaskIds(batchReturnForm.getTaskIds());
|
||||
if (CollectionUtils.isEmpty(tasks)) {
|
||||
return ResponseDTO.userErrorParam(UserErrorCode.PARAM_ERROR.getMsg());
|
||||
|
|
@ -278,8 +293,13 @@ public class ReceiveService {
|
|||
//批量操作
|
||||
returnUpdateOrInsert(updateToAsnDetail, deleteToTask, updateToInventory, deleteToInventory);
|
||||
|
||||
//操作日志
|
||||
dataTracerService.addTrace(batchReturnForm.getAsnId(), DataTracerTypeEnum.ASN, "批量退货:" + joiner.getSussMsg().toString());
|
||||
|
||||
//刷新入库单
|
||||
asnDetailService.refreshAsn(batchReturnForm.getAsnId());
|
||||
Long endTime = System.currentTimeMillis();
|
||||
log.info("批量退货耗时:{}ms", endTime - statrTime);
|
||||
|
||||
return ResponseDTOUtils.buildResponseDTO(joiner);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ import net.lab1024.sa.base.common.domain.ResponseDTO;
|
|||
import net.lab1024.sa.base.common.domain.PageResult;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import net.lab1024.sa.base.module.support.datatracer.constant.DataTracerTypeEnum;
|
||||
import net.lab1024.sa.base.module.support.datatracer.domain.form.DataTracerForm;
|
||||
import net.lab1024.sa.base.module.support.datatracer.service.DataTracerService;
|
||||
import net.lab1024.sa.base.module.support.serialnumber.constant.SerialNumberIdEnum;
|
||||
import net.lab1024.sa.base.module.support.serialnumber.service.SerialNumberService;
|
||||
|
|
@ -90,6 +91,9 @@ public class AsnService {
|
|||
addForm.setStatus(AsnOrderStatusEnum.CREATED.getValue());
|
||||
AsnEntity asnEntity = SmartBeanUtil.copy(addForm, AsnEntity.class);
|
||||
asnDao.insert(asnEntity);
|
||||
|
||||
//操作记录
|
||||
dataTracerService.addTrace(asnEntity.getAsnId(), DataTracerTypeEnum.ASN,"新建入库单", null,asnEntity);
|
||||
return ResponseDTO.ok(asnEntity);
|
||||
}
|
||||
|
||||
|
|
@ -107,6 +111,8 @@ public class AsnService {
|
|||
}
|
||||
AsnEntity asnEntity = SmartBeanUtil.copy(updateForm, AsnEntity.class);
|
||||
asnDao.updateById(asnEntity);
|
||||
//业务操作记录
|
||||
dataTracerService.addTrace(updateForm.getAsnId(), DataTracerTypeEnum.ASN,"编辑入库单", exitAsn,asnEntity);
|
||||
return ResponseDTO.ok(asnEntity);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@ package net.lab1024.sa.admin.module.business.wms.receive.asnDetail.service;
|
|||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import net.lab1024.sa.admin.module.business.goods.domain.entity.GoodsEntity;
|
||||
import net.lab1024.sa.admin.module.business.wms.base.item.dao.ItemDao;
|
||||
import net.lab1024.sa.admin.module.business.wms.base.item.domain.entity.ItemEntity;
|
||||
import net.lab1024.sa.admin.module.business.wms.base.item.service.ItemQueryService;
|
||||
|
|
@ -22,6 +24,8 @@ import net.lab1024.sa.base.common.code.UserErrorCode;
|
|||
import net.lab1024.sa.base.common.util.SmartBeanUtil;
|
||||
import net.lab1024.sa.base.common.domain.ResponseDTO;
|
||||
import net.lab1024.sa.base.common.util.SmartBigDecimalUtil;
|
||||
import net.lab1024.sa.base.module.support.datatracer.constant.DataTracerTypeEnum;
|
||||
import net.lab1024.sa.base.module.support.datatracer.service.DataTracerService;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
|
@ -57,6 +61,9 @@ public class AsnDetailService {
|
|||
@Resource
|
||||
private AsnDetailQueryService asnDetailQueryService;
|
||||
|
||||
@Resource
|
||||
private DataTracerService dataTracerService;
|
||||
|
||||
|
||||
/**
|
||||
* 添加
|
||||
|
|
@ -68,8 +75,14 @@ public class AsnDetailService {
|
|||
public ResponseDTO<String> add(AsnDetailAddForm addForm) {
|
||||
AsnDetailEntity asnDetailEntity = SmartBeanUtil.copy(addForm, AsnDetailEntity.class);
|
||||
asnDetailDao.insert(asnDetailEntity);
|
||||
|
||||
//业务操作记录
|
||||
ItemEntity item = itemDao.selectById(addForm.getItemId());
|
||||
dataTracerService.addTrace(asnDetailEntity.getAsnId(), DataTracerTypeEnum.ASN, "添加:" + item.getItemCode() + "物料明细", null, asnDetailEntity);
|
||||
|
||||
//刷新出库单
|
||||
refreshAsn(addForm.getAsnId());
|
||||
|
||||
return ResponseDTO.ok();
|
||||
}
|
||||
|
||||
|
|
@ -81,8 +94,13 @@ public class AsnDetailService {
|
|||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ResponseDTO<String> update(AsnDetailUpdateForm updateForm) {
|
||||
AsnDetailEntity originEntity = asnDetailDao.selectById(updateForm.getAsnDetailId());
|
||||
AsnDetailEntity asnDetailEntity = SmartBeanUtil.copy(updateForm, AsnDetailEntity.class);
|
||||
asnDetailDao.updateById(asnDetailEntity);
|
||||
|
||||
ItemEntity item = itemDao.selectById(updateForm.getItemId());
|
||||
dataTracerService.addTrace(asnDetailEntity.getAsnId(), DataTracerTypeEnum.ASN, "编辑:" + item.getItemCode() + "物料明细", originEntity, asnDetailEntity);
|
||||
|
||||
//刷新出库单
|
||||
refreshAsn(updateForm.getAsnId());
|
||||
return ResponseDTO.ok();
|
||||
|
|
@ -101,11 +119,12 @@ public class AsnDetailService {
|
|||
return ResponseDTO.userErrorParam(UserErrorCode.PARAM_ERROR.getMsg());
|
||||
}
|
||||
JoinerResult joiner = JoinerResult.createJoiner();
|
||||
Set<Long> asnIds = new HashSet<>();
|
||||
List<Long> toDeleteList = new ArrayList<>();
|
||||
List<AsnDetailEntity> asnDetails = asnDetailQueryService.queryAsnDetailList(idList);
|
||||
List<Long> asnIds = asnDetails.stream().map(AsnDetailEntity::getAsnId).distinct().collect(Collectors.toList());
|
||||
List<Long> itemIds = asnDetails.stream().map(AsnDetailEntity::getItemId).toList();
|
||||
Map<Long, ItemEntity> mapItem = itemQueryService.queryItemList(itemIds);
|
||||
|
||||
List<Long> toDeleteList = new ArrayList<>();
|
||||
for (AsnDetailEntity asnDetail : asnDetails) {
|
||||
ItemEntity item = mapItem.get(asnDetail.getItemId());
|
||||
if (asnDetail.getReceivedQuantity().compareTo(BigDecimal.ZERO) > 0) {
|
||||
|
|
@ -113,13 +132,14 @@ public class AsnDetailService {
|
|||
continue;
|
||||
}
|
||||
toDeleteList.add(asnDetail.getAsnDetailId());
|
||||
asnIds.add(asnDetail.getAsnId());
|
||||
joiner.getSussMsg().add(item.getItemCode() + "明细删除成功");
|
||||
}
|
||||
|
||||
if (CollectionUtils.isNotEmpty(toDeleteList)) {
|
||||
//批量删除
|
||||
asnDetailManager.removeBatchByIds(toDeleteList);
|
||||
//操作记录
|
||||
dataTracerService.addTrace(asnIds.get(0), DataTracerTypeEnum.ASN, "批量删除:" + joiner.getSussMsg().toString());
|
||||
}
|
||||
|
||||
//刷新出库单
|
||||
|
|
@ -151,6 +171,9 @@ public class AsnDetailService {
|
|||
asnDetailDao.deleteById(asnDetailId);
|
||||
joiner.getSussMsg().add(item.getItemCode() + "删除成功");
|
||||
|
||||
//操作记录
|
||||
dataTracerService.addTrace(asnId, DataTracerTypeEnum.ASN, "删除:" + joiner.getSussMsg().toString());
|
||||
|
||||
//刷新出库单
|
||||
refreshAsn(asnId);
|
||||
|
||||
|
|
|
|||
|
|
@ -33,6 +33,16 @@ public enum DataTracerTypeEnum implements BaseEnum {
|
|||
*/
|
||||
OA_ENTERPRISE(3, "OA-企业信息"),
|
||||
|
||||
/**
|
||||
* 入库
|
||||
*/
|
||||
ASN(4, "入库"),
|
||||
|
||||
/**
|
||||
* 入库明细
|
||||
*/
|
||||
ASN_DETAIL(5, "入库明细"),
|
||||
|
||||
;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ import java.util.stream.Collectors;
|
|||
* @Date 2022-07-23 19:38:52
|
||||
* @Wechat zhuoda1024
|
||||
* @Email lab1024@163.com
|
||||
* @Copyright <a href="https://1024lab.net">1024创新实验室</a>
|
||||
* @Copyright <a href="https://1024lab.net">1024创新实验室</a>
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
|
|
@ -162,6 +162,21 @@ public class DataTracerService {
|
|||
this.addTrace(tracerForm, requestUser);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存数据变动记录
|
||||
*/
|
||||
public void addTrace(Long dataId, DataTracerTypeEnum type, String content, Object diffOld, Object diffNew) {
|
||||
DataTracerForm tracerForm = DataTracerForm.builder()
|
||||
.dataId(dataId)
|
||||
.type(type)
|
||||
.content(content)
|
||||
.diffOld(diffOld == null ? null : this.getChangeContent(diffOld))
|
||||
.diffNew(diffNew == null ? null : this.getChangeContent(diffNew))
|
||||
.build();
|
||||
RequestUser requestUser = SmartRequestUtil.getRequestUser();
|
||||
this.addTrace(tracerForm, requestUser);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 保存数据变动记录
|
||||
|
|
|
|||
Loading…
Reference in New Issue