add:增加倒冲领料错误时的展示,增加WMS库存校验
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -10,6 +10,7 @@ public enum StockReturnStatusEnum {
|
||||
TODO("0","待回传"),
|
||||
SUCESS("1","回传成功"),
|
||||
FAIL("2","回传失败"),
|
||||
ERROR("3","回传异常"),
|
||||
;
|
||||
|
||||
StockReturnStatusEnum(String code, String desc) {
|
||||
|
||||
Reference in New Issue
Block a user