Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
cloud-fb
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王衍超
cloud-fb
Commits
d5815f3b
Commit
d5815f3b
authored
Apr 30, 2021
by
wukaiqiang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wukq-2021-04-30增加更新合同子表,库存量,销售计划主表,合同主表因销售台账而影响的数据更新
parent
e5ac0b22
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
151 additions
and
7 deletions
+151
-7
PlanningCycleServiceImpl.java
.../dinas/biz/internal/service/PlanningCycleServiceImpl.java
+15
-0
PlanningCycleService.java
...java/com/xyst/dinas/biz/service/PlanningCycleService.java
+1
-0
ContractDao.java
...ava/com/xyst/dinas/contract/internal/dao/ContractDao.java
+29
-0
ContractServiceImpl.java
.../dinas/contract/internal/service/ContractServiceImpl.java
+9
-0
ContractService.java
...java/com/xyst/dinas/contract/service/ContractService.java
+3
-0
CustomerTypeEnum.java
.../java/com/xyst/dinas/sales/constant/CustomerTypeEnum.java
+33
-0
SalesRecordServiceImpl.java
.../dinas/sales/internal/service/SalesRecordServiceImpl.java
+61
-7
No files found.
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/internal/service/PlanningCycleServiceImpl.java
View file @
d5815f3b
...
@@ -53,4 +53,19 @@ public class PlanningCycleServiceImpl implements PlanningCycleService{
...
@@ -53,4 +53,19 @@ public class PlanningCycleServiceImpl implements PlanningCycleService{
}
}
public
UUID
getPlanningCycleObjBySum
(
String
planningCycle
,
Date
date
)
{
PlanningCycleEnum
planningCycleType
=
null
;
if
(
PlanningCycleEnum
.
DAY
.
name
().
equalsIgnoreCase
(
planningCycle
))
{
planningCycleType
=
PlanningCycleEnum
.
DAY
;
}
else
if
(
PlanningCycleEnum
.
WEEK
.
name
().
equalsIgnoreCase
(
planningCycle
))
{
planningCycleType
=
PlanningCycleEnum
.
WEEK
;
}
else
{
return
null
;
}
UUID
ID
=
planningCycleDao
.
getPlanningCycleObj
(
planningCycleType
,
date
).
getUuid
(
"id"
);
return
ID
;
}
}
}
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/service/PlanningCycleService.java
View file @
d5815f3b
...
@@ -32,5 +32,6 @@ public interface PlanningCycleService {
...
@@ -32,5 +32,6 @@ public interface PlanningCycleService {
public
void
initData
()
;
public
void
initData
()
;
public
UUID
getPlanningCycleObjBySum
(
String
planningCycleType
,
Date
date
);
}
}
backend/xyst.dinas.contract/src/main/java/com/xyst/dinas/contract/internal/dao/ContractDao.java
View file @
d5815f3b
package
com
.
xyst
.
dinas
.
contract
.
internal
.
dao
;
package
com
.
xyst
.
dinas
.
contract
.
internal
.
dao
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -271,5 +272,33 @@ public class ContractDao {
...
@@ -271,5 +272,33 @@ public class ContractDao {
return
dinasAmount
;
return
dinasAmount
;
}
}
/**
* 获取合同上的某种砂石余量
* @param contract
* @param dinasTypeId 砂石类型
* @return
*/
public
boolean
updateContractDinasAmount
(
KObject
contract
,
UUID
dinasTypeId
,
BigDecimal
DEALAMOUNT
,
BigDecimal
AMOUNT
)
{
BigDecimal
dinasAmount
;
BigDecimal
saleDinasAmount
;
BigDecimal
advanceBalance
;
boolean
flag
=
false
;
List
<
KObject
>
contractDetail
=
contract
.
get
(
"contractDetails"
).
toList
();
for
(
KObject
detail
:
contractDetail
)
{
//合同中的砂石明细
UUID
dinasTypeId2
=
detail
.
get
(
"dinasType"
).
getUuid
(
BaseConstants
.
ID
);
if
(
dinasTypeId2
.
equals
(
dinasTypeId
))
{
dinasAmount
=
new
BigDecimal
(
detail
.
getDouble
(
ContractConstant
.
DINAS_AMOUNT
));
saleDinasAmount
=
new
BigDecimal
(
detail
.
getDouble
(
ContractConstant
.
SALE_DINAS_AMOUNT
));
advanceBalance
=
new
BigDecimal
(
detail
.
getDouble
(
ContractConstant
.
ADVANCE_BALANCE
));
detail
.
set
(
ContractConstant
.
DINAS_AMOUNT
,
dinasAmount
.
add
(
DEALAMOUNT
));
update
(
detail
);
contract
.
set
(
ContractConstant
.
ADVANCE_BALANCE
,
advanceBalance
.
add
(
AMOUNT
));
contract
.
set
(
ContractConstant
.
SALE_DINAS_AMOUNT
,
saleDinasAmount
.
subtract
(
DEALAMOUNT
));
flag
=
true
;
break
;
}
}
return
flag
;
}
}
}
backend/xyst.dinas.contract/src/main/java/com/xyst/dinas/contract/internal/service/ContractServiceImpl.java
View file @
d5815f3b
package
com
.
xyst
.
dinas
.
contract
.
internal
.
service
;
package
com
.
xyst
.
dinas
.
contract
.
internal
.
service
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
...
@@ -383,4 +384,12 @@ public class ContractServiceImpl implements ContractService {
...
@@ -383,4 +384,12 @@ public class ContractServiceImpl implements ContractService {
}
}
return
true
;
return
true
;
}
}
@Override
public
Boolean
modifyInventory
(
UUID
id
,
UUID
dinasTypeId
,
BigDecimal
DEALAMOUNT
,
BigDecimal
AMOUNT
)
{
// TODO Auto-generated method stub
KObject
obj
=
contractDao
.
load
(
id
);
return
contractDao
.
updateContractDinasAmount
(
obj
,
dinasTypeId
,
DEALAMOUNT
,
AMOUNT
);
}
}
}
backend/xyst.dinas.contract/src/main/java/com/xyst/dinas/contract/service/ContractService.java
View file @
d5815f3b
package
com
.
xyst
.
dinas
.
contract
.
service
;
package
com
.
xyst
.
dinas
.
contract
.
service
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -9,6 +10,7 @@ import org.json.JSONArray;
...
@@ -9,6 +10,7 @@ import org.json.JSONArray;
import
org.springframework.lang.Nullable
;
import
org.springframework.lang.Nullable
;
import
com.beecode.bcp.type.KObject
;
import
com.beecode.bcp.type.KObject
;
import
com.beecode.inz.basis.team.pojo.ResponseObj
;
public
interface
ContractService
{
public
interface
ContractService
{
...
@@ -104,5 +106,6 @@ public interface ContractService {
...
@@ -104,5 +106,6 @@ public interface ContractService {
public
List
<
KObject
>
queryExeContractListInLife
(
UUID
regionalCompanyId
,
@Nullable
Date
startDate
,
@Nullable
Date
endDate
);
public
List
<
KObject
>
queryExeContractListInLife
(
UUID
regionalCompanyId
,
@Nullable
Date
startDate
,
@Nullable
Date
endDate
);
public
Boolean
modifyInventory
(
UUID
id
,
UUID
dinasTypeId
,
BigDecimal
DEALAMOUNT
,
BigDecimal
AMOUNT
);
}
}
backend/xyst.dinas.sales/src/main/java/com/xyst/dinas/sales/constant/CustomerTypeEnum.java
0 → 100644
View file @
d5815f3b
package
com
.
xyst
.
dinas
.
sales
.
constant
;
public
enum
CustomerTypeEnum
{
/**
* 区域公司
*/
PurchaseSandCompany
(
"PurchaseSandCompany"
,
"PurchaseSandCompany"
),
/**
* 散户
*/
RetailInfo
(
"RetailInfo"
,
"RetailInfo"
);
private
String
value
=
""
;
private
String
description
=
""
;
CustomerTypeEnum
(
String
value
,
String
description
){
this
.
value
=
value
;
this
.
description
=
description
;
}
CustomerTypeEnum
(){
this
(
""
,
""
);
}
public
String
getValue
(){
return
this
.
value
;
}
public
String
getDescription
(){
return
this
.
description
;
}
}
backend/xyst.dinas.sales/src/main/java/com/xyst/dinas/sales/internal/service/SalesRecordServiceImpl.java
View file @
d5815f3b
...
@@ -9,6 +9,8 @@ import java.util.UUID;
...
@@ -9,6 +9,8 @@ import java.util.UUID;
import
javax.transaction.Transactional
;
import
javax.transaction.Transactional
;
import
org.json.JSONArray
;
import
org.json.JSONObject
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.beans.factory.annotation.Qualifier
;
...
@@ -17,13 +19,20 @@ import com.beecode.bcp.type.KObject;
...
@@ -17,13 +19,20 @@ import com.beecode.bcp.type.KObject;
import
com.xyst.dinas.biz.dao.DinasOrganizationDao
;
import
com.xyst.dinas.biz.dao.DinasOrganizationDao
;
import
com.xyst.dinas.biz.dao.DinasTypeDao
;
import
com.xyst.dinas.biz.dao.DinasTypeDao
;
import
com.xyst.dinas.biz.dao.StationDao
;
import
com.xyst.dinas.biz.dao.StationDao
;
import
com.xyst.dinas.biz.enumeration.PlanningCycleEnum
;
import
com.xyst.dinas.biz.service.PlanningCycleService
;
import
com.xyst.dinas.biz.dao.ProductionLineDao
;
import
com.xyst.dinas.biz.dao.ProductionLineDao
;
import
com.xyst.dinas.biz.dao.RetailInfoDao
;
import
com.xyst.dinas.biz.dao.RetailInfoDao
;
import
com.xyst.dinas.contract.constant.ContractConstant
;
import
com.xyst.dinas.contract.internal.dao.ContractDao
;
import
com.xyst.dinas.contract.internal.dao.ContractDao
;
import
com.xyst.dinas.contract.service.ContractService
;
import
com.xyst.dinas.project.dao.ProjectFiledDao
;
import
com.xyst.dinas.project.dao.ProjectFiledDao
;
import
com.xyst.dinas.project.dao.PurchaseSandCompanyDao
;
import
com.xyst.dinas.project.dao.PurchaseSandCompanyDao
;
import
com.xyst.dinas.sales.constant.CustomerTypeEnum
;
import
com.xyst.dinas.sales.constant.SalesRecordConstant
;
import
com.xyst.dinas.sales.constant.SalesRecordConstant
;
import
com.xyst.dinas.sales.dao.SalesPlanDao
;
import
com.xyst.dinas.sales.dao.SalesRecordDao
;
import
com.xyst.dinas.sales.dao.SalesRecordDao
;
import
com.xyst.dinas.sales.service.InventoryService
;
import
com.xyst.dinas.sales.service.SalesRecordService
;
import
com.xyst.dinas.sales.service.SalesRecordService
;
import
com.xyst.dinas.sales.web.info.SalesRecordInfo
;
import
com.xyst.dinas.sales.web.info.SalesRecordInfo
;
import
com.xyst.dinas.sales.web.info.SyncException
;
import
com.xyst.dinas.sales.web.info.SyncException
;
...
@@ -50,6 +59,14 @@ public class SalesRecordServiceImpl implements SalesRecordService {
...
@@ -50,6 +59,14 @@ public class SalesRecordServiceImpl implements SalesRecordService {
@Autowired
@Autowired
DinasTypeDao
dinasTypeDao
;
DinasTypeDao
dinasTypeDao
;
@Autowired
@Autowired
InventoryService
inventoryService
;
@Autowired
ContractService
contractService
;
@Autowired
SalesPlanDao
salesPlanDao
;
@Autowired
PlanningCycleService
planningCycleService
;
@Autowired
@Qualifier
(
SalesRecordConstant
.
ENTITY
)
@Qualifier
(
SalesRecordConstant
.
ENTITY
)
private
KClass
salesRecordClass
;
private
KClass
salesRecordClass
;
...
@@ -77,7 +94,7 @@ public class SalesRecordServiceImpl implements SalesRecordService {
...
@@ -77,7 +94,7 @@ public class SalesRecordServiceImpl implements SalesRecordService {
KObject
purchaseSandCompany
=
null
;
KObject
purchaseSandCompany
=
null
;
// 获取散户KObject
// 获取散户KObject
KObject
retailInfo
=
null
;
KObject
retailInfo
=
null
;
if
(
"company"
.
equals
(
salesRecordInfo
.
getCustomerType
()))
{
if
(
(
CustomerTypeEnum
.
PurchaseSandCompany
.
name
())
.
equals
(
salesRecordInfo
.
getCustomerType
()))
{
purchaseSandCompany
=
entityExistenceCheck
(
"购砂单位"
,
purchaseSandCompanyDao
.
load
(
purchaseSandCompany
=
entityExistenceCheck
(
"购砂单位"
,
purchaseSandCompanyDao
.
load
(
UUID
.
fromString
(
dataExistenceCheck
(
"购砂单位"
,
salesRecordInfo
.
getPurchaseSandCompany
()))));
UUID
.
fromString
(
dataExistenceCheck
(
"购砂单位"
,
salesRecordInfo
.
getPurchaseSandCompany
()))));
}
else
{
}
else
{
...
@@ -97,6 +114,7 @@ public class SalesRecordServiceImpl implements SalesRecordService {
...
@@ -97,6 +114,7 @@ public class SalesRecordServiceImpl implements SalesRecordService {
dinasType
=
entityExistenceCheck
(
"砂石类型"
,
dinasType
=
entityExistenceCheck
(
"砂石类型"
,
dinasTypeDao
.
load
(
UUID
.
fromString
(
dataExistenceCheck
(
"砂石类型"
,
salesRecordInfo
.
getDinasType
()))));
dinasTypeDao
.
load
(
UUID
.
fromString
(
dataExistenceCheck
(
"砂石类型"
,
salesRecordInfo
.
getDinasType
()))));
// 获取销售台账Kobject
// 获取销售台账Kobject
Date
modifyTime
=
generateDate
(
"修改时间"
,
"yyyy-MM-dd"
,
salesRecordInfo
.
getModifyTime
());
Date
modifyTime
=
generateDate
(
"修改时间"
,
"yyyy-MM-dd"
,
salesRecordInfo
.
getModifyTime
());
Date
dealtime
=
generateDate
(
"销售时间"
,
"yyyy-MM-dd"
,
salesRecordInfo
.
getDealTime
());
Date
dealtime
=
generateDate
(
"销售时间"
,
"yyyy-MM-dd"
,
salesRecordInfo
.
getDealTime
());
...
@@ -107,12 +125,10 @@ public class SalesRecordServiceImpl implements SalesRecordService {
...
@@ -107,12 +125,10 @@ public class SalesRecordServiceImpl implements SalesRecordService {
salesRecord
.
set
(
SalesRecordConstant
.
PROJECT
,
project
);
salesRecord
.
set
(
SalesRecordConstant
.
PROJECT
,
project
);
salesRecord
.
set
(
SalesRecordConstant
.
REGIONALCOMPANY
,
regionalCompany
);
salesRecord
.
set
(
SalesRecordConstant
.
REGIONALCOMPANY
,
regionalCompany
);
salesRecord
.
set
(
SalesRecordConstant
.
CONTRACT
,
contract
);
salesRecord
.
set
(
SalesRecordConstant
.
CONTRACT
,
contract
);
if
(
"company"
.
equals
(
salesRecordInfo
.
getCustomerType
()))
{
if
(
CustomerTypeEnum
.
PurchaseSandCompany
.
name
()
.
equals
(
salesRecordInfo
.
getCustomerType
()))
{
salesRecord
.
set
(
SalesRecordConstant
.
PURCHASESANDCOMPANY
,
purchaseSandCompany
);
salesRecord
.
set
(
SalesRecordConstant
.
PURCHASESANDCOMPANY
,
purchaseSandCompany
);
// salesRecord.set(SalesRecordConstant.RETAILINFO,null);
}
else
if
(
null
!=
salesRecordInfo
.
getRetailInfo
())
{
}
else
if
(
null
!=
salesRecordInfo
.
getRetailInfo
())
{
salesRecord
.
set
(
SalesRecordConstant
.
RETAILINFO
,
retailInfo
);
salesRecord
.
set
(
SalesRecordConstant
.
RETAILINFO
,
retailInfo
);
// salesRecord.set(SalesRecordConstant.PURCHASESANDCOMPANY,null);
}
}
salesRecord
.
set
(
SalesRecordConstant
.
STATION
,
station
);
salesRecord
.
set
(
SalesRecordConstant
.
STATION
,
station
);
salesRecord
.
set
(
SalesRecordConstant
.
PRODUCTIONLINE
,
productionLine
);
salesRecord
.
set
(
SalesRecordConstant
.
PRODUCTIONLINE
,
productionLine
);
...
@@ -133,12 +149,50 @@ public class SalesRecordServiceImpl implements SalesRecordService {
...
@@ -133,12 +149,50 @@ public class SalesRecordServiceImpl implements SalesRecordService {
dataExistenceCheck
(
"付款来源"
,
salesRecordInfo
.
getPaymentSource
()));
dataExistenceCheck
(
"付款来源"
,
salesRecordInfo
.
getPaymentSource
()));
salesRecord
.
set
(
SalesRecordConstant
.
DEALBILLCODE
,
salesRecord
.
set
(
SalesRecordConstant
.
DEALBILLCODE
,
dataExistenceCheck
(
"销售单号"
,
salesRecordInfo
.
getDealBillCode
()));
dataExistenceCheck
(
"销售单号"
,
salesRecordInfo
.
getDealBillCode
()));
// salesRecord.set(SalesRecordConstant.APPROVE_STATE,modifyTime);
salesRecord
.
set
(
SalesRecordConstant
.
DISCARD
,
false
);
salesRecord
.
set
(
SalesRecordConstant
.
DISCARD
,
false
);
salesRecord
.
set
(
SalesRecordConstant
.
DEL
,
false
);
salesRecord
.
set
(
SalesRecordConstant
.
DEL
,
false
);
// salesRecord.set(SalesRecordConstant.PIC,modifyTime);
BigDecimal
DEALAMOUNT
=
BigDecimal
.
ZERO
.
subtract
(
new
BigDecimal
(
salesRecord
.
getDouble
(
SalesRecordConstant
.
DEALAMOUNT
)));
//付款来源未定,暂时按使用预付款处理。
BigDecimal
AMOUNT
=
BigDecimal
.
ZERO
.
subtract
(
new
BigDecimal
(
salesRecord
.
getDouble
(
SalesRecordConstant
.
AMOUNT
)));
if
(
CustomerTypeEnum
.
PurchaseSandCompany
.
name
().
equals
(
salesRecordInfo
.
getCustomerType
()))
{
// 更新合同子表合同砂石余量(吨)-更新合同表付款余额、销售总量信息
/*
* boolean flag =
* contractService.modifyInventory(UUID.fromString(salesRecordInfo.getContract()
* ), UUID.fromString(salesRecordInfo.getDinasType()), DEALAMOUNT, AMOUNT); if
* (!flag) { throw new SyncException("销售台账信息存储报出错:合同子表中无此砂石类型数据"); }
*/
UUID
planningCycleId
=
planningCycleService
.
getPlanningCycleObjBySum
(
regionalCompany
.
getString
(
"planningCycle"
),
dealtime
);
KObject
salesPlan
=
salesPlanDao
.
querySalesPlanByPlan
(
UUID
.
fromString
(
salesRecordInfo
.
getRegionalCompany
()),
planningCycleId
);
BigDecimal
actualSaleTotalAmount
=
salesPlan
.
get
(
"actualSaleTotalAmount"
)
==
null
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
salesPlan
.
getInt
(
"actualSaleTotalAmount"
));
salesPlan
.
set
(
"actualSaleTotalAmount"
,
actualSaleTotalAmount
.
subtract
(
DEALAMOUNT
));
salesPlanDao
.
update
(
salesPlan
);
}
// 此处为Jason格式,多重嵌套
// 更新库存量
{
JSONObject
params
=
new
JSONObject
();
JSONArray
datas
=
new
JSONArray
();
JSONObject
param
=
new
JSONObject
();
JSONArray
data
=
new
JSONArray
();
JSONObject
item
=
new
JSONObject
();
item
.
put
(
"stationId"
,
station
.
get
(
"id"
));
item
.
put
(
"dinasTypeId"
,
dinasType
.
get
(
"id"
));
item
.
put
(
"stationName"
,
""
);
item
.
put
(
"dinasTypeName"
,
""
);
item
.
put
(
"amount"
,
BigDecimal
.
ZERO
.
subtract
(
DEALAMOUNT
));
data
.
put
(
item
);
param
.
put
(
"regionalCompany"
,
regionalCompany
.
getUuid
(
"id"
));
param
.
put
(
"data"
,
data
);
datas
.
put
(
param
);
params
.
put
(
"datas"
,
datas
);
inventoryService
.
modifyInventory
(
params
.
toString
(),
false
,
true
);
}
UUID
salesRecordId
=
salesRecordDao
.
insert
(
salesRecord
);
UUID
salesRecordId
=
salesRecordDao
.
insert
(
salesRecord
);
//KObject newSalesRecord = salesRecordDao.load(salesRecordId);
salesRecordIdList
.
add
(
salesRecordId
);
salesRecordIdList
.
add
(
salesRecordId
);
}
}
}
catch
(
SyncException
e
)
{
}
catch
(
SyncException
e
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment