Browse Source

部分业务代码

Veronique 2 years ago
parent
commit
f07994ba6f

+ 18 - 0
conf/KeyId.xml

@@ -298,4 +298,22 @@
             <TableWhere/>
         </Table>
     </Item>
+
+    <Item>
+        <IDName>tbPlatformRequire.id</IDName>
+        <Table>
+            <TableName>tbPlatformRequire</TableName>
+            <IDFieldName>id</IDFieldName>
+            <TableWhere/>
+        </Table>
+    </Item>
+
+    <Item>
+        <IDName>tbStoreBrand.id</IDName>
+        <Table>
+            <TableName>tbStoreBrand</TableName>
+            <IDFieldName>id</IDFieldName>
+            <TableWhere/>
+        </Table>
+    </Item>
 </Items>

+ 45 - 70
conf/application-ddWebOne.xml

@@ -3,7 +3,7 @@
 <application port="52100" lib="">
 
     <resources>
-        <group name="ERP_SERVICE_REMOTE">
+        <group name="DELIVER_SERVICE_REMOTE">
             <node addr="127.0.0.1" port="52101"/>
         </group>
 
@@ -17,8 +17,8 @@
             <!--注入初始化code配置文件-->
             <property name="tableCodeFile" value="${APP_HOME}/conf/KeyCode.xml"/>
 
-            <property name="tableIdPrefix" value="aeerp:tableid:"/>
-            <property name="tableCodePrefix" value="aeerp:tablecode:"/>
+            <property name="tableIdPrefix" value="dydeliver:tableid:"/>
+            <property name="tableCodePrefix" value="dydeliver:tablecode:"/>
 
             <!--session过期时间-->
             <property name="sessionExpireSeconds" value="3600"/>
@@ -72,7 +72,9 @@
             <service value="com.dderp.webcore.rest.DocInfoRest">
                 <isUseScriptService value="true"/>
             </service>
-            <service value="com.dderp.webcore.rest.ProductRest"/>
+            <service value="com.dderp.webcore.rest.PlatformRest">
+                <isUseScriptService value="true"/>
+            </service>
         </services>
 
         <resource-servlet webroot="root" index="index.html">
@@ -96,8 +98,9 @@
                 <isUseScriptService value="true"/>
             </service>
             <service value="com.dderp.webcore.rest.ProductRest"/>
+            <service value="com.dderp.webcore.rest.PlatformRest"/>
 
-            <websocket value="com.dderp.webcore.websocket.ERPWebSocket" name="aws" groups="ERP_SERVICE_REMOTE"/>
+            <websocket value="com.dderp.webcore.websocket.ERPWebSocket" name="aws" groups="DELIVER_SERVICE_REMOTE"/>
         </rest>
 
         <servlets autoload="false">
@@ -107,170 +110,142 @@
 
     <server protocol="SNCP" host="127.0.0.1" port="52101" aliveTimeoutSeconds="0">
         <services autoload="false" includes="">
-            <service value="com.dySweetFishPlugin.sql.SqlService" groups="ERP_SERVICE_REMOTE"/>
-            <service value="com.dySweetFishPlugin.sql.DBService" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dySweetFishPlugin.sql.SqlService" groups="DELIVER_SERVICE_REMOTE"/>
+            <service value="com.dySweetFishPlugin.sql.DBService" groups="DELIVER_SERVICE_REMOTE">
                 <!--封装rexdb数据库操作服务,maxsize缓存最大查询结果数量,expireminutes缓存超时时间,分钟单位-->
                 <maxsize value="100"/>
                 <expireminutes value="1"/>
             </service>
 
-            <service value="com.dySweetFishPlugin.redis.RedisService" groups="ERP_SERVICE_REMOTE"/>
-            <service value="com.dySweetFishPlugin.sql.TableIdService" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dySweetFishPlugin.redis.RedisService" groups="DELIVER_SERVICE_REMOTE"/>
+            <service value="com.dySweetFishPlugin.sql.TableIdService" groups="DELIVER_SERVICE_REMOTE">
                 <tableSharding value="com.dderp.business.dao.TableIdShardingStrategy"/>
                 <!--多数据源-->
                 <dataBaseMulti value="true"/>
             </service>
 
-            <service value="com.dySweetFishPlugin.sql.dao.TunaDaoService" groups="ERP_SERVICE_REMOTE"/>
-            <service value="com.dySweetFishPlugin.sql.dao.TunaService" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dySweetFishPlugin.sql.dao.TunaDaoService" groups="DELIVER_SERVICE_REMOTE"/>
+            <service value="com.dySweetFishPlugin.sql.dao.TunaService" groups="DELIVER_SERVICE_REMOTE">
                 <dao value="com.dderp.business.dao.LoginDao"/>
                 <dao value="com.dderp.business.dao.SystemDao"/>
                 <dao value="com.dderp.business.dao.DocDao"/>
+                <dao value="com.dderp.business.dao.StoreDao"/>
+                <dao value="com.dderp.business.dao.PlatformDao"/>
             </service>
 
-            <service value="com.dySweetFishPlugin.redis.jobqueue.RedisJQService" groups="ERP_SERVICE_REMOTE"/>
-            <service value="com.dySweetFishPlugin.redis.jobqueue.RedisJobProducer" groups="ERP_SERVICE_REMOTE"/>
-            <service value="com.dySweetFishPlugin.redis.jobqueue.RedisJobConsumer" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dySweetFishPlugin.redis.jobqueue.RedisJQService" groups="DELIVER_SERVICE_REMOTE"/>
+            <service value="com.dySweetFishPlugin.redis.jobqueue.RedisJobProducer" groups="DELIVER_SERVICE_REMOTE"/>
+            <service value="com.dySweetFishPlugin.redis.jobqueue.RedisJobConsumer" groups="DELIVER_SERVICE_REMOTE">
             </service>
 
             <service value="com.dderp.common.api.NoSqlKeysService" load="rediskeys.properties;eskeys.properties"
-                     groups="ERP_SERVICE_REMOTE"/>
+                     groups="DELIVER_SERVICE_REMOTE"/>
 
-            <service value="com.dderp.common.api.TypeTokenConvertService" groups="ERP_SERVICE_REMOTE"/>
+            <service value="com.dderp.common.api.TypeTokenConvertService" groups="DELIVER_SERVICE_REMOTE"/>
 
-            <service value="com.dySweetFishPlugin.elasticsearch.ESClient" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dySweetFishPlugin.elasticsearch.ESClient" groups="DELIVER_SERVICE_REMOTE">
                 <clusterName value="elasticsearch"/>
                 <host value="192.168.1.243"/>
                 <port value="9300"/>
             </service>
 
-            <service value="com.dderp.common.api.ERPLockDataService" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dderp.common.api.ERPLockDataService" groups="DELIVER_SERVICE_REMOTE">
                 <master value="true"/>
             </service>
 
-            <service value="com.dderp.common.api.QRCodeService" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dderp.common.api.QRCodeService" groups="DELIVER_SERVICE_REMOTE">
                 <orderRule value="ProtocolCode"/>
             </service>
 
-            <service value="com.dderp.common.tool.CodeGenerate" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dderp.common.tool.CodeGenerate" groups="DELIVER_SERVICE_REMOTE">
                 <master value="true"/>
             </service>
 
-            <service value="com.dderp.common.tool.ProductTagWordFilter" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dderp.common.tool.ProductTagWordFilter" groups="DELIVER_SERVICE_REMOTE">
                 <dicFile value="productKey.txt"/>
             </service>
 
-            <service value="com.dderp.common.api.OpLogService" groups="ERP_SERVICE_REMOTE"/>
+            <service value="com.dderp.common.api.OpLogService" groups="DELIVER_SERVICE_REMOTE"/>
 
-            <service name="aws" value="com.sweetfish.source.CacheMemorySource" groups="ERP_SERVICE_REMOTE">
+            <service name="aws" value="com.sweetfish.source.CacheMemorySource" groups="DELIVER_SERVICE_REMOTE">
             </service>
-            <service name="aws" value="com.sweetfish.service.WebSocketNodeService" groups="ERP_SERVICE_REMOTE"/>
+            <service name="aws" value="com.sweetfish.service.WebSocketNodeService" groups="DELIVER_SERVICE_REMOTE"/>
 
-            <service value="com.dderp.business.service.SupplierInitImpl" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dderp.business.service.SupplierInitImpl" groups="DELIVER_SERVICE_REMOTE">
                 <master value="true"/>
                 <environment value="dev"/>
                 <clearESData value="false" />
             </service>
 
-            <service value="com.dderp.business.service.ERPServiceImpl" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dderp.business.service.ERPServiceImpl" groups="DELIVER_SERVICE_REMOTE">
                 <master value="true"/>
             </service>
 
-            <service value="com.dderp.business.service.SysMessageServiceImpl" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dderp.business.service.SysMessageServiceImpl" groups="DELIVER_SERVICE_REMOTE">
                 <master value="true"/>
             </service>
 
-            <service value="com.dderp.common.api.ERPLockDataService" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dderp.common.api.ERPLockDataService" groups="DELIVER_SERVICE_REMOTE">
                 <master value="true"/>
             </service>
 
-            <service value="com.dderp.business.service.DocInfoServiceImpl" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dderp.business.service.DocInfoServiceImpl" groups="DELIVER_SERVICE_REMOTE">
                 <master value="true"/>
                 <!--使用业务脚本-->
                 <isUseScriptService value="true"/>
             </service>
 
-            <service value="com.dderp.business.service.SystemServiceImpl" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dderp.business.service.SystemServiceImpl" groups="DELIVER_SERVICE_REMOTE">
                 <master value="true"/>
                 <isUseScriptService value="true"/>
             </service>
 
-            <service value="com.dderp.business.service.LoginServiceImpl" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dderp.business.service.LoginServiceImpl" groups="DELIVER_SERVICE_REMOTE">
                 <master value="true"/>
                 <isUseScriptService value="true"/>
             </service>
 
-            <service value="com.dderp.business.service.LoginUserServiceImpl" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dderp.business.service.LoginUserServiceImpl" groups="DELIVER_SERVICE_REMOTE">
                 <master value="true"/>
                 <isUseScriptService value="false"/>
             </service>
 
-            <service value="com.dderp.business.service.PermissionServiceImpl" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dderp.business.service.PermissionServiceImpl" groups="DELIVER_SERVICE_REMOTE">
                 <master value="true"/>
                 <isUseScriptService value="false"/>
             </service>
 
-            <service value="com.dderp.business.service.RoleServiceImpl" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dderp.business.service.RoleServiceImpl" groups="DELIVER_SERVICE_REMOTE">
                 <master value="true"/>
                 <isUseScriptService value="false"/>
             </service>
 
-            <service value="com.dderp.business.service.ConfigServiceImpl" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dderp.business.service.ConfigServiceImpl" groups="DELIVER_SERVICE_REMOTE">
                 <master value="true"/>
                 <isUseScriptService value="false"/>
             </service>
 
-            <service value="com.dderp.business.service.DictServiceImpl" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dderp.business.service.DictServiceImpl" groups="DELIVER_SERVICE_REMOTE">
                 <master value="true"/>
                 <isUseScriptService value="false"/>
             </service>
 
-            <service value="com.dderp.business.service.MenuServiceImpl" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dderp.business.service.MenuServiceImpl" groups="DELIVER_SERVICE_REMOTE">
                 <master value="true"/>
                 <isUseScriptService value="false"/>
             </service>
 
-            <service value="com.dderp.business.service.DeptServiceImpl" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dderp.business.service.DeptServiceImpl" groups="DELIVER_SERVICE_REMOTE">
                 <master value="true"/>
                 <isUseScriptService value="false"/>
             </service>
 
