|
|
@ -1,17 +1,33 @@ |
|
|
|
package com.win.module.wms.service.countRecord; |
|
|
|
|
|
|
|
import com.win.framework.common.exception.ServiceException; |
|
|
|
import com.win.framework.common.pojo.CustomConditions; |
|
|
|
import com.win.framework.common.pojo.PageResult; |
|
|
|
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.enums.serialNumber.RuleCodeEnum; |
|
|
|
import com.win.module.wms.controller.countRecord.vo.CountRecordMainExportReqVO; |
|
|
|
import com.win.module.wms.controller.countRecord.vo.CountRecordMainPageReqVO; |
|
|
|
import com.win.module.wms.dal.dataobject.countRecord.CountRecordDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.countRecord.CountRecordMainDO; |
|
|
|
import com.win.module.wms.dal.dataobject.countadjustRequest.CountadjustRequestDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.countadjustRequest.CountadjustRequestMainDO; |
|
|
|
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.countadjustRequest.CountadjustRequestDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.countadjustRequest.CountadjustRequestMainMapper; |
|
|
|
import com.win.module.wms.enums.request.RequestStatusEnum; |
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.validation.annotation.Validated; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
import static com.win.module.wms.enums.ErrorCodeConstants.COUNTADJUST_REQUEST_EXISTS; |
|
|
|
|
|
|
|
/** |
|
|
|
* 盘点记录主 Service 实现类 |
|
|
|
* |
|
|
@ -23,6 +39,16 @@ public class CountRecordMainServiceImpl implements CountRecordMainService { |
|
|
|
|
|
|
|
@Resource |
|
|
|
private CountRecordMainMapper countRecordMainMapper; |
|
|
|
@Resource |
|
|
|
private CountRecordDetailMapper countRecordDetailMapper; |
|
|
|
@Resource |
|
|
|
private SerialNumberApi serialNumberApi; |
|
|
|
@Resource |
|
|
|
private CountadjustRequestMainMapper countadjustRequestMainMapper; |
|
|
|
@Resource |
|
|
|
private CountadjustRequestDetailMapper countadjustRequestDetailMapper; |
|
|
|
@Resource |
|
|
|
private TrendsApi trendsApi; |
|
|
|
|
|
|
|
@Override |
|
|
|
public PageResult<CountRecordMainDO> getCountRecordMainPage(CountRecordMainPageReqVO pageReqVO) { |
|
|
@ -42,4 +68,60 @@ public class CountRecordMainServiceImpl implements CountRecordMainService { |
|
|
|
return countRecordMainMapper.selectList(conditions); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public int generateCountadjustRequest(Long countRecordMainId) { |
|
|
|
CountRecordMainDO countRecordMainDO = countRecordMainMapper.selectById(countRecordMainId); |
|
|
|
CountadjustRequestMainDO countadjustRequestMainDOExists = countadjustRequestMainMapper.selectByCountRecordNumber(countRecordMainDO.getNumber()); |
|
|
|
if(countadjustRequestMainDOExists != null) { |
|
|
|
throw new ServiceException(COUNTADJUST_REQUEST_EXISTS); |
|
|
|
} |
|
|
|
List<CountRecordDetailDO> countRecordDetailDOList = countRecordDetailMapper.selectList(countRecordMainId); |
|
|
|
List<CountadjustRequestDetailDO> countadjustRequestDetailDOList = new ArrayList<>(); |
|
|
|
int countDetailNumber = 1; |
|
|
|
for(CountRecordDetailDO countRecordDetailDO : countRecordDetailDOList) { |
|
|
|
//盘点记录数量不一致时生成盘点调整申请
|
|
|
|
if(countRecordDetailDO.getCountQty().compareTo(countRecordDetailDO.getQty()) != 0) { |
|
|
|
CountadjustRequestDetailDO countadjustRequestDetailDO = new CountadjustRequestDetailDO(); |
|
|
|
BeanUtils.copyProperties(countRecordDetailDO, countadjustRequestDetailDO); |
|
|
|
countadjustRequestDetailDO.setCountDetailNumber(String.valueOf(countDetailNumber)); |
|
|
|
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); |
|
|
|
countDetailNumber++; |
|
|
|
} |
|
|
|
} |
|
|
|
int result = 0; |
|
|
|
//增加库存调整
|
|
|
|
if(!countadjustRequestDetailDOList.isEmpty()) { |
|
|
|
CountadjustRequestMainDO countadjustRequestMainDO = new CountadjustRequestMainDO(); |
|
|
|
BeanUtils.copyProperties(countRecordMainDO, countadjustRequestMainDO); |
|
|
|
String adjustNumber = serialNumberApi.generateCode(RuleCodeEnum.COUNT_ADJUST_REQUEST.getCode()); |
|
|
|
countadjustRequestMainDO.setNumber(adjustNumber); |
|
|
|
countadjustRequestMainDO.setCountRecordNumber(countRecordMainDO.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; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|