|
|
@ -6,18 +6,35 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
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.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.purchasereceiptRequest.vo.PurchasereceiptRequestDetailCreateReqVO; |
|
|
|
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExportReqVO; |
|
|
|
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO; |
|
|
|
import com.win.module.wms.controller.work.vo.*; |
|
|
|
import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestDetailConvert; |
|
|
|
import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert; |
|
|
|
import com.win.module.wms.convert.work.WorkDetailConvert; |
|
|
|
import com.win.module.wms.convert.work.WorkMainConvert; |
|
|
|
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; |
|
|
|
import com.win.module.wms.dal.dataobject.customer.CustomerDO; |
|
|
|
import com.win.module.wms.dal.dataobject.customeritem.CustomeritemDO; |
|
|
|
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; |
|
|
|
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO; |
|
|
|
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.dataobject.saleprice.SalepriceDO; |
|
|
|
import com.win.module.wms.dal.dataobject.work.WorkDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.work.WorkMainDO; |
|
|
|
import com.win.module.wms.dal.mysql.work.WorkDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.work.WorkMainMapper; |
|
|
|
import com.win.module.wms.enums.request.RequestStatusEnum; |
|
|
|
import com.win.module.wms.enums.request.RequestStatusState; |
|
|
|
import com.win.module.wms.service.customer.CustomerService; |
|
|
|
import com.win.module.wms.service.customeritem.CustomeritemService; |
|
|
|
import com.win.module.wms.service.itembasic.ItembasicService; |
|
|
|
import com.win.module.wms.service.itempackaging.ItempackagingService; |
|
|
@ -26,10 +43,13 @@ 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.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
import org.springframework.transaction.interceptor.TransactionAspectSupport; |
|
|
|
import org.springframework.validation.annotation.Validated; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import javax.validation.Validator; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Collection; |
|
|
|
import java.util.List; |
|
|
@ -47,6 +67,14 @@ import static com.win.module.wms.enums.ErrorCodeConstants.WORK_MAIN_NOT_EXISTS; |
|
|
|
@Validated |
|
|
|
public class WorkMainServiceImpl implements WorkMainService { |
|
|
|
|
|
|
|
@Resource |
|
|
|
private CustomerService customerService; |
|
|
|
@Resource |
|
|
|
private SerialNumberApi serialNumberApi; |
|
|
|
@Resource |
|
|
|
private TrendsApi trendsApi; |
|
|
|
@Resource |
|
|
|
private Validator validator; |
|
|
|
@Resource |
|
|
|
private WorkMainMapper workMainMapper; |
|
|
|
@Resource |
|
|
@ -123,6 +151,11 @@ public class WorkMainServiceImpl implements WorkMainService { |
|
|
|
return workMainMapper.selectList(exportReqVO); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<WorkMainDO> getWorkMainList(CustomConditions conditions) { |
|
|
|
return workMainMapper.selectSeniorList(conditions); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public WorkDetailDO selectWorkExist(String pnumber, String pitemCode) { |
|
|
|
QueryWrapper queryWrapperMain = new QueryWrapper(); |
|
|
@ -143,114 +176,235 @@ public class WorkMainServiceImpl implements WorkMainService { |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public List<WorkMainImportErrorVO> importWorkMainList(List<WorkMainCreateReqVO> datas, Integer mode, boolean updatePart) { |
|
|
|
if (CollUtil.isEmpty(datas)) { |
|
|
|
throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY); |
|
|
|
} |
|
|
|
|
|
|
|
List<WorkMainImportErrorVO> errorList = new ArrayList<>(); |
|
|
|
datas.forEach(createReqVO -> { |
|
|
|
// 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList
|
|
|
|
String messageMain = ""; |
|
|
|
//主表的验证
|
|
|
|
//子表的验证
|
|
|
|
WorkMainDO mainDO = WorkMainConvert.INSTANCE.convert(createReqVO); |
|
|
|
String messageMain = this.validateWorkMainImport(mainDO); |
|
|
|
List<WorkDetailCreateReqVO> subList = createReqVO.getSubList(); |
|
|
|
List<WorkDetailDO> subDOList = WorkDetailConvert.INSTANCE.convertList03(subList); |
|
|
|
for (WorkDetailDO purchaseDetailDO : subDOList) { |
|
|
|
String messageDetail = ""; |
|
|
|
// 校验物品基础信息
|
|
|
|
try { |
|
|
|
ItembasicDO itembasicDO = itembasicService.selectItembasic(purchaseDetailDO.getItemCode()); |
|
|
|
if (itembasicDO.getUom() != purchaseDetailDO.getUom()) { |
|
|
|
messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + purchaseDetailDO.getUom() + ","; |
|
|
|
} else { |
|
|
|
// purchaseDetailDO.setItemDesc1(itembasicDO.getDesc1());
|
|
|
|
// purchaseDetailDO.setItemDesc2(itembasicDO.getDesc2());
|
|
|
|
// purchaseDetailDO.setItemName(itembasicDO.getName());
|
|
|
|
purchaseDetailDO.setProjectCode(itembasicDO.getProject()); |
|
|
|
// 是否有错误数据
|
|
|
|
boolean flag = true; |
|
|
|
for (WorkDetailDO detailDO : subDOList) { |
|
|
|
String messageDetail = this.validateWorkDetailImport(mainDO, detailDO); |
|
|
|
if (!messageMain.isEmpty() || !messageDetail.isEmpty()) { |
|
|
|
WorkMainImportErrorVO importErrorVO = WorkMainConvert.INSTANCE.convert(createReqVO, detailDO); |
|
|
|
importErrorVO.setImportStatus("失败"); |
|
|
|
messageMain = messageMain + messageDetail; |
|
|
|
importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); |
|
|
|
errorList.add(importErrorVO); |
|
|
|
flag = false; |
|
|
|
} |
|
|
|
if (itembasicDO.getUom() != purchaseDetailDO.getUom()) { |
|
|
|
messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + purchaseDetailDO.getUom() + ","; |
|
|
|
} |
|
|
|
purchaseDetailDO.setProjectCode(itembasicDO.getCode()); |
|
|
|
} catch (ServiceException ex) { |
|
|
|
messageDetail += ex.getMessage() + ","; |
|
|
|
//写入数据
|
|
|
|
if(flag) { |
|
|
|
//申请单目前只做新增
|
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.WORK_ORDER.getCode()); |
|
|
|
mainDO.setNumber(number); |
|
|
|
mainDO.setAvailable("TRUE"); // 导入默认 可用
|
|
|
|
mainDO.setBusinessType("ProductReceipt"); // 业务类型:制品收货
|
|
|
|
workMainMapper.insert(mainDO); |
|
|
|
//增加操作记录
|
|
|
|
trendsApi.createTrends(mainDO.getId(), "workMain", "导入了生产订单", TrendsTypeEnum.CREATE); |
|
|
|
int index = 0; |
|
|
|
for (WorkDetailDO detailDO : subDOList) { |
|
|
|
detailDO.setMasterId(mainDO.getId()); |
|
|
|
detailDO.setNumber(number); |
|
|
|
detailDO.setAvailable("TRUE"); // 导入默认 可用
|
|
|
|
detailDO.setLineNumber("WODetail" + index); |
|
|
|
detailDO.setFinishedQty(new BigDecimal(0)); |
|
|
|
index++; |
|
|
|
} |
|
|
|
|
|
|
|
// 校验物品标包信息
|
|
|
|
try { |
|
|
|
ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(purchaseDetailDO.getItemCode()); |
|
|
|
// purchaseDetailDO.setStdPackUnit(itempackagingDO.getStdPackUnit());
|
|
|
|
// purchaseDetailDO.setStdPackQty(itempackagingDO.getStdPackQty());
|
|
|
|
} catch (ServiceException ex) { |
|
|
|
messageDetail += ex.getMessage() + ","; |
|
|
|
} |
|
|
|
// 校验客户物品基础信息
|
|
|
|
try { |
|
|
|
CustomeritemDO customeritemDO = customeritemService.selectCustomeritemExist(createReqVO.getCustomerCode(), purchaseDetailDO.getItemCode()); |
|
|
|
if (customeritemDO == null) { |
|
|
|
messageDetail += "未查找到客户" + createReqVO.getCustomerCode() + "与物品" + purchaseDetailDO.getItemCode() + "的对应关系" + ","; |
|
|
|
} else { |
|
|
|
//根据customeritemdto赋值
|
|
|
|
workDetailMapper.insertBatch(subDOList); |
|
|
|
} |
|
|
|
} catch (ServiceException ex) { |
|
|
|
messageDetail += ex.getMessage() + ","; |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
// List<WorkMainImportErrorVO> errorList = new ArrayList<>();
|
|
|
|
// datas.forEach(createReqVO -> {
|
|
|
|
// // 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList
|
|
|
|
// String messageMain = "";
|
|
|
|
// //主表的验证
|
|
|
|
// //子表的验证
|
|
|
|
// List<WorkDetailCreateReqVO> subList = createReqVO.getSubList();
|
|
|
|
// List<WorkDetailDO> subDOList = WorkDetailConvert.INSTANCE.convertList03(subList);
|
|
|
|
// for (WorkDetailDO purchaseDetailDO : subDOList) {
|
|
|
|
// String messageDetail = "";
|
|
|
|
// // 校验物品基础信息
|
|
|
|
// try {
|
|
|
|
// ItembasicDO itembasicDO = itembasicService.selectItembasic(purchaseDetailDO.getItemCode());
|
|
|
|
// if (itembasicDO.getUom() != purchaseDetailDO.getUom()) {
|
|
|
|
// messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + purchaseDetailDO.getUom() + ",";
|
|
|
|
// } else {
|
|
|
|
//// purchaseDetailDO.setItemDesc1(itembasicDO.getDesc1());
|
|
|
|
//// purchaseDetailDO.setItemDesc2(itembasicDO.getDesc2());
|
|
|
|
//// purchaseDetailDO.setItemName(itembasicDO.getName());
|
|
|
|
// purchaseDetailDO.setProjectCode(itembasicDO.getProject());
|
|
|
|
// }
|
|
|
|
// if (itembasicDO.getUom() != purchaseDetailDO.getUom()) {
|
|
|
|
// messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + purchaseDetailDO.getUom() + ",";
|
|
|
|
// }
|
|
|
|
// purchaseDetailDO.setProjectCode(itembasicDO.getCode());
|
|
|
|
// } catch (ServiceException ex) {
|
|
|
|
// messageDetail += ex.getMessage() + ",";
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// // 校验物品标包信息
|
|
|
|
// try {
|
|
|
|
// ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(purchaseDetailDO.getItemCode());
|
|
|
|
//// purchaseDetailDO.setStdPackUnit(itempackagingDO.getStdPackUnit());
|
|
|
|
//// purchaseDetailDO.setStdPackQty(itempackagingDO.getStdPackQty());
|
|
|
|
// } catch (ServiceException ex) {
|
|
|
|
// messageDetail += ex.getMessage() + ",";
|
|
|
|
// }
|
|
|
|
// // 校验客户物品基础信息
|
|
|
|
// try {
|
|
|
|
// CustomeritemDO customeritemDO = customeritemService.selectCustomeritemExist(createReqVO.getCustomerCode(), purchaseDetailDO.getItemCode());
|
|
|
|
// if (customeritemDO == null) {
|
|
|
|
// messageDetail += "未查找到客户" + createReqVO.getCustomerCode() + "与物品" + purchaseDetailDO.getItemCode() + "的对应关系" + ",";
|
|
|
|
// } else {
|
|
|
|
// //根据customeritemdto赋值
|
|
|
|
// }
|
|
|
|
// } catch (ServiceException ex) {
|
|
|
|
// messageDetail += ex.getMessage() + ",";
|
|
|
|
// }
|
|
|
|
// // 校验销售价格
|
|
|
|
// try {
|
|
|
|
// SalepriceDO salepriceDO = salepriceService.selectItemPackagingExist(createReqVO.getCustomerCode(), purchaseDetailDO.getItemCode());
|
|
|
|
// if (salepriceDO != null) {
|
|
|
|
// }
|
|
|
|
// } catch (ServiceException ex) {
|
|
|
|
// messageDetail += ex.getMessage() + ",";
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// WorkDetailCreateReqVO purchaseDetailCreateReqVO = WorkDetailConvert.INSTANCE.convert1(purchaseDetailDO);
|
|
|
|
// WorkMainImportErrorVO importVO = WorkDetailConvert.INSTANCE.convert(createReqVO, purchaseDetailCreateReqVO);
|
|
|
|
// //进行子表的错误统计
|
|
|
|
// //主表没有错误 写入库里
|
|
|
|
// if (!messageMain.equals("") || !messageDetail.equals("")) {
|
|
|
|
// importVO.setImportStatus("失败");
|
|
|
|
// messageMain = messageMain + messageDetail;
|
|
|
|
// importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
|
|
|
|
// errorList.add(importVO);
|
|
|
|
// } else {
|
|
|
|
// purchaseDetailDO.setNumber(createReqVO.getNumber());
|
|
|
|
//// purchaseDetailDO.setMasterId(createReqVO.getId());
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// if (errorList.isEmpty()) {
|
|
|
|
// // 判断如果不存在,在进行插入
|
|
|
|
// WorkMainDO existPurchaseclaimRequestMainDO = workMainMapper.selectByNumber(createReqVO.getNumber());
|
|
|
|
// if (existPurchaseclaimRequestMainDO == null && mode != 3) {
|
|
|
|
// BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("WorkOrder");
|
|
|
|
// if (businesstypeDO != null) {
|
|
|
|
// createReqVO.setBusinessType(businesstypeDO.getCode());
|
|
|
|
// }
|
|
|
|
// createReqVO.setType(null);
|
|
|
|
// createReqVO.setVersion(null);
|
|
|
|
// createReqVO.setCurrentStage(null);
|
|
|
|
// WorkMainDO createObj =WorkMainConvert.INSTANCE.convert(createReqVO);
|
|
|
|
// workMainMapper.insert(createObj);
|
|
|
|
// workDetailMapper.insertBatch(subDOList);
|
|
|
|
// } else if (existPurchaseclaimRequestMainDO != null && mode != 2) {
|
|
|
|
// BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("WorkOrder");
|
|
|
|
// if (businesstypeDO != null) {
|
|
|
|
// createReqVO.setBusinessType(businesstypeDO.getCode());
|
|
|
|
// }
|
|
|
|
// createReqVO.setType(null);
|
|
|
|
// createReqVO.setVersion(null);
|
|
|
|
// createReqVO.setCurrentStage(null);
|
|
|
|
// WorkMainDO createObj =WorkMainConvert.INSTANCE.convert(createReqVO);
|
|
|
|
// workMainMapper.updateById(createObj);
|
|
|
|
// workDetailMapper.updateBatch(subDOList);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// });
|
|
|
|
//错误不为空并非部分更新,手工回滚
|
|
|
|
if (!errorList.isEmpty() && !updatePart) { |
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
|
|
|
} |
|
|
|
// 校验销售价格
|
|
|
|
try { |
|
|
|
SalepriceDO salepriceDO = salepriceService.selectItemPackagingExist(createReqVO.getCustomerCode(), purchaseDetailDO.getItemCode()); |
|
|
|
if (salepriceDO != null) { |
|
|
|
return errorList; |
|
|
|
} |
|
|
|
} catch (ServiceException ex) { |
|
|
|
messageDetail += ex.getMessage() + ","; |
|
|
|
|
|
|
|
/** |
|
|
|
* 校验物品信息并赋值 |
|
|
|
* @param detailDo |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private ItembasicDO validateItem(WorkDetailDO detailDo) { |
|
|
|
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); |
|
|
|
detailDo.setProjectCode(itembasicDO.getProject()); |
|
|
|
return itembasicDO; |
|
|
|
} |
|
|
|
|
|
|
|
WorkDetailCreateReqVO purchaseDetailCreateReqVO = WorkDetailConvert.INSTANCE.convert1(purchaseDetailDO); |
|
|
|
WorkMainImportErrorVO importVO = WorkDetailConvert.INSTANCE.convert(createReqVO, purchaseDetailCreateReqVO); |
|
|
|
//进行子表的错误统计
|
|
|
|
//主表没有错误 写入库里
|
|
|
|
if (!messageMain.equals("") || !messageDetail.equals("")) { |
|
|
|
importVO.setImportStatus("失败"); |
|
|
|
messageMain = messageMain + messageDetail; |
|
|
|
importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); |
|
|
|
errorList.add(importVO); |
|
|
|
} else { |
|
|
|
purchaseDetailDO.setNumber(createReqVO.getNumber()); |
|
|
|
// purchaseDetailDO.setMasterId(createReqVO.getId());
|
|
|
|
/** |
|
|
|
* 校验客户信息 |
|
|
|
* @param mainDo |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private CustomerDO validateCustomer(WorkMainDO mainDo) { |
|
|
|
return customerService.selectCustomerExist(mainDo.getCustomerCode()); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 校验客户物品信息 |
|
|
|
* @param detailDo |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private CustomeritemDO validateCustomeritem(WorkMainDO mainDo, WorkDetailDO detailDo) { |
|
|
|
return customeritemService.selectCustomeritemExist(mainDo.getCustomerCode(),detailDo.getItemCode()); |
|
|
|
} |
|
|
|
|
|
|
|
if (errorList.isEmpty()) { |
|
|
|
// 判断如果不存在,在进行插入
|
|
|
|
WorkMainDO existPurchaseclaimRequestMainDO = workMainMapper.selectByNumber(createReqVO.getNumber()); |
|
|
|
if (existPurchaseclaimRequestMainDO == null && mode != 3) { |
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("WorkOrder"); |
|
|
|
if (businesstypeDO != null) { |
|
|
|
createReqVO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
/** |
|
|
|
* 校验导入,并赋值一些参数,未完全实现 |
|
|
|
* @param mainDo |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private String validateWorkMainImport(WorkMainDO mainDo) { |
|
|
|
StringBuilder message = new StringBuilder(); |
|
|
|
try { |
|
|
|
ValidationUtils.validate(validator, mainDo); |
|
|
|
} catch (Exception ex) { |
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
} |
|
|
|
createReqVO.setType(null); |
|
|
|
createReqVO.setVersion(null); |
|
|
|
createReqVO.setCurrentStage(null); |
|
|
|
WorkMainDO createObj =WorkMainConvert.INSTANCE.convert(createReqVO); |
|
|
|
workMainMapper.insert(createObj); |
|
|
|
workDetailMapper.insertBatch(subDOList); |
|
|
|
} else if (existPurchaseclaimRequestMainDO != null && mode != 2) { |
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("WorkOrder"); |
|
|
|
if (businesstypeDO != null) { |
|
|
|
createReqVO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
try { |
|
|
|
this.validateCustomer(mainDo); |
|
|
|
} catch (Exception ex) { |
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
} |
|
|
|
return message.toString(); |
|
|
|
} |
|
|
|
createReqVO.setType(null); |
|
|
|
createReqVO.setVersion(null); |
|
|
|
createReqVO.setCurrentStage(null); |
|
|
|
WorkMainDO createObj =WorkMainConvert.INSTANCE.convert(createReqVO); |
|
|
|
workMainMapper.updateById(createObj); |
|
|
|
workDetailMapper.updateBatch(subDOList); |
|
|
|
|
|
|
|
/** |
|
|
|
* 校验导入,并赋值一些参数,未完全实现 |
|
|
|
* @param detailDo |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private String validateWorkDetailImport(WorkMainDO mainDo, WorkDetailDO detailDo) { |
|
|
|
StringBuilder message = new StringBuilder(); |
|
|
|
try { |
|
|
|
ValidationUtils.validate(validator, detailDo); |
|
|
|
} catch (Exception e) { |
|
|
|
message.append(e.getMessage()).append(","); |
|
|
|
} |
|
|
|
try { |
|
|
|
this.validateCustomeritem(mainDo, detailDo); |
|
|
|
} catch (Exception e) { |
|
|
|
message.append(e.getMessage()).append(","); |
|
|
|
} |
|
|
|
}); |
|
|
|
//错误不为空并非部分更新,手工回滚
|
|
|
|
if (!errorList.isEmpty() && !updatePart) { |
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
|
|
|
try { |
|
|
|
this.validateItem(detailDo); |
|
|
|
} catch (Exception e) { |
|
|
|
message.append(e.getMessage()).append(","); |
|
|
|
} |
|
|
|
return errorList; |
|
|
|
return message.toString(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|