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.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainExportReqVO;
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 org.apache.ibatis.annotations.Mapper;
@ -43,6 +44,10 @@ public interface PurchaseclaimRequestMainMapper extends BaseMapperX<Purchaseclai
.orderByDesc(PurchaseclaimRequestMainDO::getId));
}
default PurchaseclaimRequestMainDO selectByAsnNumberAndSupplierCode(String asnNumber,String supplierCode) {
return selectOne(PurchaseclaimRequestMainDO::getAsnNumber, asnNumber,PurchaseclaimRequestMainDO::getSupplierCode,supplierCode);
}
default PageResult<PurchaseclaimRequestMainDO> selectSenior(CustomConditions 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 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;
@ -166,6 +167,8 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
throw new UtilException("订单行"+ poLine + "的已发货数量" + shippedQty + "+计划数量" + qty + "大于订单数量" + orderQty);
}
}
@Override
@Transactional
public List<PurchaseclaimRequestImportErrorVO> importPurchaseclaimRequestList(List<PurchaseclaimRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY);
@ -173,7 +176,6 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
List<PurchaseclaimRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
String messageMain = "";
int detailErrorCount = 0;
//主表校验方法
if(mode != null){
try {
@ -229,55 +231,66 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
PurchaseclaimRequestDetailCreateReqVO purchaseclaimRequestDetailCreateReqVO = PurchaseclaimRequestDetailConvert.INSTANCE.convert1(detailDO);
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(messageMain == null){
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.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;
}
if(!errorList.isEmpty()){
// 判断如果不存在,在进行插入
PurchaseclaimRequestMainDO existPurchaseclaimRequestMainDO = purchaseclaimRequestMainMapper.selectByAsnNumberAndSupplierCode(createReqVO.getAsnNumber(), createReqVO.getSupplierCode());
if(existPurchaseclaimRequestMainDO == null && mode != 3){
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());
}
//如果子表没有错误 写库
if(messageDetail == null){
detailDO.setNumber(createReqVO.getNumber());
detailDO.setMasterId(createReqVO.getId());
detailDO.setAmount(detailDO.getQty().multiply(detailDO.getSinglePrice()).setScale(6,BigDecimal.ROUND_HALF_UP));
purchaseclaimRequestDetailMapper.insertBatch(subDOList);
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseClaimRequest");
if(requestsettingDO != null){
createReqVO.setAutoAgree(requestsettingDO.getAutoAgree());
createReqVO.setAutoCommit(requestsettingDO.getAutoCommit());
createReqVO.setAutoExecute(requestsettingDO.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
//如果子表全错
}else {
importVO.setImportStatus("失败");
String messageAll = messageMain+ messageDetail;
importVO.setImportRemark(messageAll.substring(0,messageAll.length()-1));
errorList.add(importVO);
PurchaseclaimRequestMainDO createObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO);
purchaseclaimRequestMainMapper.insert(createObj);
purchaseclaimRequestDetailMapper.insertBatch(subDOList);
}
else if(existPurchaseclaimRequestMainDO == null && mode != 2){
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;
}
}

Loading…
Cancel
Save