add:单据回传生产入库
This commit is contained in:
@@ -2,11 +2,15 @@ package org.nl.wms.ext_manage.controller;
|
||||
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.logging.annotation.Log;
|
||||
import org.nl.wms.ext_manage.service.dto.StructLineOfflineDTO;
|
||||
import org.nl.wms.ext_manage.service.impl.StructOfflineService;
|
||||
import org.nl.wms.welding_manage.service.work_order.IWorkOrderService;
|
||||
import org.nl.wms.welding_manage.service.work_order.dao.WorkOrderDao;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
@@ -26,6 +30,8 @@ public class MesStructLineController {
|
||||
|
||||
@Autowired
|
||||
private StructOfflineService structOfflineTask;
|
||||
@Autowired
|
||||
private IWorkOrderService iWorkOrderService;
|
||||
|
||||
/**
|
||||
* 结构车间生产下料同步接口
|
||||
@@ -36,6 +42,11 @@ public class MesStructLineController {
|
||||
@SaIgnore
|
||||
@Log
|
||||
public ResponseEntity<Object> confirm(@RequestBody StructLineOfflineDTO structLineOffline) {
|
||||
final WorkOrderDao workOrder = iWorkOrderService.getOne(new LambdaQueryWrapper<WorkOrderDao>()
|
||||
.eq(WorkOrderDao::getOrder_code, structLineOffline.getOrderCode()));
|
||||
if (workOrder == null){
|
||||
throw new BadRequestException("下料失败,"+workOrder+"工单信息不存在");
|
||||
}
|
||||
structOfflineTask.offline(structLineOffline);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ public interface WmsToErpService {
|
||||
* message: 信息
|
||||
* }
|
||||
*/
|
||||
JSONObject uploadErp(JSONObject whereJson);
|
||||
void uploadErp(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 物料同步
|
||||
|
||||
@@ -124,6 +124,9 @@ public class StructOfflineService{
|
||||
dtl.put("qty_unit_name", materialbase.getQty_unit_name());
|
||||
dtl.put("qty", plate.getQty());
|
||||
dtl.put("plan_qty", plate.getQty());
|
||||
dtl.put("callback_strategy", "dealManufactureRecBillCallback");
|
||||
dtl.put("ext_type", "生产工单");
|
||||
dtl.put("ext_code", offlineDTO.getOrderCode());
|
||||
// 调用新增
|
||||
tableData.add(dtl);
|
||||
jsonMst.put("tableData",tableData);
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.wms.ext_manage.util.ErpUtil;
|
||||
import org.nl.wms.system_manage.enums.SysParamConstant;
|
||||
import org.nl.wms.system_manage.service.param.dao.Param;
|
||||
import org.nl.wms.system_manage.service.param.impl.SysParamServiceImpl;
|
||||
@@ -26,34 +27,8 @@ import org.springframework.stereotype.Service;
|
||||
public class WmsToErpServiceImpl implements WmsToErpService {
|
||||
|
||||
@Override
|
||||
public JSONObject uploadErp(JSONObject whereJson) {
|
||||
log.info("uploadErp回传接口输入参数为:-------------------" + whereJson.toString());
|
||||
JSONObject result = new JSONObject();
|
||||
final Param param = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(SysParamConstant.ERP_URL);
|
||||
if (param==null){
|
||||
throw new BadRequestException("回传ERP失败,未配置erp_url地址");
|
||||
}
|
||||
String url = param.getValue();
|
||||
url = url + EXTConstant.UPLOAD_ERP_API;
|
||||
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(whereJson))
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("uploadErp回传接口输出参数为:-------------------" + result.toString());
|
||||
|
||||
|
||||
Integer status = result.getInteger("status");
|
||||
if (status != HttpStatus.OK.value()) {
|
||||
throw new BadRequestException(result.getString("message"));
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new BadRequestException("ERP提示错误:" + e.getMessage());
|
||||
}
|
||||
return result;
|
||||
|
||||
public void uploadErp(JSONObject requestData) {
|
||||
ErpUtil.create().login().audit(requestData.toJSONString());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -14,6 +14,7 @@ import org.nl.config.SpringContextHolder;
|
||||
import org.nl.wms.system_manage.enums.SysParamConstant;
|
||||
import org.nl.wms.system_manage.service.param.dao.Param;
|
||||
import org.nl.wms.system_manage.service.param.impl.SysParamServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
|
||||
import javax.xml.namespace.QName;
|
||||
import javax.xml.rpc.ParameterMode;
|
||||
@@ -23,7 +24,6 @@ import javax.xml.rpc.encoding.XMLType;
|
||||
@Slf4j
|
||||
@Data
|
||||
public class ErpUtil {
|
||||
|
||||
private String loginUrl;
|
||||
private String auditUrl;
|
||||
private String userName;
|
||||
@@ -37,18 +37,15 @@ public class ErpUtil {
|
||||
private String sessionId;
|
||||
|
||||
public static ErpUtil create(){
|
||||
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
|
||||
final Param erpLoginParam = sysParamService.findByCode(SysParamConstant.ERP_LOGIN_URL);
|
||||
final Param erpAuditParam = sysParamService.findByCode(SysParamConstant.ERP_AUDIT_URL);
|
||||
ErpUtil erpUtil = new ErpUtil();
|
||||
erpUtil.setLoginUrl(erpLoginParam.getValue());
|
||||
erpUtil.setAuditUrl(erpAuditParam.getValue());
|
||||
erpUtil.setLoginUrl(SpringContextHolder.getProperties("erp.loginUrl"));
|
||||
erpUtil.setAuditUrl(SpringContextHolder.getProperties("erp.busUrl"));
|
||||
erpUtil.setUserName(SpringContextHolder.getProperties("erp.username"));
|
||||
erpUtil.setPassword(SpringContextHolder.getProperties("erp.password"));
|
||||
erpUtil.setSlnName(SpringContextHolder.getProperties("erp.slnName"));
|
||||
erpUtil.setDcName(SpringContextHolder.getProperties("erp.dcName"));
|
||||
erpUtil.setDbType(SpringContextHolder.getProperties("erp.dbType"));
|
||||
return new ErpUtil();
|
||||
return erpUtil;
|
||||
}
|
||||
/**
|
||||
* 登录获取sessionId
|
||||
@@ -97,7 +94,7 @@ public class ErpUtil {
|
||||
call.addParameter(
|
||||
new QName("", "dbType"), // 空命名空间
|
||||
XMLType.XSD_STRING,
|
||||
Integer.class,
|
||||
String.class,
|
||||
ParameterMode.IN
|
||||
);
|
||||
WSContext response = (WSContext)call.invoke(new Object[]{userName, password, slnName, dcName, dbType});
|
||||
|
||||
@@ -184,17 +184,10 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchasemstMapper, Purchase
|
||||
stockReturn.setRequest_data(JSON.toJSONString(dto));
|
||||
pmStockReturnService.save(stockReturn);
|
||||
//回传erp
|
||||
JSONObject result = wmsToErpService.uploadErp((JSONObject) JSONObject.toJSON(dto));
|
||||
if (!result.getBoolean("status")){
|
||||
pmStockReturnService.lambdaUpdate()
|
||||
.set(PmStockReturn::getStatus, StockReturnStatusEnum.FAIL.getCode())
|
||||
.eq(PmStockReturn::getRequest_Id, mst.getBill_id());
|
||||
}else {
|
||||
wmsToErpService.uploadErp((JSONObject) JSONObject.toJSON(dto));
|
||||
pmStockReturnService.lambdaUpdate()
|
||||
.set(PmStockReturn::getStatus, StockReturnStatusEnum.SUCESS.getCode())
|
||||
.eq(PmStockReturn::getRequest_Id, mst.getBill_id());
|
||||
}
|
||||
|
||||
log.info("下发回传单成功, billId: {}, requestId: {}, 明细数: {}", mst.getBill_id(), stockReturn.getRequest_Id(), dtlList.size());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
@@ -45,7 +46,7 @@ public class BWIPInTask extends AbstractTask {
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
@Resource
|
||||
private IInBillService rawAssistIStorService;
|
||||
private IInBillService iInBillService;
|
||||
@Resource
|
||||
private IOStorInvDisMapper ioStorInvDisMapper;
|
||||
@Autowired
|
||||
@@ -118,25 +119,7 @@ public class BWIPInTask extends AbstractTask {
|
||||
@Transactional
|
||||
public void forceFinish(String taskCode) {
|
||||
SchBaseTask task = taskService.getByCode(taskCode);
|
||||
// 任务完成
|
||||
task.setTask_status(TaskStatus.FINISHED.getCode());
|
||||
task.setRemark("已完成");
|
||||
taskService.updateById(task);
|
||||
rawAssistIStorService.taskFinish(task);
|
||||
//推送入库单
|
||||
List<IOStorInvDis> ioStorInvDis = ioStorInvDisMapper.selectList(new LambdaQueryWrapper<>(IOStorInvDis.class)
|
||||
.eq(IOStorInvDis::getTask_id, task.getTask_id())
|
||||
);
|
||||
Map<String, BigDecimal> materialQtyMap = new HashMap<>();
|
||||
for (IOStorInvDis dis : ioStorInvDis) {
|
||||
String materialCode = dis.getMaterial_code();
|
||||
BigDecimal planQty = dis.getPlan_qty();
|
||||
if (materialCode != null && planQty != null) {
|
||||
materialQtyMap.merge(materialCode, planQty, BigDecimal::add);
|
||||
}
|
||||
}
|
||||
eventPublisher.publishEvent(new PmManageEvent(SourceBillTypeEnum.PM_RECEIVING.getBillType(),new PReceivingParams(
|
||||
ioStorInvDis.get(0).getIostorinvdis_id(),materialQtyMap,ioStorInvDis.get(0).getSect_code())));
|
||||
this.finishTask(task);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -157,21 +140,13 @@ public class BWIPInTask extends AbstractTask {
|
||||
task.setTask_status(TaskStatus.FINISHED.getCode());
|
||||
task.setRemark("已完成");
|
||||
taskService.updateById(task);
|
||||
rawAssistIStorService.taskFinish(task);
|
||||
//推送入库单
|
||||
List<IOStorInvDis> ioStorInvDis = ioStorInvDisMapper.selectList(new LambdaQueryWrapper<>(IOStorInvDis.class)
|
||||
.eq(IOStorInvDis::getTask_id, task.getTask_id())
|
||||
);
|
||||
Map<String, BigDecimal> materialQtyMap = new HashMap<>();
|
||||
for (IOStorInvDis dis : ioStorInvDis) {
|
||||
String materialCode = dis.getMaterial_code();
|
||||
BigDecimal planQty = dis.getPlan_qty();
|
||||
if (materialCode != null && planQty != null) {
|
||||
materialQtyMap.merge(materialCode, planQty, BigDecimal::add);
|
||||
if (CollectionUtils.isEmpty(ioStorInvDis)) {
|
||||
throw new BadRequestException("未找到任务对应的分配明细");
|
||||
}
|
||||
}
|
||||
eventPublisher.publishEvent(new PmManageEvent(SourceBillTypeEnum.PM_RECEIVING.getBillType(),new PReceivingParams(
|
||||
ioStorInvDis.get(0).getIostorinvdis_id(),materialQtyMap,ioStorInvDis.get(0).getSect_code())));
|
||||
iInBillService.disFinish(ioStorInvDis);
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
|
||||
@@ -7,6 +7,7 @@ import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInv;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis;
|
||||
import org.nl.wms.warehouse_manage.service.dto.GroupPlateDto;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dto.IOStorInvDisDto;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dto.IOStorInvDtlDto;
|
||||
@@ -50,6 +51,10 @@ public interface IInBillService extends IService<IOStorInv> {
|
||||
|
||||
void taskFinish(SchBaseTask task);
|
||||
|
||||
|
||||
void disFinish(List<IOStorInvDis> disList);
|
||||
|
||||
|
||||
List<IOStorInvDisDto> getDisDtl(Map whereJson);
|
||||
|
||||
Structattr autoDis(JSONObject whereJson);
|
||||
|
||||
@@ -30,10 +30,16 @@ import org.nl.wms.basedata_manage.service.dto.StrategyMater;
|
||||
import org.nl.wms.basedata_manage.service.dto.StrategyStructParam;
|
||||
import org.nl.wms.basedata_manage.service.dto.StructattrChangeDto;
|
||||
import org.nl.wms.sch_manage.enums.StatusEnum;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch_manage.service.core.tasks.StInTask;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSConstant;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||
import org.nl.wms.warehouse_manage.inventory.IStInventoryService;
|
||||
import org.nl.wms.warehouse_manage.inventory.core.enums.InventoryChangeType;
|
||||
import org.nl.wms.warehouse_manage.inventory.core.param.impl.AddInvParam;
|
||||
import org.nl.wms.warehouse_manage.inventory.core.param.impl.InFinishParam;
|
||||
import org.nl.wms.warehouse_manage.inventory.core.param.impl.OutFinishParam;
|
||||
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
||||
import org.nl.wms.warehouse_manage.service.impl.MdPbGroupplateServiceImpl;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.IInBillService;
|
||||
@@ -47,6 +53,8 @@ import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDtlMappe
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvMapper;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dto.IOStorInvDisDto;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dto.IOStorInvDtlDto;
|
||||
import org.nl.wms.warehouse_manage.stockReturn.strategy.CallbackStrategyPublish;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.Assert;
|
||||
@@ -88,6 +96,12 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
@Resource
|
||||
private MdPbGroupplateServiceImpl mdPbGroupplateService;
|
||||
|
||||
@Autowired
|
||||
private CallbackStrategyPublish callbackStrategyPublish;
|
||||
|
||||
@Autowired
|
||||
private IStInventoryService iStInventoryService;
|
||||
|
||||
@Override
|
||||
public IPage<IOStorInv> pageQuery(Map whereJson, PageQuery page) {
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
@@ -193,6 +207,7 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
ioStorInvDtl.put("qty_unit_name", row.get("qty_unit_name"));
|
||||
ioStorInvDtl.put("source_bill_type", row.get("ext_type"));
|
||||
ioStorInvDtl.put("source_bill_code", row.get("ext_code"));
|
||||
ioStorInvDtl.put("callback_strategy", row.get("callback_strategy"));
|
||||
ioStorInvDtl.put("assign_qty", "0");
|
||||
ioStorInvDtl.put("unassign_qty", row.get("qty"));
|
||||
ioStorInvDtl.put("plan_qty", row.get("qty"));
|
||||
@@ -711,6 +726,56 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disFinish(List<IOStorInvDis> disList) {
|
||||
// 完成当前任务对应的所有分配明细
|
||||
ioStorInvDisMapper.update(null,new LambdaUpdateWrapper<>(IOStorInvDis.class)
|
||||
.set(IOStorInvDis::getWork_status,IOSEnum.INBILL_DIS_STATUS.code("完成"))
|
||||
.in(IOStorInvDis::getIostorinvdis_id,disList.stream()
|
||||
.map(IOStorInvDis::getIostorinvdis_id).collect(Collectors.toList())));
|
||||
// 查询该明细下是否还有未完成的分配明细
|
||||
int countDis = ioStorInvDisMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDis.class)
|
||||
.eq(IOStorInvDis::getIostorinvdtl_id,disList.get(0).getIostorinvdtl_id())
|
||||
.ne(IOStorInvDis::getWork_status,IOSEnum.INBILL_DIS_STATUS.code("完成"))
|
||||
);
|
||||
final List<AddInvParam> addInvParams = new ArrayList<>();
|
||||
for (IOStorInvDis invDis : disList) {
|
||||
AddInvParam addParam = new AddInvParam();
|
||||
addParam.setPcsn(invDis.getPcsn());
|
||||
addParam.setMaterialCode(invDis.getMaterial_code());
|
||||
addParam.setStoragevehicleCode(invDis.getStoragevehicle_code());
|
||||
addParam.setUnitName(invDis.getQty_unit_name());
|
||||
addParam.setUnitId(invDis.getQty_unit_id());
|
||||
addParam.setQty(invDis.getPlan_qty());
|
||||
addInvParams.add(addParam);
|
||||
}
|
||||
iStInventoryService.changeInventory(InventoryChangeType.ADD_INV, addInvParams);
|
||||
// 如果分配明细全部完成则更新明细表状态
|
||||
if (countDis == 0){
|
||||
// 更新明细表状态
|
||||
final IOStorInvDtl ioStorInvDtl = ioStorInvDtlMapper.selectById(disList.get(0).getIostorinvdtl_id());
|
||||
ioStorInvDtl.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
|
||||
ioStorInvDtlMapper.updateById(ioStorInvDtl);
|
||||
callbackStrategyPublish.callbackStrategy(ioStorInvDtl.getCallback_strategy(),ioStorInvDtl);
|
||||
// 查看明细是否全部完成
|
||||
int countDtl = ioStorInvDtlMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDtl.class)
|
||||
.eq(IOStorInvDtl::getIostorinv_id,ioStorInvDtl.getIostorinv_id())
|
||||
.ne(IOStorInvDtl::getBill_status,IOSEnum.BILL_STATUS.code("完成"))
|
||||
);
|
||||
// 如果明细全部完成则更新主表状态
|
||||
if (countDtl == 0){
|
||||
//更新主表状态
|
||||
ioStorInvMapper.update(new IOStorInv(),new LambdaUpdateWrapper<>(IOStorInv.class)
|
||||
.set(IOStorInv::getBill_status,IOSEnum.BILL_STATUS.code("完成"))
|
||||
.set(IOStorInv::getConfirm_optid, SecurityUtils.getCurrentUserId())
|
||||
.set(IOStorInv::getConfirm_optname, SecurityUtils.getCurrentNickName())
|
||||
.set(IOStorInv::getConfirm_time, DateUtil.now())
|
||||
.eq(IOStorInv::getIostorinv_id,ioStorInvDtl.getIostorinv_id())
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<IOStorInvDisDto> getDisDtl(Map whereJson) {
|
||||
//查询该明细下的所有入库分配载具明细
|
||||
|
||||
@@ -1,9 +1,18 @@
|
||||
package org.nl.wms.warehouse_manage.stockReturn.strategy.core.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.json.JSONArray;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||
import org.nl.wms.warehouse_manage.stockReturn.service.IPmStockReturnService;
|
||||
import org.nl.wms.warehouse_manage.stockReturn.service.dao.PmStockReturn;
|
||||
import org.nl.wms.warehouse_manage.stockReturn.service.enums.StockReturnStatusEnum;
|
||||
import org.nl.wms.warehouse_manage.stockReturn.strategy.core.CallbackStrategy;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDtl;
|
||||
import org.nl.wms.welding_manage.service.work_order.IWorkOrderService;
|
||||
import org.nl.wms.welding_manage.service.work_order.dao.WorkOrderDao;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -18,8 +27,44 @@ public class DealManufactureRecBillCallback implements CallbackStrategy {
|
||||
@Autowired
|
||||
private IPmStockReturnService iPmStockReturnService;
|
||||
|
||||
|
||||
@Override
|
||||
public void buildCallback(IOStorInvDtl param) {
|
||||
final String orderCode = param.getSource_bill_code();
|
||||
final WorkOrderDao workOrder = iWorkOrderService.getOne(new LambdaQueryWrapper<WorkOrderDao>()
|
||||
.eq(WorkOrderDao::getOrder_code, orderCode));
|
||||
if (workOrder == null){
|
||||
throw new BadRequestException("工单不存在");
|
||||
}
|
||||
//组织报文信息
|
||||
// 组织报文信息
|
||||
JSONObject callbackData = new JSONObject();
|
||||
callbackData.put("method", "DealManufactureRecBill");
|
||||
callbackData.put("type", "WMS");
|
||||
// 组装data节点
|
||||
JSONObject data = new JSONObject();
|
||||
data.put("bizStatus", "02"); // 业务状态,可根据实际业务逻辑设置
|
||||
data.put("bizDate", DateUtil.today()); // 业务日期
|
||||
data.put("createPersonNo", "wms"); // 创建人编号,从当前登录用户获取
|
||||
data.put("mesNo", param.getIostorinv_id()); // 使用工单编号作为MES单号
|
||||
// 组装明细列表
|
||||
JSONArray entrys = new JSONArray();
|
||||
JSONObject entry = new JSONObject();
|
||||
entry.put("seq", 1); // 序号
|
||||
entry.put("qty", param.getReal_qty()); // 数量
|
||||
entry.put("sourceBillId", workOrder.getOrder_id()); // 来源单据标识
|
||||
entry.put("sourceBillNo", workOrder.getOrder_code()); // 来源单据编号
|
||||
entrys.add(entry);
|
||||
data.put("entrys", entrys);
|
||||
callbackData.put("data", data);
|
||||
// 记录回传日志 - 发送前
|
||||
PmStockReturn stockReturn = new PmStockReturn();
|
||||
stockReturn.setRequest_Id(workOrder.getOrder_id());
|
||||
stockReturn.setRequest_type(IOSEnum.BILL_TYPE.code("生产入库"));
|
||||
stockReturn.setStatus(StockReturnStatusEnum.TODO.getCode()); // 0-处理中
|
||||
stockReturn.setCreate_time(DateUtil.now());
|
||||
stockReturn.setRequest_data(callbackData.toString());
|
||||
|
||||
iPmStockReturnService.save(stockReturn);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,7 +95,8 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
|
||||
}
|
||||
|
||||
List<WorkOrderDto.WorkOrderDataDto.WorkOrderBomDto> workOrderBomList = workOrder.getWorkOrderBomList();
|
||||
|
||||
//保证一致
|
||||
workOrderBomList.forEach(a->a.setWorkOrderCode(workOrder.getOrderCode()));
|
||||
workOrderMapper.saveWorkOrder(workOrder);
|
||||
workOrderMapper.saveAllBom(workOrderBomList);
|
||||
}
|
||||
|
||||
@@ -181,3 +181,11 @@ eas:
|
||||
namespace: http://ws.eas.kingdee.com/
|
||||
inbound:
|
||||
liku-codes: LK01
|
||||
erp:
|
||||
loginUrl: http://192.168.100.100:8080/ormrpc/services/EASLogin?wsdl
|
||||
busUrl: http://192.168.100.100:8080/ormrpc/services/WSNLMESFacade?wsdl
|
||||
username: user
|
||||
password: Noble123!9
|
||||
slnName: eas
|
||||
dcName: test
|
||||
dbType: 1
|
||||
|
||||
Reference in New Issue
Block a user