package com.glxp.api.controller.purchase; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.pagehelper.PageInfo; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.entity.purchase.*; import com.glxp.api.req.purchase.*; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.purchase.PurContractEntityResponse; import com.glxp.api.res.purchase.PurInquiryEntityResponse; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.basic.SysApprovalFlowService; import com.glxp.api.service.purchase.impl.PurInquiryItemDetailService; import com.glxp.api.service.purchase.impl.PurInquiryItemService; import com.glxp.api.service.purchase.impl.PurInquiryService; import com.glxp.api.service.system.SystemParamConfigService; import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.OrderNoTypeBean; import jodd.util.StringUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.constraints.NotEmpty; import java.util.Arrays; import java.util.Date; import java.util.List; @RestController @Slf4j @RequiredArgsConstructor public class PurInquiryController { @Resource CustomerService customerService; @Resource GennerOrderUtils gennerOrderUtils; @Resource SystemParamConfigService systemParamConfigService; @Resource PurInquiryService purInquiryService; @Resource PurInquiryItemService purInquiryItemService; @Resource SysApprovalFlowService sysApprovalFlowService; @Resource PurInquiryItemDetailService purInquiryItemDetailService; final String type_xjjh = "xjjh"; /** * 查询询价业务列表 */ @GetMapping("/purchase/purInquiry/list") public BaseResponse list(PurInquiryRequest purInquiryRequest) { Boolean sys_approval_flow = "1".equals(systemParamConfigService.selectValueByParamKey("sys_approval_flow")); purInquiryRequest.setSysApprovalFlow(sys_approval_flow); List purInquiryEntityResponses = purInquiryService.queryPageList(purInquiryRequest); PageInfo pageInfo; pageInfo = new PageInfo<>(purInquiryEntityResponses); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setList(purInquiryEntityResponses); return ResultVOUtils.success(pageSimpleResponse); } /** * 新增询价业务 */ @PostMapping("/purchase/addPurInquiryItem/add") public BaseResponse add() { Long userId = customerService.getUserId(); PurInquiryEntity purInquiryEntity = new PurInquiryEntity(); Date date = new Date(); purInquiryEntity.setCreateUser(userId + ""); purInquiryEntity.setCreateTime(date); purInquiryEntity.setUpdateTime(date); purInquiryEntity.setUpdateUser(userId + ""); purInquiryEntity.setPageType(1); purInquiryService.insert(purInquiryEntity); Long id = purInquiryEntity.getId(); return ResultVOUtils.success(id); } /** * 添加产品到合同里面 */ @PostMapping("/purchase/purInquiry/addPurInquiryItem") public BaseResponse addPurInquiryItem(@RequestBody AddPurInquiryItemRequest addPurInquiryItemRequest) { int falg = purInquiryItemService.insert(addPurInquiryItemRequest); if (falg > 0) { return ResultVOUtils.success("添加成功"); } else { return ResultVOUtils.success("添加失败"); } } /** * 查询询价单详情列表 * * @param purContractDetailRequest * @return */ @GetMapping("/purchase/purInquiry/list/detail") public BaseResponse getDetailList(PurContractDetailRequest purContractDetailRequest) { List page = purInquiryItemService.queryPageList(purContractDetailRequest); PageInfo pageInfo; pageInfo = new PageInfo<>(page); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setList(page); return ResultVOUtils.success(pageSimpleResponse); } /** * 查询询价单详情列表 * * @param purContractDetailRequest * @return */ @GetMapping("/purchase/purInquiry/list/itemDetail") public BaseResponse getItemDetailList(PurContractDetailRequest purContractDetailRequest) { List page = purInquiryItemDetailService.queryPageList(purContractDetailRequest); PageInfo pageInfo; pageInfo = new PageInfo<>(page); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setList(page); return ResultVOUtils.success(pageSimpleResponse); } /** * 草稿保存 */ @PostMapping("/purchase/purInquiry/postOrder") public BaseResponse postOrder(@RequestBody PostPurInquiryRequest postPurInquiryRequest) { Long userId = customerService.getUserId(); PurInquiryEntity purInquiryEntity = postPurInquiryRequest.getPurInquiryEntity(); Date date = new Date(); purInquiryEntity.setUpdateTime(date); purInquiryEntity.setUpdateUser(userId + ""); purInquiryEntity.setStatus(postPurInquiryRequest.getEditStatus()); //状态 Integer editStatus = postPurInquiryRequest.getEditStatus(); String billNo = purInquiryEntity.getBillNo(); if (StringUtil.isEmpty(billNo)) { billNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean("XJJH", "yyyyMMdd")); purInquiryEntity.setBillNo(billNo); } Boolean sys_approval_flow = "1".equals(systemParamConfigService.selectValueByParamKey("sys_approval_flow")); if (editStatus == 2 && sys_approval_flow){//提交审核 String approvalFlowId = sysApprovalFlowService.getApprovalFlowId(); purInquiryEntity.setApprovalFlowId(approvalFlowId); sysApprovalFlowService.generateFlow(approvalFlowId,purInquiryEntity.getBillNo(),type_xjjh); } if (purInquiryEntity.getId() == null) { purInquiryEntity.setCreateTime(date); purInquiryEntity.setCreateUser(userId + ""); purInquiryService.save(purInquiryEntity); } else { purInquiryService.updateById(purInquiryEntity); } //更新明细详情表 purInquiryItemDetailService.updateItemDetail(purInquiryEntity); return ResultVOUtils.success("提交成功!"); } /** * 修改询价明细 */ @PostMapping("/purchase/purInquiry/updateItem") public BaseResponse updateItem(@RequestBody PurInquiryItemEntity purInquiryItemEntity) { purInquiryItemService.updateById(purInquiryItemEntity); return ResultVOUtils.success("修改成功"); } /** * 删除询价明细 * * @param ids 主键串 */ @DeleteMapping("/purchase/purInquiry/item/{ids}") public BaseResponse detailRemove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) { purInquiryItemService.deleteByIds(Arrays.asList(ids)); return ResultVOUtils.success("删除成功"); } /** * 发起报价 */ @PostMapping("/purchase/purInquiry/submitOffer") public BaseResponse submitOffer(@RequestBody PurInquiryEntity purInquiryEntity) { purInquiryService.submitOffer(purInquiryEntity); return ResultVOUtils.success("发起成功"); } }