diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/BaseRequisitioningOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/BaseRequisitioningOrderController.java index 05c1fe90..079cfa6d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/BaseRequisitioningOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/BaseRequisitioningOrderController.java @@ -297,10 +297,9 @@ public class BaseRequisitioningOrderController extends BaseController // 审核通过 baseRequisitioningOrderVo.setAuditStatus("1"); //查通过的审核订单 - BaseRequisitioningOrderVo sysSalesOrderVo1 = baseRequisitioningOrderService.selectBaseRequisitioningOrderById(baseRequisitioningOrderVo.getRequisitioningId()); - //生产订单生成 + BaseRequisitioningOrder baseRequisitioningOrder = baseRequisitioningOrderService.selectBaseRequisitioningOrderById(baseRequisitioningOrderVo.getRequisitioningId()); //生产采购计划 - + baseRequisitioningOrder.setRequisitioningId(baseRequisitioningOrderVo.getRequisitioningId()); // 提交 if("submit".equals(instanceType)){ // 使用状态-是 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/BaseRequisitioningOrderChildMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/BaseRequisitioningOrderChildMapper.java index d3e952ad..4fdd91ac 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/BaseRequisitioningOrderChildMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/BaseRequisitioningOrderChildMapper.java @@ -43,6 +43,13 @@ public interface BaseRequisitioningOrderChildMapper */ public int updateBaseRequisitioningOrderChild(BaseRequisitioningOrderChild baseRequisitioningOrderChild); + /** + * 根据请购单编号查询请购单物料 + * @param requisitioningCode + * @return + */ + public List selectBaseRequisitioningOrderChildByCode(String requisitioningCode); + /** * 删除请购单 * diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseRequisitioningOrderChildService.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseRequisitioningOrderChildService.java index 8463ecae..24590685 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseRequisitioningOrderChildService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseRequisitioningOrderChildService.java @@ -76,4 +76,7 @@ public interface IBaseRequisitioningOrderChildService Integer deleteBaseRequisitioningOrderChildByRequisitioningCode(String requisitioningCode); Integer deleteBaseRequisitioningOrderChildByRequisitioningCodes(String requisitioningCodes); + + + List selectBaseRequisitioningOrderChildByCode(String requisitioningCode); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseRequisitioningOrderService.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseRequisitioningOrderService.java index 4ad4ea74..3995ff0a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseRequisitioningOrderService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseRequisitioningOrderService.java @@ -97,4 +97,7 @@ public interface IBaseRequisitioningOrderService public ProcessInstance submitApply(BaseRequisitioningOrder baseRequisitioningOrder); Object getRequisitioningOrder(); + + /*生成采购计划*/ + Integer generatePurchasePlan(BaseRequisitioningOrder baseRequisitioningOrder); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseRequisitioningOrderChildServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseRequisitioningOrderChildServiceImpl.java index ea607c00..88daf271 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseRequisitioningOrderChildServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseRequisitioningOrderChildServiceImpl.java @@ -132,4 +132,9 @@ public class BaseRequisitioningOrderChildServiceImpl implements IBaseRequisition public Integer deleteBaseRequisitioningOrderChildByRequisitioningCodes(String requisitioningCodes) { return baseRequisitioningOrderChildMapper.deleteBaseRequisitioningOrderChildByRequisitioningCodes(Convert.toStrArray(requisitioningCodes)); } + + @Override + public List selectBaseRequisitioningOrderChildByCode(String requisitioningCode){ + return baseRequisitioningOrderChildMapper.selectBaseRequisitioningOrderChildByCode(requisitioningCode); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseRequisitioningOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseRequisitioningOrderServiceImpl.java index bd56ba1d..cfcbda5e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseRequisitioningOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseRequisitioningOrderServiceImpl.java @@ -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 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 variables) { System.out.println("请购单启动流程"); System.out.println("user = " + user + ", variables = " + variables); - //查询当前请购人的角色 Set 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 requisitioningOrderDetailList = + baseRequisitioningOrderChildMapper.selectBaseRequisitioningOrderChildByCode(requisitioningOrder.getRequisitioningCode()); + //先将请购物料转换为采购物料需求 + List 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); + } } diff --git a/ruoyi-admin/src/main/resources/mapper/system/BaseRequisitioningOrderChildMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/BaseRequisitioningOrderChildMapper.xml index 752eb9b0..11b5b24e 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/BaseRequisitioningOrderChildMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/BaseRequisitioningOrderChildMapper.xml @@ -72,7 +72,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where requisitioning_child_id = #{requisitioningChildId} - + insert into base_requisitioning_order_child diff --git a/ruoyi-admin/src/main/resources/mapper/system/BaseRequisitioningOrderMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/BaseRequisitioningOrderMapper.xml index 66b632e5..11aad916 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/BaseRequisitioningOrderMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/BaseRequisitioningOrderMapper.xml @@ -35,7 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select requisitioning_id, audit_status, requisitioning_status, requisitioning_code, - correlation_code, material_amount, materialSum, noRmbSum, rmbSum, apply_user, + correlation_code, material_amount, materialSum, noRmbSum, rmbSum, create_by, create_time, update_by, update_time, remark, use_status, instance_id, instance_type, submit_instance_id, cancel_instance_id, restore_instance_id, apply_title, apply_user, apply_time, dept_name, post_name