package com.glxp.api.controller.purchase; import com.baomidou.mybatisplus.core.metadata.IPage; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.entity.purchase.PurContractDetailEntity; import com.glxp.api.entity.purchase.PurContractEntity; import com.glxp.api.entity.purchase.PurPlanEntity; import com.glxp.api.req.purchase.AddPurPlanDetailRequest; import com.glxp.api.req.purchase.PostPurContractRequest; import com.glxp.api.req.purchase.PurContractDetailRequest; import com.glxp.api.req.purchase.PurContractRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.purchase.PurContractEntityResponse; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.basic.SysApprovalFlowService; import com.glxp.api.service.purchase.impl.PurContractDetailService; import com.glxp.api.service.purchase.impl.PurContractService; 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; @RestController @Slf4j @RequiredArgsConstructor public class PurContractController { @Resource PurContractService purContractService; @Resource PurContractDetailService purContractDetailService; @Resource private GennerOrderUtils gennerOrderUtils; @Resource private SysApprovalFlowService sysApprovalFlowService; @Resource CustomerService customerService; @Resource SystemParamConfigService systemParamConfigService; final String type = "cght"; /** * 草稿保存 */ @PostMapping("/purchase/contract/postOrder") public BaseResponse postOrder(@RequestBody PostPurContractRequest postPurPlanRequest) { Long userId = customerService.getUserId(); PurContractEntity purContractEntity = postPurPlanRequest.getPurContractEntity(); Date date = new Date(); purContractEntity.setUpdateTime(date); purContractEntity.setUpdateUser(userId + ""); purContractEntity.setStatus(postPurPlanRequest.getEditStatus()); //状态 Integer editStatus = postPurPlanRequest.getEditStatus(); String code1 = purContractEntity.getCode(); if (StringUtil.isEmpty(code1)) { String code = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean("HT", "yyyyMMdd")); purContractEntity.setCode(code); } if (editStatus == 2){//提交审核 String approvalFlowId = sysApprovalFlowService.getApprovalFlowId(); purContractEntity.setApprovalFlowId(approvalFlowId); sysApprovalFlowService.generateFlow(approvalFlowId,purContractEntity.getCode(),type); } if (purContractEntity.getId() == null) { purContractEntity.setCreateTime(date); purContractEntity.setCreateUser(userId + ""); purContractService.save(purContractEntity); } else { purContractService.updateById(purContractEntity); } return ResultVOUtils.success("提交成功!"); } /** * 查询采购合同列表 */ @GetMapping("/purchase/contract/list") public BaseResponse list(PurContractRequest purContractRequest) { Boolean sys_approval_flow = "1".equals(systemParamConfigService.selectValueByParamKey("sys_approval_flow")); purContractRequest.setSysApprovalFlow(sys_approval_flow); IPage page = purContractService.queryPageList(purContractRequest); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(page.getTotal()); pageSimpleResponse.setList(page.getRecords()); return ResultVOUtils.success(pageSimpleResponse); } /** * 查询采购合同详情列表 * * @param purContractDetailRequest * @return */ @GetMapping("/purchase/contract/list/detail") public BaseResponse getDetailList(PurContractDetailRequest purContractDetailRequest) { IPage page = purContractDetailService.queryPageList(purContractDetailRequest); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(page.getTotal()); pageSimpleResponse.setList(page.getRecords()); return ResultVOUtils.success(pageSimpleResponse); } /** * 修改采购合同详情 */ @PostMapping("/purchase/contract/updateDetail") public BaseResponse detailEdit(@RequestBody PurContractDetailEntity purPlanDetailEntity) { purContractDetailService.updateById(purPlanDetailEntity); return ResultVOUtils.success("修改成功"); } /** * 添加产品到合同里面 */ @PostMapping("/purchase/contract/addContractDetail") public BaseResponse addContractDetail(@RequestBody AddPurPlanDetailRequest addPurPlanDetailRequest) { int falg = purContractDetailService.insert(addPurPlanDetailRequest); if (falg > 0) { return ResultVOUtils.success("添加成功"); } else { return ResultVOUtils.success("添加失败"); } } /** * 新增合同 */ @PostMapping("purchase/addContractDetail/add") public BaseResponse add() { Long userId = customerService.getUserId(); PurContractEntity purContractEntity = new PurContractEntity(); Date date = new Date(); purContractEntity.setCreateUser(userId + ""); purContractEntity.setCreateTime(date); purContractEntity.setUpdateTime(date); purContractEntity.setUpdateUser(userId + ""); purContractService.insert(purContractEntity); Long id = purContractEntity.getId(); return ResultVOUtils.success(id); } /** * 删除申购单和详情 */ @PostMapping("/purchase/contract/delContractDetailAll") public BaseResponse delApplyDetailAll(@RequestBody PurContractEntity purContractEntity) { if (purContractEntity.getId() != null) { purContractService.deleteById(purContractEntity.getId()); purContractDetailService.deleteByOrderId(purContractEntity.getId()); } else { return ResultVOUtils.error(999, "参数有误!"); } return ResultVOUtils.success(); } /** * 删除合同明细 * * @param ids 主键串 */ @DeleteMapping("/purchase/contract/detail/{ids}") public BaseResponse detailRemove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) { purContractDetailService.deleteByIds(Arrays.asList(ids)); return ResultVOUtils.success("删除成功"); } /** * 导入计划 */ @PostMapping("/purchase/contract/importPlan") public BaseResponse importPlan(@RequestBody PurPlanEntity purPlanEntity) { if (purPlanEntity.getId() != null) { purContractService.importPlan(purPlanEntity.getId()); } else { return ResultVOUtils.error(999, "参数有误!"); } return ResultVOUtils.success(); } }