|
|
@ -8,7 +8,6 @@ import com.win.framework.common.exception.ServiceException; |
|
|
|
import com.win.framework.common.pojo.CustomConditions; |
|
|
|
import com.win.framework.common.pojo.PageResult; |
|
|
|
import com.win.framework.common.util.validation.ValidationUtils; |
|
|
|
import com.win.framework.dict.core.util.DictFrameworkUtils; |
|
|
|
import com.win.module.system.api.serialnumber.SerialNumberApi; |
|
|
|
import com.win.module.system.enums.serialNumber.RuleCodeEnum; |
|
|
|
import com.win.module.wms.controller.purchasereceiptRequest.vo.*; |
|
|
@ -17,14 +16,20 @@ import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestD |
|
|
|
import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert; |
|
|
|
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; |
|
|
|
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; |
|
|
|
import com.win.module.wms.dal.mysql.purchasereceiptJob.PurchasereceiptJobMainMapper; |
|
|
|
import com.win.module.wms.dal.mysql.purchasereceiptRequest.PurchasereceiptRequestDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.purchasereceiptRequest.PurchasereceiptRequestMainMapper; |
|
|
|
import com.win.module.wms.enums.DictTypeConstants; |
|
|
|
import com.win.module.wms.enums.request.RequestStatusEnum; |
|
|
|
import com.win.module.wms.enums.request.RequestStatusState; |
|
|
|
import com.win.module.wms.service.itembasic.ItembasicService; |
|
|
|
import com.win.module.wms.service.requestsetting.RequestsettingService; |
|
|
|
import com.win.module.wms.service.rule.RuleService; |
|
|
|
import com.win.module.wms.service.supplier.SupplierService; |
|
|
|
import com.win.module.wms.service.supplieritem.SupplieritemService; |
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.interceptor.TransactionAspectSupport; |
|
|
|
import org.springframework.validation.annotation.Validated; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
@ -59,6 +64,10 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq |
|
|
|
private SerialNumberApi serialNumberApi; |
|
|
|
@Resource |
|
|
|
private Validator validator; |
|
|
|
@Resource |
|
|
|
private RequestsettingService requestsettingService; |
|
|
|
@Resource |
|
|
|
private PurchasereceiptJobMainMapper purchasereceiptJobMainMapper; |
|
|
|
|
|
|
|
@Override |
|
|
|
public Long createPurchasereceiptRequestMain(PurchasereceiptRequestMainCreateReqVO createReqVO) { |
|
|
@ -71,7 +80,17 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq |
|
|
|
} |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); |
|
|
|
mainDo.setNumber(number); |
|
|
|
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); |
|
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseReceiptRequest"); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(); |
|
|
|
requestStatusState.newObject(requestsettingDO); |
|
|
|
mainDo.setStatus(requestStatusState.getState().getCode()); |
|
|
|
mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); |
|
|
|
mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); |
|
|
|
mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); |
|
|
|
//调用自动执行方法
|
|
|
|
if(requestsettingDO.getAutoCommit().equals("TRUE") && requestsettingDO.getAutoAgree().equals("TRUE") && requestsettingDO.getAutoExecute().equals("TREU")) { |
|
|
|
|
|
|
|
} |
|
|
|
purchasereceiptRequestMainMapper.insert(mainDo); |
|
|
|
for (PurchasereceiptRequestDetailDO detailDO : subDOList) { |
|
|
|
detailDO.setMasterId(mainDo.getId()); |
|
|
@ -85,7 +104,10 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq |
|
|
|
@Override |
|
|
|
public Integer updatePurchasereceiptRequestMain(PurchasereceiptRequestMainUpdateReqVO updateReqVO) { |
|
|
|
// 校验存在
|
|
|
|
validatePurchasereceiptRequestMainExists(updateReqVO.getId()); |
|
|
|
PurchasereceiptRequestMainDO existPurchasereceiptRequestMainDO = validatePurchasereceiptRequestMainExists(updateReqVO.getId()); |
|
|
|
if(existPurchasereceiptRequestMainDO.getStatus().equals(RequestStatusEnum.NEW.getCode())) { |
|
|
|
throw new ServiceException(PURCHASERECEIPT_REQUEST_STATUS_NOT_NEW); |
|
|
|
} |
|
|
|
// 更新
|
|
|
|
PurchasereceiptRequestMainDO updateObj = PurchasereceiptRequestMainConvert.INSTANCE.convert(updateReqVO); |
|
|
|
return purchasereceiptRequestMainMapper.updateById(updateObj); |
|
|
@ -97,7 +119,11 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq |
|
|
|
@Override |
|
|
|
public Integer deletePurchasereceiptRequestMain(Long id) { |
|
|
|
// 校验存在
|
|
|
|
validatePurchasereceiptRequestMainExists(id); |
|
|
|
PurchasereceiptRequestMainDO existPurchasereceiptRequestMainDO = validatePurchasereceiptRequestMainExists(id); |
|
|
|
Long count = purchasereceiptJobMainMapper.selectByRequestNumber(existPurchasereceiptRequestMainDO.getNumber()); |
|
|
|
if(count > 0) { |
|
|
|
throw new ServiceException(PURCHASERECEIPT_REQUEST_JOB_EXISTS); |
|
|
|
} |
|
|
|
// 删除子表数据
|
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
map.put("master_id", id); |
|
|
@ -107,10 +133,12 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq |
|
|
|
return purchasereceiptRequestMainMapper.deleteById(id); |
|
|
|
} |
|
|
|
|
|
|
|
private void validatePurchasereceiptRequestMainExists(Long id) { |
|
|
|
if (purchasereceiptRequestMainMapper.selectById(id) == null) { |
|
|
|
private PurchasereceiptRequestMainDO validatePurchasereceiptRequestMainExists(Long id) { |
|
|
|
PurchasereceiptRequestMainDO existPurchasereceiptRequestMainDO = purchasereceiptRequestMainMapper.selectById(id); |
|
|
|
if (existPurchasereceiptRequestMainDO == null) { |
|
|
|
throw exception(PURCHASERECEIPT_REQUEST_MAIN_NOT_EXISTS); |
|
|
|
} |
|
|
|
return existPurchasereceiptRequestMainDO; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
@ -159,17 +187,42 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq |
|
|
|
} |
|
|
|
//写入数据
|
|
|
|
if(flag) { |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); |
|
|
|
mainDo.setNumber(number); |
|
|
|
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); |
|
|
|
purchasereceiptRequestMainMapper.insert(mainDo); |
|
|
|
for (PurchasereceiptRequestDetailDO detailDO : subDOList) { |
|
|
|
detailDO.setMasterId(mainDo.getId()); |
|
|
|
detailDO.setNumber(number); |
|
|
|
PurchasereceiptRequestMainDO existPurchasereceiptRequestMainDO = purchasereceiptRequestMainMapper.selectBySupplierCode(mainDo.getSupplierCode()); |
|
|
|
if(existPurchasereceiptRequestMainDO == null && mode != 3) {//新增
|
|
|
|
purchasereceiptRequestMainMapper.insert(mainDo); |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); |
|
|
|
mainDo.setNumber(number); |
|
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseReceiptRequest"); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(); |
|
|
|
requestStatusState.newObject(requestsettingDO); |
|
|
|
mainDo.setStatus(requestStatusState.getState().getCode()); |
|
|
|
mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); |
|
|
|
mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); |
|
|
|
mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); |
|
|
|
for (PurchasereceiptRequestDetailDO detailDO : subDOList) { |
|
|
|
detailDO.setMasterId(mainDo.getId()); |
|
|
|
detailDO.setNumber(number); |
|
|
|
} |
|
|
|
//调用自动执行方法
|
|
|
|
if(requestsettingDO.getAutoCommit().equals("TRUE") && requestsettingDO.getAutoAgree().equals("TRUE") && requestsettingDO.getAutoExecute().equals("TREU")) { |
|
|
|
|
|
|
|
} |
|
|
|
purchasereceiptRequestDetailMapper.insertBatch(subDOList); |
|
|
|
} else if(existPurchasereceiptRequestMainDO != null && existPurchasereceiptRequestMainDO.getStatus().equals(RequestStatusEnum.NEW.getCode()) && mode != 2) {//修改
|
|
|
|
BeanUtils.copyProperties(existPurchasereceiptRequestMainDO, mainDo); |
|
|
|
purchasereceiptRequestMainMapper.updateById(mainDo); |
|
|
|
for (PurchasereceiptRequestDetailDO detailDO : subDOList) { |
|
|
|
detailDO.setMasterId(mainDo.getId()); |
|
|
|
detailDO.setNumber(mainDo.getNumber()); |
|
|
|
purchasereceiptRequestDetailMapper.insertBatch(subDOList); |
|
|
|
} |
|
|
|
} |
|
|
|
purchasereceiptRequestDetailMapper.insertBatch(subDOList); |
|
|
|
} |
|
|
|
}); |
|
|
|
//错误不为空并非部分更新,手工回滚
|
|
|
|
if(!errorList.isEmpty() && !updatePart) { |
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
|
|
|
} |
|
|
|
return errorList; |
|
|
|
} |
|
|
|
|
|
|
|