|
|
@ -14,6 +14,8 @@ import com.win.module.system.api.serialnumber.SerialNumberApi; |
|
|
|
import com.win.module.system.enums.serialNumber.RuleCodeEnum; |
|
|
|
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobDetailCreateReqVO; |
|
|
|
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainCreateReqVO; |
|
|
|
import com.win.module.wms.controller.purchasereceiptRecord.vo.PurchasereceiptRecordDetailCreateReqVO; |
|
|
|
import com.win.module.wms.controller.purchasereceiptRecord.vo.PurchasereceiptRecordMainCreateReqVO; |
|
|
|
import com.win.module.wms.controller.purchasereceiptRequest.vo.*; |
|
|
|
import com.win.module.wms.controller.rule.vo.RuleRespVO; |
|
|
|
import com.win.module.wms.convert.purchasereceiptJob.PurchasereceiptJobDetailConvert; |
|
|
@ -37,12 +39,15 @@ import com.win.module.wms.enums.request.RequestStatusState; |
|
|
|
import com.win.module.wms.service.itembasic.ItembasicService; |
|
|
|
import com.win.module.wms.service.itempackaging.ItempackagingService; |
|
|
|
import com.win.module.wms.service.purchase.PurchaseMainService; |
|
|
|
import com.win.module.wms.service.purchasereceiptRecord.PurchasereceiptRecordDetailService; |
|
|
|
import com.win.module.wms.service.purchasereceiptRecord.PurchasereceiptRecordMainService; |
|
|
|
import com.win.module.wms.service.requestsetting.RequestsettingService; |
|
|
|
import com.win.module.wms.service.rule.RuleService; |
|
|
|
import com.win.module.wms.service.shift.ShiftService; |
|
|
|
import com.win.module.wms.service.supplier.SupplierService; |
|
|
|
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; |
|
|
@ -96,6 +101,10 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq |
|
|
|
private ShiftService shiftService; |
|
|
|
@Resource |
|
|
|
private PurchaseMainService purchaseMainService; |
|
|
|
@Resource |
|
|
|
private PurchasereceiptRecordMainService purchasereceiptRecordMainService; |
|
|
|
@Resource |
|
|
|
private PurchasereceiptRecordDetailService purchasereceiptRecordDetailService; |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional |
|
|
@ -290,7 +299,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq |
|
|
|
if(count > 0) { |
|
|
|
throw new ServiceException(PURCHASERECEIPT_REQUEST_JOB_EXISTS); |
|
|
|
} |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.close(); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_CLOSE); |
|
|
@ -304,7 +313,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq |
|
|
|
@Transactional |
|
|
|
public Integer submitPurchasereceiptRequestMain(Long id) { |
|
|
|
PurchasereceiptRequestMainDO mainDO = validatePurchasereceiptRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_CLOSE); |
|
|
@ -323,7 +332,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq |
|
|
|
public Integer agreePurchasereceiptRequestMain(Long id) { |
|
|
|
// 校验存在
|
|
|
|
PurchasereceiptRequestMainDO mainDO = validatePurchasereceiptRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.agree(mainDO.getAutoExecute()); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_CLOSE); |
|
|
@ -337,12 +346,29 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq |
|
|
|
return purchasereceiptRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public Integer handlePurchasereceiptRequestMain(Long id) { |
|
|
|
// 校验存在
|
|
|
|
PurchasereceiptRequestMainDO mainDO = validatePurchasereceiptRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.handle(); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_CLOSE); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
//调用执行方法
|
|
|
|
this.generateJob(mainDO, purchasereceiptRequestDetailMapper.selectList(mainDO.getId())); |
|
|
|
trendsApi.createTrends(id, "purchasereceiptRequest", "执行了采购收货", TrendsTypeEnum.UPDATE); |
|
|
|
return purchasereceiptRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public Integer abortPurchasereceiptRequestMain(Long id) { |
|
|
|
// 校验存在
|
|
|
|
PurchasereceiptRequestMainDO mainDO = validatePurchasereceiptRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.reject(); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_CLOSE); |
|
|
@ -386,6 +412,23 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq |
|
|
|
*/ |
|
|
|
@Transactional |
|
|
|
private void generateJob(PurchasereceiptRequestMainDO mainDO, List<PurchasereceiptRequestDetailDO> detailDOList) { |
|
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseReceiptRequest"); |
|
|
|
//跳过任务直接生成记录
|
|
|
|
if("TRUE".equals(requestsettingDO.getDirectCreateRecord())) { |
|
|
|
PurchasereceiptRecordMainCreateReqVO purchasereceiptRecordMainCreateReqVO = new PurchasereceiptRecordMainCreateReqVO(); |
|
|
|
BeanUtils.copyProperties(mainDO, purchasereceiptRecordMainCreateReqVO); |
|
|
|
purchasereceiptRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_RECORD.getCode()); |
|
|
|
purchasereceiptRecordMainCreateReqVO.setNumber(number); |
|
|
|
purchasereceiptRecordMainService.createPurchasereceiptRecordMain(purchasereceiptRecordMainCreateReqVO); |
|
|
|
for(PurchasereceiptRequestDetailDO purchasereceiptRequestDetailDO : detailDOList) { |
|
|
|
PurchasereceiptRecordDetailCreateReqVO purchasereceiptRecordDetailCreateReqVO = new PurchasereceiptRecordDetailCreateReqVO(); |
|
|
|
BeanUtils.copyProperties(purchasereceiptRequestDetailDO, purchasereceiptRecordDetailCreateReqVO); |
|
|
|
purchasereceiptRecordDetailCreateReqVO.setNumber(number); |
|
|
|
purchasereceiptRecordDetailService.createPurchasereceiptRecordDetail(purchasereceiptRecordDetailCreateReqVO); |
|
|
|
} |
|
|
|
return; |
|
|
|
} |
|
|
|
RuleRespVO ruleRespVO = ruleService.deliveryGoods(null, mainDO.getSupplierCode()); |
|
|
|
JSONObject jsonObject = JSONUtil.parseObj(ruleRespVO.getConfiguration()); |
|
|
|
Map<String, List<PurchasereceiptRequestDetailDO>> listMap = new HashMap<>(); |
|
|
|