@ -20,8 +20,11 @@ import com.win.module.wms.dal.dataobject.countJob.CountJobDetailDO;
import com.win.module.wms.dal.dataobject.countJob.CountJobMainDO ;
import com.win.module.wms.dal.dataobject.countPlan.CountPlanDetailDO ;
import com.win.module.wms.dal.dataobject.countPlan.CountPlanMainDO ;
import com.win.module.wms.dal.dataobject.countRecord.CountRecordDetailDO ;
import com.win.module.wms.dal.dataobject.countRequest.CountRequestDetailDO ;
import com.win.module.wms.dal.dataobject.countRequest.CountRequestMainDO ;
import com.win.module.wms.dal.dataobject.countadjustRequest.CountadjustRequestDetailDO ;
import com.win.module.wms.dal.dataobject.countadjustRequest.CountadjustRequestMainDO ;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO ;
import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO ;
import com.win.module.wms.dal.dataobject.location.LocationDO ;
@ -34,6 +37,8 @@ import com.win.module.wms.dal.mysql.countRecord.CountRecordDetailMapper;
import com.win.module.wms.dal.mysql.countRecord.CountRecordMainMapper ;
import com.win.module.wms.dal.mysql.countRequest.CountRequestDetailMapper ;
import com.win.module.wms.dal.mysql.countRequest.CountRequestMainMapper ;
import com.win.module.wms.dal.mysql.countadjustRequest.CountadjustRequestDetailMapper ;
import com.win.module.wms.dal.mysql.countadjustRequest.CountadjustRequestMainMapper ;
import com.win.module.wms.enums.job.JobStatusEnum ;
import com.win.module.wms.enums.request.RequestStatusEnum ;
import com.win.module.wms.enums.request.RequestStatusState ;
@ -44,6 +49,7 @@ import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.service.shift.ShiftService ;
import com.win.module.wms.service.supplieritem.SupplieritemService ;
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.transaction.interceptor.TransactionAspectSupport ;
@ -97,6 +103,10 @@ public class CountRequestMainServiceImpl implements CountRequestMainService {
private JobsettingService jobsettingService ;
@Resource
private CountJobDetailMapper countJobDetailMapper ;
@Resource
private CountadjustRequestMainMapper countadjustRequestMainMapper ;
@Resource
private CountadjustRequestDetailMapper countadjustRequestDetailMapper ;
@Override
@Transactional
@ -432,6 +442,63 @@ public class CountRequestMainServiceImpl implements CountRequestMainService {
}
}
@Override
@Transactional
public int generateCountadjustRequest ( Long countRecordMainId ) {
CountRequestMainDO countRequestMainDO = countRequestMainMapper . selectById ( countRecordMainId ) ;
if ( "2" . equals ( countRequestMainDO . getCountAdjustStatus ( ) ) ) {
throw new ServiceException ( COUNTADJUST_REQUEST_EXISTS ) ;
}
List < CountRecordDetailDO > countRecordDetailDOList = countRecordDetailMapper . getDifferenceList ( countRequestMainDO . getNumber ( ) ) ;
List < CountadjustRequestDetailDO > countadjustRequestDetailDOList = new ArrayList < > ( ) ;
for ( CountRecordDetailDO countRecordDetailDO : countRecordDetailDOList ) {
CountadjustRequestDetailDO countadjustRequestDetailDO = new CountadjustRequestDetailDO ( ) ;
BeanUtils . copyProperties ( countRecordDetailDO , countadjustRequestDetailDO ) ;
countadjustRequestDetailDO . setInventoryQty ( countRecordDetailDO . getQty ( ) ) ;
countadjustRequestDetailDO . setCountQty ( countRecordDetailDO . getCountQty ( ) ) ;
//库存数量减盘点数量等于调整数量
countadjustRequestDetailDO . setAdjustQty ( countRecordDetailDO . getQty ( ) . subtract ( countRecordDetailDO . getCountQty ( ) ) ) ;
//调整数量的绝对值
countadjustRequestDetailDO . setQty ( countadjustRequestDetailDO . getAdjustQty ( ) . abs ( ) ) ;
countadjustRequestDetailDO . setId ( null ) ;
countadjustRequestDetailDO . setCreator ( null ) ;
countadjustRequestDetailDO . setCreateTime ( null ) ;
countadjustRequestDetailDO . setUpdater ( null ) ;
countadjustRequestDetailDO . setUpdateTime ( null ) ;
countadjustRequestDetailDOList . add ( countadjustRequestDetailDO ) ;
}
int result = 0 ;
//增加库存调整
if ( ! countadjustRequestDetailDOList . isEmpty ( ) ) {
CountadjustRequestMainDO countadjustRequestMainDO = new CountadjustRequestMainDO ( ) ;
BeanUtils . copyProperties ( countRequestMainDO , countadjustRequestMainDO ) ;
RequestsettingDO requestsettingDO = requestsettingService . selectRequestsettingExist ( "CountAdjustRequest" ) ;
BusinesstypeDO businesstypeDO = jobUtils . selectDocumentSettingFromBusinessType ( "CountAdjustRequest" ) ;
String adjustNumber = serialNumberApi . generateCode ( RuleCodeEnum . COUNT_ADJUST_REQUEST . getCode ( ) ) ;
countadjustRequestMainDO . setNumber ( adjustNumber ) ;
countadjustRequestMainDO . setBusinessType ( businesstypeDO . getCode ( ) ) ;
countadjustRequestMainDO . setAutoAgree ( requestsettingDO . getAutoAgree ( ) ) ;
countadjustRequestMainDO . setAutoCommit ( requestsettingDO . getAutoCommit ( ) ) ;
countadjustRequestMainDO . setAutoExecute ( requestsettingDO . getAutoExecute ( ) ) ;
countadjustRequestMainDO . setDirectCreateRecord ( requestsettingDO . getDirectCreateRecord ( ) ) ;
countadjustRequestMainDO . setCountRequestNumber ( countRequestMainDO . getNumber ( ) ) ;
countadjustRequestMainDO . setStatus ( RequestStatusEnum . NEW . getCode ( ) ) ;
countadjustRequestMainDO . setId ( null ) ;
countadjustRequestMainDO . setCreator ( null ) ;
countadjustRequestMainDO . setCreateTime ( null ) ;
countadjustRequestMainDO . setUpdater ( null ) ;
countadjustRequestMainDO . setUpdateTime ( null ) ;
result = countadjustRequestMainMapper . insert ( countadjustRequestMainDO ) ;
for ( CountadjustRequestDetailDO countadjustRequestDetailDO : countadjustRequestDetailDOList ) {
countadjustRequestDetailDO . setMasterId ( countadjustRequestMainDO . getId ( ) ) ;
countadjustRequestDetailDO . setNumber ( adjustNumber ) ;
}
countadjustRequestDetailMapper . insertBatch ( countadjustRequestDetailDOList ) ;
trendsApi . createTrends ( countadjustRequestMainDO . getId ( ) , "countadjustRequest" , "生成了盘点调整申请" , TrendsTypeEnum . CREATE ) ;
}
return result ;
}
/ * *
* 校验导入 , 并赋值一些参数 , 未完全实现
* @param mainDO