Commit b83bdf00 by yanHeng

Merge branch 'feature/exception_data' into feature/sandMing_Area_update

parents 1d2b70d7 1a111824
...@@ -184,7 +184,7 @@ public interface SalesRecordConstant { ...@@ -184,7 +184,7 @@ public interface SalesRecordConstant {
Integer APPROVE_BACK = 3; Integer APPROVE_BACK = 3;
/** /**
* 删除审批状态 点击删除时,同步当前条数据状态 * 代表新增审核通过 扣过钱
*/ */
String APPROVE_STATE_DEL = "approveStateDel"; String APPROVE_STATE_DEL = "approveStateDel";
......
...@@ -135,20 +135,38 @@ public class SalesRecordDaoImpl implements SalesRecordDao, SalesRecordConstant { ...@@ -135,20 +135,38 @@ public class SalesRecordDaoImpl implements SalesRecordDao, SalesRecordConstant {
KObject kobject = (KObject) template.load(ENTITY, id); KObject kobject = (KObject) template.load(ENTITY, id);
//审核状态 //审核状态
Integer approvalState = Integer.valueOf(kobject.getString(SalesRecordConstant.APPROVE_STATE)); Integer approvalState = Integer.valueOf(kobject.getString(SalesRecordConstant.APPROVE_STATE));
kobject.set(BaseConstants.MODIFY_TIME, new Date()); //当前 数据来源
kobject.set(SalesRecordConstant.DEL_REASON, delReason); String dataSource = kobject.getString(SalesRecordConstant.DATA_SOURCE);
kobject.set(BaseConstants.DEL, true); //当前数据 付款类型
kobject.set(SalesRecordConstant.METHOD_TYPE, SalesRecordConstant.DEL_METHOD); String payMentSource = kobject.getString(SalesRecordConstant.PAYMENTSOURCE);
if(SalesRecordConstant.DATA_SOURCE_REN_GONG.equals(dataSource)){ //人工
//当前数据方法类型
Integer methodType = Integer.valueOf(kobject.getString(SalesRecordConstant.METHOD_TYPE));
//赋值删除状态 为后续删除审核做判断 //赋值删除状态 为后续删除审核做判断
kobject.set(SalesRecordConstant.APPROVE_STATE_DEL,approvalState); //赋予状态为数据当时审核状态 if(SalesRecordConstant.ADD_METHOD.equals(methodType)){ //如果是新增的数据判断状态
if(SalesRecordConstant.TO_NOT_SUBMITTED.equals(approvalState)){ if(SalesRecordConstant.TO_NOT_SUBMITTED.equals(approvalState)){
kobject.set(SalesRecordConstant.APPROVE_STATE, SalesRecordConstant.TO_NOT_SUBMITTED ); kobject.set(SalesRecordConstant.APPROVE_STATE, SalesRecordConstant.TO_NOT_SUBMITTED );
}else { }else if(SalesRecordConstant.APPROVE_BACK.equals(approvalState) ){
kobject.set(SalesRecordConstant.APPROVE_STATE, SalesRecordConstant.TO_AUDIT ); //删除赋予状态为未审核 kobject.set(SalesRecordConstant.APPROVE_STATE, SalesRecordConstant.APPROVE_BACK );
}else{
if(SalesRecordConstant.APPROVED.equals(approvalState) ||SalesRecordConstant.APPROVED.equals(Integer.valueOf(kobject.getString(SalesRecordConstant.APPROVE_STATE_DEL))) ){
kobject.set(SalesRecordConstant.APPROVE_STATE, SalesRecordConstant.TO_AUDIT );
}
} }
if(SalesRecordConstant.DATA_SOURCE_DI_BANG.equals(kobject.getString(SalesRecordConstant.DATA_SOURCE))){ }else if(SalesRecordConstant.DEL_METHOD.equals(methodType)){ //新增过 然后进行删除过的数据
kobject.set(SalesRecordConstant.APPROVE_STATE_DEL,SalesRecordConstant.APPROVED); //如果是地磅数据 赋值为通过,地磅数据不需要审核 if(SalesRecordConstant.APPROVE_BACK.equals(approvalState) ){
kobject.set(SalesRecordConstant.APPROVE_STATE, SalesRecordConstant.TO_AUDIT );
} }
}
}else if(SalesRecordConstant.DATA_SOURCE_DI_BANG.equals(dataSource)){ // 地磅
kobject.set(SalesRecordConstant.APPROVE_STATE_DEL,SalesRecordConstant.APPROVED);//如果是地磅数据 赋值二次状态为通过,地磅数据不需要审核
kobject.set(SalesRecordConstant.APPROVE_STATE, SalesRecordConstant.TO_AUDIT ); //删除赋予状态为未审核
}
kobject.set(BaseConstants.MODIFY_TIME, new Date());
kobject.set(SalesRecordConstant.DEL_REASON, delReason);
kobject.set(BaseConstants.DEL, true);
kobject.set(SalesRecordConstant.METHOD_TYPE, SalesRecordConstant.DEL_METHOD);
template.update(kobject); template.update(kobject);
} }
...@@ -159,15 +177,17 @@ public class SalesRecordDaoImpl implements SalesRecordDao, SalesRecordConstant { ...@@ -159,15 +177,17 @@ public class SalesRecordDaoImpl implements SalesRecordDao, SalesRecordConstant {
kobject.set(BaseConstants.MODIFY_TIME, new Date()); kobject.set(BaseConstants.MODIFY_TIME, new Date());
Integer approvalState = Integer.valueOf(approObject.getString(SalesRecordConstant.APPROVE_STATE)); Integer approvalState = Integer.valueOf(approObject.getString(SalesRecordConstant.APPROVE_STATE));
kobject.set(SalesRecordConstant.APPROVE_STATE, approvalState); kobject.set(SalesRecordConstant.APPROVE_STATE, approvalState);
if(approObject.getString(SalesRecordConstant.APPROVE_STATE_DEL) != null){
kobject.set(SalesRecordConstant.APPROVE_STATE_DEL, Integer.valueOf(approObject.getString(SalesRecordConstant.APPROVE_STATE_DEL)));
}
//当前数据方法类型 //当前数据方法类型
Integer methodType = Integer.valueOf(approObject.getString(SalesRecordConstant.METHOD_TYPE)); Integer methodType = Integer.valueOf(approObject.getString(SalesRecordConstant.METHOD_TYPE));
if(SalesRecordConstant.DEL_METHOD.equals(methodType)){ if(SalesRecordConstant.DEL_METHOD.equals(methodType)){
if(SalesRecordConstant.APPROVE_BACK.equals(approvalState)){ if(SalesRecordConstant.APPROVE_BACK.equals(approvalState)){
//逻辑删除 //逻辑
kobject.set(BaseConstants.DEL, false); kobject.set(BaseConstants.DEL, false);
} }
} }
template.update(kobject); template.update(kobject);
......
...@@ -499,6 +499,7 @@ public class SalesRecordServiceImpl implements SalesRecordService { ...@@ -499,6 +499,7 @@ public class SalesRecordServiceImpl implements SalesRecordService {
if (null == kobject.getString(SalesRecordConstant.APPROVE_STATE) && kobject.getString(SalesRecordConstant.APPROVE_STATE).isEmpty()) { if (null == kobject.getString(SalesRecordConstant.APPROVE_STATE) && kobject.getString(SalesRecordConstant.APPROVE_STATE).isEmpty()) {
return ResponseObj.error(400, "审核状态 must be not null!"); return ResponseObj.error(400, "审核状态 must be not null!");
} }
//决定审批状态
Integer approvalState = Integer.valueOf(kobject.getString(SalesRecordConstant.APPROVE_STATE)); Integer approvalState = Integer.valueOf(kobject.getString(SalesRecordConstant.APPROVE_STATE));
KObject salesRecordInfo = salesRecordDao.load(id); //查询当前数据方法类型 KObject salesRecordInfo = salesRecordDao.load(id); //查询当前数据方法类型
...@@ -506,6 +507,9 @@ public class SalesRecordServiceImpl implements SalesRecordService { ...@@ -506,6 +507,9 @@ public class SalesRecordServiceImpl implements SalesRecordService {
//判断当前数据 收款类型是否为预付款 //判断当前数据 收款类型是否为预付款
String payMentSource = salesRecordInfo.getString(SalesRecordConstant.PAYMENTSOURCE); String payMentSource = salesRecordInfo.getString(SalesRecordConstant.PAYMENTSOURCE);
//当前数据方法类型
Integer methodType = Integer.valueOf(salesRecordInfo.getString(SalesRecordConstant.METHOD_TYPE));
//判断客户类型是否是区域公司 是否有合同 //判断客户类型是否是区域公司 是否有合同
if(CustomerTypeEnum.PurchaseSandCompany.name().equals(salesRecordInfo.getString(SalesRecordConstant.CUSTOMERTYPE))){ if(CustomerTypeEnum.PurchaseSandCompany.name().equals(salesRecordInfo.getString(SalesRecordConstant.CUSTOMERTYPE))){
//如果通过 //如果为预付款类型 进行 对金额进行操作 //如果通过 //如果为预付款类型 进行 对金额进行操作
...@@ -515,11 +519,21 @@ public class SalesRecordServiceImpl implements SalesRecordService { ...@@ -515,11 +519,21 @@ public class SalesRecordServiceImpl implements SalesRecordService {
BigDecimal amount = BigDecimal.ZERO; BigDecimal amount = BigDecimal.ZERO;
//当前数据方法类型
Integer methodType = Integer.valueOf(salesRecordInfo.getString(SalesRecordConstant.METHOD_TYPE));
// 扣减合同的预付款金额= 异常数据的总价 扣减 // 扣减合同的预付款金额= 异常数据的总价 扣减
if(SalesRecordConstant.ADD_METHOD.equals(methodType)){ if(SalesRecordConstant.ADD_METHOD.equals(methodType)){
if(null == salesRecordInfo.getString(SalesRecordConstant.APPROVE_STATE_DEL)){
kobject.set(SalesRecordConstant.APPROVE_STATE_DEL, SalesRecordConstant.APPROVED); //代表新增审核通过了 扣过钱
//查询合同余额,如果扣减后小于0则不允许交易
KObject kObject = contractService.queryContract(contractId);
BigDecimal advanceBalance = kObject.getBigDecimal("advanceBalance");
if (advanceBalance == null || advanceBalance.compareTo(new BigDecimal(kObject.getString(SalesRecordConstant.AMOUNT))) == -1) {
return ResponseObj.error(400,"合同名称为:"+salesRecordInfo.get("contract").getUuid("contractName") +"的预付款余额不足");
}
//获取当前异常数据的总价
amount = BigDecimal.ZERO.subtract(BigDecimal.valueOf(salesRecordInfo.getDouble(SalesRecordConstant.AMOUNT)));
}else {
if(!SalesRecordConstant.APPROVED.equals(Integer.valueOf(salesRecordInfo.getString(SalesRecordConstant.APPROVE_STATE_DEL)))){ //如果没扣过钱 则进行扣钱
kobject.set(SalesRecordConstant.APPROVE_STATE_DEL, SalesRecordConstant.APPROVED); //代表新增审核通过了 扣过钱
//查询合同余额,如果扣减后小于0则不允许交易 //查询合同余额,如果扣减后小于0则不允许交易
KObject kObject = contractService.queryContract(contractId); KObject kObject = contractService.queryContract(contractId);
BigDecimal advanceBalance = kObject.getBigDecimal("advanceBalance"); BigDecimal advanceBalance = kObject.getBigDecimal("advanceBalance");
...@@ -528,6 +542,8 @@ public class SalesRecordServiceImpl implements SalesRecordService { ...@@ -528,6 +542,8 @@ public class SalesRecordServiceImpl implements SalesRecordService {
} }
//获取当前异常数据的总价 //获取当前异常数据的总价
amount = BigDecimal.ZERO.subtract(BigDecimal.valueOf(salesRecordInfo.getDouble(SalesRecordConstant.AMOUNT))); amount = BigDecimal.ZERO.subtract(BigDecimal.valueOf(salesRecordInfo.getDouble(SalesRecordConstant.AMOUNT)));
}
}
}else if(SalesRecordConstant.DEL_METHOD.equals(methodType)){ }else if(SalesRecordConstant.DEL_METHOD.equals(methodType)){
//如果数据状态为新增后的审核通过,进行删除 //如果数据状态为新增后的审核通过,进行删除
...@@ -538,7 +554,7 @@ public class SalesRecordServiceImpl implements SalesRecordService { ...@@ -538,7 +554,7 @@ public class SalesRecordServiceImpl implements SalesRecordService {
} }
//判断是否为人工补录数据并且状态是审核通过的
flag = contractService.modifyInventory(contractId, flag = contractService.modifyInventory(contractId,
dinasTypeId, BigDecimal.ZERO, amount); dinasTypeId, BigDecimal.ZERO, amount);
} }
......
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