|
|
@ -2,21 +2,37 @@ package com.win.module.wms.service.transferreceiptRecord; |
|
|
|
|
|
|
|
import com.win.framework.common.pojo.CustomConditions; |
|
|
|
import com.win.framework.common.pojo.PageResult; |
|
|
|
import com.win.module.wms.controller.transferreceiptRecord.vo.TransferreceiptRecordMainCreateReqVO; |
|
|
|
import com.win.module.wms.controller.transferreceiptRecord.vo.TransferreceiptRecordMainExportReqVO; |
|
|
|
import com.win.module.wms.controller.transferreceiptRecord.vo.TransferreceiptRecordMainPageReqVO; |
|
|
|
import com.win.module.wms.controller.transferreceiptRecord.vo.TransferreceiptRecordMainUpdateReqVO; |
|
|
|
import com.win.module.infra.api.trends.TrendsApi; |
|
|
|
import com.win.module.infra.enums.TrendsTypeEnum; |
|
|
|
import com.win.module.system.api.serialnumber.SerialNumberApi; |
|
|
|
import com.win.module.system.api.user.AdminUserApi; |
|
|
|
import com.win.module.system.enums.serialNumber.RuleCodeEnum; |
|
|
|
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; |
|
|
|
import com.win.module.wms.controller.transferreceiptRecord.vo.*; |
|
|
|
import com.win.module.wms.convert.transferreceiptRecord.TransferreceiptRecordDetailConvert; |
|
|
|
import com.win.module.wms.convert.transferreceiptRecord.TransferreceiptRecordMainConvert; |
|
|
|
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; |
|
|
|
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; |
|
|
|
import com.win.module.wms.dal.dataobject.transferreceiptRecord.TransferreceiptRecordDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.transferreceiptRecord.TransferreceiptRecordMainDO; |
|
|
|
import com.win.module.wms.dal.mysql.transferreceiptRecord.TransferreceiptRecordDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.transferreceiptRecord.TransferreceiptRecordMainMapper; |
|
|
|
import com.win.module.wms.service.recordsetting.RecordsettingService; |
|
|
|
import com.win.module.wms.service.transaction.TransactionService; |
|
|
|
import com.win.module.wms.util.JobUtils; |
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
import org.springframework.validation.annotation.Validated; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Collection; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; |
|
|
|
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; |
|
|
|
import static com.win.module.wms.enums.ErrorCodeConstants.TRANSFERRECEIPT_RECORD_MAIN_NOT_EXISTS; |
|
|
|
|
|
|
|
/** |
|
|
@ -30,14 +46,75 @@ public class TransferreceiptRecordMainServiceImpl implements TransferreceiptReco |
|
|
|
|
|
|
|
@Resource |
|
|
|
private TransferreceiptRecordMainMapper transferreceiptRecordMainMapper; |
|
|
|
@Resource |
|
|
|
private SerialNumberApi serialNumberApi; |
|
|
|
@Resource |
|
|
|
private JobUtils jobUtils; |
|
|
|
@Resource |
|
|
|
private RecordsettingService recordsettingService; |
|
|
|
@Resource |
|
|
|
private TransferreceiptRecordDetailMapper transferreceiptRecordDetailMapper; |
|
|
|
@Resource |
|
|
|
private AdminUserApi userApi; |
|
|
|
@Resource |
|
|
|
private TransactionService transactionService; |
|
|
|
@Resource |
|
|
|
private TrendsApi trendsApi; |
|
|
|
|
|
|
|
|
|
|
|
@Transactional |
|
|
|
@Override |
|
|
|
public Long createTransferreceiptRecordMain(TransferreceiptRecordMainCreateReqVO createReqVO) { |
|
|
|
// 插入
|
|
|
|
TransferreceiptRecordMainDO transferreceiptRecordMain = TransferreceiptRecordMainConvert.INSTANCE.convert(createReqVO); |
|
|
|
transferreceiptRecordMainMapper.insert(transferreceiptRecordMain); |
|
|
|
// 返回
|
|
|
|
return transferreceiptRecordMain.getId(); |
|
|
|
TransferreceiptRecordMainDO transferreceiptRecordMainDO = TransferreceiptRecordMainConvert.INSTANCE.convert(createReqVO); |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_RECEIPT_RECORD.getCode()); |
|
|
|
transferreceiptRecordMainDO.setNumber(number); |
|
|
|
//增加业务类型
|
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferReceiptRecord"); |
|
|
|
transferreceiptRecordMainDO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
transferreceiptRecordMainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); |
|
|
|
transferreceiptRecordMainDO.setInTransactionType(businesstypeDO.getInTransactionType()); |
|
|
|
String interFaceType = recordsettingService.selectRecordsettingExist("TransferReceiptRecord").getInterfaceType(); |
|
|
|
transferreceiptRecordMainDO.setInterfaceType(interFaceType); |
|
|
|
transferreceiptRecordMainDO.setExecuteTime(LocalDateTime.now()); |
|
|
|
transferreceiptRecordMainDO.setActiveDate(LocalDateTime.now()); |
|
|
|
transferreceiptRecordMainDO.setAvailable("TRUE"); |
|
|
|
transferreceiptRecordMainDO.setDueTime(null); |
|
|
|
transferreceiptRecordMainDO.setId(null); |
|
|
|
transferreceiptRecordMainDO.setCreator(null); |
|
|
|
transferreceiptRecordMainDO.setCreateTime(LocalDateTime.now()); |
|
|
|
transferreceiptRecordMainMapper.insert(transferreceiptRecordMainDO); |
|
|
|
//库存事务
|
|
|
|
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>(); |
|
|
|
List<TransferreceiptRecordDetailCreateReqVO> subList = createReqVO.getSubList(); |
|
|
|
for(TransferreceiptRecordDetailCreateReqVO transferreceiptRecordDetailCreateReqVO : subList) { |
|
|
|
TransferreceiptRecordDetailDO recordDetailDO = TransferreceiptRecordDetailConvert.INSTANCE.convert(transferreceiptRecordDetailCreateReqVO); |
|
|
|
recordDetailDO.setNumber(number); |
|
|
|
recordDetailDO.setMasterId(transferreceiptRecordMainDO.getId()); |
|
|
|
transferreceiptRecordDetailMapper.insert(recordDetailDO); |
|
|
|
|
|
|
|
//添加库存事务list
|
|
|
|
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); |
|
|
|
BeanUtils.copyProperties(recordDetailDO, transactionCreateReqVO); |
|
|
|
//增加业务类型
|
|
|
|
transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); |
|
|
|
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); |
|
|
|
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); |
|
|
|
transactionCreateReqVO.setBusinessType(transferreceiptRecordMainDO.getBusinessType()); |
|
|
|
transactionCreateReqVO.setLocationCode(recordDetailDO.getToLocationCode()); |
|
|
|
transactionCreateReqVO.setOwnerCode(recordDetailDO.getFromOwnerCode()); |
|
|
|
transactionCreateReqVO.setPackingNumber(recordDetailDO.getFromPackingNumber()); |
|
|
|
transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); |
|
|
|
transactionCreateReqVO.setBatch(recordDetailDO.getFromBatch()); |
|
|
|
transactionCreateReqVO.setWarehouseCode(transferreceiptRecordMainDO.getToWarehouseCode()); |
|
|
|
transactionCreateReqVO.setRecordNumber(number); |
|
|
|
transactionCreateReqVO.setId(null); |
|
|
|
transactionCreateReqVOList.add(transactionCreateReqVO); |
|
|
|
} |
|
|
|
//增加库存事务
|
|
|
|
transactionService.createTransaction(transactionCreateReqVOList); |
|
|
|
trendsApi.createTrends(transferreceiptRecordMainDO.getId(), "TransferReceiptRecord", "增加了调拨入库申请记录", TrendsTypeEnum.CREATE); |
|
|
|
return transferreceiptRecordMainDO.getId(); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|