add:增加倒冲领料错误时的展示,增加WMS库存校验

This commit is contained in:
zhangzq
2026-07-31 10:49:25 +08:00
parent 4abbc1a41c
commit ebd07db3ca
11 changed files with 248 additions and 129 deletions

View File

@@ -83,7 +83,7 @@ public class MesApi {
JSONObject result = JSONObject.parseObject(resultMsg);
Integer respCode = result.getInteger("ResultCode");
if (respCode == null || respCode != 0) {
throw new BadRequestException("请传MES失败" + result.getString("Message"));
throw new BadRequestException("查询MES工单BOM失败:" + result.getString("Message"));
}
final JSONArray jsonArray = result.getJSONArray("Result");
final List<WorkOrderBomItem> bomItems = jsonArray.toJavaList(WorkOrderBomItem.class);
@@ -91,7 +91,7 @@ public class MesApi {
MesResponse<List<WorkOrderBomItem>> response = result.toJavaObject(MesResponse.class);
return response.getResult();
} catch (Exception e) {
throw new BadRequestException("中鼎需求单下发失败" + e.getMessage());
throw new BadRequestException("查询MES工单BOM异常" + e.getMessage());
}
}

View File

@@ -8,6 +8,7 @@ import java.util.List;
@Data
public class ReceiveOutRequest {
private String orgno;
private String sn;
private String billno;
private String biztype;
private String invscheme;

View File

@@ -1,8 +1,11 @@
package org.nl.wms.ext_manage.mes.service.impl;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.commons.lang3.StringUtils;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.basedata_manage.service.IStructattrService;
import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.ext_manage.api.MesApi;
@@ -14,10 +17,14 @@ import org.nl.wms.pda_manage.ios_manage.service.PdaIosOutService;
import org.nl.wms.pda_manage.outBound.dto.LineSideDto;
import org.nl.wms.sch_manage.service.ISchBaseRegionService;
import org.nl.wms.sch_manage.service.dao.SchBaseRegion;
import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dao.ReceiveOutReturn;
import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.service.IReceiveOutReturnService;
import org.nl.wms.warehouse_manage.stockReturn.service.enums.StockReturnStatusEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -31,37 +38,63 @@ public class MesReportServiceImpl implements MesReportService {
private IStructattrService iStructattrService;
@Autowired
private ISchBaseRegionService iSchBaseRegionService;
@Autowired
private IReceiveOutReturnService iReceiveOutReturnService;
@Override
public void workReportReturn(WorkReportParam workReportParam) {
String SrcBillNo = workReportParam.getSrcBillNo();
BigDecimal qty = workReportParam.getReportedQty();
if (StringUtils.isEmpty(SrcBillNo)||qty == null){
throw new BadRequestException("报工倒扣同步失败ERP源单号不存在为空");
}
//TODO: 查询哪些是大件哪些是小件
//workAreag根据功能做区域查看对于的库区工作区域与库区编码一直
final SchBaseRegion region = iSchBaseRegionService.getOne(new LambdaQueryWrapper<SchBaseRegion>()
.select(SchBaseRegion::getPoint_type_explain)
.eq(SchBaseRegion::getRegion_code, workReportParam.getWorkArea()));
try {
String SrcBillNo = workReportParam.getSrcBillNo();
BigDecimal qty = workReportParam.getReportedQty();
if (StringUtils.isEmpty(SrcBillNo)||qty == null){
throw new BadRequestException("报工倒扣同步失败ERP源单号不存在为空");
}
//TODO: 查询哪些是大件哪些是小件
//workAreag根据功能做区域查看对于的库区工作区域与库区编码一直
final SchBaseRegion region = iSchBaseRegionService.getOne(new LambdaQueryWrapper<SchBaseRegion>()
.select(SchBaseRegion::getPoint_type_explain)
.eq(SchBaseRegion::getRegion_code, workReportParam.getWorkArea()));
// final String sectCode = WmsToZDWmdService.ZD_LOS_MAPPING.get(workReportParam.getWorkArea());
if (region == null || StringUtils.isEmpty(region.getPoint_type_explain())){
throw new BadRequestException("当前工作区域"+workReportParam.getWorkArea()+"未配置库区映射");
if (region == null || StringUtils.isEmpty(region.getPoint_type_explain())){
throw new BadRequestException("当前工作区域"+workReportParam.getWorkArea()+"未配置库区映射");
}
final String sectCode = region.getPoint_type_explain();
final Structattr one = iStructattrService.getOne(new LambdaQueryWrapper<Structattr>()
.eq(Structattr::getSect_code, sectCode));
if (one == null){
throw new BadRequestException("当前仓库"+sectCode+"不存在");
}
final LineSideDto sideDto = new LineSideDto();
sideDto.setWorkOrder(workReportParam.getWorkOrderCode());
sideDto.setReportedQty(workReportParam.getReportedQty());
sideDto.setSrcBillId(workReportParam.getSrcBillId());
sideDto.setSrcBillNo(workReportParam.getSrcBillNo());
sideDto.setSectCode(sectCode);
sideDto.setOrgNo(workReportParam.getOrgNo());
sideDto.setSn(workReportParam.getSn());
sideDto.setStorageVehicleCode(one.getStoragevehicle_code());
sideDto.setReportParam(JSON.toJSONString(workReportParam));
pdaIosOutService.directConfirm(sideDto);
}catch (Exception ex){
ReceiveOutReturn entity = new ReceiveOutReturn();
entity.setOrgno(workReportParam.getOrgNo());
entity.setSn(workReportParam.getSn());
entity.setBiztype("340");
entity.setInvscheme("002");
entity.setTranstype("020");
entity.setBiztime(LocalDate.now().toString());
entity.setDeptno("01.09.14.02");
entity.setRequserno("WMS");
entity.setRequsername("WMS");
entity.setCztype("02");
entity.setCreateTime(DateUtil.now());
entity.setRemark(ex.getMessage());
entity.setStatus(StockReturnStatusEnum.ERROR.getCode() );
entity.setRequestId(workReportParam.getWorkOrderCode());
entity.setCreatedBy(SecurityUtils.getCurrentUsername());
entity.setReportParam(JSON.toJSONString(workReportParam));
iReceiveOutReturnService.save(entity);
}
final String sectCode = region.getPoint_type_explain();
final Structattr one = iStructattrService.getOne(new LambdaQueryWrapper<Structattr>()
.eq(Structattr::getSect_code, sectCode));
if (one == null){
throw new BadRequestException("当前仓库"+sectCode+"不存在");
}
final LineSideDto sideDto = new LineSideDto();
sideDto.setWorkOrder(workReportParam.getWorkOrderCode());
sideDto.setReportedQty(workReportParam.getReportedQty());
sideDto.setSrcBillId(workReportParam.getSrcBillId());
sideDto.setSrcBillNo(workReportParam.getSrcBillNo());
sideDto.setSectCode(sectCode);
sideDto.setOrgNo(workReportParam.getOrgNo());
sideDto.setStorageVehicleCode(one.getStoragevehicle_code());
pdaIosOutService.directConfirm(sideDto);
}
}

View File

@@ -254,77 +254,96 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
//主单
final IOStorInv ioStorInv = new IOStorInv();
ioStorInv.setIostorinv_id(IdUtil.getStringId());
ioStorInv.setBill_code(CodeUtil.getNewCode("OUT_STORE_CODE"));
ioStorInv.setIo_type(IOSEnum.IO_TYPE.code("出库"));
ioStorInv.setBill_type(IOSEnum.BILL_TYPE.code("生产出库"));
ioStorInv.setBiz_date(DateUtil.today());
ioStorInv.setStor_code(struct.getStor_code());
ioStorInv.setStor_name(struct.getStor_name());
ioStorInv.setStor_id(struct.getStor_id());
ioStorInv.setDetail_count(materials.size());
ioStorInv.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
ioStorInv.setCreate_mode(IOSEnum.CREATE_MODE.code("终端产生"));
ioStorInv.setInput_optid(currentUserId);
ioStorInv.setInput_optname(nickName);
ioStorInv.setInput_time(now);
ioStorInv.setIs_delete(BaseDataEnum.IS_YES_NOT.code(""));
ioStorInv.setIs_upload(BaseDataEnum.IS_YES_NOT.code(""));
//明细
int seq = 1;
BigDecimal totalQty = BigDecimal.ZERO;
//TODO:需要校验库存够不够
final List<ReceiveOutRequest.Entrys> entrys = new ArrayList<>();
final List<IOStorInvDtl> ioStorInvDtls = new ArrayList<>();
final List<IOStorInvDis> iOStorInvDiss = new ArrayList<>();
//校bom qty与系统库存
final Map<String, String> errorMap = new HashMap<>();
for (WorkOrderBomItem bomItem : workOrderBomItems) {
final String materialCode = bomItem.getMaterialCode();
final BigDecimal bomQty = bomItem.getBomQty();
final BigDecimal qty = bomQty.multiply(param.getReportedQty());
final IOStorInvDtl ioStorInvDtl = new IOStorInvDtl();
ioStorInvDtl.setIostorinv_id(ioStorInv.getIostorinv_id());
ioStorInvDtl.setIostorinvdtl_id(IdUtil.getStringId());
ioStorInvDtl.setSeq_no(String.valueOf(seq));
ioStorInvDtl.setMaterial_code(materialCode);
ioStorInvDtl.setMaterial_id(materialMap.get(materialCode).getMaterial_id());
ioStorInvDtl.setQty_unit_id(materialMap.get(materialCode).getQty_unit_id());
ioStorInvDtl.setQty_unit_name(materialMap.get(materialCode).getQty_unit_name());
ioStorInvDtl.setPcsn("1");
ioStorInvDtl.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
final BigDecimal actualQty = groupInventoryMap.get(materialCode) == null?BigDecimal.ZERO:groupInventoryMap.get(materialCode);
final BigDecimal assignQty = qty.min(actualQty);
ioStorInvDtl.setAssign_qty(assignQty);
ioStorInvDtl.setPlan_qty(qty);
ioStorInvDtl.setUnassign_qty(BigDecimal.ZERO);
ioStorInvDtl.setSource_bill_code(param.getWorkOrder());
ioStorInvDtl.setSource_bill_type("work_order");
ioStorInvDtls.add(ioStorInvDtl);
totalQty.add(assignQty);
// 分配
final IOStorInvDis ioStorInvDis = new IOStorInvDis();
ioStorInvDis.setIostorinvdis_id(IdUtil.getStringId());
ioStorInvDis.setIostorinv_id(ioStorInv.getIostorinv_id()); // 修正变量名
ioStorInvDis.setIostorinvdtl_id(ioStorInvDtl.getIostorinvdtl_id()); // 从对象获取,而不是从 JSON
ioStorInvDis.setSeq_no("1"); // 直接用 int不需要 String
ioStorInvDis.setMaterial_id(materialMap.get(materialCode).getMaterial_id()); // 从 materialMap 获取
ioStorInvDis.setMaterial_code(materialCode); // 直接使用变量
ioStorInvDis.setSect_code(param.getSectCode());
ioStorInvDis.setPcsn("1"); // 或者根据实际情况从 materialMap 获取
ioStorInvDis.setStoragevehicle_code(param.getStorageVehicleCode()); // 假设从 param 获取
ioStorInvDis.setWork_status(IOSEnum.INBILL_DIS_STATUS.code("完成"));
ioStorInvDis.setIs_issued(BaseDataEnum.IS_YES_NOT.code(""));
ioStorInvDis.setQty_unit_id(materialMap.get(materialCode).getQty_unit_id()); // 从 materialMap 获取
ioStorInvDis.setQty_unit_name(materialMap.get(materialCode).getQty_unit_name()); // 从 materialMap 获取
ioStorInvDis.setPlan_qty(qty); // 直接使用 qty 变量
ioStorInvDis.setReal_qty(assignQty);
iOStorInvDiss.add(ioStorInvDis);
//更新组盘记录表
mdPbGroupplateMapper.update(new GroupPlate(), new LambdaUpdateWrapper<>(GroupPlate.class)
.set(GroupPlate::getQty,actualQty.subtract(assignQty))
.eq(GroupPlate::getStoragevehicle_code, param.getStorageVehicleCode())
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
);
System.out.println("物料 " + materialCode + "实际库存:" + actualQty + ",需求数量:" + qty);
if (qty.compareTo(actualQty) > 0) {
errorMap.put(materialCode,"库存" + actualQty + "需求" + qty);
}
}
IOStorInv ioStorInv = null;
if (org.springframework.util.CollectionUtils.isEmpty(errorMap)){
ioStorInv = new IOStorInv();
ioStorInv.setIostorinv_id(IdUtil.getStringId());
ioStorInv.setBill_code(CodeUtil.getNewCode("OUT_STORE_CODE"));
ioStorInv.setIo_type(IOSEnum.IO_TYPE.code("出库"));
ioStorInv.setBill_type(IOSEnum.BILL_TYPE.code("生产出库"));
ioStorInv.setBiz_date(DateUtil.today());
ioStorInv.setStor_code(struct.getStor_code());
ioStorInv.setStor_name(struct.getStor_name());
ioStorInv.setStor_id(struct.getStor_id());
ioStorInv.setDetail_count(materials.size());
ioStorInv.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
ioStorInv.setCreate_mode(IOSEnum.CREATE_MODE.code("终端产生"));
ioStorInv.setInput_optid(currentUserId);
ioStorInv.setInput_optname(nickName);
ioStorInv.setInput_time(now);
ioStorInv.setIs_delete(BaseDataEnum.IS_YES_NOT.code(""));
ioStorInv.setIs_upload(BaseDataEnum.IS_YES_NOT.code(""));
}
final List<ReceiveOutRequest.Entrys> entrys = new ArrayList<>();
final List<IOStorInvDtl> ioStorInvDtls = new ArrayList<>();
final List<IOStorInvDis> iOStorInvDiss = new ArrayList<>();
String status = StockReturnStatusEnum.ERROR.getCode();
for (WorkOrderBomItem bomItem : workOrderBomItems) {
final String materialCode = bomItem.getMaterialCode();
final BigDecimal bomQty = bomItem.getBomQty();
final BigDecimal qty = bomQty.multiply(param.getReportedQty());
if (org.springframework.util.CollectionUtils.isEmpty(errorMap)){
final IOStorInvDtl ioStorInvDtl = new IOStorInvDtl();
ioStorInvDtl.setIostorinv_id(ioStorInv.getIostorinv_id());
ioStorInvDtl.setIostorinvdtl_id(IdUtil.getStringId());
ioStorInvDtl.setSeq_no(String.valueOf(seq));
ioStorInvDtl.setMaterial_code(materialCode);
ioStorInvDtl.setMaterial_id(materialMap.get(materialCode).getMaterial_id());
ioStorInvDtl.setQty_unit_id(materialMap.get(materialCode).getQty_unit_id());
ioStorInvDtl.setQty_unit_name(materialMap.get(materialCode).getQty_unit_name());
ioStorInvDtl.setPcsn("1");
ioStorInvDtl.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
final BigDecimal actualQty = groupInventoryMap.get(materialCode) == null?BigDecimal.ZERO:groupInventoryMap.get(materialCode);
final BigDecimal assignQty = qty.min(actualQty);
ioStorInvDtl.setAssign_qty(assignQty);
ioStorInvDtl.setPlan_qty(qty);
ioStorInvDtl.setUnassign_qty(BigDecimal.ZERO);
ioStorInvDtl.setSource_bill_code(param.getWorkOrder());
ioStorInvDtl.setSource_bill_type("work_order");
ioStorInvDtls.add(ioStorInvDtl);
totalQty.add(assignQty);
// 分配
final IOStorInvDis ioStorInvDis = new IOStorInvDis();
ioStorInvDis.setIostorinvdis_id(IdUtil.getStringId());
ioStorInvDis.setIostorinv_id(ioStorInv.getIostorinv_id()); // 修正变量名
ioStorInvDis.setIostorinvdtl_id(ioStorInvDtl.getIostorinvdtl_id()); // 从对象获取,而不是从 JSON
ioStorInvDis.setSeq_no("1"); // 直接用 int不需要 String
ioStorInvDis.setMaterial_id(materialMap.get(materialCode).getMaterial_id()); // 从 materialMap 获取
ioStorInvDis.setMaterial_code(materialCode); // 直接使用变量
ioStorInvDis.setSect_code(param.getSectCode());
ioStorInvDis.setPcsn("1"); // 或者根据实际情况从 materialMap 获取
ioStorInvDis.setStoragevehicle_code(param.getStorageVehicleCode()); // 假设从 param 获取
ioStorInvDis.setWork_status(IOSEnum.INBILL_DIS_STATUS.code("完成"));
ioStorInvDis.setIs_issued(BaseDataEnum.IS_YES_NOT.code(""));
ioStorInvDis.setQty_unit_id(materialMap.get(materialCode).getQty_unit_id()); // 从 materialMap 获取
ioStorInvDis.setQty_unit_name(materialMap.get(materialCode).getQty_unit_name()); // 从 materialMap 获取
ioStorInvDis.setPlan_qty(qty); // 直接使用 qty 变量
ioStorInvDis.setReal_qty(assignQty);
iOStorInvDiss.add(ioStorInvDis);
//更新组盘记录表
mdPbGroupplateMapper.update(new GroupPlate(), new LambdaUpdateWrapper<>(GroupPlate.class)
.set(GroupPlate::getQty,actualQty.subtract(assignQty))
.eq(GroupPlate::getStoragevehicle_code, param.getStorageVehicleCode())
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
);
}
ReceiveOutRequest.Entrys entry = new ReceiveOutRequest.Entrys();
entry.setSeq(Integer.valueOf(bomItem.getItemNo()));
entry.setMaterialno(materialCode);
@@ -337,14 +356,19 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
entry.setSrcbillentryid(bomItem.getItemId());
entrys.add(entry);
}
ioStorInv.setTotal_qty(totalQty);
ioStorInvMapper.insert(ioStorInv);
ioStorInvDtlMapper.batchInsert(ioStorInvDtls);
ioStorInvDisMapper.batchSave(iOStorInvDiss);
if (ioStorInv!=null){
status = StockReturnStatusEnum.TODO.getCode();
ioStorInv.setTotal_qty(totalQty);
ioStorInvMapper.insert(ioStorInv);
ioStorInvDtlMapper.batchInsert(ioStorInvDtls);
ioStorInvDisMapper.batchSave(iOStorInvDiss);
}
ReceiveOutRequest receiveOutRequest = new ReceiveOutRequest();
receiveOutRequest.setOrgno(param.getOrgNo());
//这个单号存自己的
receiveOutRequest.setBillno(ioStorInv.getIostorinv_id());
receiveOutRequest.setSn(param.getSn());
//这个单号存工单
receiveOutRequest.setBillno(param.getWorkOrder());
receiveOutRequest.setBiztype("340");
receiveOutRequest.setInvscheme("002");
receiveOutRequest.setBiztime(LocalDate.now().toString());
@@ -353,9 +377,10 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
receiveOutRequest.setRequserno("WMS");
receiveOutRequest.setRequsername("WMS");
receiveOutRequest.setDeptno("01.09.14.02");
receiveOutRequest.setDeptno("01.09.14.02");
receiveOutRequest.setEntrys(entrys);
ReceiveOutReturn entity = receiveOutReturnService.saveFromRequest(
receiveOutRequest, StockReturnStatusEnum.TODO.getCode(), null,param.getWorkOrder());
receiveOutRequest, status, null,ioStorInv==null?null:ioStorInv.getBill_code(),param.getReportParam(),errorMap);
return PdaResponse.requestOk();
}

