|
|
@ -2,10 +2,7 @@ package com.ruoyi.system.service.impl; |
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.math.RoundingMode; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Set; |
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
import com.github.pagehelper.Page; |
|
|
|
import com.ruoyi.common.core.domain.entity.SysUser; |
|
|
@ -16,8 +13,12 @@ import com.ruoyi.common.service.ICommonService; |
|
|
|
import com.ruoyi.common.utils.DateUtils; |
|
|
|
import com.ruoyi.common.utils.ShiroUtils; |
|
|
|
import com.ruoyi.common.utils.StringUtils; |
|
|
|
import com.ruoyi.erp.domain.ErpMaterialVo; |
|
|
|
import com.ruoyi.process.general.service.IProcessService; |
|
|
|
import com.ruoyi.process.todoitem.mapper.BizTodoItemMapper; |
|
|
|
import com.ruoyi.purchase.domain.PurchasePlan; |
|
|
|
import com.ruoyi.purchase.domain.PurchasePlanChild; |
|
|
|
import com.ruoyi.purchase.service.IPurchasePlanService; |
|
|
|
import com.ruoyi.system.domain.BaseRequisitioningOrderChild; |
|
|
|
import com.ruoyi.system.domain.Vo.BaseRequisitioningOrderVo; |
|
|
|
import com.ruoyi.system.mapper.BaseRequisitioningOrderChildMapper; |
|
|
@ -81,6 +82,9 @@ public class BaseRequisitioningOrderServiceImpl implements IBaseRequisitioningOr |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private IProcessService processService; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private IPurchasePlanService purchasePlanService; |
|
|
|
/** |
|
|
|
* 查询请购单 |
|
|
|
* |
|
|
@ -90,7 +94,13 @@ public class BaseRequisitioningOrderServiceImpl implements IBaseRequisitioningOr |
|
|
|
@Override |
|
|
|
public BaseRequisitioningOrderVo selectBaseRequisitioningOrderById(Long requisitioningId) |
|
|
|
{ |
|
|
|
return baseRequisitioningOrderMapper.selectBaseRequisitioningOrderById(requisitioningId); |
|
|
|
BaseRequisitioningOrderVo baseRequisitioningOrderVo = baseRequisitioningOrderMapper.selectBaseRequisitioningOrderById(requisitioningId); |
|
|
|
SysUser sysUser = userMapper.selectUserByLoginName(baseRequisitioningOrderVo.getApplyUser()); |
|
|
|
if (sysUser != null) { |
|
|
|
baseRequisitioningOrderVo.setApplyUserName(sysUser.getUserName()); |
|
|
|
} |
|
|
|
return baseRequisitioningOrderVo; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -415,21 +425,17 @@ public class BaseRequisitioningOrderServiceImpl implements IBaseRequisitioningOr |
|
|
|
String key = "requisitioning"; |
|
|
|
Map<String,Object> variables = new HashMap<>(); |
|
|
|
BigDecimal rmbSum = baseRequisitioningOrder.getRmbSum(); |
|
|
|
BigDecimal surpassPrice = new BigDecimal(3000.00); |
|
|
|
BigDecimal surpassPrice = new BigDecimal("3000.00"); |
|
|
|
int result = rmbSum.compareTo(surpassPrice); |
|
|
|
Boolean surpass = false; |
|
|
|
if (result > 0) { |
|
|
|
surpass = true; |
|
|
|
// rmbSum 大于 surpassPrice
|
|
|
|
variables.put("surpass",surpass); |
|
|
|
variables.put("surpass",true); |
|
|
|
} else if (result < 0) { |
|
|
|
surpass = true; |
|
|
|
// rmbSum 小于 surpassPrice
|
|
|
|
variables.put("surpass",surpass); |
|
|
|
variables.put("surpass",false); |
|
|
|
} else { |
|
|
|
surpass = false; |
|
|
|
// rmbSum 等于 surpassPrice
|
|
|
|
variables.put("surpass",surpass); |
|
|
|
variables.put("surpass",false); |
|
|
|
} |
|
|
|
// 构造authority传参
|
|
|
|
buildAuthority(user, variables); |
|
|
@ -445,51 +451,98 @@ public class BaseRequisitioningOrderServiceImpl implements IBaseRequisitioningOr |
|
|
|
private void buildAuthority(SysUser user, Map<String, Object> variables) { |
|
|
|
System.out.println("请购单启动流程"); |
|
|
|
System.out.println("user = " + user + ", variables = " + variables); |
|
|
|
|
|
|
|
//查询当前请购人的角色
|
|
|
|
Set<String> roleKeys = roleService.selectRoleKeys(user.getUserId()); |
|
|
|
|
|
|
|
variables.put("authority",1); |
|
|
|
//判断请购人的角色,进入相应的逻辑,设置节点审批人变量
|
|
|
|
if(roleKeys.contains("ywyRole") || roleKeys.contains("ywjlRole") || roleKeys.contains("ywzgRole")){ |
|
|
|
if(roleKeys.contains("ywyRole") || roleKeys.contains("ywjlRole") || roleKeys.contains("ywzgRole")) { |
|
|
|
// 业务经理
|
|
|
|
variables.put("qgjlRole","ywjlRole"); |
|
|
|
// 业务主管
|
|
|
|
variables.put("qgzgRole","ywzgRole"); |
|
|
|
}else if(roleKeys.contains("cgyRole") || roleKeys.contains("cgjlRole") || roleKeys.contains("cgzgRole")){ |
|
|
|
} |
|
|
|
else if(roleKeys.contains("cgyRole") || roleKeys.contains("cgjlRole") || roleKeys.contains("cgzgRole")){ |
|
|
|
// 采购经理
|
|
|
|
variables.put("qgjlRole","cgjlRole"); |
|
|
|
// 采购主管
|
|
|
|
variables.put("qgzgRole","cgzgRole"); |
|
|
|
}else if (roleKeys.contains("gcwyRole") || roleKeys.contains("gcjlRole") || roleKeys.contains("gczgRole")){ |
|
|
|
} |
|
|
|
else if (roleKeys.contains("gcwyRole") || roleKeys.contains("gcjlRole") || roleKeys.contains("gczgRole")){ |
|
|
|
// 工程经理
|
|
|
|
variables.put("qgjlRole","gcjlRole"); |
|
|
|
// 工程主管
|
|
|
|
variables.put("qgzgRole","gczgRole"); |
|
|
|
} else if (roleKeys.contains("scyRole") || roleKeys.contains("scjlRole") || roleKeys.contains("sczgRole")){ |
|
|
|
} |
|
|
|
else if (roleKeys.contains("scyRole") || roleKeys.contains("scjlRole") || roleKeys.contains("sczgRole")){ |
|
|
|
// 生产经理
|
|
|
|
variables.put("qgjlRole","scjlRoe"); |
|
|
|
// 生产主管
|
|
|
|
variables.put("qgzgRole","sczgRole"); |
|
|
|
}else if (roleKeys.contains("shgcsRole") || roleKeys.contains("shjlRole") || roleKeys.contains("shzgRole")){ |
|
|
|
} |
|
|
|
else if (roleKeys.contains("shgcsRole") || roleKeys.contains("shjlRole") || roleKeys.contains("shzgRole")){ |
|
|
|
// 售后经理
|
|
|
|
variables.put("qgjlRole","shjlRole"); |
|
|
|
// 售后主管
|
|
|
|
variables.put("qgzgRole","shzgRole"); |
|
|
|
}else if(roleKeys.contains("cgyyRole") || roleKeys.contains("ckzgRole")){ |
|
|
|
} |
|
|
|
else if(roleKeys.contains("cgyyRole") || roleKeys.contains("ckzgRole")){ |
|
|
|
variables.put("qgjlRole","shzgRole"); |
|
|
|
// 售后主管
|
|
|
|
variables.put("qgzgRole","shzgRole"); |
|
|
|
}else if (roleKeys.contains("cwRole") || roleKeys.contains("cwjlRole")){ |
|
|
|
} |
|
|
|
else if (roleKeys.contains("cwRole") || roleKeys.contains("cwjlRole")){ |
|
|
|
variables.put("qgjlRole","cwjlRole"); |
|
|
|
// 售后主管
|
|
|
|
variables.put("qgzgRole","cwJlRole"); |
|
|
|
}else{ |
|
|
|
} |
|
|
|
else{ |
|
|
|
variables.put("authority",2); |
|
|
|
} |
|
|
|
|
|
|
|
if(roleKeys.contains("admin") ){ |
|
|
|
// 角色包含业务经理、采购经理、工程经理、生产经理
|
|
|
|
variables.put("authority",2); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public Integer generatePurchasePlan(BaseRequisitioningOrder requisitioningOrder){ |
|
|
|
/*请购的物料信息,封装为采购计划需求的采购信息*/ |
|
|
|
List<BaseRequisitioningOrderChild> requisitioningOrderDetailList = |
|
|
|
baseRequisitioningOrderChildMapper.selectBaseRequisitioningOrderChildByCode(requisitioningOrder.getRequisitioningCode()); |
|
|
|
//先将请购物料转换为采购物料需求
|
|
|
|
List<PurchasePlanChild> purchasePlanChildList = new ArrayList<>(); |
|
|
|
PurchasePlan purchasePlan = new PurchasePlan(); |
|
|
|
Long noRmbSum = 0L; |
|
|
|
Long rmbSum = 0L; |
|
|
|
Long materialAmount = Long.valueOf(requisitioningOrderDetailList.size()); |
|
|
|
Integer materialSum = 0; |
|
|
|
//采购计划关联单号
|
|
|
|
purchasePlan.setCorrelationCode(requisitioningOrder.getRequisitioningCode()); |
|
|
|
purchasePlan.setPurchasePlanType("2"); |
|
|
|
purchasePlan.setMaterialAmount(materialAmount); |
|
|
|
for (BaseRequisitioningOrderChild requisitioningOrderDetail : requisitioningOrderDetailList) { |
|
|
|
PurchasePlanChild purchasePlanChild = new PurchasePlanChild(); |
|
|
|
purchasePlanChild.setWarehouseDept(requisitioningOrderDetail.getWarehouseDept()); |
|
|
|
purchasePlanChild.setMaterialCode(requisitioningOrderDetail.getMaterialCode()); |
|
|
|
purchasePlanChild.setMaterialName(requisitioningOrderDetail.getMaterialName()); |
|
|
|
purchasePlanChild.setDescribe(requisitioningOrderDetail.getDescribe()); |
|
|
|
purchasePlanChild.setBrand(requisitioningOrderDetail.getBrand()); |
|
|
|
purchasePlanChild.setMaterialNum(requisitioningOrderDetail.getMaterialNum()); |
|
|
|
purchasePlanChild.setMaterialType(requisitioningOrderDetail.getMaterialType()); |
|
|
|
purchasePlanChild.setMaterialNoRmb(requisitioningOrderDetail.getMaterialNoRmb()); |
|
|
|
purchasePlanChild.setMaterialRmb(requisitioningOrderDetail.getMaterialRmb()); |
|
|
|
noRmbSum = noRmbSum + Long.valueOf(String.valueOf(requisitioningOrderDetail.getMaterialNoRmb())); |
|
|
|
rmbSum = rmbSum + Long.valueOf(String.valueOf(requisitioningOrderDetail.getMaterialRmbSum())); |
|
|
|
purchasePlanChildList.add(purchasePlanChild); |
|
|
|
} |
|
|
|
purchasePlan.setNoRmbSum(noRmbSum); |
|
|
|
purchasePlan.setRmbSum(rmbSum); |
|
|
|
purchasePlan.setCreateBy(requisitioningOrder.getCreateBy()); |
|
|
|
purchasePlan.setCreateTime(DateUtils.getNowDate()); |
|
|
|
purchasePlan.setUpdateBy(requisitioningOrder.getUpdateBy()); |
|
|
|
purchasePlan.setUpdateTime(DateUtils.getNowDate()); |
|
|
|
return purchasePlanService.insertPurchasePlan(purchasePlan); |
|
|
|
} |
|
|
|
} |
|
|
|