Browse Source

导入模板修改

master
chenfang 2 years ago
parent
commit
f2e852a610
  1. 28
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestDetailConvert.java
  2. 228
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java
  3. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineService.java
  4. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java

28
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestDetailConvert.java

@ -4,11 +4,11 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailCreateReqVO;
import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailExcelVO;
import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailRespVO;
import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailUpdateReqVO;
import com.win.module.wms.controller.issueRequest.vo.*;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO;
@ -34,4 +34,24 @@ public interface IssueRequestDetailConvert {
List<IssueRequestDetailExcelVO> convertList02(List<IssueRequestDetailDO> list);
List<IssueRequestDetailDO> convertList03(List<IssueRequestDetailCreateReqVO> list);
List<IssueRequestDetailDO> convertList04(List<IssueRequestDetailUpdateReqVO> list);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
})
IssueRequestDetailExcelVO convert(IssueRequestMainDO mainDO, IssueRequestDetailDO detailDO);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
IssueRequestImportErrorVO convert(IssueRequestMainCreateReqVO mainVo, IssueRequestDetailCreateReqVO detailVo);
IssueRequestDetailCreateReqVO convert1(IssueRequestDetailDO detailDO);
}

228
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java

@ -29,6 +29,7 @@ import com.win.module.wms.service.workshop.WorkshopService;
import com.win.module.wms.service.workstation.WorkstationService;
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.validation.Validator;
@ -81,6 +82,7 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService {
private RuleService ruleService;
@Resource
private RequestsettingService requestsettingService;
@Override
public Long createIssueRequestMain(IssueRequestMainCreateReqVO createReqVO) {
// 插入
@ -109,8 +111,8 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService {
private void validateIssueRequestMainExists(Long id) {
if (issueRequestMainMapper.selectById(id) == null) {
return;
}else {
return;
} else {
throw exception(ISSUE_REQUEST_MAIN_NOT_EXISTS);
}
}
@ -129,6 +131,7 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService {
public PageResult<IssueRequestMainDO> getIssueRequestMainPage(IssueRequestMainPageReqVO pageReqVO) {
return issueRequestMainMapper.selectPage(pageReqVO);
}
@Override
public PageResult<IssueRequestMainDO> getIssueRequestMainSenior(CustomConditions conditions) {
return issueRequestMainMapper.selectSenior(conditions);
@ -139,20 +142,20 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService {
return issueRequestMainMapper.selectList(exportReqVO);
}
private void ifUomSuccess(String itemUom,String uom) {
if(!itemUom.equals(uom)){
throw new UtilException("提示单位"+ uom + "错误,应该是" + itemUom);
private void ifUomSuccess(String itemUom, String uom) {
if (!itemUom.equals(uom)) {
throw new UtilException("提示单位" + uom + "错误,应该是" + itemUom);
}
}
private Boolean ifLocationCodeInRule(String itemCode,String locationCode,String ruleLocationCode) {
private Boolean ifLocationCodeInRule(String itemCode, String locationCode, String ruleLocationCode) {
String[] ruleLocationCodes = ruleLocationCode.split(",");
Boolean request = false;
for (String code : ruleLocationCodes) {
if(code.equals(locationCode)){
if (code.equals(locationCode)) {
request = true;
}else {
throw new UtilException("未查找到零件"+ itemCode + "与库位" + locationCode + "对应的上架策略");
} else {
throw new UtilException("未查找到零件" + itemCode + "与库位" + locationCode + "对应的上架策略");
}
}
return request;
@ -167,141 +170,130 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService {
List<IssueRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
String messageMain = "";
String messageAll = "";
String itemType = "";
BusinesstypeDO businesstypeDO = null;
//主表校验方法
if(mode != null){
try {
validateIssueRequestMainExists(null);
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
try {
workshopService.selectWorkshopExist(createReqVO.getWorkshopCode());
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
createReqVO.setRequestTime(LocalDateTime.now());
try {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("IssueRequest");
if (requestsettingDO != null) {
createReqVO.setAutoAgree(requestsettingDO.getAutoAgree());
createReqVO.setAutoCommit(requestsettingDO.getAutoCommit());
createReqVO.setAutoExecute(requestsettingDO.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
try {
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueRequest");
createReqVO.setBusinessType(businesstypeDO.getCode());
createReqVO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
createReqVO.setToLocationTypes(businesstypeDO.getInLocationTypes());
createReqVO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
createReqVO.setToAreaCodes(businesstypeDO.getInAreaCodes());
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
try {
ValidationUtils.validate(validator, createReqVO);
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RETURN_REQUEST.getCode());
createReqVO.setNumber(number);
List<IssueRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<IssueRequestDetailDO> subDOList = IssueRequestDetailConvert.INSTANCE.convertList03(subList);
for (IssueRequestDetailDO detailDO : subDOList) {
String messageDetail = "";
// 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList
//子表校验方法
try {
validateIssueRequestMainExists(null);
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode());
detailDO.setItemDesc1(itembasicDO.getDesc1());
detailDO.setItemDesc2(itembasicDO.getDesc2());
detailDO.setItemName(itembasicDO.getName());
detailDO.setProjectCode(itembasicDO.getProject());
try {
jobUtils.ifInType(itembasicDO.getType(), businesstypeDO);
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
try {
ifUomSuccess(itembasicDO.getUom(), detailDO.getUom());
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
messageDetail += ex.getMessage() + ",";
}
try {
workshopService.selectWorkshopExist(createReqVO.getWorkshopCode());
}catch (Exception ex) {
ProductionlineDO productionlineDO = productionlineService.productionLineCodeExist(detailDO.getProductionLineCode());
detailDO.setToLocationCode(productionlineDO.getRawLocationCode());
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
createReqVO.setRequestTime(LocalDateTime.now());
try {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("IssueRequest");
if(requestsettingDO != null){
createReqVO.setAutoAgree(requestsettingDO.getAutoAgree());
createReqVO.setAutoCommit(requestsettingDO.getAutoCommit());
createReqVO.setAutoExecute(requestsettingDO.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
if (detailDO.getWorkStationCode() != "") {
WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailDO.getWorkStationCode(), createReqVO.getWorkshopCode(), detailDO.getProductionLineCode());
detailDO.setToLocationCode(workstationDO.getRawLocationCode());
}
}catch (Exception ex){
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RETURN_REQUEST.getCode());
createReqVO.setNumber(number);
List<IssueRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<IssueRequestDetailDO> subDOList = IssueRequestDetailConvert.INSTANCE.convertList03(subList);
if(!"".equals(messageMain)){
for (IssueRequestDetailDO detailDO : subDOList) {
String messageDetail = "";
// 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList
//子表校验方法
try {
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode());
detailDO.setItemDesc1(itembasicDO.getDesc1());
detailDO.setItemDesc2(itembasicDO.getDesc2());
detailDO.setItemName(itembasicDO.getName());
detailDO.setProjectCode(itembasicDO.getProject());
itemType = itembasicDO.getType();
try {
ifUomSuccess(itembasicDO.getUom(), detailDO.getUom());
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try {
ProductionlineDO productionlineDO = productionlineService.productionLineCodeExist(detailDO.getProductionLineCode());
detailDO.setToLocationCode(productionlineDO.getRawLocationCode());
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
try {
if (detailDO.getWorkStationCode() != "") {
WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailDO.getWorkStationCode(), createReqVO.getWorkshopCode(), detailDO.getProductionLineCode());
detailDO.setToLocationCode(workstationDO.getRawLocationCode());
}
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
try {
productionlineitemService.productionLineCodeAndpItemCodeExist(detailDO.getProductionLineCode(), detailDO.getItemCode());
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
try {
RuleRespVO grounding = ruleService.grounding(null, null, null, null, null, null, detailDO.getItemCode(), null, null, null, null, null, null);
JSONObject json = JSONUtil.parseObj(grounding);
String locationCode = json.get("LocationCode").toString();
try {
ifLocationCodeInRule(detailDO.getItemCode(), detailDO.getToLocationCode(), locationCode);
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
IssueRequestDetailCreateReqVO purchaseturnRequestDetailCreateReqVO = IssueRequestDetailConvert.INSTANCE.convert1(detailDO);
IssueRequestImportErrorVO importVO = IssueRequestDetailConvert.INSTANCE.convert(createReqVO, purchaseturnRequestDetailCreateReqVO);
if (!messageDetail.equals("")) {
importVO.setImportStatus("失败");
importVO.setImportRemark(messageDetail.substring(0, messageDetail.length() - 1));
errorList.add(importVO);
} else {
detailDO.setNumber(createReqVO.getNumber());
detailDO.setMasterId(createReqVO.getId());
}
}
try {
productionlineitemService.productionLineCodeAndpItemCodeExist(detailDO.getProductionLineCode(), detailDO.getItemCode());
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
try {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueRequest");
RuleRespVO grounding = ruleService.grounding(null, null, null, null, null, null, detailDO.getItemCode(), null, null, null, null, null, null);
JSONObject json = JSONUtil.parseObj(grounding);
String locationCode = json.get("LocationCode").toString();
try {
jobUtils.ifInType(itemType, businesstypeDO);
ifLocationCodeInRule(detailDO.getItemCode(), detailDO.getToLocationCode(), locationCode);
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
messageDetail += ex.getMessage() + ",";
}
createReqVO.setBusinessType(businesstypeDO.getCode());
createReqVO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
createReqVO.setToLocationTypes(businesstypeDO.getInLocationTypes());
createReqVO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
createReqVO.setToAreaCodes(businesstypeDO.getInAreaCodes());
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
messageDetail += ex.getMessage() + ",";
}
try{
ValidationUtils.validate(validator,createReqVO);
}catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
IssueRequestImportErrorVO importVO = new IssueRequestImportErrorVO();
if (!messageMain.equals("")) {
IssueRequestDetailCreateReqVO purchaseturnRequestDetailCreateReqVO = IssueRequestDetailConvert.INSTANCE.convert1(detailDO);
IssueRequestImportErrorVO importVO = IssueRequestDetailConvert.INSTANCE.convert(createReqVO, purchaseturnRequestDetailCreateReqVO);
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());
}
IssueRequestMainDO createobj = IssueRequestMainConvert.INSTANCE.convert(createReqVO);
if(errorList.isEmpty()){
IssueRequestMainDO existIssueRequestMainDO = issueRequestMainMapper.selectWorkShopCodeAndUseOnTheWayLocation(createReqVO.getWorkshopCode(), createobj.getUseOnTheWayLocation());
if(existIssueRequestMainDO == null && mode != 3){
issueRequestMainMapper.insert(createobj);
issueRequestDetailMapper.insertBatch(subDOList);
}else if(existIssueRequestMainDO != null && mode != 2){
issueRequestMainMapper.updateById(createobj);
issueRequestDetailMapper.updateBatch(subDOList);
}
}
IssueRequestMainDO createobj = IssueRequestMainConvert.INSTANCE.convert(createReqVO);
if (errorList.isEmpty()) {
IssueRequestMainDO existIssueRequestMainDO = issueRequestMainMapper.selectWorkShopCodeAndUseOnTheWayLocation(createReqVO.getWorkshopCode(), createobj.getUseOnTheWayLocation());
if (existIssueRequestMainDO == null && mode != 3) {
issueRequestMainMapper.insert(createobj);
issueRequestDetailMapper.insertBatch(subDOList);
} else if (existIssueRequestMainDO != null && mode != 2) {
issueRequestMainMapper.updateById(createobj);
issueRequestDetailMapper.updateBatch(subDOList);
}
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
if (!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineService.java

@ -97,4 +97,13 @@ public interface ProductionlineService {
* @return 分页列表
*/
PageResult<ProductionlineDO> getProductionlineSenior(CustomConditions conditions);
/**
* BQ---QPL
* 校验生产线基础信息
* @author chenfang
* @param pproductionLineCode
* @return
*/
public ProductionlineDO productionLineCodeExist(String pproductionLineCode);
}

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

@ -155,7 +155,7 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
}
private void selectUomExist(String itemUom,String uom) {
if(itemUom == uom){
if(itemUom.equals(uom)){
return;
}else {
throw new UtilException("提示单位"+ uom + "错误,应该是" + itemUom);

Loading…
Cancel
Save