You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-wms-java/src/main/java/com/glxp/api/controller/purchase/PurInquiryController.java

211 lines
7.8 KiB
Java

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<PurInquiryEntityResponse> purInquiryEntityResponses = purInquiryService.queryPageList(purInquiryRequest);
PageInfo<PurInquiryEntityResponse> pageInfo;
pageInfo = new PageInfo<>(purInquiryEntityResponses);
PageSimpleResponse<PurInquiryEntityResponse> 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<PurInquiryItemEntity> page = purInquiryItemService.queryPageList(purContractDetailRequest);
PageInfo<PurInquiryItemEntity> pageInfo;
pageInfo = new PageInfo<>(page);
PageSimpleResponse<PurInquiryItemEntity> 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<PurInquiryItemDetailEntity> page = purInquiryItemDetailService.queryPageList(purContractDetailRequest);
PageInfo<PurInquiryItemDetailEntity> pageInfo;
pageInfo = new PageInfo<>(page);
PageSimpleResponse<PurInquiryItemDetailEntity> 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("发起成功");
}
}