-            <service value="com.dderp.business.service.erp.ProductServiceImpl" groups="ERP_SERVICE_REMOTE">
-                <master value="true"/>
-                <isUseScriptService value="true"/>
-            </service>
-
-            <service value="com.dderp.business.service.erp.OrderServiceImpl" groups="ERP_SERVICE_REMOTE">
-                <master value="true"/>
-                <isUseScriptService value="true"/>
-            </service>
-
-            <service value="com.dderp.business.service.erp.OrderSearchServiceImpl" groups="ERP_SERVICE_REMOTE">
-                <master value="true"/>
-                <isUseScriptService value="true"/>
-            </service>
-
-            <service value="com.dderp.business.service.erp.ClientServiceImpl" groups="ERP_SERVICE_REMOTE">
-                <master value="true"/>
-                <isUseScriptService value="true"/>
-            </service>
-
-            <service value="com.dderp.business.service.erp.OutAssistServiceImpl" groups="ERP_SERVICE_REMOTE">
-                <master value="true"/>
-                <isUseScriptService value="true"/>
-            </service>
-
-            <service value="com.dderp.business.service.erp.SupplierServiceImpl" groups="ERP_SERVICE_REMOTE">
-                <master value="true"/>
-                <isUseScriptService value="true"/>
-            </service>
-
-            <service value="com.dderp.business.service.erp.MaterialServiceImpl" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dderp.business.service.StoreServiceImpl" groups="DELIVER_SERVICE_REMOTE">
                 <master value="true"/>
                 <isUseScriptService value="true"/>
             </service>
 
-            <service value="com.dderp.business.service.erp.PaperServiceImpl" groups="ERP_SERVICE_REMOTE">
+            <service value="com.dderp.business.service.PlatformServiceImpl" groups="DELIVER_SERVICE_REMOTE">
                 <master value="true"/>
                 <isUseScriptService value="true"/>
             </service>

+ 6 - 1
conf/esTemplate/platformrequire.json

