|
@ -1,17 +1,29 @@ |
|
|
package com.win.module.wms.service.countadjustRequest; |
|
|
package com.win.module.wms.service.countadjustRequest; |
|
|
|
|
|
|
|
|
|
|
|
import com.win.framework.common.exception.ServiceException; |
|
|
import com.win.framework.common.pojo.CustomConditions; |
|
|
import com.win.framework.common.pojo.CustomConditions; |
|
|
import com.win.framework.common.pojo.PageResult; |
|
|
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.wms.controller.countadjustRequest.vo.CountadjustRequestMainExportReqVO; |
|
|
import com.win.module.wms.controller.countadjustRequest.vo.CountadjustRequestMainExportReqVO; |
|
|
import com.win.module.wms.controller.countadjustRequest.vo.CountadjustRequestMainPageReqVO; |
|
|
import com.win.module.wms.controller.countadjustRequest.vo.CountadjustRequestMainPageReqVO; |
|
|
|
|
|
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.countadjustRequest.CountadjustRequestMainDO; |
|
|
|
|
|
import com.win.module.wms.dal.mysql.countadjustRecord.CountadjustRecordMainMapper; |
|
|
|
|
|
import com.win.module.wms.dal.mysql.countadjustRequest.CountadjustRequestDetailMapper; |
|
|
import com.win.module.wms.dal.mysql.countadjustRequest.CountadjustRequestMainMapper; |
|
|
import com.win.module.wms.dal.mysql.countadjustRequest.CountadjustRequestMainMapper; |
|
|
|
|
|
import com.win.module.wms.enums.request.RequestStatusEnum; |
|
|
|
|
|
import com.win.module.wms.enums.request.RequestStatusState; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
import org.springframework.validation.annotation.Validated; |
|
|
import org.springframework.validation.annotation.Validated; |
|
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
import javax.annotation.Resource; |
|
|
import java.util.List; |
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
|
|
|
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; |
|
|
|
|
|
import static com.win.module.wms.enums.ErrorCodeConstants.*; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 盘点调整申请主 Service 实现类 |
|
|
* 盘点调整申请主 Service 实现类 |
|
|
* |
|
|
* |
|
@ -23,6 +35,12 @@ public class CountadjustRequestMainServiceImpl implements CountadjustRequestMain |
|
|
|
|
|
|
|
|
@Resource |
|
|
@Resource |
|
|
private CountadjustRequestMainMapper countadjustRequestMainMapper; |
|
|
private CountadjustRequestMainMapper countadjustRequestMainMapper; |
|
|
|
|
|
@Resource |
|
|
|
|
|
private CountadjustRequestDetailMapper countadjustRequestDetailMapper; |
|
|
|
|
|
@Resource |
|
|
|
|
|
private CountadjustRecordMainMapper countadjustRecordMainMapper; |
|
|
|
|
|
@Resource |
|
|
|
|
|
private TrendsApi trendsApi; |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public PageResult<CountadjustRequestMainDO> getCountadjustRequestMainSenior(CustomConditions conditions) { |
|
|
public PageResult<CountadjustRequestMainDO> getCountadjustRequestMainSenior(CustomConditions conditions) { |
|
@ -44,4 +62,109 @@ public class CountadjustRequestMainServiceImpl implements CountadjustRequestMain |
|
|
return countadjustRequestMainMapper.selectSeniorList(conditions); |
|
|
return countadjustRequestMainMapper.selectSeniorList(conditions); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
@Transactional |
|
|
|
|
|
public Integer closeCountadjustRequestMain(Long id) { |
|
|
|
|
|
// 校验存在存在下级单据
|
|
|
|
|
|
CountadjustRequestMainDO mainDO = validateCountadjustRequestMainExists(id); |
|
|
|
|
|
// Long count = countadjustRecordMainMapper.selectByRequestNumber(mainDO.getNumber());
|
|
|
|
|
|
// if(count > 0) {
|
|
|
|
|
|
// throw new ServiceException(COUNTADJUST_REQUEST_JOB_EXISTS);
|
|
|
|
|
|
// }
|
|
|
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
|
|
boolean flag = requestStatusState.close(); |
|
|
|
|
|
if(!flag) { |
|
|
|
|
|
throw new ServiceException(COUNTADJUST_REQUEST_CANNOT_CLOSE); |
|
|
|
|
|
} |
|
|
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
|
|
|
|
|
|
trendsApi.createTrends(id, "countadjustRequest", "关闭了到货校验申请", TrendsTypeEnum.UPDATE); |
|
|
|
|
|
return countadjustRequestMainMapper.updateById(mainDO); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
@Transactional |
|
|
|
|
|
public Integer submitCountadjustRequestMain(Long id) { |
|
|
|
|
|
CountadjustRequestMainDO mainDO = validateCountadjustRequestMainExists(id); |
|
|
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
|
|
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); |
|
|
|
|
|
if(!flag) { |
|
|
|
|
|
throw new ServiceException(COUNTADJUST_REQUEST_CANNOT_SUBMIT); |
|
|
|
|
|
} |
|
|
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
|
|
//调用自动执行方法
|
|
|
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { |
|
|
|
|
|
this.generateJob(mainDO, countadjustRequestDetailMapper.selectList(mainDO.getId())); |
|
|
|
|
|
} |
|
|
|
|
|
trendsApi.createTrends(id, "countadjustRequest", "提交了到货校验申请", TrendsTypeEnum.UPDATE); |
|
|
|
|
|
return countadjustRequestMainMapper.updateById(mainDO); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
@Transactional |
|
|
|
|
|
public Integer agreeCountadjustRequestMain(Long id) { |
|
|
|
|
|
// 校验存在
|
|
|
|
|
|
CountadjustRequestMainDO mainDO = validateCountadjustRequestMainExists(id); |
|
|
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
|
|
boolean flag = requestStatusState.agree(mainDO.getAutoAgree()); |
|
|
|
|
|
if(!flag) { |
|
|
|
|
|
throw new ServiceException(COUNTADJUST_REQUEST_CANNOT_AGREE); |
|
|
|
|
|
} |
|
|
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
|
|
//调用自动执行方法
|
|
|
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { |
|
|
|
|
|
this.generateJob(mainDO, countadjustRequestDetailMapper.selectList(mainDO.getId())); |
|
|
|
|
|
} |
|
|
|
|
|
trendsApi.createTrends(id, "countadjustRequest", "审批同意了到货校验申请", TrendsTypeEnum.UPDATE); |
|
|
|
|
|
return countadjustRequestMainMapper.updateById(mainDO); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
@Transactional |
|
|
|
|
|
public Integer handleCountadjustRequestMain(Long id) { |
|
|
|
|
|
// 校验存在
|
|
|
|
|
|
CountadjustRequestMainDO mainDO = validateCountadjustRequestMainExists(id); |
|
|
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
|
|
boolean flag = requestStatusState.handle(); |
|
|
|
|
|
if(!flag) { |
|
|
|
|
|
throw new ServiceException(COUNTADJUST_REQUEST_CANNOT_HANDLE); |
|
|
|
|
|
} |
|
|
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
|
|
//调用执行方法
|
|
|
|
|
|
this.generateJob(mainDO, countadjustRequestDetailMapper.selectList(mainDO.getId())); |
|
|
|
|
|
trendsApi.createTrends(id, "countadjustRequest", "执行了到货校验申请", TrendsTypeEnum.UPDATE); |
|
|
|
|
|
return countadjustRequestMainMapper.updateById(mainDO); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
@Transactional |
|
|
|
|
|
public Integer abortCountadjustRequestMain(Long id) { |
|
|
|
|
|
// 校验存在
|
|
|
|
|
|
CountadjustRequestMainDO mainDO = validateCountadjustRequestMainExists(id); |
|
|
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
|
|
boolean flag = requestStatusState.refused(); |
|
|
|
|
|
if(!flag) { |
|
|
|
|
|
throw new ServiceException(COUNTADJUST_REQUEST_CANNOT_ABORT); |
|
|
|
|
|
} |
|
|
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
|
|
trendsApi.createTrends(id, "countadjustRequest", "审批拒绝了到货校验申请", TrendsTypeEnum.UPDATE); |
|
|
|
|
|
return countadjustRequestMainMapper.updateById(mainDO); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 生成收货检验任务,不要改动事务传播方式,否则会有事务问题 |
|
|
|
|
|
* @param mainDO 收货检验主 |
|
|
|
|
|
* @param detailDOList 收货检验子 |
|
|
|
|
|
*/ |
|
|
|
|
|
private void generateJob(CountadjustRequestMainDO mainDO, List<CountadjustRequestDetailDO> detailDOList) { |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private CountadjustRequestMainDO validateCountadjustRequestMainExists(Long id) { |
|
|
|
|
|
CountadjustRequestMainDO mainDO = countadjustRequestMainMapper.selectById(id); |
|
|
|
|
|
if (mainDO == null) { |
|
|
|
|
|
throw exception(COUNTADJUST_REQUEST_MAIN_NOT_EXISTS); |
|
|
|
|
|
} |
|
|
|
|
|
return mainDO; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|