diff --git a/src/main/java/com/glxp/api/controller/purchase/PurInquiryController.java b/src/main/java/com/glxp/api/controller/purchase/PurInquiryController.java index 0bd030887..d836a0531 100644 --- a/src/main/java/com/glxp/api/controller/purchase/PurInquiryController.java +++ b/src/main/java/com/glxp/api/controller/purchase/PurInquiryController.java @@ -150,7 +150,7 @@ public class PurInquiryController { String billNo = purInquiryEntity.getBillNo(); if (StringUtil.isEmpty(billNo)) { - billNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean("XJ", "yyyyMMdd")); + billNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean("XJJH", "yyyyMMdd")); purInquiryEntity.setBillNo(billNo); } @@ -198,4 +198,13 @@ public class PurInquiryController { return ResultVOUtils.success("删除成功"); } + /** + * 发起报价 + */ + @PostMapping("/purchase/purInquiry/submitOffer") + public BaseResponse submitOffer(@RequestBody PurInquiryEntity purInquiryEntity) { + purInquiryService.submitOffer(purInquiryEntity); + return ResultVOUtils.success("发起成功"); + } + } diff --git a/src/main/java/com/glxp/api/controller/purchase/PurInquiryOfferController.java b/src/main/java/com/glxp/api/controller/purchase/PurInquiryOfferController.java index 03e717e8c..d881ae8d6 100644 --- a/src/main/java/com/glxp/api/controller/purchase/PurInquiryOfferController.java +++ b/src/main/java/com/glxp/api/controller/purchase/PurInquiryOfferController.java @@ -201,4 +201,29 @@ public class PurInquiryOfferController { return ResultVOUtils.success("删除成功"); } + + /** + * 发起审批 + */ + @PostMapping("/purchase/purInquiryOffer/submitApproval") + public BaseResponse submitApproval(@RequestBody PurInquiryOfferEntity purInquiryOfferEntity) { + + Long userId = customerService.getUserId(); + Date date = new Date(); + purInquiryOfferEntity.setUpdateTime(date); + purInquiryOfferEntity.setUpdateUser(userId + ""); + purInquiryOfferEntity.setStatus(2); //状态 + + Boolean sys_approval_flow = "1".equals(systemParamConfigService.selectValueByParamKey("sys_approval_flow")); + if (sys_approval_flow){//提交审核 + String approvalFlowId = sysApprovalFlowService.getApprovalFlowId(); + purInquiryOfferEntity.setApprovalFlowId(approvalFlowId); + sysApprovalFlowService.generateFlow(approvalFlowId,purInquiryOfferEntity.getBillNo(),type_xjbj); + } + purInquiryOfferService.updateById(purInquiryOfferEntity); + + return ResultVOUtils.success("提交成功!"); + } + + } diff --git a/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryOfferService.java b/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryOfferService.java index 33dc11a3f..a82f7f9ca 100644 --- a/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryOfferService.java +++ b/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryOfferService.java @@ -4,20 +4,45 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.glxp.api.dao.purchase.PurInquiryMapper; import com.glxp.api.dao.purchase.PurInquiryOfferMapper; -import com.glxp.api.entity.purchase.PurInquiryEntity; -import com.glxp.api.entity.purchase.PurInquiryOfferEntity; +import com.glxp.api.entity.BaseEntity; +import com.glxp.api.entity.purchase.*; import com.glxp.api.req.purchase.PurInquiryOfferRequest; import com.glxp.api.req.purchase.PurInquiryRequest; import com.glxp.api.res.purchase.PurInquiryEntityResponse; import com.glxp.api.res.purchase.PurInquiryOfferEntityResponse; +import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.basic.SysApprovalFlowService; +import com.glxp.api.service.system.SystemParamConfigService; +import com.glxp.api.util.GennerOrderUtils; +import com.glxp.api.util.OrderNoTypeBean; +import jodd.util.StringUtil; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Collections; +import java.util.Date; import java.util.List; @Service +@Transactional(rollbackFor = Exception.class) public class PurInquiryOfferService extends ServiceImpl { + @Resource + CustomerService customerService; + @Resource + GennerOrderUtils gennerOrderUtils; + @Resource + SystemParamConfigService systemParamConfigService; + @Resource + SysApprovalFlowService sysApprovalFlowService; + final String type_xjbj = "xjbj"; + @Resource + PurInquiryOfferItemService purInquiryOfferItemService; + @Resource + PurInquiryOfferItemDetailService purInquiryOfferItemDetailService; public List queryPageList(PurInquiryOfferRequest purInquiryOfferRequest) { @@ -35,4 +60,53 @@ public class PurInquiryOfferService extends ServiceImpl itemEntities, List itemDetailEntities) { + PurInquiryOfferEntity purInquiryOfferEntity = new PurInquiryOfferEntity(); + BeanUtils.copyProperties(purInquiryEntity,purInquiryOfferEntity); + purInquiryOfferEntity.setId(null); + Long userId = customerService.getUserId(); + Date date = new Date(); + purInquiryOfferEntity.setUpdateTime(date); + purInquiryOfferEntity.setUpdateUser(userId + ""); + purInquiryOfferEntity.setStatus(1); //状态 待报价 + String billNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean("XJBJ", "yyyyMMdd")); + purInquiryOfferEntity.setBillNo(billNo); + purInquiryOfferEntity.setApprovalFlowId(null); + +// Boolean sys_approval_flow = "1".equals(systemParamConfigService.selectValueByParamKey("sys_approval_flow")); +// if (sys_approval_flow){//提交审核 +// String approvalFlowId = sysApprovalFlowService.getApprovalFlowId(); +// purInquiryOfferEntity.setApprovalFlowId(approvalFlowId); +// sysApprovalFlowService.generateFlow(approvalFlowId,purInquiryOfferEntity.getBillNo(),type_xjbj); +// } + + purInquiryOfferEntity.setCreateTime(date); + purInquiryOfferEntity.setCreateUser(userId + ""); + purInquiryOfferEntity.setPlanBillNo(purInquiryEntity.getBillNo()); + save(purInquiryOfferEntity); + Long id = purInquiryOfferEntity.getId(); + + + //处理明细 + ArrayList purInquiryOfferItemEntities = new ArrayList<>(); + itemEntities.forEach( item -> { + PurInquiryOfferItemEntity purInquiryOfferItemEntity = new PurInquiryOfferItemEntity(); + BeanUtils.copyProperties(item,purInquiryOfferItemEntity); + purInquiryOfferItemEntity.setOrderIdFk(String.valueOf(id)); + purInquiryOfferItemEntities.add(purInquiryOfferItemEntity); + }); + purInquiryOfferItemService.saveBatch(purInquiryOfferItemEntities); + + //处理明细详情 + ArrayList purInquiryOfferItemDetailEntities = new ArrayList<>(); + itemDetailEntities.forEach( itemDetail -> { + PurInquiryOfferItemDetailEntity purInquiryOfferItemDetailEntity = new PurInquiryOfferItemDetailEntity(); + BeanUtils.copyProperties(itemDetail,purInquiryOfferItemDetailEntity); + purInquiryOfferItemDetailEntity.setOrderIdFk(String.valueOf(id)); + purInquiryOfferItemDetailEntities.add(purInquiryOfferItemDetailEntity); + }); + purInquiryOfferItemDetailService.saveBatch(purInquiryOfferItemDetailEntities); + + } } diff --git a/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryService.java b/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryService.java index 3d01f5659..86c2691cb 100644 --- a/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryService.java +++ b/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryService.java @@ -1,7 +1,12 @@ package com.glxp.api.service.purchase.impl; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.pagehelper.PageHelper; +import com.glxp.api.entity.purchase.PurInquiryItemDetailEntity; +import com.glxp.api.entity.purchase.PurInquiryItemEntity; import com.glxp.api.req.purchase.PurInquiryRequest; import com.glxp.api.res.purchase.PurContractEntityResponse; import com.glxp.api.res.purchase.PurInquiryEntityResponse; @@ -9,13 +14,23 @@ import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.glxp.api.entity.purchase.PurInquiryEntity; import com.glxp.api.dao.purchase.PurInquiryMapper; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.Collections; import java.util.List; @Service +@Transactional(rollbackFor = Exception.class) public class PurInquiryService extends ServiceImpl { + @Resource + PurInquiryItemService purInquiryItemService; + @Resource + PurInquiryItemDetailService purInquiryItemDetailService; + @Resource + PurInquiryOfferService purInquiryOfferService; + public List queryPageList(PurInquiryRequest purInquiryRequest) { @@ -33,4 +48,27 @@ public class PurInquiryService extends ServiceImpl purInquiryItemEntityQueryWrapper = new QueryWrapper<>(); + purInquiryItemEntityQueryWrapper.eq("orderIdFk",id); + List itemEntities = purInquiryItemService.list(purInquiryItemEntityQueryWrapper); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("orderIdFk",id); + List itemDetailEntities = purInquiryItemDetailService.list(queryWrapper); + + //生成询价报价单 + if (CollectionUtil.isNotEmpty(itemEntities) && CollectionUtil.isNotEmpty(itemDetailEntities) && ObjectUtil.isNotNull(purInquiryEntity)){ + purInquiryOfferService.submitOffer(purInquiryEntity,itemEntities,itemDetailEntities); + } + + purInquiryEntity.setGeneratePlan(1); + super.baseMapper.updateById(purInquiryEntity); + } + + } diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index 1d4e0f2ac..714483a6b 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -3430,13 +3430,18 @@ INSERT IGNORE INTO auth_menu (`menu_id`, `menu_name`, `parent_id`, `order_num`, INSERT IGNORE INTO auth_menu (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) - VALUES (3715, '待审核询价报价单', 3711, 4, 'purchase/purInquiryOffer/purInquiryOfferReviewed', 'purchase/purInquiryOffer/purInquiryOfferReviewed', '{\"pageType\":1}', 1, 0, 'C', + VALUES (3715, '待审核询价报价单', 3711, 5, 'purchase/purInquiryOffer/purInquiryOfferReviewed', 'purchase/purInquiryOffer/purInquiryOfferReviewed', '{\"pageType\":1}', 1, 0, 'C', '0', '0', 'purchase:purInquiryOffer:purInquiryOfferReviewed', NULL, '超级用户', '2023-02-08 17:02:19', NULL, NULL, NULL); INSERT IGNORE INTO auth_menu (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) - VALUES (3716, '已审核询价报价单', 3711, 5, 'purchase/purInquiryOffer/purInquiryOfferFinish', 'purchase/purInquiryOffer/purInquiryOfferFinish', '{\"pageType\":1}', 1, 0, 'C', + VALUES (3716, '已审核询价报价单', 3711, 6, 'purchase/purInquiryOffer/purInquiryOfferFinish', 'purchase/purInquiryOffer/purInquiryOfferFinish', '{\"pageType\":1}', 1, 0, 'C', '0', '0', 'purchase:purInquiryOffer:purInquiryOfferFinish', NULL, '超级用户', '2023-02-08 17:02:19', NULL, NULL, NULL); +INSERT IGNORE INTO auth_menu (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, + `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) + VALUES (3717, '待报价询价报价单', 3711, 4, 'purchase/purInquiryOffer/purInquiryOffer', 'purchase/purInquiryOffer/purInquiryOffer', '{\"pageType\":1}', 1, 0, 'C', + '0', '0', 'purchase:purInquiryOffer:purInquiryOffer', NULL, '超级用户', '2023-02-08 17:02:19', NULL, NULL, NULL); + INSERT IGNORE INTO sys_approval_flow_config(`id`, `type`, `typeName`, `approvalSort`, `createUser`, `createTime`, `updateUser`, `updateTime`) VALUES ('7', 'xjjh', '询价计划单据', 7, NULL, NULL, NULL, NULL);