Browse Source

导入模板确定

master
chenfang 2 years ago
parent
commit
351cc1fe55
  1. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchaseclaimRequest/PurchaseclaimRequestMainMapper.java
  2. 99
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchaseclaimRequest/PurchaseclaimRequestMainMapper.java

@ -7,6 +7,7 @@ import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainExportReqVO; import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainExportReqVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainPageReqVO; import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -43,6 +44,10 @@ public interface PurchaseclaimRequestMainMapper extends BaseMapperX<Purchaseclai
.orderByDesc(PurchaseclaimRequestMainDO::getId)); .orderByDesc(PurchaseclaimRequestMainDO::getId));
} }
default PurchaseclaimRequestMainDO selectByAsnNumberAndSupplierCode(String asnNumber,String supplierCode) {
return selectOne(PurchaseclaimRequestMainDO::getAsnNumber, asnNumber,PurchaseclaimRequestMainDO::getSupplierCode,supplierCode);
}
default PageResult<PurchaseclaimRequestMainDO> selectSenior(CustomConditions conditions) { default PageResult<PurchaseclaimRequestMainDO> selectSenior(CustomConditions conditions) {
return selectPage(conditions, QueryWrapperUtils.structure(conditions)); return selectPage(conditions, QueryWrapperUtils.structure(conditions));
} }

99
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java

@ -28,6 +28,7 @@ import com.win.module.wms.service.supplierdeliverRecord.SupplierdeliverRecordMai
import com.win.module.wms.util.JobUtils; import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -166,6 +167,8 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
throw new UtilException("订单行"+ poLine + "的已发货数量" + shippedQty + "+计划数量" + qty + "大于订单数量" + orderQty); throw new UtilException("订单行"+ poLine + "的已发货数量" + shippedQty + "+计划数量" + qty + "大于订单数量" + orderQty);
} }
} }
@Override
@Transactional
public List<PurchaseclaimRequestImportErrorVO> importPurchaseclaimRequestList(List<PurchaseclaimRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) { public List<PurchaseclaimRequestImportErrorVO> importPurchaseclaimRequestList(List<PurchaseclaimRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) { if (CollUtil.isEmpty(datas)) {
throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY); throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY);
@ -173,7 +176,6 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
List<PurchaseclaimRequestImportErrorVO> errorList = new ArrayList<>(); List<PurchaseclaimRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> { datas.forEach(createReqVO -> {
String messageMain = ""; String messageMain = "";
int detailErrorCount = 0;
//主表校验方法 //主表校验方法
if(mode != null){ if(mode != null){
try { try {
@ -229,55 +231,66 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
PurchaseclaimRequestDetailCreateReqVO purchaseclaimRequestDetailCreateReqVO = PurchaseclaimRequestDetailConvert.INSTANCE.convert1(detailDO); PurchaseclaimRequestDetailCreateReqVO purchaseclaimRequestDetailCreateReqVO = PurchaseclaimRequestDetailConvert.INSTANCE.convert1(detailDO);
PurchaseclaimRequestImportErrorVO importVO = PurchaseclaimRequestDetailConvert.INSTANCE.convert(createReqVO, purchaseclaimRequestDetailCreateReqVO); PurchaseclaimRequestImportErrorVO importVO = PurchaseclaimRequestDetailConvert.INSTANCE.convert(createReqVO, purchaseclaimRequestDetailCreateReqVO);
//进行子表的错误统计 //进行子表的错误统计
if(!messageDetail.isEmpty()){ //主表没有错误 写入库里
detailErrorCount ++; if(messageMain.equals("") || messageDetail.equals("")){
importVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importVO.setImportRemark(messageMain.substring(0,messageMain.length()-1));
errorList.add(importVO);
}else {
detailDO.setNumber(createReqVO.getNumber());
detailDO.setMasterId(createReqVO.getId());
detailDO.setAmount(detailDO.getQty().multiply(detailDO.getSinglePrice()).setScale(6,BigDecimal.ROUND_HALF_UP));
} }
//如果子表没有全错 }
if(detailErrorCount != subDOList.size()){ if(!errorList.isEmpty()){
//主表没有错误 写入库里 // 判断如果不存在,在进行插入
if(messageMain == null){ PurchaseclaimRequestMainDO existPurchaseclaimRequestMainDO = purchaseclaimRequestMainMapper.selectByAsnNumberAndSupplierCode(createReqVO.getAsnNumber(), createReqVO.getSupplierCode());
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); if(existPurchaseclaimRequestMainDO == null && mode != 3){
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
createReqVO.setNumber(number); String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseClaimRequest"); createReqVO.setNumber(number);
if(businesstypeDO != null){ BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseClaimRequest");
createReqVO.setBusinessType(businesstypeDO.getCode()); if(businesstypeDO != null){
} createReqVO.setBusinessType(businesstypeDO.getCode());
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseClaimRequest");
if(requestsettingDO != null){
createReqVO.setAutoAgree(requestsettingDO.getAutoAgree());
createReqVO.setAutoCommit(requestsettingDO.getAutoCommit());
createReqVO.setAutoExecute(requestsettingDO.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
PurchaseclaimRequestMainDO createObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO);
purchaseclaimRequestMainMapper.insert(createObj);
} //反之 跳出本次循环 进行下一个主表的循环
if(messageMain != null || messageDetail != null) {
importVO.setImportStatus("失败");
String messageAll = messageMain+ messageDetail;
importVO.setImportRemark(messageAll.substring(0,messageAll.length()-1));
errorList.add(importVO);
continue;
} }
//如果子表没有错误 写库 RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseClaimRequest");
if(messageDetail == null){ if(requestsettingDO != null){
detailDO.setNumber(createReqVO.getNumber()); createReqVO.setAutoAgree(requestsettingDO.getAutoAgree());
detailDO.setMasterId(createReqVO.getId()); createReqVO.setAutoCommit(requestsettingDO.getAutoCommit());
detailDO.setAmount(detailDO.getQty().multiply(detailDO.getSinglePrice()).setScale(6,BigDecimal.ROUND_HALF_UP)); createReqVO.setAutoExecute(requestsettingDO.getAutoExecute());
purchaseclaimRequestDetailMapper.insertBatch(subDOList); createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
} }
//如果子表全错 PurchaseclaimRequestMainDO createObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO);
}else { purchaseclaimRequestMainMapper.insert(createObj);
importVO.setImportStatus("失败"); purchaseclaimRequestDetailMapper.insertBatch(subDOList);
String messageAll = messageMain+ messageDetail; }
importVO.setImportRemark(messageAll.substring(0,messageAll.length()-1)); else if(existPurchaseclaimRequestMainDO == null && mode != 2){
errorList.add(importVO); createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
createReqVO.setNumber(number);
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseClaimRequest");
if(businesstypeDO != null){
createReqVO.setBusinessType(businesstypeDO.getCode());
}
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseClaimRequest");
if(requestsettingDO != null){
createReqVO.setAutoAgree(requestsettingDO.getAutoAgree());
createReqVO.setAutoCommit(requestsettingDO.getAutoCommit());
createReqVO.setAutoExecute(requestsettingDO.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
PurchaseclaimRequestMainDO createObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO);
purchaseclaimRequestMainMapper.updateById(createObj);
purchaseclaimRequestDetailMapper.updateBatch(subDOList);
} }
} }
} }
}); });
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList; return errorList;
} }
} }

Loading…
Cancel
Save