View File

@@ -16,6 +16,10 @@ public class LineSideDto {
* 源单据编号
*/
private String srcBillNo;
/**
* 序列号
*/
private String sn;
/**
* 源单据ID
@@ -26,5 +30,6 @@ public class LineSideDto {
*/
private BigDecimal reportedQty;
private String storageVehicleCode;
private String reportParam;
}

View File

@@ -24,6 +24,7 @@ public class ReceiveOutReturn implements Serializable {
private String transtype;
private String biztime;
private String deptno;
private String sn;
private String requserno;
private String requsername;
private String comment;
@@ -34,6 +35,8 @@ public class ReceiveOutReturn implements Serializable {
private String remark;
private String status;
@TableField("report_param")
private String reportParam;
@TableField("request_id")
private String requestId;

View File

@@ -9,6 +9,7 @@ import java.util.List;
public class ReceiveOutReturnDto {
private Long id;
private String orgno;
private String sn;
private String billno;
private String biztype;
private String invscheme;
@@ -25,5 +26,6 @@ public class ReceiveOutReturnDto {
private String requestId;
private String createdBy;
private String updatedTime;
private String reportParam;
private List<ReceiveOutReturnDetail> details;
}

View File

@@ -11,6 +11,7 @@ import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dto.ReceiveOutRet
import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dto.ReceiveOutReturnQuery;
import java.util.List;
import java.util.Map;
import java.util.Set;
public interface IReceiveOutReturnService extends IService<ReceiveOutReturn> {
@@ -25,7 +26,7 @@ public interface IReceiveOutReturnService extends IService<ReceiveOutReturn> {
void delete(Set<Long> ids);
ReceiveOutReturn saveFromRequest(ReceiveOutRequest request, String status, String remark, String workOrder);
ReceiveOutReturn saveFromRequest(ReceiveOutRequest request, String status, String remark, String workOrder, String reportParam, Map<String,String> errorInfo);
void updateUploadResult(Long id, String status, String remark);

View File

@@ -138,10 +138,11 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
@Override
@Transactional(rollbackFor = Exception.class)
public ReceiveOutReturn saveFromRequest(ReceiveOutRequest request, String status, String remark, String workOrder) {
public ReceiveOutReturn saveFromRequest(ReceiveOutRequest request, String status, String remark, String ioBillCode,String reportParam,Map<String,String> errorMap) {
ReceiveOutReturn entity = new ReceiveOutReturn();
entity.setOrgno(request.getOrgno());
entity.setBillno(request.getBillno());
entity.setSn(request.getSn());
entity.setBiztype(request.getBiztype());
entity.setInvscheme(request.getInvscheme());
entity.setTranstype(request.getTranstype());
@@ -154,15 +155,16 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
entity.setCreateTime(DateUtil.now());
entity.setRemark(limitText(remark, 1000));
entity.setStatus(status);
entity.setRequestId(workOrder);
entity.setRequestId(ioBillCode);
entity.setCreatedBy(SecurityUtils.getCurrentUsername());
entity.setReportParam(reportParam);
this.save(entity);
saveRequestDetails(entity.getId(), request.getEntrys(), status, remark);
saveRequestDetails(entity.getId(), request.getEntrys(), status, remark,errorMap);
return entity;
}
private void saveRequestDetails(Long returnId, List<ReceiveOutRequest.Entrys> entrys, String status, String remark) {
private void saveRequestDetails(Long returnId, List<ReceiveOutRequest.Entrys> entrys, String status, String remark,Map<String,String> errorMap) {
if (entrys == null || entrys.isEmpty()) {
return;
}
@@ -182,10 +184,11 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
detail.setEntrycomment(entry.getEntrycomment());
detail.setAuxptyno(entry.getAuxptyno());
detail.setTracknumber(entry.getTracknumber());
detail.setRemark(errorMap.get(entry.getMaterialno()));
detail.setLotnumber(entry.getLotnumber());
detail.setStockerno(entry.getStockerno());
detail.setStockername(entry.getStockername());
detail.setStatus(StockReturnStatusEnum.TODO.getCode());
detail.setStatus(status);
detail.setUpdateTime(now);
receiveOutReturnDetailMapper.insert(detail);
}
@@ -206,6 +209,7 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
ReceiveOutReturnDto dto = new ReceiveOutReturnDto();
dto.setId(entity.getId());
dto.setOrgno(entity.getOrgno());
dto.setSn(entity.getSn());
dto.setBillno(entity.getBillno());
dto.setBiztype(entity.getBiztype());
dto.setInvscheme(entity.getInvscheme());
@@ -222,11 +226,13 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
dto.setRequestId(entity.getRequestId());
dto.setCreatedBy(entity.getCreatedBy());
dto.setUpdatedTime(entity.getUpdateTime());
dto.setReportParam(entity.getReportParam());
return dto;
}
private void fillEntity(ReceiveOutReturn entity, ReceiveOutReturnDto dto) {
entity.setOrgno(dto.getOrgno());
entity.setSn(dto.getSn());
entity.setBillno(dto.getBillno());
entity.setBiztype(dto.getBiztype());
entity.setInvscheme(dto.getInvscheme());
@@ -242,6 +248,7 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
entity.setStatus(dto.getStatus());
entity.setRequestId(dto.getRequestId());
entity.setCreatedBy(dto.getCreatedBy());
entity.setReportParam(dto.getReportParam());
}
private String formatQueryTime(String time, String defaultTime) {
@@ -392,7 +399,8 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
private ReceiveOutRequest buildRequest(ReceiveOutReturn entity, List<ReceiveOutReturnDetail> details) {
ReceiveOutRequest request = new ReceiveOutRequest();
request.setOrgno(entity.getOrgno());
request.setBillno(entity.getBillno());
//那自己的出入库单id
request.setBillno(entity.getRequestId());
request.setBiztype(entity.getBiztype());
request.setInvscheme(entity.getInvscheme());
request.setTranstype(entity.getTranstype());

View File

@@ -10,6 +10,7 @@ public enum StockReturnStatusEnum {
TODO("0","待回传"),
SUCESS("1","回传成功"),
FAIL("2","回传失败"),
ERROR("3","回传异常"),
;
StockReturnStatusEnum(String code, String desc) {