Commit 6bb4d890 by 王衍超

解决冲突;

parents 7dc0a553 be5a02e0
......@@ -13,9 +13,9 @@ public class ContractConstant {
/** 项目编号 */
public static final String PROJECT_CODE = "projectCode";
/** 区域公司 */
public static final String REGION_COMPANY = "regionCompany";
public static final String REGION_COMPANY = "regionalCompany";
/** 区域公司名称 */
public static final String REGION_COMPANY_NAME = "regionCompanyName";
public static final String REGION_COMPANY_NAME = "regionalCompanyName";
/** 购砂单位 */
public static final String PURCHASE_SAND_UNIT = "purchaseSandUnit";
/** 购砂单位名称 */
......
......@@ -18,9 +18,9 @@ public class ContractInfoEntity {
/** 项目编号 */
private String projectCode;
/** 区域公司 */
private UUID regionCompany;
private UUID regionalCompany;
/** 区域公司名称 */
private String regionCompanyName;
private String regionalCompanyName;
/** 购砂单位 */
private UUID purchaseSandUnit;
/** 购砂单位名称 */
......@@ -47,17 +47,17 @@ public class ContractInfoEntity {
public void setProjectCode(String projectCode) {
this.projectCode = projectCode;
}
public UUID getRegionCompany() {
return regionCompany;
public UUID getRegionalCompany() {
return regionalCompany;
}
public void setRegionCompany(UUID regionCompany) {
this.regionCompany = regionCompany;
public void setRegionalCompany(UUID regionalCompany) {
this.regionalCompany = regionalCompany;
}
public String getRegionCompanyName() {
return regionCompanyName;
public String getRegionalCompanyName() {
return regionalCompanyName;
}
public void setRegionCompanyName(String regionCompanyName) {
this.regionCompanyName = regionCompanyName;
public void setRegionalCompanyName(String regionalCompanyName) {
this.regionalCompanyName = regionalCompanyName;
}
public UUID getPurchaseSandUnit() {
return purchaseSandUnit;
......
......@@ -2,6 +2,7 @@ package com.xyst.dinas.contract.internal.dao;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import javax.persistence.Tuple;
......@@ -15,8 +16,13 @@ import org.springframework.lang.Nullable;
import org.springframework.orm.hibernate5.HibernateCallback;
import org.springframework.orm.hibernate5.HibernateOperations;
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.BaseConstants;
import com.xyst.dinas.biz.enumeration.OrganizationTypeEnum;
import com.xyst.dinas.contract.constant.ContractConstant;
import com.xyst.dinas.contract.enumeration.ContractStateEnum;
import com.xyst.dinas.contract.request.ContractStatisticsQuery;
......@@ -32,6 +38,9 @@ public class ContractDao {
@Autowired
private HibernateOperations template;
@Autowired
private BapContext bapContext;
public KObject load(UUID id) {
return (KObject) template.get(ContractConstant.ENTITY_CONTRACT, id);
......@@ -94,21 +103,21 @@ public class ContractDao {
/**
* 查询指定时间范围内有效的执行中合同
*
* @param regionCompanyId 区域公司
* @param regionalCompanyId 区域公司
* @param startDate 开始时间
* @param endDate 结束时间
* @return
*/
public List<KObject> queryExeContractListInLife(UUID regionCompanyId,@Nullable Date startDate,@Nullable Date endDate){
public List<KObject> queryExeContractListInLife(UUID regionalCompanyId,@Nullable Date startDate,@Nullable Date endDate){
return (List<KObject>)template.execute(new HibernateCallback<List<KObject>>() {
@Override
public List<KObject> doInHibernate(Session session) throws HibernateException {
StringBuilder hql = new StringBuilder("from " + ContractConstant.ENTITY_CONTRACT + " where (discard is null or discard = 0) and regionCompany.id =:regionCompanyId and contractState =:contractState ");
StringBuilder hql = new StringBuilder("from " + ContractConstant.ENTITY_CONTRACT + " where (discard is null or discard = 0) and regionalCompany.id =:regionalCompanyId and contractState =:contractState ");
if(startDate!=null) hql.append(" and startDate <=:startDate");
if(endDate!=null) hql.append(" and endDate >=:endDate");
Query<KObject> query = session.createQuery(hql.toString(), KObject.class);
query.setParameter("regionCompanyId", regionCompanyId);
query.setParameter("regionalCompanyId", regionalCompanyId);
query.setParameter("contractState", ContractStateEnum.EXECUTING.name());
if(startDate!=null) query.setParameter("startDate", startDate);
if(endDate!=null) query.setParameter("endDate", endDate);
......@@ -122,8 +131,22 @@ public class ContractDao {
* @param infoid
* @return
*/
public List<KObject> queryExeContractByRegionCompany(UUID regionCompanyId) {
return queryExeContractListInLife(regionCompanyId, null, null);
public List<KObject> queryExeContractByRegionalCompany(UUID regionalCompanyId) {
return queryExeContractListInLife(regionalCompanyId, null, null);
}
/**
* 获取当前登录的区域公司
* @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.Organization",
KClass.class);
KObject regionalCompany = JSONObjectUtils.toObject(currentRegionalCompany, kClass);
return regionalCompany;
}
/**
......@@ -140,6 +163,7 @@ public class ContractDao {
Date signDateStart = contractStatisticsQuery.getSignStartDate();
Date signDateEnd = contractStatisticsQuery.getSignEndDate();
Integer approveState = contractStatisticsQuery.getApproveState();
KObject regionalCompany = getCurrentLoginRegionalCompany();
StringBuilder hql = new StringBuilder("select ");
hql.append("count(DISTINCT m.contractId), ");//合同总数
......@@ -149,6 +173,9 @@ public class ContractDao {
// hql.append("sum(case when m.contract_state=\"MODIFIED\" then 1 else 0 end) ");//已变更
hql.append("from ").append(ContractConstant.ENTITY_CONTRACT).append(" as m where 1=1 ");
hql.append("and (discard is null or discard = 0) ");
if(regionalCompany.getString("type").equals(OrganizationTypeEnum.REGIONAL_COMPANY.name())) {
hql.append("and regionalCompany.id=:regionalCompany ");
}
if(contractName!=null) hql.append("and contractName like :contractName ");
if(contractState!=null) hql.append("and contractState =:contractState ");
if(projectId!=null) hql.append("and project.id =:projectId ");
......@@ -166,6 +193,9 @@ public class ContractDao {
if(signDateStart!=null) query.setParameter("signDateStart", signDateStart);
if(signDateEnd!=null) query.setParameter("signDateEnd", signDateEnd);
if(approveState!=null) query.setParameter("approveState", approveState);
if(regionalCompany.getString("type").equals(OrganizationTypeEnum.REGIONAL_COMPANY.name())) {
query.setParameter("regionalCompany", regionalCompany.getUuid("id"));
}
List<Tuple> list = query.list();
JSONObject jsonObject = new JSONObject();
......
......@@ -274,9 +274,9 @@ public class ContractServiceImpl implements ContractService {
KObject project = contract.get("project");
String projectName = project.getString("projectName");
KObject regionCompany = contract.get("regionCompany");
KObject regionalCompany = contract.get("regionalCompany");
UUID emptyUUID = UUID.fromString("00000000-0000-0000-0000-000000000000");
UUID regionalCompanyId = regionCompany!=null? regionCompany.getUuid("id"):emptyUUID;
UUID regionalCompanyId = regionalCompany!=null? regionalCompany.getUuid("id"):emptyUUID;
String purchaseSandUnitName = contract.get("purchaseSandUnit").getString("name");
String contractName = contract.getString("contractName");
KObject station = contract.get("station");
......@@ -343,7 +343,7 @@ public class ContractServiceImpl implements ContractService {
}
public List<KObject> queryExeContractListInLife(UUID regionCompanyId,@Nullable Date startDate,@Nullable Date endDate){
return contractDao.queryExeContractListInLife(regionCompanyId, startDate, endDate);
public List<KObject> queryExeContractListInLife(UUID regionalCompanyId,@Nullable Date startDate,@Nullable Date endDate){
return contractDao.queryExeContractListInLife(regionalCompanyId, startDate, endDate);
}
}
......@@ -28,7 +28,7 @@ public class ContractPerformWarningProcessor implements DataProcessor {
String purchaseSandUnitName = contract.get("purchaseSandUnit").getString("name");
row.put("purchaseSandUnitName",purchaseSandUnitName);//contract.getString("purchaseSandUnitName")
//KObject warnSetting = row.get("warnSetting");
row.put("regionCompanyName", contract.getString("regionCompanyName"));
row.put("regionalCompanyName", contract.getString("regionalCompanyName"));
row.put("stationName", contract.isNull("station") ? "": contract.get("station").getString("stationName"));
}
}
......
......@@ -90,6 +90,6 @@ public interface ContractService {
*/
void afterApprovedForUpdate(KObject object);
public List<KObject> queryExeContractListInLife(UUID regionCompanyId,@Nullable Date startDate,@Nullable Date endDate);
public List<KObject> queryExeContractListInLife(UUID regionalCompanyId,@Nullable Date startDate,@Nullable Date endDate);
}
......@@ -176,15 +176,15 @@ public class ContractController {
/**
* 查询某区域公司下执行中的合同(指定时间范围内有效的)
* @param regionCompanyId
* @param regionalCompanyId
* @param startDate
* @param endDate
* @return
*/
@GetMapping("/contract/exeContractListInLife/{regionCompanyId}/{startDate}/{endDate}")
public List<KObject> queryExeContractListInLife(@PathVariable UUID regionCompanyId,
@GetMapping("/contract/exeContractListInLife/{regionalCompanyId}/{startDate}/{endDate}")
public List<KObject> queryExeContractListInLife(@PathVariable UUID regionalCompanyId,
@DateTimeFormat(pattern="yyyy-MM-dd") @PathVariable Date startDate,@DateTimeFormat(pattern="yyyy-MM-dd") @PathVariable Date endDate){
return contractService.queryExeContractListInLife(regionCompanyId, startDate, endDate);
return contractService.queryExeContractListInLife(regionalCompanyId, startDate, endDate);
}
}
\ No newline at end of file
......@@ -21,11 +21,11 @@
<annotation id='ea154cb8-f939-4e9f-9793-9673d984161f' attributeId='ffc0a199-4038-4ebf-a94f-a0f12bfc76dd' name='length' value='50'>
</annotation>
</attribute>
<attribute id='c4154a1b-f727-48cf-9ef0-ad1bee512504' name='regionCompany' columnName='region_company_id' title='区域公司' type='com.xyst.dinas.biz.datamodel.Organization' default='' precision='' isArray='false'>
<attribute id='c4154a1b-f727-48cf-9ef0-ad1bee512504' name='regionalCompany' columnName='regional_company_id' title='区域公司' type='com.xyst.dinas.biz.datamodel.Organization' default='' precision='' isArray='false'>
<annotation id='00caecc1-35aa-4342-90c8-250f84609fe4' attributeId='55efd3f5-036a-4ac4-83c9-14e22cf5465a' name='length' value='undefined'></annotation>
<annotation id='95a6dd6d-c676-4265-9c8b-d115c13b472f' attributeId='43768653-e259-4b0f-8c9d-8739f030675b' name='mappingType' value='many-to-one'></annotation>
</attribute>
<attribute id='cbb5b983-299b-4259-97d9-6470651bb18b' name='regionCompanyName' columnName='region_company_name' title='区域公司名称' type='string' default='' precision='' isArray='false'>
<attribute id='cbb5b983-299b-4259-97d9-6470651bb18b' name='regionalCompanyName' columnName='regional_company_name' title='区域公司名称' type='string' default='' precision='' isArray='false'>
<annotation id='ea154cb8-f939-4e9f-9793-9673d984161f' attributeId='ffc0a199-4038-4ebf-a94f-a0f12bfc76dd' name='length' value='50'>
</annotation>
</attribute>
......
......@@ -21,11 +21,11 @@
<annotation id='ea154cb8-f939-4e9f-9793-9673d984161f' attributeId='ffc0a199-4038-4ebf-a94f-a0f12bfc76dd' name='length' value='50'>
</annotation>
</attribute>
<attribute id='c4154a1b-f727-48cf-9ef0-ad1bee512504' name='regionCompany' columnName='region_company_id' title='区域公司' type='com.xyst.dinas.biz.datamodel.Organization' default='' precision='' isArray='false'>
<attribute id='c4154a1b-f727-48cf-9ef0-ad1bee512504' name='regionalCompany' columnName='regional_company_id' title='区域公司' type='com.xyst.dinas.biz.datamodel.Organization' default='' precision='' isArray='false'>
<annotation id='00caecc1-35aa-4342-90c8-250f84609fe4' attributeId='55efd3f5-036a-4ac4-83c9-14e22cf5465a' name='length' value='undefined'></annotation>
<annotation id='95a6dd6d-c676-4265-9c8b-d115c13b472f' attributeId='43768653-e259-4b0f-8c9d-8739f030675b' name='mappingType' value='many-to-one'></annotation>
</attribute>
<attribute id='cbb5b983-299b-4259-97d9-6470651bb18b' name='regionCompanyName' columnName='region_company_name' title='区域公司名称' type='string' default='' precision='' isArray='false'>
<attribute id='cbb5b983-299b-4259-97d9-6470651bb18b' name='regionalCompanyName' columnName='regional_company_name' title='区域公司名称' type='string' default='' precision='' isArray='false'>
<annotation id='ea154cb8-f939-4e9f-9793-9673d984161f' attributeId='ffc0a199-4038-4ebf-a94f-a0f12bfc76dd' name='length' value='50'>
</annotation>
</attribute>
......
......@@ -22,6 +22,12 @@
<defaultExecute></defaultExecute>
<hide></hide>
</innerScene>
<innerScene title='权限过滤'>
<id>05ee7a9b-edae-4eda-bc24-00806cc0427d</id>
<javaImplement>com.xyst.dinas.biz.scene.XystDinasCommonAllScene</javaImplement>
<defaultExecute>true</defaultExecute>
<hide>true</hide>
</innerScene>
<field title='id'>
<name>id</name>
<type>uuid</type>
......@@ -61,7 +67,7 @@
</field>
<field title='区域公司ID'>
<name>regionCompany.id</name>
<name>regionalCompany.id</name>
<type>uuid</type>
<ref>
<type></type>
......@@ -70,7 +76,7 @@
<description></description>
</field>
<field title='区域公司名称'>
<name>regionCompany.name</name>
<name>regionalCompany.name</name>
<type>string</type>
<ref>
<type></type>
......
......@@ -50,7 +50,7 @@
<m:attribute>
<m:annotations/>
<m:id>c4154a1b-f727-48cf-9ef0-ad1bee512504</m:id>
<m:name>regionCompany</m:name>
<m:name>regionalCompany</m:name>
<m:title>区域公司</m:title>
<m:type>com.xyst.dinas.biz.datamodel.Organization</m:type>
<m:description></m:description>
......@@ -64,7 +64,7 @@
</m:annotation>
</m:annotations>
<m:id>cbb5b983-299b-4259-97d9-6470651bb18b</m:id>
<m:name>regionCompanyName</m:name>
<m:name>regionalCompanyName</m:name>
<m:title>区域公司名称</m:title>
<m:type>string</m:type>
<m:description></m:description>
......
......@@ -46,7 +46,7 @@
<m:attribute>
<m:annotations/>
<m:id>c4154a1b-f727-48cf-9ef0-ad1bee512504</m:id>
<m:name>regionCompany</m:name>
<m:name>regionalCompany</m:name>
<m:title>区域公司</m:title>
<m:type>com.xyst.dinas.biz.datamodel.Organization</m:type>
<m:description></m:description>
......@@ -60,7 +60,7 @@
</m:annotation>
</m:annotations>
<m:id>cbb5b983-299b-4259-97d9-6470651bb18b</m:id>
<m:name>regionCompanyName</m:name>
<m:name>regionalCompanyName</m:name>
<m:title>区域公司名称</m:title>
<m:type>string</m:type>
<m:description></m:description>
......
......@@ -27,6 +27,13 @@
<m:defaultExecute></m:defaultExecute>
<m:hide></m:hide>
</m:innerScene>
<m:innerScene>
<m:id>05ee7a9b-edae-4eda-bc24-00806cc0427d</m:id>
<m:title>权限过滤</m:title>
<m:javaImplement>com.xyst.dinas.biz.scene.XystDinasCommonAllScene</m:javaImplement>
<m:defaultExecute>true</m:defaultExecute>
<m:hide>true</m:hide>
</m:innerScene>
</m:innerScenes>
<m:fields>
<m:field>
......@@ -70,7 +77,7 @@
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>regionCompany.id</m:name>
<m:name>regionalCompany.id</m:name>
<m:title>区域公司ID</m:title>
<m:type>uuid</m:type>
<m:ref>
......@@ -80,7 +87,7 @@
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>regionCompany.name</m:name>
<m:name>regionalCompany.name</m:name>
<m:title>区域公司名称</m:title>
<m:type>string</m:type>
<m:ref>
......
......@@ -48,11 +48,11 @@
<property name="projectCode" type="nstring" not-null="false">
<column name="project_code" length="50"></column>
</property>
<many-to-one name="regionCompany" entity-name="com.xyst.dinas.biz.datamodel.Organization" fetch="select">
<column name="region_company_id" not-null="false"/>
<many-to-one name="regionalCompany" entity-name="com.xyst.dinas.biz.datamodel.Organization" fetch="select">
<column name="regional_company_id" not-null="false"/>
</many-to-one>
<property name="regionCompanyName" type="nstring" not-null="false">
<column name="region_company_name" length="50"></column>
<property name="regionalCompanyName" type="nstring" not-null="false">
<column name="regional_company_name" length="50"></column>
</property>
<many-to-one name="purchaseSandUnit" entity-name="com.xyst.dinas.project.datamodel.PurchaseSandCompany" fetch="select">
<column name="purchase_sand_unit_id" not-null="false"/>
......
......@@ -49,11 +49,11 @@
<property name="projectCode" type="nstring" not-null="false">
<column name="project_code" length="50"></column>
</property>
<many-to-one name="regionCompany" entity-name="com.xyst.dinas.biz.datamodel.Organization" fetch="select">
<column name="region_company_id" not-null="false"/>
<many-to-one name="regionalCompany" entity-name="com.xyst.dinas.biz.datamodel.Organization" fetch="select">
<column name="regional_company_id" not-null="false"/>
</many-to-one>
<property name="regionCompanyName" type="nstring" not-null="false">
<column name="region_company_name" length="50"></column>
<property name="regionalCompanyName" type="nstring" not-null="false">
<column name="regional_company_name" length="50"></column>
</property>
<many-to-one name="purchaseSandUnit" entity-name="com.xyst.dinas.project.datamodel.PurchaseSandCompany" fetch="select">
<column name="purchase_sand_unit_id" not-null="false"/>
......
......@@ -23,6 +23,12 @@
<defaultExecute></defaultExecute>
<hide></hide>
</innerScene>
<innerScene title='权限过滤'>
<id>a9e07774-193e-4ad2-9a9f-8f987f218857</id>
<javaImplement>com.xyst.dinas.biz.scene.XystDinasCommonAllScene</javaImplement>
<defaultExecute>true</defaultExecute>
<hide>true</hide>
</innerScene>
<field title='id'>
<name>id</name>
<type>uuid</type>
......
......@@ -23,6 +23,12 @@
<defaultExecute></defaultExecute>
<hide></hide>
</innerScene>
<innerScene title='权限过滤'>
<id>748bd6bf-04ce-49ce-b072-2e076d638636</id>
<javaImplement>com.xyst.dinas.biz.scene.XystDinasCommonAllScene</javaImplement>
<defaultExecute>true</defaultExecute>
<hide>true</hide>
</innerScene>
<field title='id'>
<name>id</name>
<type>uuid</type>
......
......@@ -28,6 +28,13 @@
<m:defaultExecute></m:defaultExecute>
<m:hide></m:hide>
</m:innerScene>
<m:innerScene>
<m:id>a9e07774-193e-4ad2-9a9f-8f987f218857</m:id>
<m:title>权限过滤</m:title>
<m:javaImplement>com.xyst.dinas.biz.scene.XystDinasCommonAllScene</m:javaImplement>
<m:defaultExecute>true</m:defaultExecute>
<m:hide>true</m:hide>
</m:innerScene>
</m:innerScenes>
<m:fields>
<m:field>
......
......@@ -28,6 +28,13 @@
<m:defaultExecute></m:defaultExecute>
<m:hide></m:hide>
</m:innerScene>
<m:innerScene>
<m:id>748bd6bf-04ce-49ce-b072-2e076d638636</m:id>
<m:title>权限过滤</m:title>
<m:javaImplement>com.xyst.dinas.biz.scene.XystDinasCommonAllScene</m:javaImplement>
<m:defaultExecute>true</m:defaultExecute>
<m:hide>true</m:hide>
</m:innerScene>
</m:innerScenes>
<m:fields>
<m:field>
......
......@@ -37,17 +37,17 @@ public class SalesPlanDao {
/**
* 一个区域公司的一个计划周期内最多只有一份销售计划
* @param regionCompany
* @param regionalCompany
* @param planningCycle
* @return
*/
public KObject querySalesPlanByPlan(UUID regionCompany,UUID planningCycle) {
public KObject querySalesPlanByPlan(UUID regionalCompany,UUID planningCycle) {
return template.execute(session ->{
String hql = "from "+SalesPlanConstant.ENTITY+" as s where s.regionCompany.id =:regionCompany and s.planningCycle.id =:planningCycle";
String hql = "from "+SalesPlanConstant.ENTITY+" as s where s.regionalCompany.id =:regionalCompany and s.planningCycle.id =:planningCycle";
Query<KObject> query = session.createQuery(hql,KObject.class);
query.setParameter("regionCompany", regionCompany);
query.setParameter("regionalCompany", regionalCompany);
query.setParameter("planningCycle", planningCycle);
List<KObject> resultList = query.getResultList();
if(resultList.isEmpty())return null;
......@@ -93,4 +93,15 @@ public class SalesPlanDao {
kobject.set(SalesPlanConstant.APPROVE_MEMO, approveMemo);
update(kobject);
}
public List<KObject> querySalesPlanDetailsByMasterId(UUID salesPlanId) {
return template.execute(session ->{
String hql = "from " + SalesPlanConstant.ENTITY_DETAIL + " where master.id =:salesPlanId GROUP BY purchaseSandUnit.id, project.id, contract.id, id ";
Query<KObject> query = session.createQuery(hql, KObject.class);
query.setParameter("salesPlanId", salesPlanId);
List<KObject> resultList = query.getResultList();
return resultList;
});
}
}
......@@ -70,11 +70,11 @@ public class SalesPlanServiceImpl implements SalesPlanService{
}
@Transactional
public KObject createSalesPlanMaster(KObject regionCompany,KObject planningCycleObj) {
public KObject createSalesPlanMaster(KObject regionalCompany,KObject planningCycleObj) {
KClass kclass = Amino.getApplicationMetadataContext().getBean(SalesPlanConstant.ENTITY, KClass.class);
KObject kObject = kclass.newInstance();
kObject.set("regionCompany", regionCompany);
kObject.set("regionalCompany", regionalCompany);
kObject.set("planningCycle", planningCycleObj);
kObject.set("approveState", BizProcessState.NOT_IN_PROCESS.getValue());
kObject.set(BaseConstants.CREATE_TIME, new Date());
......@@ -111,6 +111,14 @@ public class SalesPlanServiceImpl implements SalesPlanService{
public KObject queryTempSalesPlan(UUID id) {
return salesPlanDao.queryTempSalesPlan(id);
}
@Override
public Object querySalesPlanDetailsByMasterId(UUID salesPlanId) {
KObject kObject = salesPlanDao.load(salesPlanId);
List<KObject> details = salesPlanDao.querySalesPlanDetailsByMasterId(salesPlanId);
kObject.set("SalesPlanDetails", details);
return kObject;
}
......
package com.xyst.dinas.sales.service;
import java.util.List;
import java.util.UUID;
import org.springframework.lang.Nullable;
......@@ -10,11 +11,11 @@ public interface SalesPlanService {
/**
* 创建销售计划
* @param regionCompany
* @param regionalCompany
* @param planningCycleObj
* @return
*/
public KObject createSalesPlanMaster(KObject regionCompany,KObject planningCycleObj);
public KObject createSalesPlanMaster(KObject regionalCompany,KObject planningCycleObj);
/**
* 增加销售计划明细
......@@ -37,5 +38,7 @@ public interface SalesPlanService {
public void approveSalesPlanForDaily(UUID id,int approveState,String approveMemo);
public void approveSalesPlanForTemp(UUID id,int approveState,String approveMemo);
public Object querySalesPlanDetailsByMasterId(UUID fromString);
}
......@@ -56,44 +56,44 @@ public class SalesPlanAutoCreateTask implements Task{
initService();
//1.根据当前区域公司查找计划周期类型,然后根据类型获取计划周期(本周或本天);
List<KObject> allOrganization = dinasOrganizationDao.queryAllOrganization();
for (KObject regionCompany : allOrganization) {
String regionCompanyName = regionCompany.getString("name");
String planningCycle = regionCompany.getString("planningCycle");
for (KObject regionalCompany : allOrganization) {
String regionalCompanyName = regionalCompany.getString("name");
String planningCycle = regionalCompany.getString("planningCycle");
PlanningCycleEnum planningCycleType = PlanningCycleEnum.DAY.name().equalsIgnoreCase(planningCycle)?PlanningCycleEnum.DAY:PlanningCycleEnum.WEEK;
KObject planningCycleObj = planningCycleService.getPlanningCycleObj(planningCycleType, new Date());
UUID regionCompanyId = regionCompany.getUuid(BaseConstants.ID);
UUID regionalCompanyId = regionalCompany.getUuid(BaseConstants.ID);
UUID planningCycleId = planningCycleObj.getUuid(BaseConstants.ID);
KObject salesPlan = salesPlanDao.querySalesPlanByPlan(regionCompanyId, planningCycleId);
KObject salesPlan = salesPlanDao.querySalesPlanByPlan(regionalCompanyId, planningCycleId);
//1. 新增销售计划
if (salesPlan==null) {
List<KObject> executingContracts = contractDao.queryExeContractByRegionCompany(regionCompanyId);
List<KObject> executingContracts = contractDao.queryExeContractByRegionalCompany(regionalCompanyId);
if (executingContracts.isEmpty()) continue;
KObject salesPlanMaster = salesPlanService.createSalesPlanMaster(regionCompany, planningCycleObj);
KObject salesPlanMaster = salesPlanService.createSalesPlanMaster(regionalCompany, planningCycleObj);
int detailCount = 0;
for (KObject contract : executingContracts) {//执行中的合同
detailCount += salesPlanService.createSalesPlanDetail(salesPlanMaster, contract);
}
if(detailCount==0) {
salesPlanService.deleteSalesPlan(salesPlanMaster);
logger.info("区域公司["+regionCompanyName+"]:本次没有生成销售计划;");
logger.info("区域公司["+regionalCompanyName+"]:本次没有生成销售计划;");
}else {
int contractSize = executingContracts.size();
logger.info("区域公司["+regionCompanyName+"]:销售计划新增成功,本次共扫描到 "+contractSize+" 条执行中的合同,新增 "+detailCount+" 条销售计划明细");
logger.info("区域公司["+regionalCompanyName+"]:销售计划新增成功,本次共扫描到 "+contractSize+" 条执行中的合同,新增 "+detailCount+" 条销售计划明细");
}
continue;
}
//2.销售计划已经提交或审批通过,则不做任何处理
int approveState = salesPlan.getInt(SalesPlanConstant.APPROVE_STATE);
if (approveState == BizProcessState.IN_PROCESS.getValue() || approveState == BizProcessState.DONE_WITH_AGREE.getValue()) {
logger.info("区域公司["+regionCompanyName+"]:销售计划已经提交或审批通过,不做任何处理;");
logger.info("区域公司["+regionalCompanyName+"]:销售计划已经提交或审批通过,不做任何处理;");
continue;
}
//3.更新销售计划
List<KObject> contractForAddInPlan = new ArrayList<>();
HashSet<UUID> contractForDelInPlan = new HashSet<>();
List<KObject> executingContracts = contractDao.queryExeContractByRegionCompany(regionCompanyId);
List<KObject> executingContracts = contractDao.queryExeContractByRegionalCompany(regionalCompanyId);
List<KObject> salesPlanDetails = salesPlan.get("SalesPlanDetails").toList();
for (KObject executingContract : executingContracts) {
......@@ -127,7 +127,7 @@ public class SalesPlanAutoCreateTask implements Task{
}
//3.2 更新销售明细中的合同砂石余量
if(contractForDelInPlan.size()>0) {
salesPlan = salesPlanDao.querySalesPlanByPlan(regionCompanyId, planningCycleId);
salesPlan = salesPlanDao.querySalesPlanByPlan(regionalCompanyId, planningCycleId);
}
int updateDetailCount =0;
salesPlanDetails = salesPlan.get("SalesPlanDetails").toList();
......@@ -146,7 +146,7 @@ public class SalesPlanAutoCreateTask implements Task{
for (KObject contract : contractForAddInPlan) {
salesPlanService.createSalesPlanDetail(salesPlan, contract);
}
logger.info("区域公司["+regionCompanyName+"]:销售计划更新,本次共新增 "+contractForAddInPlan.size()+" 条销售明细,"
logger.info("区域公司["+regionalCompanyName+"]:销售计划更新,本次共新增 "+contractForAddInPlan.size()+" 条销售明细,"
+ "删除 "+contractForDelInPlan.size()+" 条销售明细,刷新 "+updateDetailCount+" 条销售明细;");
}
}
......
......@@ -6,8 +6,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.beecode.bap.workflow.core.BizProcessState;
import com.beecode.inz.basis.team.pojo.ResponseObj;
import com.xyst.dinas.sales.service.SalesPlanService;
......@@ -63,5 +66,16 @@ public class SalesPlanController {
salesPlanService.approveSalesPlanForTemp(id, approveState, saleaPlanApprove.getApproveMemo());
return ResponseObj.success();
}
/**
* 根据销售计划id查询计划明细(分组)
* @param saleaPlanId
* @return
*/
@ResponseBody
@RequestMapping(value = "/salesplan/querySalesPlanDetailsByMasterId", method = RequestMethod.GET)
public Object verifyName(@RequestParam("saleaPlanId") String saleaPlanId) {
return ResponseObj.success("success", salesPlanService.querySalesPlanDetailsByMasterId(UUID.fromString(saleaPlanId)));
}
}
......@@ -14,7 +14,7 @@
<parent>com.beecode.bap.biztrait.datamodel.BasicBillRequirement</parent>
<parent>com.beecode.inz.common.datamodel.BaseInfo</parent>
<attribute id='c4154a1b-f727-48cf-9ef0-ad1bee512504' name='regionCompany' columnName='region_company_id' title='区域公司' type='com.xyst.dinas.biz.datamodel.Organization' default='' precision='' isArray='false'>
<attribute id='c4154a1b-f727-48cf-9ef0-ad1bee512504' name='regionalCompany' columnName='regional_company_id' title='区域公司' type='com.xyst.dinas.biz.datamodel.Organization' default='' precision='' isArray='false'>
<annotation id='00caecc1-35aa-4342-90c8-250f84609fe4' attributeId='55efd3f5-036a-4ac4-83c9-14e22cf5465a' name='length' value='undefined'></annotation>
<annotation id='95a6dd6d-c676-4265-9c8b-d115c13b472f' attributeId='43768653-e259-4b0f-8c9d-8739f030675b' name='mappingType' value='many-to-one'></annotation>
</attribute>
......
......@@ -13,7 +13,7 @@
<dataModel id='07370bf1-fe90-4b73-9ba1-4d2ba742b0f4' multiVersion='' domainInherit='undefined' tableName='xyst_dinas_sale_plan_temp'>
<parent>com.beecode.bap.biztrait.datamodel.BasicBillRequirement</parent>
<parent>com.beecode.inz.common.datamodel.BaseInfo</parent>
<attribute id='1cbe2d59-e855-4a28-90eb-7ce85c28a525' name='regionCompany' columnName='region_company' title='区域公司' type='com.xyst.dinas.biz.datamodel.Organization' default='' precision='' isArray='false'>
<attribute id='1cbe2d59-e855-4a28-90eb-7ce85c28a525' name='regionalCompany' columnName='regional_company' title='区域公司' type='com.xyst.dinas.biz.datamodel.Organization' default='' precision='' isArray='false'>
<annotation id='ffa11f65-fcb2-429d-a590-40402fb8fde1' attributeId='9a1656c2-7a72-433b-ab6b-6fd19bf5af26' name='length' value='undefined'></annotation>
<annotation id='bf5d8736-9d14-40b8-bd2f-70899ee1491b' attributeId='e5516bce-9abf-46bf-a9a1-19694076464d' name='mappingType' value='many-to-one'></annotation>
</attribute>
......
......@@ -23,6 +23,12 @@
<defaultExecute></defaultExecute>
<hide></hide>
</innerScene>
<innerScene title='权限过滤'>
<id>ace0806d-f2a2-4100-abe7-73155b538aa6</id>
<javaImplement>com.xyst.dinas.biz.scene.XystDinasCommonAllScene</javaImplement>
<defaultExecute>true</defaultExecute>
<hide>true</hide>
</innerScene>
<field title='id'>
<name>id</name>
<type>uuid</type>
......
......@@ -23,6 +23,12 @@
<defaultExecute></defaultExecute>
<hide></hide>
</innerScene>
<innerScene title='权限过滤'>
<id>b68473e7-fca1-474d-a804-d3827f04dd92</id>
<javaImplement>com.xyst.dinas.biz.scene.XystDinasCommonAllScene</javaImplement>
<defaultExecute>true</defaultExecute>
<hide>true</hide>
</innerScene>
<field title='id'>
<name>id</name>
<type>uuid</type>
......@@ -33,7 +39,7 @@
<description></description>
</field>
<field title='区域公司'>
<name>regionCompany.id</name>
<name>regionalCompany.id</name>
<type>uuid</type>
<ref>
<type></type>
......
......@@ -24,6 +24,12 @@
<defaultExecute></defaultExecute>
<hide></hide>
</innerScene>
<innerScene title='权限过滤'>
<id>71def3a7-cf83-4662-9ea8-4e6c019dce14</id>
<javaImplement>com.xyst.dinas.biz.scene.XystDinasCommonAllScene</javaImplement>
<defaultExecute>true</defaultExecute>
<hide>true</hide>
</innerScene>
<field title='id'>
<name>id</name>
<type>uuid</type>
......@@ -34,7 +40,7 @@
<description></description>
</field>
<field title='区域公司'>
<name>regionCompany.id</name>
<name>regionalCompany.id</name>
<type>uuid</type>
<ref>
<type></type>
......
......@@ -23,7 +23,7 @@
<m:attribute>
<m:annotations/>
<m:id>c4154a1b-f727-48cf-9ef0-ad1bee512504</m:id>
<m:name>regionCompany</m:name>
<m:name>regionalCompany</m:name>
<m:title>区域公司</m:title>
<m:type>com.xyst.dinas.biz.datamodel.Organization</m:type>
<m:description></m:description>
......
......@@ -27,7 +27,7 @@
<m:attribute>
<m:annotations/>
<m:id>1cbe2d59-e855-4a28-90eb-7ce85c28a525</m:id>
<m:name>regionCompany</m:name>
<m:name>regionalCompany</m:name>
<m:title>区域公司</m:title>
<m:type>com.xyst.dinas.biz.datamodel.Organization</m:type>
<m:description></m:description>
......
......@@ -28,6 +28,13 @@
<m:defaultExecute></m:defaultExecute>
<m:hide></m:hide>
</m:innerScene>
<m:innerScene>
<m:id>ace0806d-f2a2-4100-abe7-73155b538aa6</m:id>
<m:title>权限过滤</m:title>
<m:javaImplement>com.xyst.dinas.biz.scene.XystDinasCommonAllScene</m:javaImplement>
<m:defaultExecute>true</m:defaultExecute>
<m:hide>true</m:hide>
</m:innerScene>
</m:innerScenes>
<m:fields>
<m:field>
......
......@@ -27,6 +27,13 @@
<m:defaultExecute></m:defaultExecute>
<m:hide></m:hide>
</m:innerScene>
<m:innerScene>
<m:id>b68473e7-fca1-474d-a804-d3827f04dd92</m:id>
<m:title>权限过滤</m:title>
<m:javaImplement>com.xyst.dinas.biz.scene.XystDinasCommonAllScene</m:javaImplement>
<m:defaultExecute>true</m:defaultExecute>
<m:hide>true</m:hide>
</m:innerScene>
</m:innerScenes>
<m:fields>
<m:field>
......@@ -40,7 +47,7 @@
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>regionCompany.id</m:name>
<m:name>regionalCompany.id</m:name>
<m:title>区域公司</m:title>
<m:type>uuid</m:type>
<m:ref>
......
......@@ -27,6 +27,13 @@
<m:defaultExecute></m:defaultExecute>
<m:hide></m:hide>
</m:innerScene>
<m:innerScene>
<m:id>71def3a7-cf83-4662-9ea8-4e6c019dce14</m:id>
<m:title>权限过滤</m:title>
<m:javaImplement>com.xyst.dinas.biz.scene.XystDinasCommonAllScene</m:javaImplement>
<m:defaultExecute>true</m:defaultExecute>
<m:hide>true</m:hide>
</m:innerScene>
</m:innerScenes>
<m:fields>
<m:field>
......@@ -40,7 +47,7 @@
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>regionCompany.id</m:name>
<m:name>regionalCompany.id</m:name>
<m:title>区域公司</m:title>
<m:type>uuid</m:type>
<m:ref>
......
......@@ -43,8 +43,8 @@
<column name="approve_time"></column>
</property>
<many-to-one name="regionCompany" entity-name="com.xyst.dinas.biz.datamodel.Organization" fetch="select">
<column name="region_company_id" not-null="false"/>
<many-to-one name="regionalCompany" entity-name="com.xyst.dinas.biz.datamodel.Organization" fetch="select">
<column name="regional_company_id" not-null="false"/>
</many-to-one>
<many-to-one name="planningCycle" entity-name="com.xyst.dinas.biz.datamodel.PlanningCycle" fetch="select">
<column name="planning_cycle_id" not-null="false"/>
......
......@@ -46,8 +46,8 @@
<property name="approveTime" type="timestamp" not-null="false">
<column name="approve_time"></column>
</property>
<many-to-one name="regionCompany" entity-name="com.xyst.dinas.biz.datamodel.Organization" fetch="select">
<column name="region_company" not-null="false"></column>
<many-to-one name="regionalCompany" entity-name="com.xyst.dinas.biz.datamodel.Organization" fetch="select">
<column name="regional_company" not-null="false"></column>
</many-to-one>
<many-to-one name="project" entity-name="com.xyst.dinas.project.datamodel.ProjectFiled" fetch="select">
<column name="project" not-null="false"></column>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment