diff --git a/backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/config/SceneConfiguration.java b/backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/config/SceneConfiguration.java index 1fd4506..24eae3c 100644 --- a/backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/config/SceneConfiguration.java +++ b/backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/config/SceneConfiguration.java @@ -4,6 +4,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.xyst.dinas.biz.internal.scene.XystDinasCommonAllScene; +import com.xyst.dinas.biz.internal.scene.XystDinasCommonSubAllScene; @Configuration public class SceneConfiguration { @@ -12,4 +13,9 @@ public class SceneConfiguration { public XystDinasCommonAllScene createXystDinasCommonAllScene(){ return new XystDinasCommonAllScene(); } + + @Bean("com.xyst.dinas.biz.scene.XystDinasCommonSubAllScene") + public XystDinasCommonSubAllScene createXystDinasCommonSubAllScene(){ + return new XystDinasCommonSubAllScene(); + } } diff --git a/backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/internal/scene/XystDinasCommonSubAllScene.java b/backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/internal/scene/XystDinasCommonSubAllScene.java new file mode 100644 index 0000000..e471d90 --- /dev/null +++ b/backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/internal/scene/XystDinasCommonSubAllScene.java @@ -0,0 +1,55 @@ +package com.xyst.dinas.biz.internal.scene; + +import java.util.Map; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.Predicate; + +import org.springframework.beans.factory.annotation.Autowired; + +import com.beecode.amino.core.Amino; +import com.beecode.bap.staff.BapContext; +import com.beecode.bcp.type.KClass; +import com.beecode.bcp.type.KObject; +import com.beecode.bcp.type.json.JSONObjectUtils; +import com.beecode.inz.common.internal.scene.FollowerQueryScene; +import com.beecode.inz.query.exception.SceneExecuteException; +import com.beecode.inz.query.scene.SceneExecuteContext; +import com.xyst.dinas.biz.enumeration.OrganizationTypeEnum; + +public class XystDinasCommonSubAllScene extends FollowerQueryScene { + + @Autowired + public BapContext bapContext; + + @Override + public void execute(SceneExecuteContext context) throws SceneExecuteException { + KObject currentRegionalCompany = this.getCurrentLoginRegionalCompany(); + if(null == currentRegionalCompany || currentRegionalCompany.isNull()){ + throw new SceneExecuteException("无法获取当前登录组织机构"); + } + + CriteriaBuilder builder = context.getCriteriaBuilder(); + + Predicate p0 = builder.equal(context.getRoot().get("master").get("regionalCompany").get("id"), currentRegionalCompany.getUuid("id")); + + if(OrganizationTypeEnum.REGIONAL_COMPANY.name().equals(currentRegionalCompany.getString("type"))) { + context.getCriteriaQuery().and(p0); + } + + } + + /** + * 获取当前登录的区域公司 + * @return + */ + public KObject getCurrentLoginRegionalCompany() { + Map<String, String> map = bapContext.getCurrentUserDatas(); + String currentRegionalCompany = map.get("currentRegionalCompany"); + + KClass kClass = Amino.getApplicationMetadataContext().getBean("com.xyst.dinas.biz.datamodel.xystOrganization", + KClass.class); + KObject regionalCompany = JSONObjectUtils.toObject(currentRegionalCompany, kClass); + return regionalCompany; + } +} diff --git a/backend/xyst.dinas.contract/src/main/model/com/xyst/dinas/contract/query/ContractDetail.mk b/backend/xyst.dinas.contract/src/main/model/com/xyst/dinas/contract/query/ContractDetail.mk new file mode 100644 index 0000000..ba7a9a8 --- /dev/null +++ b/backend/xyst.dinas.contract/src/main/model/com/xyst/dinas/contract/query/ContractDetail.mk @@ -0,0 +1,254 @@ +<model> + <header> + <type>inz.query.Query</type> + <package>com.xyst.dinas.contract.query</package> + <name>ContractDetail</name> + <title>合同详情子表</title> + <tags></tags> + <description></description> + </header> + <content> + <customQuery id='58b626c6-c457-4bb3-81e4-d09f11ecd553'> + <kclass>com.xyst.dinas.contract.datamodel.Contract$contractDetail</kclass> + <innerScene title='全部'> + <id>cfd478b1-7e2e-41c5-bb5e-f6500c101341</id> + <javaImplement>com.beecode.inz.common.scene.CommonSubAllScene</javaImplement> + <defaultExecute></defaultExecute> + <hide></hide> + </innerScene> + <innerScene title='权限过滤'> + <id>18b7edbd-a6a1-4fa6-99c1-8f7e72adb9b6</id> + <javaImplement>com.xyst.dinas.biz.scene.XystDinasCommonSubAllScene</javaImplement> + <defaultExecute>true</defaultExecute> + <hide>true</hide> + </innerScene> + <field title='id'> + <name>id</name> + <type>uuid</type> + <ref> + <type></type> + <name></name> + </ref> + <description></description> + </field> + + <field title='项目ID'> + <name>master.project.id</name> + <type>uuid</type> + <ref> + <type></type> + <name>com.xyst.dinas.project.datamodel.ProjectFiled</name> + </ref> + <description></description> + </field> + <field title='项目编号'> + <name>master.project.projectNum</name> + <type>string</type> + <ref> + <type></type> + <name></name> + </ref> + <description></description> + </field> + <field title='项目名称'> + <name>master.project.projectName</name> + <type>string</type> + <ref> + <type></type> + <name></name> + </ref> + <description></description> + </field> + + <field title='区域公司ID'> + <name>master.regionalCompany.id</name> + <type>uuid</type> + <ref> + <type></type> + <name>com.xyst.dinas.biz.datamodel.xystOrganization</name> + </ref> + <description></description> + </field> + <field title='区域公司名称'> + <name>master.regionalCompany.name</name> + <type>string</type> + <ref> + <type></type> + <name></name> + </ref> + <description></description> + </field> + + <field title='购砂单位'> + <name>master.purchaseSandUnit.id</name> + <type>uuid</type> + <ref> + <type></type> + <name>com.xyst.dinas.project.datamodel.PurchaseSandCompany</name> + </ref> + <description></description> + </field> + <field title='购砂单位名称'> + <name>master.purchaseSandUnit.name</name> + <type>string</type> + <description></description> + </field> + + <field title='场站id'> + <name>master.station.id</name> + <type>uuid</type> + <ref> + <type></type> + <name>com.xyst.dinas.biz.datamodel.Station</name> + </ref> + <description></description> + </field> + <field title='场站名称'> + <name>master.station.stationName</name> + <type>string</type> + <ref> + <type></type> + <name>com.xyst.dinas.biz.datamodel.Station</name> + </ref> + <description></description> + </field> + + <field title='合同id'> + <name>master.id</name> + <type>uuid</type> + <description></description> + </field> + <field title='合同名称'> + <name>master.contractName</name> + <type>string</type> + <description></description> + </field> + <field title='合同编号'> + <name>master.contractCode</name> + <type>string</type> + <description></description> + </field> + <field title='合同状态'> + <name>master.contractState</name> + <type>string</type> + <description></description> + </field> + <field title='审批状态'> + <name>master.approveState</name> + <type>string</type> + <description></description> + </field> + <field title='合同签订联系人'> + <name>master.contacts</name> + <type>string</type> + <description></description> + </field> + <field title='联系方式'> + <name>master.phoneNumber</name> + <type>string</type> + <description></description> + </field> + <field title='合同签订时间'> + <name>master.signDate</name> + <type>datetime</type> + <description></description> + </field> + <field title='合同开始时间'> + <name>master.startDate</name> + <type>datetime</type> + <description></description> + </field> + <field title='合同结束时间'> + <name>master.endDate</name> + <type>datetime</type> + <description></description> + </field> + + <field title='砂石种类id'> + <name>dinasType.id</name> + <type>uuid</type> + <ref> + <type></type> + <name>com.xyst.dinas.biz.datamodel.DinasType</name> + </ref> + <description></description> + </field> + <field title='砂石种类名称'> + <name>dinasType.dinasTypeName</name> + <type>string</type> + <ref> + <type></type> + <name>com.xyst.dinas.biz.datamodel.DinasType</name> + </ref> + <description></description> + </field> + + <field title='采购量'> + <name>purchaseAmount</name> + <type>fixnum</type> + <description></description> + </field> + <field title='砂石余量'> + <name>dinasAmount</name> + <type>fixnum</type> + <description></description> + </field> + <field title='单价'> + <name>price</name> + <type>fixnum</type> + <description></description> + </field> + <field title='总价'> + <name>amount</name> + <type>fixnum</type> + <description></description> + </field> + + <field title='创建时间'> + <name>master.createTime</name> + <type>datetime</type> + <ref> + <type></type> + <name></name> + </ref> + <description></description> + </field> + <field title='创建人'> + <name>master.creator.name</name> + <type>string</type> + <ref> + <type></type> + <name></name> + </ref> + <description></description> + </field> + <field title='修改时间'> + <name>master.modifyTime</name> + <type>datetime</type> + <ref> + <type></type> + <name></name> + </ref> + <description></description> + </field> + <field title='修改人'> + <name>master.modifier.name</name> + <type>string</type> + <ref> + <type></type> + <name></name> + </ref> + <description></description> + </field> + <field title='废弃'> + <name>master.discard</name> + <type>boolean</type> + <ref> + <type></type> + <name></name> + </ref> + <description></description> + </field> + </customQuery> + </content> +</model> \ No newline at end of file diff --git a/backend/xyst.dinas.contract/src/main/resources/com/xyst/dinas/contract/query/ContractDetail.jmx b/backend/xyst.dinas.contract/src/main/resources/com/xyst/dinas/contract/query/ContractDetail.jmx new file mode 100644 index 0000000..5cb44eb --- /dev/null +++ b/backend/xyst.dinas.contract/src/main/resources/com/xyst/dinas/contract/query/ContractDetail.jmx @@ -0,0 +1,345 @@ +<?xml version="1.0" encoding="UTF-8"?> +<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/inz-query"> + <specification>1.0</specification> + <id>58b626c6-c457-4bb3-81e4-d09f11ecd553</id> + <name>com.xyst.dinas.contract.query.ContractDetail</name> + <title>合同详情子表</title> + <define>inz.query.Query</define> + <define-version>1.0</define-version> + <dependency>com.xyst.dinas.contract.datamodel.Contract$contractDetail</dependency> + <content> + <m:query> + <m:type>com.xyst.dinas.contract.datamodel.Contract$contractDetail</m:type> + <m:dataProcessor></m:dataProcessor> + <m:authorityItem></m:authorityItem> + <m:innerScenes> + <m:innerScene> + <m:id>cfd478b1-7e2e-41c5-bb5e-f6500c101341</m:id> + <m:title>全部</m:title> + <m:javaImplement>com.beecode.inz.common.scene.CommonSubAllScene</m:javaImplement> + <m:defaultExecute></m:defaultExecute> + <m:hide></m:hide> + </m:innerScene> + <m:innerScene> + <m:id>18b7edbd-a6a1-4fa6-99c1-8f7e72adb9b6</m:id> + <m:title>权限过滤</m:title> + <m:javaImplement>com.xyst.dinas.biz.scene.XystDinasCommonSubAllScene</m:javaImplement> + <m:defaultExecute>true</m:defaultExecute> + <m:hide>true</m:hide> + </m:innerScene> + </m:innerScenes> + <m:fields> + <m:field> + <m:name>id</m:name> + <m:title>id</m:title> + <m:type>uuid</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.project.id</m:name> + <m:title>项目ID</m:title> + <m:type>uuid</m:type> + <m:ref> + <m:name>com.xyst.dinas.project.datamodel.ProjectFiled</m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.project.projectNum</m:name> + <m:title>项目编号</m:title> + <m:type>string</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.project.projectName</m:name> + <m:title>项目名称</m:title> + <m:type>string</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.regionalCompany.id</m:name> + <m:title>区域公司ID</m:title> + <m:type>uuid</m:type> + <m:ref> + <m:name>com.xyst.dinas.biz.datamodel.xystOrganization</m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.regionalCompany.name</m:name> + <m:title>区域公司名称</m:title> + <m:type>string</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.purchaseSandUnit.id</m:name> + <m:title>购砂单位</m:title> + <m:type>uuid</m:type> + <m:ref> + <m:name>com.xyst.dinas.project.datamodel.PurchaseSandCompany</m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.purchaseSandUnit.name</m:name> + <m:title>购砂单位名称</m:title> + <m:type>string</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.station.id</m:name> + <m:title>场站id</m:title> + <m:type>uuid</m:type> + <m:ref> + <m:name>com.xyst.dinas.biz.datamodel.Station</m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.station.stationName</m:name> + <m:title>场站名称</m:title> + <m:type>string</m:type> + <m:ref> + <m:name>com.xyst.dinas.biz.datamodel.Station</m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.id</m:name> + <m:title>合同id</m:title> + <m:type>uuid</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.contractName</m:name> + <m:title>合同名称</m:title> + <m:type>string</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.contractCode</m:name> + <m:title>合同编号</m:title> + <m:type>string</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.contractState</m:name> + <m:title>合同状态</m:title> + <m:type>string</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.approveState</m:name> + <m:title>审批状态</m:title> + <m:type>string</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.contacts</m:name> + <m:title>合同签订联系人</m:title> + <m:type>string</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.phoneNumber</m:name> + <m:title>联系方式</m:title> + <m:type>string</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.signDate</m:name> + <m:title>合同签订时间</m:title> + <m:type>datetime</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.startDate</m:name> + <m:title>合同开始时间</m:title> + <m:type>datetime</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.endDate</m:name> + <m:title>合同结束时间</m:title> + <m:type>datetime</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>dinasType.id</m:name> + <m:title>砂石种类id</m:title> + <m:type>uuid</m:type> + <m:ref> + <m:name>com.xyst.dinas.biz.datamodel.DinasType</m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>dinasType.dinasTypeName</m:name> + <m:title>砂石种类名称</m:title> + <m:type>string</m:type> + <m:ref> + <m:name>com.xyst.dinas.biz.datamodel.DinasType</m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>purchaseAmount</m:name> + <m:title>采购量</m:title> + <m:type>fixnum</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>dinasAmount</m:name> + <m:title>砂石余量</m:title> + <m:type>fixnum</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>price</m:name> + <m:title>单价</m:title> + <m:type>fixnum</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>amount</m:name> + <m:title>总价</m:title> + <m:type>fixnum</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.createTime</m:name> + <m:title>创建时间</m:title> + <m:type>datetime</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.creator.name</m:name> + <m:title>创建人</m:title> + <m:type>string</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.modifyTime</m:name> + <m:title>修改时间</m:title> + <m:type>datetime</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.modifier.name</m:name> + <m:title>修改人</m:title> + <m:type>string</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + <m:field> + <m:name>master.discard</m:name> + <m:title>废弃</m:title> + <m:type>boolean</m:type> + <m:ref> + <m:name></m:name> + <m:type></m:type> + </m:ref> + <m:desc></m:desc> + </m:field> + </m:fields> + </m:query> + </content> +</metadata>