Commit 1a111824 by yanHeng

[修改] 异常数据修改各审核之间状态

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