|
|
@ -61,86 +61,6 @@ public class TransactionServiceImpl implements TransactionService { |
|
|
|
@Transactional |
|
|
|
public Integer create(List<TransactionCreateReqVO> createReqVOList) { |
|
|
|
int result = 0; |
|
|
|
int line = 0; |
|
|
|
//如果是采购入库,领用出库,盘点调整,需要调用QAD更新数据
|
|
|
|
//领用出库
|
|
|
|
List<TedIssunpMstr> issunpMstr = new ArrayList<>(); |
|
|
|
List<TedIssunpDet> issunpDet = new ArrayList<>(); |
|
|
|
//盘点调整
|
|
|
|
List<TedRctunpMstr> rctunpMstr = new ArrayList<>(); |
|
|
|
List<TedRctunpDet> rctunpDet = new ArrayList<>(); |
|
|
|
//采购入库
|
|
|
|
List<TedReceiptMstr> receiptMstr = new ArrayList<>(); |
|
|
|
List<TedReceiptDet> receiptDet = new ArrayList<>(); |
|
|
|
|
|
|
|
JsonTask jsonTask = new JsonTask(); |
|
|
|
//填充QAD所需的主表数据以及其他数据
|
|
|
|
//每次调用接口都是相同库存动作
|
|
|
|
//TransactionEnum.REQUISITION_OUT 领用出库·
|
|
|
|
if (TransactionEnum.REQUISITION_OUT.getCode().equals(createReqVOList.get(0).getInventoryAction())) {//任务
|
|
|
|
jsonTask = this.sendJsonTask("TED_RECEIPT_MSTR", createReqVOList.size()); |
|
|
|
TedIssunpMstr tedIssunpMstr = new TedIssunpMstr(); |
|
|
|
tedIssunpMstr.setGUID(UUID.randomUUID()); |
|
|
|
tedIssunpMstr.setUser(""); |
|
|
|
tedIssunpMstr.setUnplanedBillNum(null); |
|
|
|
tedIssunpMstr.setDate(jsonTask.getCreateTime()); |
|
|
|
tedIssunpMstr.setTime(jsonTask.getCreateTime()); |
|
|
|
tedIssunpMstr.setUID(0); |
|
|
|
tedIssunpMstr.setCreateUser(jsonTask.getCreateUser()); |
|
|
|
tedIssunpMstr.setCreateTime(jsonTask.getCreateTime()); |
|
|
|
tedIssunpMstr.setRemark(null); |
|
|
|
tedIssunpMstr.setTaskID(jsonTask.getTaskID()); |
|
|
|
tedIssunpMstr.setCommandType("A"); |
|
|
|
tedIssunpMstr.setDomain(jsonTask.getDomain()); |
|
|
|
tedIssunpMstr.setSite(jsonTask.getSite()); |
|
|
|
issunpMstr.add(tedIssunpMstr); |
|
|
|
|
|
|
|
} |
|
|
|
//TransactionEnum.PURCHASE_IN 采购入库
|
|
|
|
if (TransactionEnum.PURCHASE_IN.getCode().equals(createReqVOList.get(0).getInventoryAction())) { |
|
|
|
jsonTask = this.sendJsonTask("TED_ISSUNP_MSTR", createReqVOList.size()); |
|
|
|
TedReceiptMstr tedReceiptMstr = new TedReceiptMstr(); |
|
|
|
tedReceiptMstr.setUser(jsonTask.getCreateUser());// 操作员
|
|
|
|
tedReceiptMstr.setASN("");// 货运单
|
|
|
|
tedReceiptMstr.setPurchaseOrder("");// 采购订单
|
|
|
|
tedReceiptMstr.setSupplier("");// 供应商
|
|
|
|
tedReceiptMstr.setReceiveNbr("");// 收货单号
|
|
|
|
tedReceiptMstr.setReceiptDate(jsonTask.getCreateTime());// 收货日期
|
|
|
|
tedReceiptMstr.setTime(jsonTask.getCreateTime());// 时间
|
|
|
|
tedReceiptMstr.setGUID(UUID.randomUUID());// UUID(一个新的,不重复行)
|
|
|
|
tedReceiptMstr.setID(UUID.randomUUID());// UUID(一个新的,不重复行)
|
|
|
|
tedReceiptMstr.setCreateUser(jsonTask.getCreateUser());// 创建人
|
|
|
|
tedReceiptMstr.setCreateTime(jsonTask.getCreateTime());// 创建时间
|
|
|
|
tedReceiptMstr.setRemark(null);// 备注
|
|
|
|
tedReceiptMstr.setTaskID(jsonTask.getTaskID());// 任务编号
|
|
|
|
tedReceiptMstr.setCommandType("A");// 命令类型
|
|
|
|
tedReceiptMstr.setDataID(UUID.randomUUID());//
|
|
|
|
tedReceiptMstr.setDomain(jsonTask.getDomain()); |
|
|
|
tedReceiptMstr.setSite(jsonTask.getSite()); |
|
|
|
receiptMstr.add(tedReceiptMstr); |
|
|
|
|
|
|
|
} |
|
|
|
//TransactionEnum.ADJUST 盘点调整
|
|
|
|
if (TransactionEnum.ADJUST.getCode().equals(createReqVOList.get(0).getInventoryAction())) { |
|
|
|
jsonTask = this.sendJsonTask("TED_RCTUNP_MSTR", createReqVOList.size()); |
|
|
|
TedRctunpMstr tedRctunpMstr = new TedRctunpMstr(); |
|
|
|
tedRctunpMstr.setUser(jsonTask.getCreateUser()); |
|
|
|
tedRctunpMstr.setReceiveBillNum(null); |
|
|
|
tedRctunpMstr.setDate(jsonTask.getCreateTime()); |
|
|
|
tedRctunpMstr.setTime(jsonTask.getCreateTime()); |
|
|
|
tedRctunpMstr.setGUID(UUID.randomUUID()); |
|
|
|
tedRctunpMstr.setUID(0); |
|
|
|
tedRctunpMstr.setCreateUser(jsonTask.getCreateUser()); |
|
|
|
tedRctunpMstr.setCreateTime(jsonTask.getCreateTime()); |
|
|
|
tedRctunpMstr.setRemark(null); |
|
|
|
tedRctunpMstr.setTaskID(jsonTask.getTaskID());// 任务编号
|
|
|
|
tedRctunpMstr.setCommandType("A");// 命令类型
|
|
|
|
tedRctunpMstr.setDataID(UUID.randomUUID());//
|
|
|
|
tedRctunpMstr.setDomain(jsonTask.getDomain()); |
|
|
|
tedRctunpMstr.setSite(jsonTask.getSite()); |
|
|
|
rctunpMstr.add(tedRctunpMstr); |
|
|
|
|
|
|
|
} |
|
|
|
for (TransactionCreateReqVO createReqVO : createReqVOList) { |
|
|
|
TransactionDO transactionDO = TransactionConvert.INSTANCE.convert(createReqVO); |
|
|
|
//生成单据号
|
|
|
@ -152,137 +72,10 @@ public class TransactionServiceImpl implements TransactionService { |
|
|
|
ItemAccountsCreateReqVO itemAccountsCreateReqVO = new ItemAccountsCreateReqVO(); |
|
|
|
BeanUtils.copyProperties(transactionDO, itemAccountsCreateReqVO); |
|
|
|
Boolean b = itemAccountsMapper.updateItemAccountsQty(itemAccountsCreateReqVO, transactionDO.getTransactionType(), transactionDO.getInventoryAction()); |
|
|
|
//查询备件的库存是否小于等与重采购点,如果满足条件则给oa推送消息
|
|
|
|
String inventoryAction = createReqVO.getInventoryAction(); |
|
|
|
if (b && TransactionEnum.REQUISITION_OUT.getCode().equals(inventoryAction)) {//领用出库需要判断重采购点与安全库存以便于给oa发通知
|
|
|
|
SendOa(createReqVO.getItemNumber()); |
|
|
|
} |
|
|
|
//填充QAD所需的子表数据
|
|
|
|
if (BooleanTypeEnum.Y.getCode().equals(createReqVO.getIsInAccount())) { |
|
|
|
|
|
|
|
//TransactionEnum.REQUISITION_OUT 领用出库·
|
|
|
|
if (TransactionEnum.REQUISITION_OUT.getCode().equals(createReqVO.getInventoryAction())) { |
|
|
|
TedIssunpDet tedIssunpDet = new TedIssunpDet(); |
|
|
|
tedIssunpDet.setDataID(UUID.randomUUID());//(一个新的,不重复行)
|
|
|
|
tedIssunpDet.setCommandType("A");//命令类型--赋值A
|
|
|
|
tedIssunpDet.setTaskID(jsonTask.getTaskID());//任务编号
|
|
|
|
tedIssunpDet.setRemark("");//备注
|
|
|
|
tedIssunpDet.setCreateTime(jsonTask.getCreateTime());//创建时间
|
|
|
|
tedIssunpDet.setCreateUser(jsonTask.getCreateUser());// 创建人
|
|
|
|
tedIssunpDet.setUID(0);//
|
|
|
|
tedIssunpDet.setGUID(UUID.randomUUID());//UUID(一个新的,不重复行)
|
|
|
|
tedIssunpDet.setProject("");// 项目
|
|
|
|
tedIssunpDet.setCcAccount("");// 成本中心
|
|
|
|
tedIssunpDet.setSubAccount("");// 分账户
|
|
|
|
tedIssunpDet.setDomain(jsonTask.getDomain());// 域
|
|
|
|
tedIssunpDet.setCreditAccount("");// 科目
|
|
|
|
tedIssunpDet.setAddress("");// 地址
|
|
|
|
tedIssunpDet.setCustomerNbr("");// 客户单
|
|
|
|
tedIssunpDet.setLine(line++);// 行号
|
|
|
|
tedIssunpDet.setReference(null);// 参考号
|
|
|
|
tedIssunpDet.setLot("");// 批号 批次
|
|
|
|
tedIssunpDet.setLocation(createReqVO.getLocationNumber());// 库位 erp库位
|
|
|
|
tedIssunpDet.setConversion("");// 转换量
|
|
|
|
tedIssunpDet.setQuantity(createReqVO.getQty());// 数量
|
|
|
|
tedIssunpDet.setUm(itemDO.getUom());// 单位
|
|
|
|
tedIssunpDet.setPartCode(itemDO.getItemNumber());// 物料号
|
|
|
|
//通过事务的ID 来判断是哪个事务出现问题
|
|
|
|
tedIssunpDet.setUnplanedBillNum(transactionDO.getAssociatedNumber());// 单号
|
|
|
|
tedIssunpDet.setRemarks("");// 备注
|
|
|
|
tedIssunpDet.setSite(jsonTask.getSite()); |
|
|
|
issunpDet.add(tedIssunpDet); |
|
|
|
|
|
|
|
} |
|
|
|
//TransactionEnum.PURCHASE_IN 采购入库
|
|
|
|
if (TransactionEnum.PURCHASE_IN.getCode().equals(createReqVO.getInventoryAction())) { |
|
|
|
TedReceiptDet tedReceiptDet = new TedReceiptDet(); |
|
|
|
tedReceiptDet.setGUID(UUID.randomUUID());// UUID(一个新的,不重复行)
|
|
|
|
tedReceiptDet.setASN("");// ASN单号
|
|
|
|
tedReceiptDet.setPurchaseOrder(transactionDO.getId().toString());// 采购订单
|
|
|
|
tedReceiptDet.setLine(line++);// 行号
|
|
|
|
tedReceiptDet.setPartCode(itemDO.getItemNumber());// 物料号
|
|
|
|
tedReceiptDet.setReceiveNbr(transactionDO.getId().toString());// 收货单号
|
|
|
|
tedReceiptDet.setReceiveQuantity(createReqVO.getQty());// 收货数量
|
|
|
|
tedReceiptDet.setLocation(createReqVO.getLocationNumber());// 库位
|
|
|
|
tedReceiptDet.setUm(itemDO.getUom());// 采购单位
|
|
|
|
tedReceiptDet.setLogisticsUm("");// 物流单位
|
|
|
|
tedReceiptDet.setLot("");// 批号
|
|
|
|
tedReceiptDet.setReference("");// 参考号
|
|
|
|
tedReceiptDet.setUID(0);//
|
|
|
|
tedReceiptDet.setSupplierLot("");// 供应商批次
|
|
|
|
tedReceiptDet.setCreateUser(jsonTask.getCreateUser());// 创建人
|
|
|
|
tedReceiptDet.setCreateTime(jsonTask.getCreateTime());// 创建时间
|
|
|
|
tedReceiptDet.setRemark("");// 备注
|
|
|
|
tedReceiptDet.setTaskID(jsonTask.getTaskID());// 任务编号
|
|
|
|
tedReceiptDet.setCommandType("A");// 命令类型--赋值A
|
|
|
|
tedReceiptDet.setDataID(UUID.randomUUID());//
|
|
|
|
tedReceiptDet.setDomain(jsonTask.getDomain());// 域
|
|
|
|
tedReceiptDet.setSite(jsonTask.getSite());// 地点
|
|
|
|
receiptDet.add(tedReceiptDet); |
|
|
|
} |
|
|
|
//TransactionEnum.ADJUST 盘点调整
|
|
|
|
if (TransactionEnum.ADJUST.getCode().equals(createReqVO.getInventoryAction())) { |
|
|
|
TedRctunpDet tedRctunpDet = new TedRctunpDet(); |
|
|
|
tedRctunpDet.setDataID(UUID.randomUUID());//
|
|
|
|
tedRctunpDet.setCommandType("A");// 命令类型
|
|
|
|
tedRctunpDet.setTaskID(jsonTask.getTaskID());// 任务编号
|
|
|
|
tedRctunpDet.setRemark("");// 备注
|
|
|
|
tedRctunpDet.setCreateTime(jsonTask.getCreateTime());// 创建时间
|
|
|
|
tedRctunpDet.setCreateUser(jsonTask.getCreateUser());// 创建人
|
|
|
|
tedRctunpDet.setUID(0);//
|
|
|
|
tedRctunpDet.setGUID(UUID.randomUUID());// UUID(一个新的,不重复行)
|
|
|
|
tedRctunpDet.setProject("");// 项目
|
|
|
|
tedRctunpDet.setCcAccount("");// 成本中心
|
|
|
|
tedRctunpDet.setSubAccount("");// 分账户
|
|
|
|
tedRctunpDet.setDomain(jsonTask.getDomain());// 域
|
|
|
|
tedRctunpDet.setCreditAccount("");// 科目
|
|
|
|
tedRctunpDet.setAddress("");// 地址
|
|
|
|
tedRctunpDet.setCustomerNbr("");// 客户单
|
|
|
|
tedRctunpDet.setLine(line++);// 行号
|
|
|
|
tedRctunpDet.setReference("");// 参考号
|
|
|
|
tedRctunpDet.setLot("");// 批号
|
|
|
|
tedRctunpDet.setLocation(createReqVO.getLocationNumber());// 库位
|
|
|
|
tedRctunpDet.setConversion("");// 转换量
|
|
|
|
tedRctunpDet.setQuantity(createReqVO.getQty());// 数量
|
|
|
|
tedRctunpDet.setUm(itemDO.getUom());// 单位
|
|
|
|
tedRctunpDet.setPartCode(itemDO.getItemNumber());// 物料号
|
|
|
|
tedRctunpDet.setReceiveBillNum(transactionDO.getAssociatedNumber());// 单号
|
|
|
|
tedRctunpDet.setRemarks("");// 备注
|
|
|
|
tedRctunpDet.setSite("");// 地点
|
|
|
|
rctunpDet.add(tedRctunpDet); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
//用事务的关联number来对应qad的主子表单号
|
|
|
|
if (issunpDet.size() > 0) { |
|
|
|
issunpMstr.get(0).setUnplanedBillNum(issunpDet.get(0).getUnplanedBillNum()); |
|
|
|
// SoapUtil.addJob(issunpMstr, issunpDet, jsonTask);
|
|
|
|
} |
|
|
|
if (rctunpDet.size() > 0) { |
|
|
|
rctunpMstr.get(0).setReceiveBillNum(rctunpDet.get(0).getReceiveBillNum()); |
|
|
|
SoapUtil.addJob(rctunpMstr, rctunpDet, jsonTask); |
|
|
|
} |
|
|
|
if (receiptDet.size() > 0) { |
|
|
|
receiptMstr.get(0).setReceiveNbr(receiptDet.get(0).getReceiveNbr()); |
|
|
|
// SoapUtil.addJob(receiptMstr, receiptDet, jsonTask);
|
|
|
|
} |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
public JsonTask sendJsonTask(String tableName, int size) { |
|
|
|
JsonTask jsonTask = new JsonTask(); |
|
|
|
jsonTask.setTaskID(UUID.randomUUID()); |
|
|
|
jsonTask.setTableName(tableName); |
|
|
|
jsonTask.setDataCount(size); |
|
|
|
jsonTask.setCreator("EAM"); |
|
|
|
AdminUserRespDTO user = userApi.getUser(getLoginUserId()); |
|
|
|
jsonTask.setCreateUser(user.getNickname()); |
|
|
|
jsonTask.setDomain("FAWAYQCJ"); //--QAD域
|
|
|
|
jsonTask.setSite("1120"); //-- QAD地点
|
|
|
|
jsonTask.setCreateTime(LocalDateTime.now()); |
|
|
|
return jsonTask; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public Integer update(TransactionUpdateReqVO updateReqVO) { |
|
|
|
// 校验存在
|
|
|
@ -330,17 +123,4 @@ public class TransactionServiceImpl implements TransactionService { |
|
|
|
public PageResult<TransactionDO> getTransactionSenior(CustomConditions conditions) { |
|
|
|
return Mapper.selectSenior(conditions); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void SendOa(String number) { |
|
|
|
long l = itemAccountsMapper.selectCountByItemNumber(number); |
|
|
|
QueryWrapper<ItemDO> query = new QueryWrapper<>(); |
|
|
|
query.eq("number", number); |
|
|
|
query.eq("deleted", 0); |
|
|
|
query.eq("available", "TRUE"); |
|
|
|
List<ItemDO> itemDOS = itemMapper.selectList(query); |
|
|
|
if (!itemDOS.isEmpty()) { |
|
|
|
ItemDO itemDO = itemDOS.get(0); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|