Commit 1a847e99 authored by 鲁鑫's avatar 鲁鑫

物料导入;采购订单审批优化;采购申请审批优化

parent 6b061492
......@@ -104,7 +104,7 @@ function doView(id) {
// function next(){
// UICtrl.addTabItem({
// tabid: 'showNonProdApplyNext',
// text: "非产品/非成品类物料主数据维护申请详情",
// text: "非产品/非成品类物料主数据维护申请详情",
// url: web_app.name + '/sapNonProdApply/forwardNonProdApplyNext.do?isDetailPage=true'
// });
// }
\ No newline at end of file
......@@ -64,7 +64,8 @@ function loadNonProdApplyListGrid() {
}
extendedHandler(result.id,result.matnr);;
}
}
},
impExcelDataHandler:{id:'impExcelData',img:'fa-table',text:'导入数据',click:impExcelDataHandler},
/* publishHandler: {id: 'publishData', text: '数据发布', img: 'fa-map', className: 'btn-gray',
click: function () {
......@@ -250,10 +251,17 @@ function publishDatas(message, id) {
});
}
//从EXCEL导入数据
function impExcelDataHandler(){
ExcelImpManager.showImpDialog('导入', 'materialData',new Date().getTime(), function (){
reloadGrid();
});
}
// function next(){
// UICtrl.addTabItem({
// tabid: 'showNonProdApplyNext',
// text: "非产品/非成品类物料主数据维护申请详情",
// text: "非产品/非成品类物料主数据维护申请详情",
// url: web_app.name + '/sapNonProdApply/forwardNonProdApplyNext.do?isDetailPage=true'
// });
// }
\ No newline at end of file
......@@ -3,7 +3,8 @@
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<x:base include="layout,dialog,grid,tree,combox,commonTree"/>
<x:base include="layout,dialog,grid,tree,combox,commonTree,date,attachment"/>
<x:script src="/system/excelimport/AssignCodeImp.js"/>
<x:script src='/biz/topsun/sap/nonProdApply/nonProdApplyList.js'/>
</head>
<body>
......
......@@ -18,7 +18,7 @@
<div class="container-fluid" style="padding: 10px;">
<c:if test="${applyType==0||applyType==3}">
<x:billTitle title="非产品/非成品类物料基本信息维护" needStatus="false" needPerson="true"/>
<x:billTitle title="非产品/非成品类物料基本信息维护" needStatus="false" needPerson="true"/>
</c:if>
<c:if test="${applyType==1}">
<x:billTitle title="非产品/非半成品类物料变更基本信息维护" needStatus="false" needPerson="true"/>
......
......@@ -27,7 +27,7 @@ function loadSuppliersDataListGrid() {
UICtrl.addTabItem({
tabid: 'showNonProdApplyNext'+result.id,
text: "非产品/非成品类物料主数据维护申请详情",
text: "非产品/非成品类物料主数据维护申请详情",
url: web_app.name + '/sapNonProdApplyNext/forwardNonProdApplyNext.do?bizId='+result.id
});
}
......@@ -210,7 +210,7 @@ function showUpdateDialog(id) {
// function next(){
// UICtrl.addTabItem({
// tabid: 'showNonProdApplyNext',
// text: "非产品/非成品类物料主数据维护申请详情",
// text: "非产品/非成品类物料主数据维护申请详情",
// url: web_app.name + '/sapNonProdApply/forwardNonProdApplyNext.do?isDetailPage=true'
// });
// }
......
......@@ -323,7 +323,10 @@ public class NonProdApplyDeptApplicationImpl extends BaseApplication implements
String result = defaultHttpClient.execute(mapList, url);
List<Map<String, Object>> resultList = objectMapper.readValue(result, new TypeReference<List<Map<String, Object>>>() {
});
Map<String, Object> returnMap = resultList.get(1);
Map<String, Object> returnMap = resultList.get(0);
if ("2".equals(returnMap.get("TYPE"))){
returnMap = resultList.get(1);
}
mapCopy(backMap,returnMap);
// resultMap.put("businessType", busiType);
// resultMap.put("parameter", JSON.toJSONString(map));
......
package com.huigou.topsun.sap.nonProdApply.application.impl;
import com.huigou.topsun.sap.nonProdApply.domain.TmpNonProdMaterialDataImport;
import com.huigou.topsun.sap.nonProdApply.repository.TmpNonProdMaterialDataImportRepository;
import com.huigou.uasp.tool.dataimport.application.ExcelImportInterface;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("nonProdMaterialDataExcelImport")
public class NonProdMaterialDataExcelImport implements ExcelImportInterface {
@Autowired
private TmpNonProdMaterialDataImportRepository tmpNonProdMaterialDataImportRepository;
@Override
public void executeImport(String batchNumber) {
List<TmpNonProdMaterialDataImport> dataImportList = tmpNonProdMaterialDataImportRepository.findByBatchNumber(batchNumber);
}
}
......@@ -10,7 +10,7 @@ import javax.persistence.*;
import java.util.Date;
/**
* 非产品/非成品类物料主数据维护申请基础表
* 非产品/非成品类物料主数据维护申请基础表
* @TableName non_prod_apply_base_info
*/
@Table(name="sap_non_prod_apply_base_info")
......
package com.huigou.topsun.sap.nonProdApply.domain;
import com.huigou.topsun.common.AbstractPortalOrg;
import lombok.Data;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
/**
*
* @TableName tmp_non_prod_material_data
* 物料导入模板临时数据表
*/
@Table(name="tmp_non_prod_material_data")
@Data
@Entity
public class TmpNonProdMaterialDataImport extends AbstractPortalOrg {
/**
* 物料编码
*/
@Column(name = "MATNR")
private String matnr;
/**
* 行业
*/
@Column(name = "MBRSH")
private String mbrsh;
/**
* 物料类型
*/
@Column(name = "MTART")
private String mtart;
/**
* 工厂
*/
@Column(name = "WERKS")
private String werks;
@Column(name = "WERKS_NAME")
private String werksName;
/**
* 库存地点
*/
@Column(name = "LGORT")
private String lgort;
@Column(name = "LGORT_NAME")
private String lgortName;
/**
* 库存地点(存储)
*/
@Column(name = "LGORT_QM")
private String lgortQm;
@Column(name = "LGORT_QM_NAME")
private String lgortQmName;
/**
* 销售组织
*/
@Column(name = "VKORG")
private String vkorg;
@Column(name = "VKORG_NAME")
private String vkorgName;
/**
* 分销渠道
*/
@Column(name = "VTWEG")
private String vtweg;
@Column(name = "VTWEG_NAME")
private String vtwegName;
/**
* 仓库号
*/
@Column(name = "LGNUM")
private String lgnum;
@Column(name = "LGNUM_NAME")
private String lgnumName;
/**
* 存储类型
*/
@Column(name = "LGTYP")
private String lgtyp;
@Column(name = "LGTYP_NAME")
private String lgtypName;
/**
* 汉语品名
*/
@Column(name = "MAKTX")
private String maktx;
/**
* 汉语语言
*/
@Column(name = "SPARS")
private String spars;
/**
* 英语品名
*/
@Column(name = "MAKTX_EN")
private String maktxEn;
/**
* 英语语言码
*/
@Column(name = "SPARS_EN")
private String sparsEn;
/**
* 基本计量单位
*/
@Column(name = "MEINS")
private String meins;
@Column(name = "MEINS_NAME")
private String meinsName;
/**
* 物料组
*/
@Column(name = "MATKL")
private String matkl;
@Column(name = "MATKL_NAME")
private String matklName;
/**
* 毛重
*/
@Column(name = "BRGEW")
private String brgew;
/**
* 净重
*/
@Column(name = "NTGEW")
private String ntgew;
/**
* 重量单位
*/
@Column(name = "GEWEI")
private String gewei;
/**
* 产品组
*/
@Column(name = "SPART")
private String spart;
@Column(name = "SPART_NAME")
private String spartName;
/**
* 基本数据文本语言
*/
@Column(name = "SPTXT")
private String sptxt;
/**
* 文本说明中文
*/
@Column(name = "MAKTX_DESC_CN")
private String maktxDescCn;
/**
* 文本说明英文
*/
@Column(name = "MAKTX_DESC_EN")
private String maktxDescEn;
/**
* 销售计量单位
*/
@Column(name = "VRKME")
private String vrkme;
@Column(name = "vrkme_name")
private String vrkmeName;
/**
* 销售计量单位转换分母
*/
@Column(name = "UMREN_SALE")
private String umrenSale;
/**
* 销售计量单位转换分子
*/
@Column(name = "UMREZ_SALE")
private String umrezSale;
/**
* 采购计量单位
*/
@Column(name = "BSTME")
private String bstme;
@Column(name = "BSTME_NAME")
private String bstmeName;
/**
* 转换分母(采购)
*/
@Column(name = "UMREN_PURCH")
private String umrenPurch;
/**
* 转换分子(采购)
*/
@Column(name = "UMREZ_PURCH")
private String umrezPurch;
/**
* 转换分母
*/
@Column(name = "UMREN")
private String umren;
/**
* 转换分子
*/
@Column(name = "UMREZ")
private String umrez;
/**
* 类型
*/
@Column(name = "KLART")
private String klart;
/**
* 类类型
*/
@Column(name = "CLASS")
private String classify;
/**
* 税分类
*/
@Column(name = "TAXKM")
private String taxkm;
/**
* 批次管理
*/
@Column(name = "XCHPF")
private String xchpf;
/**
* 统计组
*/
@Column(name = "VERSG")
private String versg;
/**
* 产品层级
*/
@Column(name = "PRODH")
private String prodh;
/**
* 会计科目组
*/
@Column(name = "KTGRM")
private String ktgrm;
/**
* 品牌
*/
@Column(name = "MVGR1")
private String mvgr1;
/**
* 经营类型
*/
@Column(name = "MVGR2")
private String mvgr2;
/**
* 可用性检查组
*/
@Column(name = "MTVFP")
private String mtvfp;
/**
* 运输组
*/
@Column(name = "TRAGR")
private String tragr;
/**
* 装载组
*/
@Column(name = "LADGR")
private String ladgr;
@Column(name = "LADGR_NAME")
private String ladgrName;
/**
* 利润中心
*/
@Column(name = "PRCTR")
private String prctr;
/**
* 默认采购组
*/
@Column(name = "EKGRP")
private String ekgrp;
@Column(name = "EKGRP_NAME")
private String ekgrpName;
/**
* 过账到质检
*/
@Column(name = "INSMK")
private String insmk;
/**
* 收货处理天数
*/
@Column(name = "WEBAZ")
private String webaz;
/**
* MRP类型
*/
@Column(name = "DISMM")
private String dismm;
/**
* 重订货点
*/
@Column(name = "MINBE")
private String minbe;
/**
* MRP控制者
*/
@Column(name = "DISPO")
private String dispo;
/**
* 最大批量
*/
@Column(name = "BSTMA")
private String bstma;
/**
* 最小批量
*/
@Column(name = "BSTMI")
private String bstmi;
/**
* 固定批量
*/
@Column(name = "BSTFE")
private String bstfe;
/**
* 舍入值
*/
@Column(name = "BSTRF")
private String bstrf;
/**
* 最大存货水平
*/
@Column(name = "MABST")
private String mabst;
/**
* 倒冲标志
*/
@Column(name = "RGEKZ")
private String rgekz;
/**
* 生产发料默认存储地
*/
@Column(name = "LGPRO")
private String lgpro;
@Column(name = "LGPRO_NAME")
private String lgproName;
/**
* 采购收货默认存储地
*/
@Column(name = "LGFSB")
private String lgfsb;
@Column(name = "LGFSB_NAME")
private String lgfsbName;
/**
* 自制天数
*/
@Column(name = "DZEIT")
private String dzeit;
/**
* 计划交货天数
*/
@Column(name = "PLIFZ")
private String plifz;
/**
* 安全库存
*/
@Column(name = "EISBE")
private String eisbe;
/**
*期间标识
*/
@Column(name = "PERKZ")
private String perkz;
/**
* 计划策略组
*/
@Column(name = "STRGR")
private String strgr;
/**
* 消耗模式
*/
@Column(name = "VRMOD")
private String vrmod;
/**
* 逆推消耗期间
*/
@Column(name = "VINT1")
private String vint1;
/**
* 顺推消耗期间
*/
@Column(name = "VINT2")
private String vint2;
/**
* 独立/集中
*/
@Column(name = "SBDKZ")
private String sbdkz;
/**
* 投料计量单位
* 发货计量单位
*/
@Column(name = "AUSME")
private String ausme;
@Column(name = "AUSME_NAME")
private String ausmeName;
/**
* 转换分母(生产)
*/
@Column(name = "UMREN_PROD")
private String umrenProd;
/**
* 转换分子(生产)
*/
@Column(name = "UMREZ_PROD")
private String umrezProd;
/**
* 生产主管
*/
@Column(name = "FEVOR")
private String fevor;
/**
* 生产计划参数文件
*/
@Column(name = "SFCPF")
private String sfcpf;
/**
* 存储条件
*/
@Column(name = "RAUBE")
private String raube;
@Column(name = "RAUBE_NAME")
private String raubeName;
/**
* 最小货架寿命
*/
@Column(name = "MHDRZ")
private String mhdrz;
/**
* 总有效期
*/
@Column(name = "MHDHB")
private String mhdhb;
/**
* 有效期标识
*/
@Column(name = "IPRKZ")
private String iprkz;
/**
* 过期日期
*/
@Column(name = "SLED_BBD")
private String sledBbd;
/**
* 序列号参数文件
*/
@Column(name = "SERNP")
private String sernp;
/**
* 序列号层次
*/
@Column(name = "SERLV")
private String serlv;
/**
* 存货下架存储类型
*/
@Column(name = "LTKZA")
private String ltkza;
@Column(name = "LTKZA_NAME")
private String ltkzaName;
/**
* 存货上架存储类型
*/
@Column(name = "LTKZE")
private String ltkze;
@Column(name = "LTKZE_NAME")
private String ltkzeName;
/**
* 存储分区标识
*/
@Column(name = "LGBKZ")
private String lgbkz;
@Column(name = "LGBKZ_NAME")
private String lgbkzName;
/**
* 仓库设施1存储数量
* 仓位最大承载
*/
@Column(name = "LHMG1")
private String lhmg1;
/**
* 仓库设施1存储单位
* 承载单位
*/
@Column(name = "LHME1")
private String lhme1;
@Column(name = "LHME1_NAME")
private String lhme1Name;
/**
* 仓库设施1类型
* 仓储单位类型
*/
@Column(name = "LETY1")
private String lety1;
/**
* 评估分类
*/
@Column(name = "BKLAS")
private String bklas;
/**
* 销售评估类
*/
@Column(name = "EKLAS")
private String eklas;
/**
* 价格确定
*/
@Column(name = "MLAST")
private String mlast;
/**
* 定价基数
*/
@Column(name = "PEINH")
private String peinh;
/**
* 价格控制
*/
@Column(name = "VPRSV")
private String vprsv;
/**
* 数量结构
*/
@Column(name = "EKALR")
private String ekalr;
/**
* 物料来源
*/
@Column(name = "HKMAT")
private String hkmat;
/**
* 差异码
*/
@Column(name = "AWSLS")
private String awsls;
/**
* 集团删除
*/
@Column(name = "LVORM")
private String lvorm;
/**
* 销售项目类别组
*/
@Column(name = "MTPOS_MARA")
private String mtposMara;
/**
* 适用标准
*/
@Column(name = "NORMT")
private String normt;
/**
* 包装物料组
*/
@Column(name = "MAGRV")
private String magrv;
/**
* 体积
*/
@Column(name = "VOLUM")
private String volum;
/**
* 体积单位
*/
@Column(name = "VOLEH")
private String voleh;
/**
* 交货工厂
*/
@Column(name = "DWERK")
private String dwerk;
@Column(name = "DWERK_NAME")
private String dwerkName;
/**
* 税收发运国
*/
@Column(name = "ALAND")
private String aland;
@Column(name = "ALAND_NAME")
private String alandName;
/**
* 物料定价组
*/
@Column(name = "KONDM")
private String kondm;
/**
* 用途
*/
@Column(name = "MVGR3")
private String mvgr3;
/**
* 备用
*/
@Column(name = "MVGR4")
private String mvgr4;
/**
* 备用
*/
@Column(name = "MVGR5")
private String mvgr5;
/**
* 销售项次组
*/
@Column(name = "MTPOS")
private String mtpos;
/**
* MPN参数
*/
@Column(name = "MPROF")
private String mprof;
/**
* 工厂(采购)
*/
@Column(name = "WERKS_PURCH")
private String werksPurch;
/**
* MRP组
*/
@Column(name = "DISGR")
private String disgr;
/**
* 批量规模
*/
@Column(name = "DISLS")
private String disls;
/**
* 采购类型
*/
@Column(name = "BESKZ")
private String beskz;
/**
* 特殊采购
*/
@Column(name = "SOBSL")
private String sobsl;
/**
* 排程边际码
*/
@Column(name = "FHORI")
private String fhori;
/**
* 最小安全库存
*/
@Column(name = "EISLO")
private String eislo;
/**
* 补货提前天数
*/
@Column(name = "WZEIT")
private String wzeit;
/**
* BOM选择方法
*/
@Column(name = "ALTSL")
private String altsl;
/**
* 库存地MRP标识
*/
@Column(name = "DISKZ")
private String diskz;
/**
* 工厂(质检)
*/
@Column(name = "WERKS_QM")
private String werksQm;
/**
* 工厂(利润中心)
*/
@Column(name = "WERKS_PROFIT")
private String werksProfit;
/**
* 库存地点(仓库)
*/
@Column(name = "LGORT_PROFIT")
private String lgortProfit;
@Column(name = "LGORT_PROFIT_NAME")
private String lgortProfitName;
/**
* 工厂(文档要求)
*/
@Column(name = "WERKS_DOC")
private String werksDoc;
/**
* 文档要求
*/
@Column(name = "KZDKZ")
private String kzdkz;
/**
* 检验类型
*/
@Column(name = "ART")
private String art;
/**
* 激活标识
*/
@Column(name = "AKTIV")
private String aktiv;
/**
* 过账到质检(质检)
*/
@Column(name = "INSMK_QM")
private String insmkQm;
/**
* 带任务清单检验
*/
@Column(name = "PPL")
private String ppl;
/**
* 自动分配
*/
@Column(name = "APP")
private String app;
/**
* 检查特性
*/
@Column(name = "MER")
private String mer;
/**
* 允许略过
*/
@Column(name = "DYN")
private String dyn;
/**
* 工厂(评估分类)
*/
@Column(name = "BWKEY")
private String bwkey;
/**
* 移动平均价
*/
@Column(name = "VERPR")
private String verpr;
/**
* 标准价
*/
@Column(name = "STPRS")
private String stprs;
/**
* 不参与成本核算
*/
@Column(name = "NCOST")
private String ncost;
/**
* 维护状态(0草稿;1保存;2分发)
*/
@Column(name = "STATUS")
private String status;
@Column(name = "dispo_name")
private String dispoName;
@Column(name = "minbe_name")
private String minbeName;
@Transient
private String billCode;
@Transient
private Integer statusId;
@Transient
private String personMemberName;
@Transient
private Date fillinDate;
@Transient
private String maintenanceType;
@Transient
private String businessUsage;
@Transient
private String businessCode;
//物品总属性
@Transient
private String genericName;
@Transient
private String applicableStandard;
@Transient
private String baseUnit;
@Transient
private String specifications;
@Transient
private String material;
@Transient
private String design;
@Transient
private String size;
@Transient
private String brand;
@Transient
private String brandName;
@Transient
private String materialUsage;
@Transient
private String itemAttributes;
@Transient
private Integer distribute;
@Transient
private String kind;
}
\ No newline at end of file
package com.huigou.topsun.sap.nonProdApply.repository;
import com.huigou.topsun.sap.nonProdApply.domain.TmpNonProdMaterialDataImport;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
/**
* @Auther: xin.lu
* @Date: 2024/06/17/14:54
* @Description:
*/
public interface TmpNonProdMaterialDataImportRepository extends JpaRepository<TmpNonProdMaterialDataImport,String> {
List<TmpNonProdMaterialDataImport> findByBatchNumber(String batchNumber);
}
......@@ -45,11 +45,13 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Auther: xin.lu
......@@ -226,7 +228,8 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa
public void saveSapPurchaseApprovalVo(SapPurchaseApprovalDto sapPurchaseApprovalDto) {
// SapPurchaseApproval sapPurchaseApprovalVo = new SapPurchaseApproval();
SapPurchaseApprovalVo purchaseApprovalVo = sapPurchaseApprovalDto.getLsDeader();
SapPurchaseApproval purchaseApproval=sapPurchaseApprovalRepository.findAllByBanfn(purchaseApprovalVo.getBanfn());
List<SapPurchaseApproval> purchaseApprovalList = sapPurchaseApprovalRepository.findAllByBanfn(purchaseApprovalVo.getBanfn());
String purchaseApprovalId = "";
SapPurchaseApproval sapPurchaseApproval = new SapPurchaseApproval();
//根据SAP传过来的创建人编码,映射流程发起人
String ernam = purchaseApprovalVo.getErnam();
......@@ -280,18 +283,32 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa
// sapPurchaseApproval.setBillCode(nextCode);
// sapPurchaseApproval = mannualStartWorkflow(sapPurchaseApproval);
// purchaseOrderId = sapPurchaseApproval.getId();
String pId=mannualStartWorkApplication.startWorkflow(sapPurchaseApproval,PROCESS_DEFINITION_KEY,"sapPurchaseApproval");
sapPurchaseApproval=this.sapPurchaseApprovalRepository.findOne(pId);
if (purchaseApproval == null) {
if (CollectionUtils.isEmpty(purchaseApprovalList)) {
purchaseApprovalId=mannualStartWorkApplication.startWorkflow(sapPurchaseApproval,PROCESS_DEFINITION_KEY,"sapPurchaseApproval");
} else{
//将存在的作废掉 05.11 lxh
purchaseApproval.setStatusId(BizBillStatus.ABORTED.getId());
this.sapPurchaseApprovalRepository.save(purchaseApproval);
}
for (SapPurchaseApproval purchaseApproval : purchaseApprovalList) {
//将存在的作废掉 05.11 lxh
//终止状态不管
//审批完成的,SAP撤审触发,终止审批完成的,并发起新的流程
if (purchaseApproval.getStatusId() == BizBillStatus.COMPLETED.getId()){
purchaseApproval.setStatusId(BizBillStatus.ABORTED.getId());
purchaseApprovalId=mannualStartWorkApplication.startWorkflow(sapPurchaseApproval,PROCESS_DEFINITION_KEY,"sapPurchaseApproval");
}
sapPurchaseApprovalItemApplication.saveSapPurchaseApprovalItems(sapPurchaseApproval.getId(),sapPurchaseApprovalItems);
//在审批中,更新明细数据的(先删除,再新增)
if (purchaseApproval.getStatusId() == BizBillStatus.APPROVING.getId()){
List<SapPurchaseApprovalItem> itemList = sapPurchaseApprovalItemApplication.querySapPurchaseApprovalItems(purchaseApproval.getId());
List<String> collect = itemList.stream().map(SapPurchaseApprovalItem::getId).collect(Collectors.toList());
sapPurchaseApprovalItemApplication.deleteByIds(collect);
purchaseApprovalId = purchaseApproval.getId();
}
this.sapPurchaseApprovalRepository.save(purchaseApproval);
}
}
sapPurchaseApprovalItemApplication.saveSapPurchaseApprovalItems(purchaseApprovalId,sapPurchaseApprovalItems);
}
/*public String startProcessInstance(String processDefinitionKey,Map<String, Object> formData){
......
......@@ -49,7 +49,7 @@ public class SapPurchaseApprovalController extends CommonController {
messageMap.put("Message_Status","S");
messageMap.put("Message_Text","成功");
messageMap.put("NUMBER",sapPurchaseApprovalDto.getLsDeader().getBanfn());
LOG.info("SAP采购申请审批数据=={}",sapPurchaseApprovalDto);
LOG.info("SAP采购申请审批数据=={}",JSONUtil.toString(sapPurchaseApprovalDto));
try {
this.sapPurchaseApprovalApplication.saveSapPurchaseApprovalVo(sapPurchaseApprovalDto);
}catch (RuntimeException e){
......
......@@ -4,6 +4,8 @@ import com.huigou.topsun.sap.purchaseApproval.domain.SapPurchaseApproval;
import com.huigou.topsun.sap.purchaseOrder.domain.SapPurchaseOrder;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
/**
* @Auther: xin.lu
* @Date: 2024/01/09/19:00
......@@ -11,5 +13,5 @@ import org.springframework.data.jpa.repository.JpaRepository;
*/
public interface SapPurchaseApprovalRepository extends JpaRepository<SapPurchaseApproval,String> {
SapPurchaseApproval findAllByBanfn(String banfn);
List<SapPurchaseApproval> findAllByBanfn(String banfn);
}
......@@ -47,6 +47,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.*;
......@@ -205,7 +206,7 @@ public class SapPurchaseOrderApplicationImpl extends FlowBroker implements SapPu
@Transactional
public void saveSapPurchaseOrderDto(SapPurchaseOrderDto sapPurchaseOrderDto) {
SapPurchaseOrderVo sapPurchaseOrderVo = sapPurchaseOrderDto.getLsHeader();
SapPurchaseOrder purchaseOrder = sapPurchaseOrderRepository.findAllByEbeln(sapPurchaseOrderVo.getEbeln());
List<SapPurchaseOrder> purchaseOrders = sapPurchaseOrderRepository.findAllByEbeln(sapPurchaseOrderVo.getEbeln());
String purchaseOrderId = "";
//数据第一次接收,创建流程任务
SapPurchaseOrder sapPurchaseOrder = new SapPurchaseOrder();
......@@ -247,18 +248,28 @@ public class SapPurchaseOrderApplicationImpl extends FlowBroker implements SapPu
// String nextCode = codeGenerator.getNextCode("sapPurchaseOrder");
// sapPurchaseOrder.setBillCode(nextCode);
// sapPurchaseOrder =mannualStartWorkflow(sapPurchaseOrder);
String pId=mannualStartWorkApplication.startWorkflow(sapPurchaseOrder,PROCESS_DEFINITION_KEY,"sapPurchaseOrder");
sapPurchaseOrder=this.sapPurchaseOrderRepository.findOne(pId);
purchaseOrderId = sapPurchaseOrder.getId();
// sapPurchaseOrder = this.sapPurchaseOrderRepository.save(sapPurchaseOrder);
// purchaseOrderId = sapPurchaseOrder.getId();
if (purchaseOrder == null) { //存在也新建 04.28注释的 05.11 把存在的作废掉
if (CollectionUtils.isEmpty(purchaseOrders)) {
//存在也新建 04.28注释的 05.11 把存在的作废掉
purchaseOrderId=mannualStartWorkApplication.startWorkflow(sapPurchaseOrder,PROCESS_DEFINITION_KEY,"sapPurchaseOrder");
} else {
//将存在的作废掉 05.11 lxh
purchaseOrder.setStatusId(BizBillStatus.ABORTED.getId());
this.sapPurchaseOrderRepository.save(purchaseOrder);
for (SapPurchaseOrder purchaseOrder : purchaseOrders) {
//终止状态不管
//审批完成的,SAP撤审触发,终止审批完成的,并发起新的流程
if (purchaseOrder.getStatusId() == BizBillStatus.COMPLETED.getId()){
purchaseOrder.setStatusId(BizBillStatus.ABORTED.getId());
purchaseOrderId=mannualStartWorkApplication.startWorkflow(sapPurchaseOrder,PROCESS_DEFINITION_KEY,"sapPurchaseOrder");
}
//在审批中,更新明细数据的(先删除,再新增)
if (purchaseOrder.getStatusId() == BizBillStatus.APPROVING.getId()){
List<SapPurchaseOrderItem> itemList = sapPurchaseOrderItemApplication.getPurchaseOrderItems(purchaseOrder.getId());
sapPurchaseOrderItemApplication.deletePurchaseOrderItems(itemList);
purchaseOrderId = purchaseOrder.getId();
}
this.sapPurchaseOrderRepository.save(purchaseOrder);
}
//数据第n次接收覆盖上一次数据
/* BeanUtil.copyProperties(sapPurchaseOrderVo, purchaseOrder);
......
......@@ -9,6 +9,7 @@ import com.huigou.topsun.sap.purchaseOrder.domain.vo.SapPurchaseOrderDto;
import com.huigou.uasp.annotation.ControllerMapping;
import com.huigou.uasp.annotation.SkipAuth;
import com.huigou.uasp.client.CommonController;
import com.huigou.util.JSONUtil;
import com.huigou.util.SDO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -43,7 +44,7 @@ public class SapPurchaseOrderController extends CommonController {
@RequestMapping( value = "/getSapPurchaseOrder",consumes = "application/json; charset=UTF-8", produces = "application/json; charset=UTF-8")
@ResponseBody
public HashMap<String, Object> getSapPurchaseOrder(@RequestBody SapPurchaseOrderDto sapPurchaseOrderDto){
LOG.info("SAP采购订单审批数据=={}",sapPurchaseOrderDto);
LOG.info("SAP采购订单审批数据=={}", JSONUtil.toString(sapPurchaseOrderDto));
//System.out.println(sapPurchaseOrderDto);
HashMap<String, Object> messageMap = new HashMap<>();
messageMap.put("Message_Status","S");
......
......@@ -3,6 +3,8 @@ package com.huigou.topsun.sap.purchaseOrder.repository;
import com.huigou.topsun.sap.purchaseOrder.domain.SapPurchaseOrder;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
/**
* @Auther: xin.lu
* @Date: 2024/01/09/19:00
......@@ -10,5 +12,5 @@ import org.springframework.data.jpa.repository.JpaRepository;
*/
public interface SapPurchaseOrderRepository extends JpaRepository<SapPurchaseOrder,String> {
SapPurchaseOrder findAllByEbeln(String ebeln);
List<SapPurchaseOrder> findAllByEbeln(String ebeln);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment