diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/mesWorkOrderToSap.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/mesWorkOrderToSap.groovy index 8144391..a769785 100644 --- a/modules/i3plus-ext-mes-apiservice/src/groovy/mesWorkOrderToSap.groovy +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/mesWorkOrderToSap.groovy @@ -25,11 +25,11 @@ class mesWorkOrderToSap { @Autowired private MesWorkOrderToSapRepository mesWorkOrderToSapRDao; - //@Resource(name = "yfasDataSource") + @Resource(name = "yfasDataSource") private DynamicDataSourceProxy yfasDataSource; - //@Resource(name = "mesDataSource") - //private DynamicDataSourceProxy mesDataSource; + @Resource(name = "mesDataSource") + private DynamicDataSourceProxy mesDataSource; @Getter @Setter diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/CusProperties.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/CusProperties.java new file mode 100644 index 0000000..4a8768a --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/CusProperties.java @@ -0,0 +1,73 @@ +package cn.estsh.i3plus.ext.mes.apiservice.cus_suit; + +import cn.estsh.i3plus.platform.common.util.CommonConstWords; +import cn.estsh.i3plus.platform.plugin.datasource.DynamicDataSourceProxy; +import lombok.Getter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.concurrent.TimeUnit; + +/** + * @Description : 客户定制化配置,对应配置文件 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2019-06-11 14:26 + * @Modify: + **/ +@Configuration +//@PropertySource(value="classpath:/cus_config/cus-datasource.properties",encoding = "UTF-8") +public class CusProperties { + + public static final Logger LOGGER = LoggerFactory.getLogger(CommonConstWords.SYSTEM_LOG); + + /*********************** + * 安道拓数据源配置 + */ + @Value("${impp.yfas.datasource.isopen}") + @Getter + private boolean yfasIsOpen; + + @Value("${impp.yfas.datasource.driver-class-name}") + @Getter + private String yfasDriverClassName; + + @Value("${impp.yfas.datasource.alias}") + @Getter + private String yfasDsAlias; + + @Value("${impp.yfas.datasource.jdbc-url}") + @Getter + private String yfasDsJdbcUrl; + + @Value("${impp.yfas.datasource.username}") + @Getter + private String yfasDsUsername; + + @Value("${impp.yfas.datasource.password}") + @Getter + private String yfasDsPassword; + + @ConditionalOnExpression("'${impp.yfas.datasource.isopen:false}' == 'true'") + @Bean(name = "yfasDataSource") + public DynamicDataSourceProxy initYfasCustomerSet(){ + LOGGER.info("【初始化客户定制化...】"); + + /** + * 注册客户定制数据源 + */ + LOGGER.info("【客户定制化:安道拓数据源加载...】"); + //安道拓定制业务 + DynamicDataSourceProxy yfasDataSource = DynamicDataSourceProxy.initDataSourceFactory(this.getYfasDriverClassName(), + this.getYfasDsJdbcUrl(),this.getYfasDsUsername(),this.getYfasDsPassword(),TimeUnit.MINUTES.toMillis(30)); + + //手动注册DataSource到spring中 + //SpringContextsUtil.registBean(this.getYfasDsAlias(),yfasDataSource); + + return yfasDataSource; + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/MesProperties.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/MesProperties.java new file mode 100644 index 0000000..f629e3e --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/MesProperties.java @@ -0,0 +1,70 @@ +package cn.estsh.i3plus.ext.mes.apiservice.cus_suit; + +import cn.estsh.i3plus.platform.common.util.CommonConstWords; +import cn.estsh.i3plus.platform.plugin.datasource.DynamicDataSourceProxy; +import lombok.Getter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.concurrent.TimeUnit; + +/** + * @Description : mes 直连数据源 + * @Reference : + * @Author : Rock.Yu + * @CreateDate : 2019-06-13 20:40 + * @Modify: + **/ +@Configuration +//@PropertySource(value="classpath:/cus_config/cus-datasource.properties",encoding = "UTF-8") +public class MesProperties { + + public static final Logger LOGGER = LoggerFactory.getLogger(CommonConstWords.SYSTEM_LOG); + + /*********************** + * mes直连数据源配置 + */ + @Value("${impp.mes.datasource.isopen}") + @Getter + private boolean mesIsOpen; + + @Value("${impp.mes.datasource.driver-class-name}") + @Getter + private String mesDriverClassName; + + @Value("${impp.mes.datasource.alias}") + @Getter + private String mesDsAlias; + + @Value("${impp.mes.datasource.jdbc-url}") + @Getter + private String mesDsJdbcUrl; + + @Value("${impp.mes.datasource.username}") + @Getter + private String mesDsUsername; + + @Value("${impp.mes.datasource.password}") + @Getter + private String mesDsPassword; + + @ConditionalOnExpression("'${impp.mes.datasource.isopen:false}' == 'true'") + @Bean(name = "mesDataSource") + + public DynamicDataSourceProxy initmesCustomerSet(){ + LOGGER.info("【初始化客户定制化-mes直连...】"); + /** + * 注册客户定制数据源 + */ + LOGGER.info("【客户定制化:mes直连数据源加载...】"); + //安道拓定制业务 + DynamicDataSourceProxy mesDataSource = DynamicDataSourceProxy.initDataSourceFactory(this.getMesDriverClassName(), + this.getMesDsJdbcUrl(),this.getMesDsUsername(),this.getMesDsPassword(),TimeUnit.MINUTES.toMillis(30)); + + return mesDataSource; + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/yfas/YfasBusiTool.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/yfas/YfasBusiTool.java new file mode 100644 index 0000000..dbc8182 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/cus_suit/yfas/YfasBusiTool.java @@ -0,0 +1,65 @@ +package cn.estsh.i3plus.ext.mes.apiservice.cus_suit.yfas; + +import cn.estsh.i3plus.platform.plugin.datasource.DynamicDataSourceProxy; +import cn.estsh.i3plus.pojo.mes.bean.BasVendor; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.sql.SQLException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Description : 安道拓服务 + * @Reference : 为了防止和原有事务Service拦截冲突,命名时注意不要使用service + * @Author : alwaysfrin + * @CreateDate : 2019-06-11 14:35 + * @Modify: + **/ +@Component +public class YfasBusiTool { + + @Resource(name="yfasDataSource") + private DynamicDataSourceProxy dataSourceProxy; + + public void execute(String sql) throws SQLException { + dataSourceProxy.execute(sql); + } + + public void insert(String tableName,HashMap objMap) throws SQLException { + dataSourceProxy.insert(tableName,objMap); + } + + public void update(String tableName,HashMap conditionMap,HashMap setValueMap) throws SQLException { + dataSourceProxy.update(tableName,conditionMap,setValueMap); + } + + public void detelte(String tableName,HashMap conditionMap) throws SQLException { + dataSourceProxy.delete(tableName,conditionMap); + } + + public List> listMap(String sql) throws SQLException { + return dataSourceProxy.queryMapList(sql); + } + + public BasVendor get(String sql) throws SQLException, IllegalAccessException, InstantiationException { + return dataSourceProxy.queryObject(sql,BasVendor.class); + } + + public List listObject(String sql) throws SQLException, IllegalAccessException, InstantiationException { + return dataSourceProxy.queryObjectList(sql,BasVendor.class); + } + + public BasVendor get(String tableName,HashMap conditionMap) throws SQLException, IllegalAccessException, InstantiationException { + return dataSourceProxy.queryObject(tableName,conditionMap,BasVendor.class); + } + + public List listObject(String tableName,HashMap conditionMap) throws SQLException, IllegalAccessException, InstantiationException { + return dataSourceProxy.queryObjectList(tableName,conditionMap,BasVendor.class); + } + + public int[] executeAsBatch(String[] sqlArr) throws SQLException { + return dataSourceProxy.executeAsBatch(sqlArr); + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dbinterface/MesSAPDbAdapter.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dbinterface/MesSAPDbAdapter.java index c00ec95..a2d28fe 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dbinterface/MesSAPDbAdapter.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dbinterface/MesSAPDbAdapter.java @@ -41,10 +41,10 @@ public class MesSAPDbAdapter { public static final Logger LOGGER = LoggerFactory.getLogger(WmsSAPDbWriter.class); - //@Resource(name = "yfasDataSource") + @Resource(name = "yfasDataSource") private DynamicDataSourceProxy sapDataSourceProxy; - //@Resource(name = "mesDataSource") + @Resource(name = "mesDataSource") private DynamicDataSourceProxy mesDataSourceProxy; @Value("${sync.redis.time:1800}") diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dbinterface/WmsSAPDbQuery.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dbinterface/WmsSAPDbQuery.java index f0baca2..f1d75b6 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dbinterface/WmsSAPDbQuery.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dbinterface/WmsSAPDbQuery.java @@ -26,10 +26,10 @@ import java.sql.Connection; public class WmsSAPDbQuery { public static final Logger LOGGER = LoggerFactory.getLogger(WmsSAPDbQuery.class); public static boolean needI18N = true; -// @Resource(name = "wmsDataSource") -// private DynamicDataSourceProxy wmsDataSourceProxy; + /*@Resource(name = "wmsDataSource") + private DynamicDataSourceProxy wmsDataSourceProxy;*/ - //@Resource(name = "mesDataSource") + @Resource(name = "mesDataSource") private DynamicDataSourceProxy mesDataSourceProxy; @Autowired diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementService.java index 6225ec7..0a31cf4 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementService.java @@ -1,8 +1,8 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesConfigService; +import cn.estsh.i3plus.ext.mes.api.base.IMesPartService; import cn.estsh.i3plus.ext.mes.api.base.IMesShippingOrderManagementService; -import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.tool.TimeTool; @@ -13,6 +13,7 @@ import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.repository.MesJisShippingRepository; import cn.estsh.i3plus.pojo.mes.repository.MesPartRepository; import cn.estsh.i3plus.pojo.mes.repository.MesPartShippingGroupRepository; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ValidatorBean; @@ -25,6 +26,8 @@ import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Service @Slf4j @@ -47,6 +50,9 @@ public class MesShippingOrderManagementService extends BaseMesService { MesShippingOrderManagementDetail detail = new MesShippingOrderManagementDetail(); + MesPart part = partService.getPartByPartNo(k.getPartNo(), k.getOrganizeCode()); + detail.setPartName(part.getPartName()); + detail.setCustPartNo(k.getCustomerPartNo()); + detail.setPlanQty(1D); + detail.setActualQty(1); detail.setShippingOrderNo(finalBean.getShippingOrderNo()); detail.setOrganizeCode(k.getOrganizeCode()); detail.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.CREATE.getValue()); - ConvertBean.serviceModelInitialize(detail, AuthUtil.getSessionUser().getUserName()); BeanUtils.copyProperties(k, detail, "id"); + ConvertBean.serviceModelInitialize(detail, AuthUtil.getSessionUser().getUserName()); detailInsertList.add(detail); }); @@ -259,12 +270,13 @@ public class MesShippingOrderManagementService extends BaseMesService detailDeleteList = detailService.findAll(detailPackBean); - ; + Map> detailMap = detailDeleteList.stream().collect(Collectors.groupingBy(k -> k.getPartNo())); + List jisShippingList = new ArrayList<>(); - detailDeleteList.forEach(k -> { + detailMap.forEach((k, v) -> { DdlPackBean packBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(k.getPartNo(), "partNo", packBean); + DdlPreparedPack.getStringEqualPack(v.get(0).getPartNo(), "partNo", packBean); MesPart part = partRepository.getByProperty(packBean); MesJisShipping jisShipping = new MesJisShipping(); @@ -277,13 +289,13 @@ public class MesShippingOrderManagementService extends BaseMesService