@@ -26,7 +26,12 @@
       },
       "requireCode": {
         "type": "text",
-        "index": "not_analyzed"
+        "index": "not_analyzed",
+        "fields": {
+          "raw": {
+            "type": "keyword"
+          }
+        }
       },
       "valueType": {
         "type": "integer"

+ 17 - 1
conf/esTemplate/storebrand.json

@@ -6,7 +6,23 @@
       },
       "brandName": {
         "type": "text",
-        "index": "not_analyzed"
+        "analyzer": "index_ansj",
+        "search_analyzer": "query_ansj",
+        "fields": {
+          "raw": {
+            "type": "keyword"
+          },
+          "number": {
+            "type": "text",
+            "index": "analyzed",
+            "analyzer": "number_analyzer"
+          },
+          "letter": {
+            "type": "text",
+            "index": "analyzed",
+            "analyzer": "letter_analyzer"
+          }
+        }
       },
       "brandLogoUrl": {
         "type": "text",

+ 32 - 26
conf/eskeys.properties

@@ -3,64 +3,70 @@
 #注意ES的index只能为小写
 
 #系统群发消息索引库,理论上此库只需一个即可,群发消息不会太多
-es.sysmsg.index=aeerp_sysmsg_
+es.sysmsg.index=dydeliver_sysmsg_
 
 #系统群发消息内容索引库
-es.sysmsgtext.index = aeerp_sysmsgtext_
+es.sysmsgtext.index = dydeliver_sysmsgtext_
 
 #用户对用户或者消息通知,发送给指定人的消息,暂时可以只用一个进行存储,
 #未来数据量大的情况下,可以按年份之类的条件增加索引
-es.p2pmsg.index = aeerp_p2pmsg_
+es.p2pmsg.index = dydeliver_p2pmsg_
 
 #点对点消息内容索引库
-es.p2pmsgtext.index = aeerp_p2pmsgtext_
+es.p2pmsgtext.index = dydeliver_p2pmsgtext_
 
 #用户对应消息状态,用户在登录时在群发和对点发消息库中查找未读的消息写入此库中
 #方便分页和最后的展示,理论上此库需要进行分表,可以针对用户id进行路由
-es.usermsg.index = aeerp_usermsg_
+es.usermsg.index = dydeliver_usermsg_
 
 
 #通用文件信息存储
-es.erpfile.index = aeerp_erpfile_
+es.erpfile.index = dydeliver_erpfile_
 
 #数据权限
-es.erpdatapurview.index = aeerp_erpdatepurview_
+es.erpdatapurview.index = dydeliver_erpdatepurview_
 
 #查询统计
-es.inquireinfo.index = aeerp_inquireinfo_
+es.inquireinfo.index = dydeliver_inquireinfo_
 
-es.productinfo.index = aeerp_product_info_
-es.product.image.index = aeerp_product_image_
+es.productinfo.index = dydeliver_product_info_
+es.product.image.index = dydeliver_product_image_
 
-es.workprocess.index = aeerp_workprocess_info_
+es.workprocess.index = dydeliver_workprocess_info_
 #订单索引
-es.printorder.index = aeerp_printorder_
-es.orderstep.index = aeerp_orderstep_
+es.printorder.index = dydeliver_printorder_
+es.orderstep.index = dydeliver_orderstep_
 
 #施工单
-es.printbill.index = aeerp_printbill_
-es.billstep.index = aeerp_billstep_
-es.breedprocess.index = aeerp_breedprocess_
+es.printbill.index = dydeliver_printbill_
+es.billstep.index = dydeliver_billstep_
+es.breedprocess.index = dydeliver_breedprocess_
 
 #客户
-es.clientinfo.index = aeerp_clientinfo_
-es.clientreceiveaddress.index = aeerp_clientreceiveaddress_
+es.clientinfo.index = dydeliver_clientinfo_
+es.clientreceiveaddress.index = dydeliver_clientreceiveaddress_
 
 #纸张&辅料
-es.paperbaseinfo.index = aeerp_paperbaseinfo_
-es.paperinfotype.index = aeerp_paperinfotype_
-es.paperinfo.index = aeerp_paperinfo_
-es.paperquoteinfo.index = aeerp_paperquoteinfo_
+es.paperbaseinfo.index = dydeliver_paperbaseinfo_
+es.paperinfotype.index = dydeliver_paperinfotype_
+es.paperinfo.index = dydeliver_paperinfo_
+es.paperquoteinfo.index = dydeliver_paperquoteinfo_
 
-es.materialinfotype.index = aeerp_materialinfotype_
-es.materialinfo.index = aeerp_materialinfo_
+es.materialinfotype.index = dydeliver_materialinfotype_
+es.materialinfo.index = dydeliver_materialinfo_
 
 #外协
-es.outassistinfo.index = aeerp_outassistinfo_
+es.outassistinfo.index = dydeliver_outassistinfo_
 #供应商
-es.supplierInfo.index = aeerp_supplierinfo_
+es.supplierInfo.index = dydeliver_supplierinfo_
 #平台档案
 es.platforminfo.index = dydeliver_platforminfo_
 #平台需求信息档案
 es.platformrequire.index = dydeliver_platformrequire_
+#门店品牌档案
+es.storebrand.index = dydeliver_storebrand_
+#门店档案
+es.storeinfo.index = dydeliver_storeinfo_
+#门店已开通平台
+es.storeplatform.index = dydeliver_storeplatform_
 

+ 64 - 57
conf/rediskeys.properties

@@ -1,112 +1,119 @@
 # suppress inspection "UnusedProperty" for whole file
 
-redis.reqlimit=aeerp:reqlimit
-redis.authcode=aeerp:authcode
-redis.sessions=aeerp:sessions
-redis.platformsupplier=aeerp:platform:supplier
-redis.platformsuppliercode=aeerp:platform:suppliercode
+redis.reqlimit=dydeliver:reqlimit
+redis.authcode=dydeliver:authcode
+redis.sessions=dydeliver:sessions
+redis.platformsupplier=dydeliver:platform:supplier
+redis.platformsuppliercode=dydeliver:platform:suppliercode
 #单个redis节点的分布式锁
-redis.lock=aeerp:lock
-redis.dept=aeerp:sysdept
-redis.account=aeerp:account
+redis.lock=dydeliver:lock
+redis.dept=dydeliver:sysdept
+redis.account=dydeliver:account
 #存储所有的系统功能,以hash结构存储,如果内存占用高,可把key写成纯数字
-redis.sysactions=aeerp:sysactions
+redis.sysactions=dydeliver:sysactions
 #存储所有的系统菜单,以hash结构存储,如果内存占用高,可把key写成纯数字
-redis.sysmenus=aeerp:sysmenus
+redis.sysmenus=dydeliver:sysmenus
 #存储所有的系统角色,以hash结构存储,如果内存占用高,可把key写成纯数字
-redis.sysroles=aeerp:sysroles
-redis.sysrolemenus=aeerp:sysrolemenus
+redis.sysroles=dydeliver:sysroles
+redis.sysrolemenus=dydeliver:sysrolemenus
 #存储角色的菜单和功能
-redis.sysroleactions=aeerp:sysroleactions
+redis.sysroleactions=dydeliver:sysroleactions
 #存储用户角色,每个用户一个键值
 #当前服务端未保存用户和session的对应关系,导致无法快速获取用户的角色关系
 #这里在首次从数据库中获取时进行存储,在修改员工档案的时候删除键值并修改
-redis.sysuserrole=aeerp:sysuserrole
-redis.erp.dicttype=aeerp:erp:dicttype
+redis.sysuserrole=dydeliver:sysuserrole
+redis.erp.dicttype=dydeliver:erp:dicttype
 
 
 #系统配置
-redis.configvalue=aeerp:configvalue
+redis.configvalue=dydeliver:configvalue
 #字典数据
-redis.dicttype=aeerp:dicttype
-redis.dictdata=aeerp:dictdata
+redis.dicttype=dydeliver:dicttype
+redis.dictdata=dydeliver:dictdata
 
 #业务脚本
-redis.businessscript=aeerp:businessscript
-redis.scriptcompile=aeerp:scriptcompile
+redis.businessscript=dydeliver:businessscript
+redis.scriptcompile=dydeliver:scriptcompile
 
 #分厂信息
-redis.companyinfo = aeerp:companyinfo
+redis.companyinfo = dydeliver:companyinfo
 
 #消息类型
-redis.erp.noticemessage = aeerp:noticemessage
-redis.erp.usernoticemessage = aeerp:usernoticemessage
+redis.erp.noticemessage = dydeliver:noticemessage
+redis.erp.usernoticemessage = dydeliver:usernoticemessage
 
-redis.erp.pay.tradeno = aeerp:erp:pay:tradeno
+redis.erp.pay.tradeno = dydeliver:erp:pay:tradeno
 
 #消息组前缀
-redis.erp.noticemsggroup = aeerp:noticemsggroup
+redis.erp.noticemsggroup = dydeliver:noticemsggroup
 
 #登录用户,一直记录,用户登录则记录下信息
-redis.erp.loginuser = aeerp:loginuser
-redis.erp.onlineuser = aeerp:onlineuser
+redis.erp.loginuser = dydeliver:loginuser
+redis.erp.onlineuser = dydeliver:onlineuser
 
-redis.erp.personconfig = aeerp:personconfig
+redis.erp.personconfig = dydeliver:personconfig
 
-redis.formtoken = aeerp:formtoken
-redis.formtokenex = aeerp:formtokenex
+redis.formtoken = dydeliver:formtoken
+redis.formtokenex = dydeliver:formtokenex
 
 #仪表盘
-redis.cardpanel = aeerp:cardpanel
+redis.cardpanel = dydeliver:cardpanel
 
 #业务锁定数据
-redis.erplock.data = aeerp:erplock:data
-redis.erplock.userdata = aeerp:erplock:userdata
-redis.erplock.exclusivelockpart = aeerp:erplock:exclusivelockpart
+redis.erplock.data = dydeliver:erplock:data
+redis.erplock.userdata = dydeliver:erplock:userdata
+redis.erplock.exclusivelockpart = dydeliver:erplock:exclusivelockpart
 
 #版的版心尺寸
-redis.erp.breedplatesize = aeerp:erp:breedplatesize
+redis.erp.breedplatesize = dydeliver:erp:breedplatesize
 
 #查询统计
-redis.erp.inquireinfo = aeerp:erp:inquireinfo
+redis.erp.inquireinfo = dydeliver:erp:inquireinfo
 
 #分厂
-redis.company.info = aeerp:erp:company:info
+redis.company.info = dydeliver:erp:company:info
 
-redis.erp.product.parameter = aeerp:erp:product:parameter
-redis.erp.product.info = aeerp:erp:product:info
-redis.erp.product.detail = aeerp:erp:product:detail
-redis.erp.product.type = aeerp:erp:product:type
-redis.erp.product.pagePrice = aeerp:erp:product:pagePrice
-redis.erp.product.example.image = aeerp:erp:product:exampleImage
-redis.erp.product.room = aeerp:erp:product:room
+redis.erp.product.parameter = dydeliver:erp:product:parameter
+redis.erp.product.info = dydeliver:erp:product:info
+redis.erp.product.detail = dydeliver:erp:product:detail
+redis.erp.product.type = dydeliver:erp:product:type
+redis.erp.product.pagePrice = dydeliver:erp:product:pagePrice
+redis.erp.product.example.image = dydeliver:erp:product:exampleImage
+redis.erp.product.room = dydeliver:erp:product:room
 
 #单据打印次数
-redis.erp.itemprintcount = aeerp:print:printcount
+redis.erp.itemprintcount = dydeliver:print:printcount
 
-redis.erp.order.cycle.item = aeerp:erp:cycle:item:order
+redis.erp.order.cycle.item = dydeliver:erp:cycle:item:order
 
-redis.erp.print.bill.cycle.item = aeerp:erp:cycle:item:printBill
+redis.erp.print.bill.cycle.item = dydeliver:erp:cycle:item:printBill
 
 
-redis.erp.develop.client = aeerp:erp:developclient
-redis.erp.develop.client.code = aeerp:erp:developclientcode
+redis.erp.develop.client = dydeliver:erp:developclient
+redis.erp.develop.client.code = dydeliver:erp:developclientcode
 
 #机型机台
-redis.erp.machine.type = aeerp:erp:machine:type
-redis.erp.machine.info = aeerp:erp:machine:info
+redis.erp.machine.type = dydeliver:erp:machine:type
+redis.erp.machine.info = dydeliver:erp:machine:info
 
 #数据锁定
 
-redis.erp.client.industry.info = aeerp:erp:client:industry:info
-redis.erp.client.moneybalance = aeerp:erp:client:balance:clientmoney
-redis.erp.client.clientlevel = aeerp:erp:client:clientlevel
+redis.erp.client.industry.info = dydeliver:erp:client:industry:info
+redis.erp.client.moneybalance = dydeliver:erp:client:balance:clientmoney
+redis.erp.client.clientlevel = dydeliver:erp:client:clientlevel
 
 #纸张品牌
-redis.erp.paper.brand = aeerp:erp:paper:brand
+redis.erp.paper.brand = dydeliver:erp:paper:brand
 #纸张开数档案
-redis.erp.paper.cut.info = aeerp:erp:paper:cut:info
-redis.erp.paper.cut.size.info= aeerp:erp:paper:cut:size:info
+redis.erp.paper.cut.info = dydeliver:erp:paper:cut:info
+redis.erp.paper.cut.size.info= dydeliver:erp:paper:cut:size:info
+
+#平台信息档案
+redis.deliver.platforminfo = dydeliver:deliver:platforminfo
+#平台需求条件档案
+redis.deliver.platformrequire = dydeliver:deliver:platformrequire
+#门店品牌
+redis.deliver.storebrand = dydeliver:deliver:storebrand
 
 
 

+ 91 - 0
conf/script/1000/init/Init_14_Platform.groovy

@@ -0,0 +1,91 @@
+import com.dderp.business.dao.PlatformDao
+import com.dderp.common.api.NoSqlKeysService
+import com.dderp.common.datas.ESKeys
+import com.dderp.common.datas.RedisKeys
+import com.dderp.common.entity.platform.PlatformInfo
+import com.dderp.common.entity.platform.PlatformRequire
+import com.dySweetFishPlugin.elasticsearch.ESClient
+import com.dySweetFishPlugin.redis.RedisService
+import com.sweetfish.convert.json.JsonConvert
+import com.sweetfish.source.PageFlipper
+import com.sweetfish.util.Utility
+import org.apache.logging.log4j.Logger
+import org.elasticsearch.action.bulk.BulkRequestBuilder
+import org.elasticsearch.action.bulk.BulkResponse
+import org.elasticsearch.action.index.IndexRequestBuilder
+import org.elasticsearch.common.xcontent.XContentType
+import org.rex.RMap
+
+static def createRunnable(ESClient esClient, RedisService redisService, NoSqlKeysService keysService,
+                          PlatformDao platformDao, Logger logger, JsonConvert jsonConvert, String dataSourceId, long supplierCode) {
+    return {
+        esClient.createIndex(keysService.getESKey(ESKeys.ES_DELIVER_PLATFORM_INFO_INDEX, supplierCode),
+                ESKeys.INDEX_CONFIG,
+                Utility.ofMap(ESKeys.ES_DELIVER_PLATFORM_INFO_TYPE, "platforminfo.json"))
+        redisService.del(keysService.getRedisKey(RedisKeys.KEY_DELIVER_PLATFORM_INFO, supplierCode))
+
+        esClient.createIndex(keysService.getESKey(ESKeys.ES_DELIVER_PLATFORM_REQUIRE_INDEX, supplierCode),
+                ESKeys.INDEX_CONFIG,
+                Utility.ofMap(ESKeys.ES_DELIVER_PLATFORM_REQUIRE_TYPE, "platformrequire.json"))
+        redisService.del(keysService.getRedisKey(RedisKeys.KEY_DELIVER_PLATFORM_REQUIRE, supplierCode))
+
+
+        RMap params = new RMap()
+        params.put("voidFlag", -1)
+
+        Ignore_ExecPageFlipper.execute(1000, { PageFlipper p ->
+            List<PlatformInfo> platformInfoList = platformDao.queryPlatformInfoList(params, p, dataSourceId, supplierCode)
+            if (!platformInfoList.isEmpty()) {
+                Map<String, String> redisMap = platformInfoList.collectEntries { [String.valueOf(it.getId()), jsonConvert.convertTo(it)] }
+                if (!redisMap.isEmpty()) {
+                    redisService.hmset(keysService.getRedisKey(RedisKeys.KEY_DELIVER_PLATFORM_INFO, supplierCode), redisMap)
+                }
+
+                BulkRequestBuilder bulkRequest = esClient.getClient().prepareBulk()
+                platformInfoList.each { x ->
+                    IndexRequestBuilder indexRequest = esClient.getClient()
+                            .prepareIndex(keysService.getESKey(ESKeys.ES_DELIVER_PLATFORM_INFO_INDEX, supplierCode), ESKeys.ES_DELIVER_PLATFORM_INFO_TYPE)
+                            .setId(String.valueOf(x.getId()))
+                            .setSource(jsonConvert.convertTo(x), XContentType.JSON)
+                    bulkRequest.add(indexRequest)
+                }
+                BulkResponse bulkResponse = bulkRequest.execute().actionGet()
+
+                if (bulkResponse.hasFailures()) {
+                    logger.error("索引平台档案出错:" + bulkResponse.buildFailureMessage())
+                } else {
+                    logger.info("索引平台档案,共" + platformInfoList.size() + "条记录")
+                }
+            }
+        })
+
+        Ignore_ExecPageFlipper.execute(1000, { PageFlipper p ->
+            List<PlatformRequire> platformRequireList = platformDao.queryPlatformRequireList(params, p, dataSourceId, supplierCode)
+            if (!platformRequireList.isEmpty()) {
+                Map<String, String> redisMap = platformRequireList.collectEntries { [String.valueOf(it.getId()), jsonConvert.convertTo(it)] }
+                if (!redisMap.isEmpty()) {
+                    redisService.hmset(keysService.getRedisKey(RedisKeys.KEY_DELIVER_PLATFORM_REQUIRE, supplierCode), redisMap)
+                }
+
+                BulkRequestBuilder bulkRequest = esClient.getClient().prepareBulk()
+                platformRequireList.each { x ->
+                    IndexRequestBuilder indexRequest = esClient.getClient()
+                            .prepareIndex(keysService.getESKey(ESKeys.ES_DELIVER_PLATFORM_REQUIRE_INDEX, supplierCode), ESKeys.ES_DELIVER_PLATFORM_REQUIRE_TYPE)
+                            .setId(String.valueOf(x.getId()))
+                            .setSource(jsonConvert.convertTo(x), XContentType.JSON)
+                    bulkRequest.add(indexRequest)
+                }
+                BulkResponse bulkResponse = bulkRequest.execute().actionGet()
+
+                if (bulkResponse.hasFailures()) {
+                    logger.error("索引平台需求条件档案出错:" + bulkResponse.buildFailureMessage())
+                } else {
+                    logger.info("索引平台需求条件档案,共" + platformRequireList.size() + "条记录")
+                }
+            }
+        })
+
+    } as Runnable
+}
+
+createRunnable(esClient, redisService, keysService, platformDao, logger, jsonConvert, dataSourceId, supplierCode)

+ 159 - 0
conf/script/1000/init/Init_15_Store.groovy

@@ -0,0 +1,159 @@
+import com.dderp.business.dao.StoreDao
+import com.dderp.common.api.NoSqlKeysService
+import com.dderp.common.datas.ESKeys
+import com.dderp.common.datas.RedisKeys
+import com.dderp.common.entity.store.StoreBrand
+import com.dderp.common.entity.store.StoreInfo
+import com.dderp.common.entity.store.StoreInvoiceInfo
+import com.dderp.common.entity.store.StorePlatform
+import com.dderp.common.entity.store.StorePlatformRequire
+import com.dySweetFishPlugin.elasticsearch.ESClient
+import com.dySweetFishPlugin.redis.RedisService
+import com.sweetfish.convert.json.JsonConvert
+import com.sweetfish.source.PageFlipper
+import com.sweetfish.util.Utility
+import org.apache.logging.log4j.Logger
+import org.elasticsearch.action.bulk.BulkRequestBuilder
+import org.elasticsearch.action.bulk.BulkResponse
+import org.elasticsearch.action.index.IndexRequestBuilder
+import org.elasticsearch.common.xcontent.XContentType
+import org.rex.RMap
+
+static def createRunnable(ESClient esClient, RedisService redisService, NoSqlKeysService keysService,
+                          StoreDao storeDao, Logger logger, JsonConvert jsonConvert, String dataSourceId, long supplierCode) {
+    return {
+        esClient.createIndex(keysService.getESKey(ESKeys.ES_DELIVER_STORE_BRAND_INDEX, supplierCode),
+                ESKeys.INDEX_CONFIG,
+                Utility.ofMap(ESKeys.ES_DELIVER_STORE_BRAND_TYPE, "storebrand.json"))
+        redisService.del(keysService.getRedisKey(RedisKeys.KEY_DELIVER_STORE_BRAND, supplierCode))
+
+        esClient.createIndex(keysService.getESKey(ESKeys.ES_DELIVER_STORE_INFO_INDEX, supplierCode),
+                ESKeys.INDEX_CONFIG,
+                Utility.ofMap(ESKeys.ES_DELIVER_STORE_INFO_TYPE, "storeinfo.json",
+                        ESKeys.ES_DELIVER_STORE_INVOICE_INFO_TYPE, "storeinvoiceinfo.json"))
+
+        esClient.createIndex(keysService.getESKey(ESKeys.ES_DELIVER_STORE_PLATFORM_INDEX, supplierCode),
+                ESKeys.INDEX_CONFIG,
+                Utility.ofMap(ESKeys.ES_DELIVER_STORE_PLATFORM_TYPE, "storeplatform.json",
+                        ESKeys.ES_DELIVER_STORE_PLATFORM_REQUIRE_TYPE, "storeplatformrequire.json"))
+
+
+        RMap params = new RMap()
+        params.put("voidFlag", -1)
+
+        Ignore_ExecPageFlipper.execute(1000, { PageFlipper p ->
+            List<StoreBrand> storeBrandList = storeDao.queryStoreBrandList(params, p, dataSourceId, supplierCode)
+            if (!storeBrandList.isEmpty()) {
+                Map<String, String> redisMap = storeBrandList.collectEntries { [String.valueOf(it.getId()), jsonConvert.convertTo(it)] }
+                if (!redisMap.isEmpty()) {
+                    redisService.hmset(keysService.getRedisKey(RedisKeys.KEY_DELIVER_STORE_BRAND, supplierCode), redisMap)
+                }
+
+                BulkRequestBuilder bulkRequest = esClient.getClient().prepareBulk()
+                storeBrandList.each { x ->
+                    IndexRequestBuilder indexRequest = esClient.getClient()
+                            .prepareIndex(keysService.getESKey(ESKeys.ES_DELIVER_STORE_BRAND_INDEX, supplierCode), ESKeys.ES_DELIVER_STORE_BRAND_TYPE)
+                            .setId(String.valueOf(x.getId()))
+                            .setSource(jsonConvert.convertTo(x), XContentType.JSON)
+                    bulkRequest.add(indexRequest)
+                }
+                BulkResponse bulkResponse = bulkRequest.execute().actionGet()
+
+                if (bulkResponse.hasFailures()) {
+                    logger.error("索引门店品牌档案出错:" + bulkResponse.buildFailureMessage())
+                } else {
+                    logger.info("索引门店品牌档案,共" + storeBrandList.size() + "条记录")
+                }
+            }
+        })
+
+        Ignore_ExecPageFlipper.execute(1000, { PageFlipper p ->
+            List<StoreInfo> storeInfoList = storeDao.queryStoreInfoList(params, p, dataSourceId, supplierCode)
+            if (!storeInfoList.isEmpty()) {
+                BulkRequestBuilder bulkRequest = esClient.getClient().prepareBulk()
+                storeInfoList.each { x ->
+                    IndexRequestBuilder indexRequest = esClient.getClient()
+                            .prepareIndex(keysService.getESKey(ESKeys.ES_DELIVER_STORE_INFO_INDEX, supplierCode), ESKeys.ES_DELIVER_STORE_INFO_TYPE)
+                            .setId(String.valueOf(x.getId()))
+                            .setSource(jsonConvert.convertTo(x), XContentType.JSON)
+                    bulkRequest.add(indexRequest)
+                }
+                BulkResponse bulkResponse = bulkRequest.execute().actionGet()
+
+                if (bulkResponse.hasFailures()) {
+                    logger.error("索引门店出错:" + bulkResponse.buildFailureMessage())
+                } else {
+                    logger.info("索引门店,共" + storeInfoList.size() + "条记录")
+                }
+            }
+        })
+
+        Ignore_ExecPageFlipper.execute(1000, { PageFlipper p ->
+            List<StoreInvoiceInfo> storeInvoiceInfoList = storeDao.queryStoreInvoiceList(params, p, dataSourceId, supplierCode)
+            if (!storeInvoiceInfoList.isEmpty()) {
+                BulkRequestBuilder bulkRequest = esClient.getClient().prepareBulk()
+                storeInvoiceInfoList.each { x ->
+                    IndexRequestBuilder indexRequest = esClient.getClient()
+                            .prepareIndex(keysService.getESKey(ESKeys.ES_DELIVER_STORE_INFO_INDEX, supplierCode), ESKeys.ES_DELIVER_STORE_INVOICE_INFO_TYPE)
+                            .setId(String.valueOf(x.getId()))
+                            .setParent(String.valueOf(x.idStore))
+                            .setSource(jsonConvert.convertTo(x), XContentType.JSON)
+                    bulkRequest.add(indexRequest)
+                }
+                BulkResponse bulkResponse = bulkRequest.execute().actionGet()
+
+                if (bulkResponse.hasFailures()) {
+                    logger.error("索引门店开票信息出错:" + bulkResponse.buildFailureMessage())
+                } else {
+                    logger.info("索引门店开票信息,共" + storeInvoiceInfoList.size() + "条记录")
+                }
+            }
+        })
+
+        Ignore_ExecPageFlipper.execute(1000, { PageFlipper p ->
+            List<StorePlatform> storePlatformList = storeDao.queryStorePlatformList(params, p, dataSourceId, supplierCode)
+            if (!storePlatformList.isEmpty()) {
+                BulkRequestBuilder bulkRequest = esClient.getClient().prepareBulk()
+                storePlatformList.each { x ->
+                    IndexRequestBuilder indexRequest = esClient.getClient()
+                            .prepareIndex(keysService.getESKey(ESKeys.ES_DELIVER_STORE_PLATFORM_INDEX, supplierCode), ESKeys.ES_DELIVER_STORE_PLATFORM_TYPE)
+                            .setId(String.valueOf(x.getId()))
+                            .setSource(jsonConvert.convertTo(x), XContentType.JSON)
+                    bulkRequest.add(indexRequest)
+                }
+                BulkResponse bulkResponse = bulkRequest.execute().actionGet()
+
+                if (bulkResponse.hasFailures()) {
+                    logger.error("索引门店已开通平台出错:" + bulkResponse.buildFailureMessage())
+                } else {
+                    logger.info("索引门店已开通平台,共" + storePlatformList.size() + "条记录")
+                }
+            }
+        })
+
+        Ignore_ExecPageFlipper.execute(1000, { PageFlipper p ->
+            List<StorePlatformRequire> storePlatformRequireList = storeDao.queryStorePlatformRequireList(params, p, dataSourceId, supplierCode)
+            if (!storePlatformRequireList.isEmpty()) {
+                BulkRequestBuilder bulkRequest = esClient.getClient().prepareBulk()
+                storePlatformRequireList.each { x ->
+                    IndexRequestBuilder indexRequest = esClient.getClient()
+                            .prepareIndex(keysService.getESKey(ESKeys.ES_DELIVER_STORE_PLATFORM_INDEX, supplierCode), ESKeys.ES_DELIVER_STORE_PLATFORM_REQUIRE_TYPE)
+                            .setId(String.valueOf(x.getId()))
+                            .setParent(String.valueOf(x.idStorePlatform))
+                            .setSource(jsonConvert.convertTo(x), XContentType.JSON)
+                    bulkRequest.add(indexRequest)
+                }
+                BulkResponse bulkResponse = bulkRequest.execute().actionGet()
+
+                if (bulkResponse.hasFailures()) {
+                    logger.error("索引门店已开通平台需求条件出错:" + bulkResponse.buildFailureMessage())
+                } else {
+                    logger.info("索引门店已开通平台需求条件,共" + storePlatformRequireList.size() + "条记录")
+                }
+            }
+        })
+
+    } as Runnable
+}
+
+createRunnable(esClient, redisService, keysService, storeDao, logger, jsonConvert, dataSourceId, supplierCode)

+ 0 - 1
conf/script/1000/init/Init_15_WorkTeam.groovy

@@ -1 +0,0 @@
-

+ 0 - 1
conf/script/1000/init/Init_16_WorkTeamPerson.groovy

@@ -1 +0,0 @@
-

+ 65 - 0
conf/sqlroot/com/dderp/business/dao/PlatformDao.dql

@@ -0,0 +1,65 @@
+-- [queryPlatformInfoList]
+select *
+from $table$
+-- trim prefix=WHERE prefixOverrides=AND|OR
+  -- if voidFlag >= 0
+    voidFlag = #{voidFlag}
+  -- end
+-- end
+-- isEmpty orderBy
+order by createTime desc
+-- else
+order by #{orderBy}
+-- end
+;
+
+-- [addPlatformInfo]
+insert into $table$ (id, platformName, platformType, requireListSerial,
+voidFlag, createBy, createTime,
+createTimeLong, updateBy, updateTime,
+updateTimeLong ) values ( #{id}, #{platformname}, #{platformtype}, #{requirelistserial},
+#{voidflag}, #{createby}, #{createtime},
+#{createtimelong}, #{updateby}, #{updatetime},
+#{updatetimelong} );
+
+-- [updatePlatformInfo]
+update $table$ set platformName = #{platformname},platformType = #{platformtype},requireListSerial = #{requirelistserial},
+updateBy = #{updateby},
+updateTime = #{updatetime},updateTimeLong = #{updatetimelong} where id = #{id};
+
+-- [voidPlatformInfo]
+update $table$ set voidFlag = #{voidflag},updateBy = #{updateby},
+updateTime = #{updatetime},updateTimeLong = #{updatetimelong} where id = #{id};
+
+
+-- [queryPlatformRequireList]
+select *
+from $table$
+-- trim prefix=WHERE prefixOverrides=AND|OR
+  -- if voidFlag >= 0
+    voidFlag = #{voidFlag}
+  -- end
+-- end
+-- isEmpty orderBy
+order by createTime desc
+-- else
+order by #{orderBy}
+-- end
+;
+
+-- [addPlatformRequire]
+insert into $table$ (id, requireName, requireCode, valueType,
+voidFlag, createBy, createTime,
+createTimeLong, updateBy, updateTime,
+updateTimeLong ) values ( #{id}, #{requirename}, #{requirecode}, #{valuetype},
+#{voidflag}, #{createby}, #{createtime},
+#{createtimelong}, #{updateby}, #{updatetime},
+#{updatetimelong} );
+
+-- [updatePlatformRequire]
+update $table$ set requireName = #{requirename},valueType = #{valuetype},updateBy = #{updateby},
+updateTime = #{updatetime},updateTimeLong = #{updatetimelong} where id = #{id};
+
+-- [voidPlatformRequire]
+update $table$ set voidFlag = #{voidflag},updateBy = #{updateby},
+updateTime = #{updatetime},updateTimeLong = #{updatetimelong} where id = #{id};

+ 168 - 0
conf/sqlroot/com/dderp/business/dao/StoreDao.dql

@@ -0,0 +1,168 @@
+-- [queryStoreBrandList]
+select *
+from $table$
+-- trim prefix=WHERE prefixOverrides=AND|OR
+  -- if voidFlag >= 0
+    voidFlag = #{voidFlag}
+  -- end
+-- end
+-- isEmpty orderBy
+order by createTime desc
+-- else
+order by #{orderBy}
+-- end
+;
+
+-- [addStoreBrand]
+insert into $table$ (id, brandName, brandLogoUrl, startingPrice,
+packagingFee, brandMemo, voidFlag,
+createBy, createTime, createTimeLong,
+updateBy, updateTime, updateTimeLong ) values ( #{id}, #{brandname}, #{brandlogourl}, #{startingprice},
+#{packagingfee}, #{brandmemo}, #{voidflag},
+#{createby}, #{createtime}, #{createtimelong},
+#{updateby}, #{updatetime}, #{updatetimelong} );
+
+-- [updateStoreBrand]
+update $table$ set brandName = #{brandname},brandLogoUrl = #{brandlogourl},startingPrice = #{startingprice},packagingFee = #{packagingfee},
+brandMemo = #{brandmemo},updateBy = #{updateby},updateTime = #{updatetime},updateTimeLong = #{updatetimelong}
+ where id = #{id};
+
+ -- [voidStoreBrand]
+ update $table$ set voidFlag = #{voidflag},updateBy = #{updateby},
+ updateTime = #{updatetime},updateTimeLong = #{updatetimelong} where id = #{id};
+
+ -- [queryStoreInfoList]
+ select *
+ from $table$
+ -- trim prefix=WHERE prefixOverrides=AND|OR
+   -- if voidFlag >= 0
+     voidFlag = #{voidFlag}
+   -- end
+ -- end
+ -- isEmpty orderBy
+ order by createTime desc
+ -- else
+ order by #{orderBy}
+ -- end
+ ;
+
+ -- [addStoreInfo]
+ insert into $table$ (id, storeName, idBrand, brandName,
+ idStoreType, deliverSettleKind, storeCodeInput,
+ storeProvince, storeCity, storeDistrict,
+ storeAddress, contractPhone, storeBossId,
+ companyLicenseNo, companyLicensePicUrl, legalPersonIdNo,
+ legalPersonName, voidFlag, enableInvoice,
+ createBy, createTime, createTimeLong,
+ updateBy, updateTime, updateTimeLong ) values ( #{id}, #{storename}, #{idbrand}, #{brandname},
+ #{idstoretype}, #{deliversettlekind}, #{storecodeinput},
+ #{storeprovince}, #{storecity}, #{storedistrict},
+ #{storeaddress}, #{contractphone}, #{storebossid},
+ #{companylicenseno}, #{companylicensepicurl}, #{legalpersonidno},
+ #{legalpersonname}, #{voidflag}, #{enableinvoice},
+ #{createby}, #{createtime}, #{createtimelong},
+ #{updateby}, #{updatetime}, #{updatetimelong} );
+
+ -- [updateStoreInfo]
+ update $table$ set storeName = #{storename},idBrand = #{idbrand},brandName = #{brandname},idStoreType = #{idstoretype},
+ deliverSettleKind = #{deliversettlekind},storeCodeInput = #{storecodeinput},storeProvince = #{storeprovince},storeCity = #{storecity},
+ storeDistrict = #{storedistrict},storeAddress = #{storeaddress},contractPhone = #{contractphone},storeBossId = #{storebossid},
+ companyLicenseNo = #{companylicenseno},companyLicensePicUrl = #{companylicensepicurl},legalPersonIdNo = #{legalpersonidno},legalPersonName = #{legalpersonname},
+ enableInvoice = #{enableinvoice},updateBy = #{updateby},updateTime = #{updatetime},updateTimeLong = #{updatetimelong}
+  where id = #{id};
+
+ -- [updateStoreEnableInvoice]
+  update $table$ set enableInvoice = #{enableinvoice},updateBy = #{updateby},
+  updateTime = #{updatetime},updateTimeLong = #{updatetimelong} where id = #{id};
+
+ -- [voidStoreInfo]
+ update $table$ set voidFlag = #{voidflag},updateBy = #{updateby},
+ updateTime = #{updatetime},updateTimeLong = #{updatetimelong} where id = #{id};
+
+-- [queryStoreInvoiceList]
+select *
+ from $table$
+ -- trim prefix=WHERE prefixOverrides=AND|OR
+   -- if voidFlag >= 0
+     voidFlag = #{voidFlag}
+   -- end
+ -- end
+ -- isEmpty orderBy
+ order by createTime desc
+ -- else
+ order by #{orderBy}
+ -- end
+ ;
+
+-- [addStoreInvoiceInfo]
+insert into $table$ (id, idStore, taxIdNo, companyName,
+defaultTaxItemName, defaultTaxItemCode, taxRate,
+createBy, createTime, createTimeLong,
+updateBy, updateTime, updateTimeLong ) values ( #{id}, #{idstore}, #{taxidno}, #{companyname},
+#{defaulttaxitemname}, #{defaulttaxitemcode}, #{taxrate},
+#{createby}, #{createtime}, #{createtimelong},
+#{updateby}, #{updatetime}, #{updatetimelong} );
+
+-- [updateStoreInvoiceInfo]
+update $table$ set idStore = #{idstore},taxIdNo = #{taxidno},companyName = #{companyname},defaultTaxItemName = #{defaulttaxitemname},
+defaultTaxItemCode = #{defaulttaxitemcode},taxRate = #{taxrate},updateBy = #{updateby},updateTime = #{updatetime},updateTimeLong = #{updatetimelong}
+ where id = #{id};
+
+-- [queryStorePlatformList]
+select *
+ from $table$
+ -- trim prefix=WHERE prefixOverrides=AND|OR
+   -- if voidFlag >= 0
+     voidFlag = #{voidFlag}
+   -- end
+ -- end
+ -- isEmpty orderBy
+ order by createTime desc
+ -- else
+ order by #{orderBy}
+ -- end
+;
+
+-- [queryStorePlatformRequireList]
+select *
+ from $table$
+ -- trim prefix=WHERE prefixOverrides=AND|OR
+   -- if voidFlag >= 0
+     voidFlag = #{voidFlag}
+   -- end
+ -- end
+ -- isEmpty orderBy
+ order by createTime desc
+ -- else
+ order by #{orderBy}
+ -- end
+;
+
+-- [addStorePlatform]
+insert into $table$ (id, idStore, idPlatformInfo, platformName,
+platformType, enableStatue, createBy,
+createTime, createTimeLong, updateBy,
+updateTime, updateTimeLong ) values ( #{id}, #{idstore}, #{idplatforminfo}, #{platformname},
+#{platformtype}, #{enablestatue}, #{createby},
+#{createtime}, #{createtimelong}, #{updateby},
+#{updatetime}, #{updatetimelong} );
+
+-- [addStorePlatformRequire]
+insert into $table$ (id, idStore, idStorePlatform, idPlatformRequire,
+platformRequireCode, platformRequireName, itemValue,
+createBy, createTime, createTimeLong,
+updateBy, updateTime, updateTimeLong ) values ( #{id}, #{idstore}, #{idstoreplatform}, #{idplatformrequire},
+#{platformrequirecode}, #{platformrequirename}, #{itemvalue},
+#{createby}, #{createtime}, #{createtimelong},
+#{updateby}, #{updatetime}, #{updatetimelong} );
+
+-- [updateStorePlatform]
+update $table$ set enableStatue = #{enablestatue},
+updateBy = #{updateby},updateTime = #{updatetime},updateTimeLong = #{updatetimelong} where id = #{id};
+
+-- [deleteStorePlatformRequireByIdStore]
+delete from $table$ where id = #{id};
+
+-- [voidStorePlatform]
+ update $table$ set voidFlag = #{voidflag},updateBy = #{updateby},
+ updateTime = #{updatetime},updateTimeLong = #{updatetimelong} where id = #{id};

+ 21 - 1
conf/初始化业务表.sql

@@ -283,4 +283,24 @@ create table tbStorePlatformRequire1000(
     DEFAULT CHARSET = utf8
     COMMENT = '';
 
-
+drop table if exists tbStoreInvoiceInfo1000_current;
+create table tbStoreInvoiceInfo1000_current(
+                                               id	bigint  default 0,
+                                               idStore	bigint  default 0,
+                                               taxIdNo	varchar(100) default '',
+                                               companyName	varchar(50) default '',
+                                               defaultTaxItemName	varchar(50) default '',
+                                               defaultTaxItemCode	varchar(100) default '',
+                                               taxRate	decimal(18,4) default 0,
+                                               createBy	bigint  default 0,
+                                               createTime	datetime default NOW(),
+                                               createTimeLong	bigint  default 0,
+                                               updateBy	bigint  default 0,
+                                               updateTime	datetime default NOW(),
+                                               updateTimeLong	bigint  default 0,
+                                               primary key (id)
+)
+    ENGINE = INNODB
+    AUTO_INCREMENT = 1
+    DEFAULT CHARSET = utf8
+    COMMENT = '';

+ 24 - 1
ddBusiness/src/main/java/com/dderp/business/dao/PlatformDao.java

@@ -1,7 +1,9 @@
 package com.dderp.business.dao;
 
 import com.dderp.common.entity.platform.PlatformInfo;
+import com.dderp.common.entity.platform.PlatformRequire;
 import com.dySweetFishPlugin.sql.dao.*;
+import com.sweetfish.source.PageFlipper;
 import org.rex.RMap;
 
 import java.util.List;
@@ -11,7 +13,7 @@ public interface PlatformDao extends DaoRepository {
     @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
     @DAOMethod(operator = OperatorType.QUERY, owait = OperatorWait.AWAIT)
     @SqlId(clazz = PlatformDao.class, sql = "queryPlatformInfoList", table = "tbPlatformInfo", params = {1})
-    List<PlatformInfo> queryPlatformInfoList(RMap params, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+    List<PlatformInfo> queryPlatformInfoList(RMap params, PageFlipper pageFlipper, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
 
     @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
     @DAOMethod(operator = OperatorType.UPDATE, owait = OperatorWait.ASNYC)
@@ -28,4 +30,25 @@ public interface PlatformDao extends DaoRepository {
     @SqlId(clazz = PlatformDao.class, sql = "voidPlatformInfo", table = "tbPlatformInfo", params = {1})
     int voidPlatformInfo(PlatformInfo platformInfo, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
 
+
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.QUERY, owait = OperatorWait.AWAIT)
+    @SqlId(clazz = PlatformDao.class, sql = "queryPlatformRequireList", table = "tbPlatformRequire", params = {1})
+    List<PlatformRequire> queryPlatformRequireList(RMap params, PageFlipper pageFlipper, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.UPDATE, owait = OperatorWait.ASNYC)
+    @SqlId(clazz = PlatformDao.class, sql = "addPlatformRequire", table = "tbPlatformRequire", params = {1})
+    int addPlatformRequire(PlatformRequire platformRequire, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.UPDATE, owait = OperatorWait.ASNYC)
+    @SqlId(clazz = PlatformDao.class, sql = "updatePlatformRequire", table = "tbPlatformRequire", params = {1})
+    int updatePlatformRequire(PlatformRequire platformRequire, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.UPDATE, owait = OperatorWait.ASNYC)
+    @SqlId(clazz = PlatformDao.class, sql = "voidPlatformRequire", table = "tbPlatformRequire", params = {1})
+    int voidPlatformRequire(PlatformRequire platformRequire, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+
 }

+ 105 - 0
ddBusiness/src/main/java/com/dderp/business/dao/StoreDao.java

@@ -0,0 +1,105 @@
+package com.dderp.business.dao;
+
+import com.dderp.common.entity.store.*;
+import com.dySweetFishPlugin.sql.dao.*;
+import com.sweetfish.source.PageFlipper;
+import org.rex.RMap;
+
+import java.util.List;
+
+public interface StoreDao extends DaoRepository {
+    //region 门店品牌档案
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.QUERY, owait = OperatorWait.AWAIT)
+    @SqlId(clazz = StoreDao.class, sql = "queryStoreBrandList", table = "tbStoreBrand", params = {1})
+    List<StoreBrand> queryStoreBrandList(RMap params, PageFlipper pageFlipper, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.UPDATE, owait = OperatorWait.ASNYC)
+    @SqlId(clazz = StoreDao.class, sql = "addStoreBrand", table = "tbStoreBrand", params = {1})
+    int addStoreBrand(StoreBrand storeBrand, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.UPDATE, owait = OperatorWait.ASNYC)
+    @SqlId(clazz = StoreDao.class, sql = "updateStoreBrand", table = "tbStoreBrand", params = {1})
+    int updateStoreBrand(StoreBrand storeBrand, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.UPDATE, owait = OperatorWait.ASNYC)
+    @SqlId(clazz = StoreDao.class, sql = "voidStoreBrand", table = "tbStoreBrand", params = {1})
+    int voidStoreBrand(StoreBrand storeBrand, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+    //endregion
+
+
+    //region 门店档案
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.QUERY, owait = OperatorWait.AWAIT)
+    @SqlId(clazz = StoreDao.class, sql = "queryStoreInfoList", table = "tbStoreInfo", params = {1})
+    List<StoreInfo> queryStoreInfoList(RMap params, PageFlipper pageFlipper, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.UPDATE, owait = OperatorWait.ASNYC)
+    @SqlId(clazz = StoreDao.class, sql = "addStoreInfo", table = "tbStoreInfo", params = {1})
+    int addStoreInfo(StoreInfo storeInfo, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.UPDATE, owait = OperatorWait.ASNYC)
+    @SqlId(clazz = StoreDao.class, sql = "updateStoreInfo", table = "tbStoreInfo", params = {1})
+    int updateStoreInfo(StoreInfo storeInfo, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.UPDATE, owait = OperatorWait.ASNYC)
+    @SqlId(clazz = StoreDao.class, sql = "voidStoreInfo", table = "tbStoreInfo", params = {1})
+    int voidStoreInfo(StoreInfo storeInfo, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+    //endregion
+
+    //region 门店发票档案
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.QUERY, owait = OperatorWait.AWAIT)
+    @SqlId(clazz = StoreDao.class, sql = "queryStoreInvoiceList", table = "tbStoreInvoiceInfo", params = {1})
+    List<StoreInvoiceInfo> queryStoreInvoiceList(RMap params, PageFlipper pageFlipper, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.UPDATE, owait = OperatorWait.ASNYC)
+    @SqlId(clazz = StoreDao.class, sql = "addStoreInvoiceInfo", table = "tbStoreInvoiceInfo", params = {1})
+    int addStoreInvoiceInfo(StoreInvoiceInfo storeInvoiceInfo, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.UPDATE, owait = OperatorWait.ASNYC)
+    @SqlId(clazz = StoreDao.class, sql = "updateStoreInvoiceInfo", table = "tbStoreInvoiceInfo", params = {1})
+    int updateStoreInvoiceInfo(StoreInvoiceInfo storeInvoiceInfo, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+
+    //endregion
+
+    //region 门店已开通平台
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.QUERY, owait = OperatorWait.AWAIT)
+    @SqlId(clazz = StoreDao.class, sql = "queryStorePlatformList", table = "tbStorePlatform", params = {1})
+    List<StorePlatform> queryStorePlatformList(RMap params, PageFlipper pageFlipper, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.QUERY, owait = OperatorWait.AWAIT)
+    @SqlId(clazz = StoreDao.class, sql = "queryStorePlatformRequireList", table = "tbStorePlatformRequire", params = {1})
+    List<StorePlatformRequire> queryStorePlatformRequireList(RMap params, PageFlipper pageFlipper, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.UPDATE, owait = OperatorWait.ASNYC)
+    @SqlId(clazz = StoreDao.class, sql = "addStorePlatform", table = "tbStorePlatform", params = {1})
+    @SqlId(clazz = StoreDao.class, sql = "addStorePlatformRequire", table = "tbStorePlatformRequire", params = {2})
+    int addStorePlatform(StorePlatform storeInvoiceInfo, List<StorePlatformRequire> requireList,
+                         @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.UPDATE, owait = OperatorWait.ASNYC)
+    @SqlId(clazz = StoreDao.class, sql = "updateStorePlatform", table = "tbStorePlatform", params = {1})
+    @SqlId(clazz = StoreDao.class, sql = "deleteStorePlatformRequireByIdStore", table = "tbStorePlatformRequire", params = {1})
+    @SqlId(clazz = StoreDao.class, sql = "addStorePlatformRequire", table = "tbStorePlatformRequire", params = {2})
+    int updateStorePlatform(StorePlatform storePlatform, List<StorePlatformRequire> requireList,
+                            @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.UPDATE, owait = OperatorWait.ASNYC)
+    @SqlId(clazz = StoreDao.class, sql = "voidStorePlatform", table = "tbStorePlatform", params = {1})
+    int voidStorePlatform(StorePlatform storePlatform, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+    //endregion
+}

+ 90 - 4
ddBusiness/src/main/java/com/dderp/business/service/PlatformServiceImpl.java

@@ -94,6 +94,7 @@ public class PlatformServiceImpl extends BaseService implements PlatformService
                     return qb;
                 }),
                 keysService.getESKey(ESKeys.ES_DELIVER_PLATFORM_INFO_INDEX, supplierCode),
+                pageFlipper,
                 (() -> SortBuilders.fieldSort("id").order(SortOrder.DESC)));
 
         return platformInfoList;
@@ -239,17 +240,102 @@ public class PlatformServiceImpl extends BaseService implements PlatformService
     }
 
     @Override
-    public PlatformRequire addPlatformRequire(PlatformRequire platformRequire, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
-        return null;
+    public PlatformRequire getPlatformRequire(long id, long supplierCode) {
+        return this.getESOneInfo(esClient, jsonConvert, PlatformRequire.class, String.valueOf(id),
+                keysService.getESKey(ESKeys.ES_DELIVER_PLATFORM_REQUIRE_INDEX, supplierCode),
+                ESKeys.ES_DELIVER_PLATFORM_REQUIRE_TYPE, null);
+    }
+
+    @Override
+    public RetResult<PlatformRequire> addPlatformRequire(PlatformRequire platformRequire, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
+        PlatformRequire esInfo = this.getESOneInfo(esClient, jsonConvert,
+                PlatformRequire.class,
+                (a) -> {
+                    BoolQueryBuilder qb = QueryBuilders.boolQuery().must(QueryBuilders.typeQuery(ESKeys.ES_DELIVER_PLATFORM_REQUIRE_TYPE));
+                    qb.must(QueryBuilders.termQuery("requireCode.raw", platformRequire.getRequireCode()));
+
+                    return qb;
+                },
+                keysService.getESKey(ESKeys.ES_DELIVER_PLATFORM_REQUIRE_INDEX, supplierCode),
+                null);
+
+        if (esInfo != null) return RetResult.<PlatformRequire>errorT().retinfo("已存在相同CODE的平台接入需求档案");
+
+        platformRequire.setId(tableIdService.getTableIdMulti("tbPlatformRequire.id", 1, dataSourceId, String.valueOf(supplierCode)));
+        PlatformRequire.create(platformRequire, currentUser.getId());
+
+        IndexResponse itemResponse = esClient.getClient()
+                .prepareIndex(keysService.getESKey(ESKeys.ES_DELIVER_PLATFORM_REQUIRE_INDEX, supplierCode), ESKeys.ES_DELIVER_PLATFORM_REQUIRE_TYPE)
+                .setId(String.valueOf(platformRequire.getId()))
+                .setSource(jsonConvert.convertTo(platformRequire), XContentType.JSON)
+                .setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE)
+                .get();
+
+        if (itemResponse.getResult() == DocWriteResponse.Result.CREATED) {
+            platformDao.addPlatformRequire(platformRequire, dataSourceId, supplierCode);
+        } else {
+            return RetResult.<PlatformRequire>errorT().retinfo("创建平台接入需求档案失败");
+        }
+
+        return RetResult.<PlatformRequire>successT().result(platformRequire);
     }
 
     @Override
     public RetResult<PlatformRequire> updatePlatformRequire(PlatformRequire platformRequire, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
-        return null;
+        PlatformRequire esInfo = this.getPlatformRequire(platformRequire.getId(), supplierCode);
+        if (esInfo == null)
+            return RetResult.<PlatformRequire>errorT().retinfo("平台接入需求档案不存在");
+
+        esInfo.setRequireName(platformRequire.getRequireName());
+        esInfo.setValueType(platformRequire.getValueType());
+
+        PlatformRequire.update(esInfo, currentUser.getId());
+        try {
+            esClient.getClient().prepareUpdate(keysService.getESKey(ESKeys.ES_DELIVER_PLATFORM_REQUIRE_INDEX, supplierCode),
+                            ESKeys.ES_DELIVER_PLATFORM_REQUIRE_TYPE, String.valueOf(esInfo.getId()))
+                    .setDoc(jsonBuilder()
+                            .startObject()
+                            .field("requireName", esInfo.getRequireName())
+                            .field("valueType", esInfo.getValueType())
+                            .field("updateBy", esInfo.getUpdateBy())
+                            .field("updateTimeLong", esInfo.getUpdateTimeLong())
+                            .endObject())
+                    .setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE)
+                    .get();
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+
+        platformDao.updatePlatformRequire(esInfo, dataSourceId, supplierCode);
+
+        return RetResult.<PlatformRequire>successT().result(esInfo);
     }
 
     @Override
     public RetResult<PlatformRequire> voidPlatformRequire(PlatformRequire platformRequire, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
-        return null;
+        PlatformRequire esInfo = this.getPlatformRequire(platformRequire.getId(), supplierCode);
+        if (esInfo == null)
+            return RetResult.<PlatformRequire>errorT().retinfo("平台接入需求档案不存在");
+
+        esInfo.setVoidFlag(platformRequire.getVoidFlag());
+
+        PlatformInfo.update(esInfo, currentUser.getId());
+        try {
+            esClient.getClient().prepareUpdate(keysService.getESKey(ESKeys.ES_DELIVER_PLATFORM_REQUIRE_INDEX, supplierCode),
+                            ESKeys.ES_DELIVER_PLATFORM_REQUIRE_TYPE, String.valueOf(esInfo.getId()))
+                    .setDoc(jsonBuilder()
+                            .startObject()
+                            .field("voidFlag", esInfo.getVoidFlag())
+                            .field("updateBy", esInfo.getUpdateBy())
+                            .field("updateTimeLong", esInfo.getUpdateTimeLong())
+                            .endObject())
+                    .setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE)
+                    .get();
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+
+        platformDao.voidPlatformRequire(esInfo, dataSourceId, supplierCode);
+        return RetResult.<PlatformRequire>successT().result(esInfo);
     }
 }

+ 197 - 0
ddBusiness/src/main/java/com/dderp/business/service/StoreServiceImpl.java

@@ -0,0 +1,197 @@
+package com.dderp.business.service;
+
+import com.dderp.business.dao.StoreDao;
+import com.dderp.common.api.NoSqlKeysService;
+import com.dderp.common.api.PlatformService;
+import com.dderp.common.api.StoreService;
+import com.dderp.common.base.BaseService;
+import com.dderp.common.datas.ESKeys;
+import com.dderp.common.datas.business.PlatformType;
+import com.dderp.common.entity.platform.PlatformInfo;
+import com.dderp.common.entity.site.ERPTokenUser;
+import com.dderp.common.entity.store.*;
+import com.dderp.common.tool.ERPUtils;
+import com.dySweetFishPlugin.elasticsearch.ESClient;
+import com.dySweetFishPlugin.sql.TableIdService;
+import com.dySweetFishPlugin.sql.dao.TunaService;
+import com.sweetfish.convert.json.JsonConvert;
+import com.sweetfish.service.Local;
+import com.sweetfish.service.RetResult;
+import com.sweetfish.source.PageFlipper;
+import com.sweetfish.util.AnyValue;
+import com.sweetfish.util.AutoLoad;
+import com.sweetfish.util.ResourceType;
+import org.apache.commons.lang3.StringUtils;
+import org.elasticsearch.action.DocWriteResponse;
+import org.elasticsearch.action.index.IndexResponse;
+import org.elasticsearch.action.support.WriteRequest;
+import org.elasticsearch.common.xcontent.XContentType;
+import org.elasticsearch.index.query.BoolQueryBuilder;
+import org.elasticsearch.index.query.Operator;
+import org.elasticsearch.index.query.QueryBuilders;
+import org.elasticsearch.search.sort.SortBuilders;
+import org.elasticsearch.search.sort.SortOrder;
+import org.rex.RMap;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@AutoLoad(value = false)
+@Local
+@ResourceType(StoreService.class)
+public class StoreServiceImpl extends BaseService implements StoreService {
+    @Resource
+    private ESClient esClient;
+
+    @Resource
+    private JsonConvert jsonConvert;
+
+    @Resource
+    private NoSqlKeysService keysService;
+
+    @Resource
+    private TableIdService tableIdService;
+
+    @Resource
+    private TunaService tunaService;
+
+    private StoreDao storeDao;
+
+    @Override
+    public void start(AnyValue config) {
+        super.start(config);
+        storeDao = tunaService.generate(StoreDao.class);
+    }
+
+    @Override
+    public List<StoreBrand> queryStoreBrandList(RMap params, PageFlipper pageFlipper, long supplierCode) {
+        List<StoreBrand> storeBrandList = searchESList(esClient, jsonConvert,
+                StoreBrand.class,
+                null,
+                ((sd) -> {
+                    BoolQueryBuilder qb = QueryBuilders.boolQuery();
+                    qb = qb.must(QueryBuilders.typeQuery(ESKeys.ES_DELIVER_STORE_BRAND_INDEX));
+
+                    if (ERPUtils.mapContainKey(params, "brandName")) {
+                        String platformName = params.getString("brandName");
+                        BoolQueryBuilder qbPlatformName = QueryBuilders.boolQuery()
+                                .should(QueryBuilders.matchQuery("brandName", platformName).analyzer("query_ansj").operator(Operator.AND))
+                                .should(QueryBuilders.termQuery("brandName.number", platformName.toLowerCase()))
+                                .should(QueryBuilders.matchQuery("brandName.letter", platformName.toLowerCase()).operator(Operator.AND));
+                        qb = qb.must(qbPlatformName);
+                    }
+
+                    if (ERPUtils.mapContainKey(params, "voidFlag")) {
+                        qb = qb.must(QueryBuilders.termQuery("voidFlag", params.getInt("voidFlag")));
+                    }
+
+                    return qb;
+                }),
+                keysService.getESKey(ESKeys.ES_DELIVER_STORE_BRAND_TYPE, supplierCode),
+                (() -> SortBuilders.fieldSort("id").order(SortOrder.DESC)));
+
+        return storeBrandList;
+    }
+
+    @Override
+    public StoreBrand getStoreBrand(long id, long supplierCode) {
+        return this.getESOneInfo(esClient, jsonConvert, StoreBrand.class,
+                String.valueOf(id),
+                keysService.getESKey(ESKeys.ES_DELIVER_STORE_BRAND_INDEX, supplierCode),
+                ESKeys.ES_DELIVER_STORE_BRAND_TYPE,
+                null);
+    }
+
+    @Override
+    public RetResult<StoreBrand> addStoreBrand(StoreBrand storeBrand, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
+        if (StringUtils.isBlank(storeBrand.getBrandName()))
+            return RetResult.<StoreBrand>errorT().retinfo("门店品牌名称不可为空");
+
+        //先查一下有没有重名的平台信息
+        StoreBrand esInfo = this.getESOneInfo(esClient, jsonConvert,
+                StoreBrand.class,
+                (a) -> {
+                    BoolQueryBuilder qb = QueryBuilders.boolQuery().must(QueryBuilders.typeQuery(ESKeys.ES_DELIVER_STORE_BRAND_TYPE));
+                    qb.must(QueryBuilders.termQuery("brandName.raw", storeBrand.getBrandName()));
+
+                    return qb;
+                },
+                keysService.getESKey(ESKeys.ES_DELIVER_STORE_BRAND_INDEX, supplierCode),
+                null);
+
+        if (esInfo != null) return RetResult.<StoreBrand>errorT().retinfo("已存在同名的门店品牌");
+
+        storeBrand.setId(tableIdService.getTableIdMulti("tbStoreBrand.id", 1, dataSourceId, String.valueOf(supplierCode)));
+        StoreBrand.create(storeBrand, currentUser.getId());
+
+        IndexResponse itemResponse = esClient.getClient()
+                .prepareIndex(keysService.getESKey(ESKeys.ES_DELIVER_STORE_BRAND_INDEX, supplierCode), ESKeys.ES_DELIVER_STORE_BRAND_TYPE)
+                .setId(String.valueOf(storeBrand.getId()))
+                .setSource(jsonConvert.convertTo(storeBrand), XContentType.JSON)
+                .setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE)
+                .get();
+
+        if (itemResponse.getResult() == DocWriteResponse.Result.CREATED) {
+            storeDao.addStoreBrand(storeBrand, dataSourceId, supplierCode);
+        } else {
+            return RetResult.<StoreBrand>errorT().retinfo("创建平台档案失败");
+        }
+
+        return RetResult.<StoreBrand>successT().result(storeBrand);
+    }
+
+    @Override
+    public RetResult<StoreBrand> uploadBrandLogo(long idStoreBrand, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
+        return null;
+    }
+
+    @Override
+    public RetResult<StoreBrand> updateStoreBrand(StoreBrand storeBrand, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
+        return null;
+    }
+
+    @Override
+    public RetResult<StoreBrand> voidStoreBrand(StoreBrand storeBrand, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
+        return null;
+    }
+
+    @Override
+    public List<ViewStoreInfo> queryViewStoreInfo(RMap params, PageFlipper pageFlipper, long supplierCode) {
+        return null;
+    }
+
+    @Override
+    public ViewStoreInfo getViewStoreInfo(long idStore, long supplierCode, int withInvoice) {
+        return null;
+    }
+
+    @Override
+    public RetResult<StoreInfo> addStoreInfo(StoreInfo storeInfo, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
+        return null;
+    }
+
+    @Override
+    public RetResult<StoreInvoiceInfo> configStoreInvoiceInfo(StoreInvoiceInfo invoiceInfo, int enableInvoice, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
+        return null;
+    }
+
+    @Override
+    public RetResult<StoreInfo> updateStoreInfo(StoreInfo storeInfo, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
+        return null;
+    }
+
+    @Override
+    public RetResult<StoreInfo> voidStoreInfo(StoreInfo storeInfo, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
+        return null;
+    }
+
+    @Override
+    public RetResult<StorePlatform> addStorePlatform(StorePlatform storePlatform, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
+        return null;
+    }
+
+    @Override
+    public RetResult<StorePlatform> configStorePlatform(StorePlatform storePlatform, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
+        return null;
+    }
+}

+ 8 - 0
ddBusiness/src/main/java/com/dderp/business/service/SupplierInitImpl.java

@@ -129,6 +129,10 @@ public class SupplierInitImpl extends BaseService implements SupplierInitService
 
     private SystemDao systemDao;
 
+    private PlatformDao platformDao;
+
+    private StoreDao storeDao;
+
     private ExecutorService initInfoExecutor;
 
     private final List<ScheduledThreadPoolExecutor> scheduleThreadList = new ArrayList<>();
@@ -221,6 +225,8 @@ public class SupplierInitImpl extends BaseService implements SupplierInitService
     public void start(AnyValue config) {
         systemDao = tunaService.generate(SystemDao.class);
         docDao = tunaService.generate(DocDao.class);
+        platformDao = tunaService.generate(PlatformDao.class);
+        storeDao = tunaService.generate(StoreDao.class);
 
         AnyValue environmentValue = config.getAnyValue("environment");
         if (environmentValue != null) {
@@ -348,6 +354,8 @@ public class SupplierInitImpl extends BaseService implements SupplierInitService
                 //暂时先放在java里面初始化dao并都传递过去
                 "systemDao", systemDao,
                 "docDao", docDao,
+                "platformDao", platformDao,
+                "storeDao", storeDao,
                 "jsonConvert", jsonConvert,
                 "dataSourceId", dataSourceId,
                 "supplierCode", supplierCode,

+ 3 - 1
ddCommon/src/main/java/com/dderp/common/api/PlatformService.java

@@ -25,7 +25,9 @@ public interface PlatformService extends ScriptService {
 
     List<PlatformRequire> queryPlatformRequireList(RMap params, PageFlipper pageFlipper, long supplierCode);
 
-    PlatformRequire addPlatformRequire(PlatformRequire platformRequire, ERPTokenUser currentUser, String dataSourceId, long supplierCode);
+    PlatformRequire getPlatformRequire(long id, long supplierCode);
+
+    RetResult<PlatformRequire> addPlatformRequire(PlatformRequire platformRequire, ERPTokenUser currentUser, String dataSourceId, long supplierCode);
 
     RetResult<PlatformRequire> updatePlatformRequire(PlatformRequire platformRequire, ERPTokenUser currentUser, String dataSourceId, long supplierCode);
 

+ 4 - 0
ddCommon/src/main/java/com/dderp/common/api/StoreService.java

@@ -14,8 +14,12 @@ public interface StoreService extends ScriptService {
     //region 门店品牌档案
     List<StoreBrand> queryStoreBrandList(RMap params, PageFlipper pageFlipper, long supplierCode);
 
+    StoreBrand getStoreBrand(long id, long supplierCode);
+
     RetResult<StoreBrand> addStoreBrand(StoreBrand storeBrand, ERPTokenUser currentUser, String dataSourceId, long supplierCode);
 
+    RetResult<StoreBrand> uploadBrandLogo(long idStoreBrand, ERPTokenUser currentUser, String dataSourceId, long supplierCode);
+
     RetResult<StoreBrand> updateStoreBrand(StoreBrand storeBrand, ERPTokenUser currentUser, String dataSourceId, long supplierCode);
 
     RetResult<StoreBrand> voidStoreBrand(StoreBrand storeBrand, ERPTokenUser currentUser, String dataSourceId, long supplierCode);

+ 17 - 0
ddCommon/src/main/java/com/dderp/common/datas/ESKeys.java

@@ -198,4 +198,21 @@ public class ESKeys {
     public static final String ES_DELIVER_PLATFORM_REQUIRE_INDEX = "es.platformrequire.index";
     public static final String ES_DELIVER_PLATFORM_REQUIRE_TYPE = "info";
     //endregion
+
+    //region 门店品牌档案
+    public static final String ES_DELIVER_STORE_BRAND_INDEX = "es.storebrand.index";
+    public static final String ES_DELIVER_STORE_BRAND_TYPE = "info";
+    //endregion
+
+    //region 门店档案
+    public static final String ES_DELIVER_STORE_INFO_INDEX = "es.storeinfo.index";
+    public static final String ES_DELIVER_STORE_INFO_TYPE = "info";
+    public static final String ES_DELIVER_STORE_INVOICE_INFO_TYPE = "storeinvoiceinfo";
+    //endregion
+
+    //region 门店已开通平台
+    public static final String ES_DELIVER_STORE_PLATFORM_INDEX = "es.storeplatform.index";
+    public static final String ES_DELIVER_STORE_PLATFORM_TYPE = "info";
+    public static final String ES_DELIVER_STORE_PLATFORM_REQUIRE_TYPE = "storeplatformrequire";
+    //endregion
 }

+ 16 - 0
ddCommon/src/main/java/com/dderp/common/datas/RedisKeys.java

@@ -287,6 +287,22 @@ public class RedisKeys {
 
     //endregion
 
+
+    /**
+     * 平台档案
+     */
+    public static final String KEY_DELIVER_PLATFORM_INFO = "redis.deliver.platforminfo";
+
+    /**
+     * 平台档案
+     */
+    public static final String KEY_DELIVER_PLATFORM_REQUIRE = "redis.deliver.platformrequire";
+
+    /**
+     * 门店品牌档案
+     */
+    public static final String KEY_DELIVER_STORE_BRAND = "redis.deliver.storebrand";
+
     private RedisKeys() {
     }
 }

+ 197 - 0
ddWebCore/src/main/java/com/dderp/webcore/rest/PlatformRest.java

@@ -0,0 +1,197 @@
+package com.dderp.webcore.rest;
+
+import com.dderp.business.service.PlatformServiceImpl;
+import com.dderp.common.api.PlatformService;
+import com.dderp.common.base.BaseService;
+import com.dderp.common.datas.ERPHeader;
+import com.dderp.common.datas.HttpCode;
+import com.dderp.common.entity.doc.BusinessScript;
+import com.dderp.common.entity.platform.PlatformInfo;
+import com.dderp.common.entity.platform.PlatformRequire;
+import com.dderp.common.entity.site.ERPTokenUser;
+import com.dySweetFishPlugin.sql.RMapUtils;
+import com.sweetfish.net.http.*;
+import com.sweetfish.service.Local;
+import com.sweetfish.service.RetResult;
+import com.sweetfish.source.PageFlipper;
+import com.sweetfish.util.AutoLoad;
+import org.rex.RMap;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
+
+
+@AutoLoad(false)
+@Local
+@RestService(name = "platform", moduleid = 0, comment = "平台档案模块")
+public class PlatformRest extends BaseService {
+    @Resource
+    private PlatformService platformService;
+
+    //region 平台档案
+    @RestMapping(name = "queryPlatformList", auth = true, sort = 1, comment = "获取平台档案列表", methods = {"GET", "POST"})
+    @WebApiBean(result = true, type = PlatformInfo.class)
+    public CompletableFuture<RMap> queryPlatformList(
+            @RestParam(name = "params", comment = "搜索内容", required = false) RMap searchData,
+            @RestParam(name = "page", comment = "分页信息", required = false) PageFlipper pageFlipper,
+            @RestHeader(name = ERPHeader.HTTPHEADER_DATASOURCE) String dataSourceId,
+            @RestHeader(name = ERPHeader.HTTPHEADER_SUPPLIER) String supplierCode) {
+        return CompletableFuture.supplyAsync(
+                () -> {
+                    List<PlatformInfo> platformInfoList = platformService.queryPlatformList(searchData, pageFlipper, Long.parseLong(supplierCode));
+                    return RMapUtils.successV2(platformInfoList, null, pageFlipper);
+                }, getExecutor()
+        );
+    }
+
+    @RestMapping(name = "getPlatformInfo", auth = true, sort = 2, comment = "获取平台档案", methods = {"GET", "POST"})
+    @WebApiBean(result = true, type = PlatformInfo.class)
+    public CompletableFuture<RMap> getPlatformInfo(
+            @RestParam(name = "idPlatform", comment = "平台档案id") long idPlatform,
+            @RestHeader(name = ERPHeader.HTTPHEADER_DATASOURCE) String dataSourceId,
+            @RestHeader(name = ERPHeader.HTTPHEADER_SUPPLIER) String supplierCode) {
+        return CompletableFuture.supplyAsync(
+                () -> {
+                    PlatformInfo platformInfo = platformService.getPlatformInfo(idPlatform, Long.parseLong(supplierCode));
+                    if (platformInfo == null) return RMapUtils.error(HttpCode.BAD_REQUEST.value(), "平台档案不存在");
+                    return RMapUtils.successV2(platformInfo, null, null);
+                }, getExecutor()
+        );
+    }
+
+    @RestMapping(name = "addPlatformInfo", auth = true, sort = 3, comment = "新增平台档案", methods = {"POST"})
+    @WebApiBean(result = true, type = PlatformInfo.class)
+    public CompletableFuture<RMap> addPlatformInfo(
+            @RestParam(name = "platformInfo", comment = "平台档案") PlatformInfo platformInfo,
+            @RestParam(name = "&", comment = "当前用户,不需要传入") ERPTokenUser currentUser,
+            @RestHeader(name = ERPHeader.HTTPHEADER_DATASOURCE) String dataSourceId,
+            @RestHeader(name = ERPHeader.HTTPHEADER_SUPPLIER) String supplierCode) {
+        return CompletableFuture.supplyAsync(
+                () -> {
+                    RetResult<PlatformInfo> result = platformService.addPlatformInfo(platformInfo, currentUser, dataSourceId, Long.parseLong(supplierCode));
+                    if (!result.isSuccess()) return RMapUtils.error(HttpCode.BAD_REQUEST.value(), result.getRetinfo());
+                    return RMapUtils.successV2(result.getResult(), null, null);
+                }, getExecutor()
+        );
+    }
+
+
+    @RestMapping(name = "updatePlatformInfo", auth = true, sort = 4, comment = "修改平台档案", methods = {"POST"})
+    @WebApiBean(result = true, type = PlatformInfo.class)
+    public CompletableFuture<RMap> updatePlatformInfo(
+            @RestParam(name = "platformInfo", comment = "平台档案") PlatformInfo platformInfo,
+            @RestParam(name = "&", comment = "当前用户,不需要传入") ERPTokenUser currentUser,
+            @RestHeader(name = ERPHeader.HTTPHEADER_DATASOURCE) String dataSourceId,
+            @RestHeader(name = ERPHeader.HTTPHEADER_SUPPLIER) String supplierCode) {
+        return CompletableFuture.supplyAsync(
+                () -> {
+                    RetResult<PlatformInfo> result = platformService.updatePlatformInfo(platformInfo, currentUser, dataSourceId, Long.parseLong(supplierCode));
+                    if (!result.isSuccess()) return RMapUtils.error(HttpCode.BAD_REQUEST.value(), result.getRetinfo());
+                    return RMapUtils.successV2(result.getResult(), null, null);
+                }, getExecutor()
+        );
+    }
+
+    @RestMapping(name = "voidPlatformInfo", auth = true, sort = 5, comment = "禁用平台档案", methods = {"POST"})
+    @WebApiBean(result = true, type = PlatformInfo.class)
+    public CompletableFuture<RMap> voidPlatformInfo(
+            @RestParam(name = "platformInfo", comment = "平台档案") PlatformInfo platformInfo,
+            @RestParam(name = "&", comment = "当前用户,不需要传入") ERPTokenUser currentUser,
+            @RestHeader(name = ERPHeader.HTTPHEADER_DATASOURCE) String dataSourceId,
+            @RestHeader(name = ERPHeader.HTTPHEADER_SUPPLIER) String supplierCode) {
+        return CompletableFuture.supplyAsync(
+                () -> {
+                    RetResult<PlatformInfo> result = platformService.voidPlatformInfo(platformInfo, currentUser, dataSourceId, Long.parseLong(supplierCode));
+                    if (!result.isSuccess()) return RMapUtils.error(HttpCode.BAD_REQUEST.value(), result.getRetinfo());
+                    return RMapUtils.successV2(result.getResult(), null, null);
+                }, getExecutor()
+        );
+    }
+    //endregion
+
+
+    //region 平台需求档案
+    @RestMapping(name = "queryPlatformRequireList", auth = true, sort = 10, comment = "获取平台需求条件档案列表", methods = {"GET", "POST"})
+    @WebApiBean(result = true, type = PlatformRequire.class)
+    public CompletableFuture<RMap> queryPlatformRequireList(
+            @RestParam(name = "params", comment = "搜索内容", required = false) RMap searchData,
+            @RestParam(name = "page", comment = "分页信息", required = false) PageFlipper pageFlipper,
+            @RestHeader(name = ERPHeader.HTTPHEADER_DATASOURCE) String dataSourceId,
+            @RestHeader(name = ERPHeader.HTTPHEADER_SUPPLIER) String supplierCode) {
+        return CompletableFuture.supplyAsync(
+                () -> {
+                    List<PlatformRequire> platformRequireList = platformService.queryPlatformRequireList(searchData, pageFlipper, Long.parseLong(supplierCode));
+                    return RMapUtils.successV2(platformRequireList, null, pageFlipper);
+                }, getExecutor()
+        );
+    }
+
+    @RestMapping(name = "getPlatformRequire", auth = true, sort = 11, comment = "获取平台需求条件档案", methods = {"GET", "POST"})
+    @WebApiBean(result = true, type = PlatformRequire.class)
+    public CompletableFuture<RMap> getPlatformRequire(
+            @RestParam(name = "idRequire", comment = "平台档案id") long idRequire,
+            @RestHeader(name = ERPHeader.HTTPHEADER_DATASOURCE) String dataSourceId,
+            @RestHeader(name = ERPHeader.HTTPHEADER_SUPPLIER) String supplierCode) {
+        return CompletableFuture.supplyAsync(
+                () -> {
+                    PlatformRequire platformRequire = platformService.getPlatformRequire(idRequire, Long.parseLong(supplierCode));
+                    if (platformRequire == null)
+                        return RMapUtils.error(HttpCode.BAD_REQUEST.value(), "平台需求条件档案不存在");
+                    return RMapUtils.successV2(platformRequire, null, null);
+                }, getExecutor()
+        );
+    }
+
+    @RestMapping(name = "addPlatformRequire", auth = true, sort = 12, comment = "新增平台需求条件档案", methods = {"POST"})
+    @WebApiBean(result = true, type = PlatformRequire.class)
+    public CompletableFuture<RMap> addPlatformRequire(
+            @RestParam(name = "platformRequire", comment = "平台需求条件档案") PlatformRequire platformRequire,
+            @RestParam(name = "&", comment = "当前用户,不需要传入") ERPTokenUser currentUser,
+            @RestHeader(name = ERPHeader.HTTPHEADER_DATASOURCE) String dataSourceId,
+            @RestHeader(name = ERPHeader.HTTPHEADER_SUPPLIER) String supplierCode) {
+        return CompletableFuture.supplyAsync(
+                () -> {
+                    RetResult<PlatformRequire> result = platformService.addPlatformRequire(platformRequire, currentUser, dataSourceId, Long.parseLong(supplierCode));
+                    if (!result.isSuccess()) return RMapUtils.error(HttpCode.BAD_REQUEST.value(), result.getRetinfo());
+                    return RMapUtils.successV2(result.getResult(), null, null);
+                }, getExecutor()
+        );
+    }
+
+
+    @RestMapping(name = "updatePlatformRequire", auth = true, sort = 13, comment = "修改平台需求条件档案", methods = {"POST"})
+    @WebApiBean(result = true, type = PlatformRequire.class)
+    public CompletableFuture<RMap> updatePlatformRequire(
+            @RestParam(name = "platformRequire", comment = "平台需求条件档案") PlatformRequire platformRequire,
+            @RestParam(name = "&", comment = "当前用户,不需要传入") ERPTokenUser currentUser,
+            @RestHeader(name = ERPHeader.HTTPHEADER_DATASOURCE) String dataSourceId,
+            @RestHeader(name = ERPHeader.HTTPHEADER_SUPPLIER) String supplierCode) {
+        return CompletableFuture.supplyAsync(
+                () -> {
+                    RetResult<PlatformRequire> result = platformService.updatePlatformRequire(platformRequire, currentUser, dataSourceId, Long.parseLong(supplierCode));
+                    if (!result.isSuccess()) return RMapUtils.error(HttpCode.BAD_REQUEST.value(), result.getRetinfo());
+                    return RMapUtils.successV2(result.getResult(), null, null);
+                }, getExecutor()
+        );
+    }
+
+    @RestMapping(name = "voidPlatformRequire", auth = true, sort = 14, comment = "禁用平台需求条件档案", methods = {"POST"})
+    @WebApiBean(result = true, type = PlatformRequire.class)
+    public CompletableFuture<RMap> voidPlatformRequire(
+            @RestParam(name = "platformRequire", comment = "平台档案") PlatformRequire platformRequire,
+            @RestParam(name = "&", comment = "当前用户,不需要传入") ERPTokenUser currentUser,
+            @RestHeader(name = ERPHeader.HTTPHEADER_DATASOURCE) String dataSourceId,
+            @RestHeader(name = ERPHeader.HTTPHEADER_SUPPLIER) String supplierCode) {
+        return CompletableFuture.supplyAsync(
+                () -> {
+                    RetResult<PlatformRequire> result = platformService.voidPlatformRequire(platformRequire, currentUser, dataSourceId, Long.parseLong(supplierCode));
+                    if (!result.isSuccess()) return RMapUtils.error(HttpCode.BAD_REQUEST.value(), result.getRetinfo());
+                    return RMapUtils.successV2(result.getResult(), null, null);
+                }, getExecutor()
+        );
+    }
+    //endregion
+
+
+}