feat: 设备管理优化-0513-合同管理复制
parent
770caa552c
commit
b096280db6
@ -0,0 +1,207 @@
|
||||
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<PurContractEntityResponse> page = purContractService.queryPageList(purContractRequest);
|
||||
PageSimpleResponse<PurContractEntityResponse> 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<PurContractDetailEntity> page = purContractDetailService.queryPageList(purContractDetailRequest);
|
||||
PageSimpleResponse<PurContractDetailEntity> 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();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package com.glxp.api.dao.purchase;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.glxp.api.entity.purchase.PurContractDetailEntity;
|
||||
|
||||
public interface PurContractDetailMapper extends BaseMapper<PurContractDetailEntity> {
|
||||
|
||||
// int insert(PurContractDetailEntity purContractDetailEntity);
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package com.glxp.api.dao.purchase;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.glxp.api.entity.purchase.PurContractEntity;
|
||||
import com.glxp.api.req.purchase.PurContractRequest;
|
||||
import com.glxp.api.res.purchase.PurContractEntityResponse;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
public interface PurContractMapper extends BaseMapper<PurContractEntity> {
|
||||
@Override
|
||||
int insert(PurContractEntity purContractEntity);
|
||||
|
||||
Page<PurContractEntityResponse> selectPage(Page page, @Param("purContractRequest") PurContractRequest purContractRequest);
|
||||
}
|
@ -0,0 +1,167 @@
|
||||
package com.glxp.api.entity.purchase;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 采购合同表
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@TableName(value = "pur_contract")
|
||||
public class PurContractEntity implements Serializable {
|
||||
@TableId(value = "id", type = IdType.INPUT)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 合同编号
|
||||
*/
|
||||
@TableField(value = "code")
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
@TableField(value = "`name`")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 往来单位/供应商
|
||||
*/
|
||||
@TableField(value = "fromCorp")
|
||||
private String fromCorp;
|
||||
|
||||
/**
|
||||
* 合同签订日期
|
||||
*/
|
||||
@TableField(value = "contractDate")
|
||||
private Date contractDate;
|
||||
|
||||
/**
|
||||
* 当前仓库
|
||||
*/
|
||||
@TableField(value = "invCode")
|
||||
private String invCode;
|
||||
|
||||
/**
|
||||
* 合同状态
|
||||
*/
|
||||
@TableField(value = "`status`")
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 合同类型
|
||||
*/
|
||||
@TableField(value = "`type`")
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 付款方式
|
||||
*/
|
||||
@TableField(value = "payType")
|
||||
private String payType;
|
||||
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
@TableField(value = "startDate")
|
||||
private Date startDate;
|
||||
|
||||
/**
|
||||
* 截止时间
|
||||
*/
|
||||
@TableField(value = "endDate")
|
||||
private Date endDate;
|
||||
|
||||
/**
|
||||
* 合同金额
|
||||
*/
|
||||
@TableField(value = "amount")
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 实付金额
|
||||
*/
|
||||
@TableField(value = "payAmount")
|
||||
private BigDecimal payAmount;
|
||||
|
||||
/**
|
||||
* 付款日期
|
||||
*/
|
||||
@TableField(value = "payDate")
|
||||
private Date payDate;
|
||||
|
||||
/**
|
||||
* 开票日期
|
||||
*/
|
||||
@TableField(value = "invoiceDate")
|
||||
private Date invoiceDate;
|
||||
|
||||
/**
|
||||
* 采购计划ID外键
|
||||
*/
|
||||
@TableField(value = "planOrderIdFk")
|
||||
private String planOrderIdFk;
|
||||
|
||||
/**
|
||||
* 采购订单外键
|
||||
*/
|
||||
@TableField(value = "orderIdFk")
|
||||
private String orderIdFk;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@TableField(value = "`createUser`")
|
||||
private String createUser;
|
||||
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
@TableField(value = "updateUser")
|
||||
private String updateUser;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(value = "createTime")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@TableField(value = "updateTime")
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@TableField(value = "remark")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审批表主键
|
||||
*/
|
||||
@TableField(value = "approvalFlowId")
|
||||
private String approvalFlowId;
|
||||
|
||||
/**
|
||||
* 是否生成订单 1.已生成;0.未生成
|
||||
*/
|
||||
@TableField(value = "isGenerateOrder")
|
||||
private Integer isGenerateOrder;
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.glxp.api.req.purchase;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
@Data
|
||||
public class AddPurPlanDetailRequest {
|
||||
|
||||
@NotEmpty(message ="产品id不可为空!")
|
||||
private String[] productIds;
|
||||
|
||||
/**
|
||||
* 采购计划ID外键
|
||||
*/
|
||||
@NotEmpty(message = "采购订单id不可为空!")
|
||||
private String orderIdFk;
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package com.glxp.api.req.purchase;
|
||||
|
||||
import com.glxp.api.entity.purchase.PurContractDetailEntity;
|
||||
import com.glxp.api.entity.purchase.PurContractEntity;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class PostPurContractRequest {
|
||||
Integer editStatus;
|
||||
PurContractEntity purContractEntity;
|
||||
List<PurContractDetailEntity> purContractDetailEntities;
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.glxp.api.req.purchase;
|
||||
|
||||
import com.glxp.api.util.page.ListPageRequest;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
@Data
|
||||
public class PurContractDetailRequest extends ListPageRequest {
|
||||
|
||||
/**
|
||||
* 合同外键
|
||||
*/
|
||||
@NotBlank(message = "合同外键不能为空")
|
||||
private String orderIdFk;
|
||||
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package com.glxp.api.req.purchase;
|
||||
|
||||
import com.glxp.api.util.page.ListPageRequest;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class PurContractRequest extends ListPageRequest {
|
||||
|
||||
|
||||
/**
|
||||
* 合同编号
|
||||
*/
|
||||
private String code;
|
||||
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 合同状态
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 合同签订日期
|
||||
*/
|
||||
private String startDate;
|
||||
|
||||
/**
|
||||
* 合同签订日期
|
||||
*/
|
||||
private String endDate;
|
||||
|
||||
/**
|
||||
* 是否生成订单 1.已生成;0.未生成
|
||||
*/
|
||||
private Integer isGenerateOrder;
|
||||
|
||||
private Boolean sysApprovalFlow;
|
||||
}
|
@ -0,0 +1,168 @@
|
||||
package com.glxp.api.res.purchase;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 采购合同表
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class PurContractEntityResponse implements Serializable {
|
||||
@TableId(value = "id", type = IdType.INPUT)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 合同编号
|
||||
*/
|
||||
@TableField(value = "code")
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
@TableField(value = "`name`")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 往来单位/供应商
|
||||
*/
|
||||
@TableField(value = "fromCorp")
|
||||
private String fromCorp;
|
||||
|
||||
/**
|
||||
* 合同签订日期
|
||||
*/
|
||||
@TableField(value = "contractDate")
|
||||
private Date contractDate;
|
||||
|
||||
/**
|
||||
* 当前仓库
|
||||
*/
|
||||
@TableField(value = "invCode")
|
||||
private String invCode;
|
||||
|
||||
/**
|
||||
* 合同状态
|
||||
*/
|
||||
@TableField(value = "`status`")
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 合同类型
|
||||
*/
|
||||
@TableField(value = "`type`")
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 付款方式
|
||||
*/
|
||||
@TableField(value = "payType")
|
||||
private String payType;
|
||||
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
@TableField(value = "startDate")
|
||||
private Date startDate;
|
||||
|
||||
/**
|
||||
* 截止时间
|
||||
*/
|
||||
@TableField(value = "endDate")
|
||||
private Date endDate;
|
||||
|
||||
/**
|
||||
* 合同金额
|
||||
*/
|
||||
@TableField(value = "amount")
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 实付金额
|
||||
*/
|
||||
@TableField(value = "payAmount")
|
||||
private BigDecimal payAmount;
|
||||
|
||||
/**
|
||||
* 付款日期
|
||||
*/
|
||||
@TableField(value = "payDate")
|
||||
private Date payDate;
|
||||
|
||||
/**
|
||||
* 开票日期
|
||||
*/
|
||||
@TableField(value = "invoiceDate")
|
||||
private Date invoiceDate;
|
||||
|
||||
/**
|
||||
* 采购计划ID外键
|
||||
*/
|
||||
@TableField(value = "planOrderIdFk")
|
||||
private String planOrderIdFk;
|
||||
|
||||
/**
|
||||
* 采购订单外键
|
||||
*/
|
||||
@TableField(value = "orderIdFk")
|
||||
private String orderIdFk;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@TableField(value = "`createUser`")
|
||||
private String createUser;
|
||||
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
@TableField(value = "updateUser")
|
||||
private String updateUser;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(value = "createTime")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@TableField(value = "updateTime")
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@TableField(value = "remark")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审批表主键
|
||||
*/
|
||||
@TableField(value = "approvalFlowId")
|
||||
private String approvalFlowId;
|
||||
|
||||
private String nextNodeName;
|
||||
|
||||
private Integer nextApprovalNodeType;
|
||||
/**
|
||||
* 是否生成订单 1.已生成;0.未生成
|
||||
*/
|
||||
@TableField(value = "isGenerateOrder")
|
||||
private Integer isGenerateOrder;
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
@ -0,0 +1,100 @@
|
||||
package com.glxp.api.service.purchase.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.glxp.api.dao.basic.BasicProductsDao;
|
||||
import com.glxp.api.dao.basic.UdiRlSupDao;
|
||||
import com.glxp.api.dao.purchase.PurContractDetailMapper;
|
||||
import com.glxp.api.entity.basic.BasicProductsEntity;
|
||||
import com.glxp.api.entity.basic.CompanyProductRelevanceEntity;
|
||||
import com.glxp.api.entity.purchase.PurContractDetailEntity;
|
||||
import com.glxp.api.req.basic.CompanyProductRelevanceRequest;
|
||||
import com.glxp.api.req.purchase.AddPurPlanDetailRequest;
|
||||
import com.glxp.api.req.purchase.PurContractDetailRequest;
|
||||
import com.glxp.api.res.basic.UdiRlSupResponse;
|
||||
import com.glxp.api.service.basic.UdiRlSupService;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class PurContractDetailService extends ServiceImpl<PurContractDetailMapper, PurContractDetailEntity> {
|
||||
|
||||
@Resource
|
||||
PurContractDetailMapper purContractDetailMapper;
|
||||
@Resource
|
||||
UdiRlSupDao udiRlSupDao;
|
||||
|
||||
public int insert(AddPurPlanDetailRequest addPurPlanDetailRequest) {
|
||||
String orderIdFk = addPurPlanDetailRequest.getOrderIdFk();
|
||||
String[] ids = addPurPlanDetailRequest.getProductIds();
|
||||
if (ids.length > 0 ){
|
||||
CompanyProductRelevanceRequest companyProductRelevanceRequest = new CompanyProductRelevanceRequest();
|
||||
companyProductRelevanceRequest.setIds(Arrays.asList(ids));
|
||||
companyProductRelevanceRequest.setDiType(1);
|
||||
List<UdiRlSupResponse> entities = udiRlSupDao.filterUdiGp(companyProductRelevanceRequest);
|
||||
if (CollectionUtil.isNotEmpty(entities)){
|
||||
entities.forEach( x-> {
|
||||
PurContractDetailEntity purContractDetailEntity = new PurContractDetailEntity();
|
||||
BeanUtils.copyProperties(x,purContractDetailEntity);
|
||||
purContractDetailEntity.setOrderIdFk(orderIdFk);
|
||||
purContractDetailEntity.setProductId(x.getRlId());
|
||||
purContractDetailEntity.setProductUniqueId(x.getUuid());
|
||||
purContractDetailEntity.setNameCode(x.getNameCode());
|
||||
purContractDetailEntity.setProductName(x.getCpmctymc());
|
||||
purContractDetailEntity.setProductCompany(x.getManufactory());
|
||||
purContractDetailEntity.setZczbhhzbapzbh(x.getZczbhhzbapzbh());
|
||||
purContractDetailEntity.setGgxh(x.getGgxh());
|
||||
purContractDetailEntity.setPackRatio(x.getPackRatio());
|
||||
purContractDetailEntity.setSupId(x.getCustomerId());
|
||||
purContractDetailEntity.setSupName(x.getSupName());
|
||||
purContractDetailEntity.setCount(1);
|
||||
purContractDetailEntity.setPrice(new BigDecimal(StrUtil.isEmpty(x.getPrice())?"0":x.getPrice()));
|
||||
purContractDetailMapper.insert(purContractDetailEntity);
|
||||
});
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
public IPage<PurContractDetailEntity> queryPageList(PurContractDetailRequest purContractDetailRequest) {
|
||||
QueryWrapper<PurContractDetailEntity> wrapper = buildPurContractDetailQueryWrapper(purContractDetailRequest);
|
||||
IPage<PurContractDetailEntity> page = new Page<>(purContractDetailRequest.getPage(), purContractDetailRequest.getLimit());
|
||||
return purContractDetailMapper.selectPage(page, wrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构造查询条件
|
||||
*
|
||||
* @param purContractDetailRequest
|
||||
* @return
|
||||
*/
|
||||
private QueryWrapper<PurContractDetailEntity> buildPurContractDetailQueryWrapper(PurContractDetailRequest purContractDetailRequest) {
|
||||
QueryWrapper<PurContractDetailEntity> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq(StrUtil.isNotBlank(purContractDetailRequest.getOrderIdFk()), "orderIdFk", purContractDetailRequest.getOrderIdFk())
|
||||
.orderByDesc("id");
|
||||
return wrapper;
|
||||
}
|
||||
|
||||
public int deleteByOrderId(Long id) {
|
||||
UpdateWrapper<PurContractDetailEntity> uw = new UpdateWrapper<>();
|
||||
uw.eq("orderIdFk",id);
|
||||
return purContractDetailMapper.delete(uw);
|
||||
}
|
||||
|
||||
public int deleteByIds(List<Long> asList) {
|
||||
UpdateWrapper<PurContractDetailEntity> uw = new UpdateWrapper<>();
|
||||
uw.in("id",asList);
|
||||
return purContractDetailMapper.delete(uw);
|
||||
}
|
||||
}
|
@ -0,0 +1,115 @@
|
||||
package com.glxp.api.service.purchase.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.glxp.api.dao.purchase.PurContractDetailMapper;
|
||||
import com.glxp.api.dao.purchase.PurContractMapper;
|
||||
import com.glxp.api.dao.purchase.PurPlanDao;
|
||||
import com.glxp.api.dao.purchase.PurPlanDetailDao;
|
||||
import com.glxp.api.entity.purchase.PurContractDetailEntity;
|
||||
import com.glxp.api.entity.purchase.PurContractEntity;
|
||||
import com.glxp.api.entity.purchase.PurPlanDetailEntity;
|
||||
import com.glxp.api.entity.purchase.PurPlanEntity;
|
||||
import com.glxp.api.req.purchase.PurApplyDetailRequest;
|
||||
import com.glxp.api.req.purchase.PurContractRequest;
|
||||
import com.glxp.api.req.purchase.PurPlanDetailRequest;
|
||||
import com.glxp.api.res.purchase.PurContractEntityResponse;
|
||||
import com.glxp.api.res.purchase.PurOrderDetailResponse;
|
||||
import com.glxp.api.service.auth.CustomerService;
|
||||
import com.glxp.api.util.GennerOrderUtils;
|
||||
import com.glxp.api.util.OrderNoTypeBean;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class PurContractService extends ServiceImpl<PurContractMapper, PurContractEntity> {
|
||||
|
||||
@Resource
|
||||
PurContractMapper purContractMapper;
|
||||
@Resource
|
||||
PurPlanDetailService purPlanDetailService;
|
||||
@Resource
|
||||
PurPlanDao purPlanDao;
|
||||
@Resource
|
||||
private GennerOrderUtils gennerOrderUtils;
|
||||
@Resource
|
||||
PurContractDetailMapper purContractDetailMapper;
|
||||
@Resource
|
||||
CustomerService customerService;
|
||||
|
||||
public IPage<PurContractEntityResponse> queryPageList(PurContractRequest purContractRequest) {
|
||||
IPage<PurContractEntityResponse> purPlanEntities = purContractMapper.selectPage(purContractRequest.getPageObj(),purContractRequest);
|
||||
return purPlanEntities;
|
||||
}
|
||||
//
|
||||
// /**
|
||||
// * 构造查询条件
|
||||
// *
|
||||
// * @param purContractRequest
|
||||
// * @return
|
||||
// */
|
||||
// private QueryWrapper<PurContractEntity> buildPurContractQueryWrapper(PurContractRequest purContractRequest) {
|
||||
// QueryWrapper<PurContractEntity> wrapper = new QueryWrapper<>();
|
||||
// wrapper.like(StrUtil.isNotBlank(purContractRequest.getCode()), "code", purContractRequest.getCode())
|
||||
// .like(StrUtil.isNotBlank(purContractRequest.getName()), "name", purContractRequest.getName())
|
||||
// .eq(ObjectUtil.isNotNull(purContractRequest.getStatus()), "status", purContractRequest.getStatus())
|
||||
// .ge(StrUtil.isNotBlank(purContractRequest.getStartDate()), "contractDate", purContractRequest.getStartDate())
|
||||
// .le(StrUtil.isNotBlank(purContractRequest.getEndDate()), "contractDate", purContractRequest.getEndDate())
|
||||
// .orderByDesc("id");
|
||||
// return wrapper;
|
||||
// }
|
||||
|
||||
public int insert(PurContractEntity purContractEntity) {
|
||||
return purContractMapper.insert(purContractEntity);
|
||||
}
|
||||
|
||||
public int deleteById(Long id) {
|
||||
return purContractMapper.deleteById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入计划
|
||||
*
|
||||
* @param id
|
||||
*/
|
||||
public void importPlan(Long id) {
|
||||
PurPlanEntity purPlanEntity = purPlanDao.selectById(id);
|
||||
PurPlanDetailRequest purApplyDetailRequest = new PurPlanDetailRequest();
|
||||
purApplyDetailRequest.setOrderIdFk(String.valueOf(id));
|
||||
List<PurOrderDetailResponse> purPlanDetailEntities = purPlanDetailService.joinQueryList(purApplyDetailRequest);
|
||||
|
||||
PurContractEntity purContractEntity = new PurContractEntity();
|
||||
BeanUtils.copyProperties(purPlanEntity, purContractEntity);
|
||||
Long userId = customerService.getUserId();
|
||||
purContractEntity.setCreateUser(userId + "");
|
||||
purContractEntity.setCreateTime(new Date());
|
||||
purContractEntity.setUpdateTime(new Date());
|
||||
purContractEntity.setUpdateUser(userId + "");
|
||||
purContractEntity.setStatus(1); //状态
|
||||
|
||||
String code = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean("HT", "yyyyMMdd"));
|
||||
purContractEntity.setCode(code);
|
||||
purContractEntity.setId(null);
|
||||
purContractMapper.insert(purContractEntity);
|
||||
Long newId = purContractEntity.getId();
|
||||
|
||||
if (purPlanDetailEntities.size() > 0){
|
||||
purPlanDetailEntities.forEach( item -> {
|
||||
PurContractDetailEntity purContractDetailEntity = new PurContractDetailEntity();
|
||||
BeanUtils.copyProperties(item,purContractDetailEntity);
|
||||
purContractDetailEntity.setOrderIdFk(String.valueOf(newId));
|
||||
purContractDetailMapper.insert(purContractDetailEntity);
|
||||
});
|
||||
}
|
||||
|
||||
purPlanEntity.setImportStatus(1);
|
||||
purPlanDao.updateById(purPlanEntity);
|
||||
}
|
||||
}
|
@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.glxp.api.dao.purchase.PurContractDetailMapper">
|
||||
<resultMap id="BaseResultMap" type="com.glxp.api.entity.purchase.PurContractDetailEntity">
|
||||
<!--@mbg.generated-->
|
||||
<!--@Table pur_contract_detail-->
|
||||
<id column="id" jdbcType="BIGINT" property="id" />
|
||||
<result column="orderIdFk" jdbcType="VARCHAR" property="orderidfk" />
|
||||
<result column="productId" jdbcType="BIGINT" property="productid" />
|
||||
<result column="productUniqueId" jdbcType="VARCHAR" property="productuniqueid" />
|
||||
<result column="nameCode" jdbcType="VARCHAR" property="namecode" />
|
||||
<result column="batchNo" jdbcType="VARCHAR" property="batchno" />
|
||||
<result column="productName" jdbcType="VARCHAR" property="productname" />
|
||||
<result column="productCompany" jdbcType="VARCHAR" property="productcompany" />
|
||||
<result column="produceDate" jdbcType="DATE" property="producedate" />
|
||||
<result column="expireDate" jdbcType="DATE" property="expiredate" />
|
||||
<result column="zczbhhzbapzbh" jdbcType="VARCHAR" property="zczbhhzbapzbh" />
|
||||
<result column="ggxh" jdbcType="VARCHAR" property="ggxh" />
|
||||
<result column="packRatio" jdbcType="VARCHAR" property="packratio" />
|
||||
<result column="supId" jdbcType="BIGINT" property="supid" />
|
||||
<result column="supName" jdbcType="VARCHAR" property="supname" />
|
||||
<result column="count" jdbcType="INTEGER" property="count" />
|
||||
<result column="price" jdbcType="DECIMAL" property="price" />
|
||||
<result column="firstSalesInvNo" jdbcType="VARCHAR" property="firstsalesinvno" />
|
||||
<result column="secSalesInvNo" jdbcType="VARCHAR" property="secsalesinvno" />
|
||||
<result column="secSalesListNo" jdbcType="VARCHAR" property="secsaleslistno" />
|
||||
<result column="invoiceDate" jdbcType="VARCHAR" property="invoicedate" />
|
||||
<result column="remark" jdbcType="VARCHAR" property="remark" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
id, orderIdFk, productId, productUniqueId, nameCode, batchNo, productName, productCompany,
|
||||
produceDate, expireDate, zczbhhzbapzbh, ggxh, packRatio, supId, supName, `count`,
|
||||
price, firstSalesInvNo, secSalesInvNo, secSalesListNo, invoiceDate, remark
|
||||
</sql>
|
||||
|
||||
<insert id="insert" keyProperty="id"
|
||||
parameterType="com.glxp.api.entity.purchase.PurContractDetailEntity">
|
||||
replace
|
||||
INTO pur_contract_detail
|
||||
(
|
||||
orderIdFk,
|
||||
productId,
|
||||
productUniqueId,
|
||||
nameCode,
|
||||
batchNo,
|
||||
productName,
|
||||
productCompany,
|
||||
produceDate,
|
||||
expireDate,
|
||||
zczbhhzbapzbh,
|
||||
ggxh,
|
||||
packRatio,
|
||||
supId,
|
||||
supName,
|
||||
`count`,
|
||||
price,
|
||||
firstSalesInvNo,
|
||||
secSalesInvNo,
|
||||
secSalesListNo,
|
||||
invoiceDate,
|
||||
remark
|
||||
)
|
||||
values (
|
||||
#{orderIdFk},
|
||||
#{productId},
|
||||
#{productUniqueId},
|
||||
#{nameCode},
|
||||
#{batchNo},
|
||||
#{productName},
|
||||
#{productCompany},
|
||||
#{produceDate},
|
||||
#{expireDate},
|
||||
#{zczbhhzbapzbh},
|
||||
#{ggxh},
|
||||
#{packRatio},
|
||||
#{supId},
|
||||
#{supName},
|
||||
#{count},
|
||||
#{price},
|
||||
#{firstSalesInvNo},
|
||||
#{secSalesInvNo},
|
||||
#{secSalesListNo},
|
||||
#{invoiceDate},
|
||||
#{remark}
|
||||
)
|
||||
</insert>
|
||||
</mapper>
|
@ -0,0 +1,151 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.glxp.api.dao.purchase.PurContractMapper">
|
||||
<resultMap id="BaseResultMap" type="com.glxp.api.entity.purchase.PurContractEntity">
|
||||
<!--@mbg.generated-->
|
||||
<!--@Table pur_contract-->
|
||||
<id column="id" jdbcType="INTEGER" property="id" />
|
||||
<result column="code" jdbcType="VARCHAR" property="code" />
|
||||
<result column="name" jdbcType="VARCHAR" property="name" />
|
||||
<result column="fromCorp" jdbcType="VARCHAR" property="fromCorp" />
|
||||
<result column="contractDate" jdbcType="TIMESTAMP" property="contractDate" />
|
||||
<result column="invCode" jdbcType="VARCHAR" property="invCode" />
|
||||
<result column="status" jdbcType="INTEGER" property="status" />
|
||||
<result column="type" jdbcType="INTEGER" property="type" />
|
||||
<result column="payType" jdbcType="INTEGER" property="payType" />
|
||||
<result column="startDate" jdbcType="TIMESTAMP" property="startDate" />
|
||||
<result column="endDate" jdbcType="TIMESTAMP" property="endDate" />
|
||||
<result column="amount" jdbcType="DECIMAL" property="amount" />
|
||||
<result column="payAmount" jdbcType="DECIMAL" property="payAmount" />
|
||||
<result column="payDate" jdbcType="TIMESTAMP" property="payDate" />
|
||||
<result column="invoiceDate" jdbcType="TIMESTAMP" property="invoiceDate" />
|
||||
<result column="planOrderIdFk" jdbcType="VARCHAR" property="planOrderIdFk" />
|
||||
<result column="orderIdFk" jdbcType="VARCHAR" property="orderIdFk" />
|
||||
<result column="createUser" jdbcType="VARCHAR" property="createUser" />
|
||||
<result column="updateUser" jdbcType="VARCHAR" property="updateUser" />
|
||||
<result column="createTime" jdbcType="TIMESTAMP" property="createTime" />
|
||||
<result column="updateTime" jdbcType="TIMESTAMP" property="updateTime" />
|
||||
<result column="remark" jdbcType="VARCHAR" property="remark" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
id, code, `name`, fromCorp, contractDate, invCode, `status`, `type`, payType, startDate,
|
||||
endDate, amount, payAmount, payDate, invoiceDate, planOrderIdFk, orderIdFk, `createUser`,
|
||||
updateUser, createTime, updateTime, remark
|
||||
</sql>
|
||||
|
||||
<insert id="insert" keyProperty="id"
|
||||
parameterType="com.glxp.api.entity.purchase.PurPlanEntity" useGeneratedKeys="true">
|
||||
insert
|
||||
INTO pur_contract
|
||||
(
|
||||
code,
|
||||
`name`,
|
||||
fromCorp,
|
||||
contractDate,
|
||||
invCode,
|
||||
`status`,
|
||||
`type`,
|
||||
payType,
|
||||
startDate,
|
||||
endDate,
|
||||
amount,
|
||||
payAmount,
|
||||
payDate,
|
||||
invoiceDate,
|
||||
planOrderIdFk,
|
||||
orderIdFk,
|
||||
`createUser`,
|
||||
updateUser,
|
||||
createTime,
|
||||
updateTime,
|
||||
remark
|
||||
)
|
||||
values (
|
||||
#{code},
|
||||
#{name},
|
||||
#{fromCorp},
|
||||
#{contractDate},
|
||||
#{invCode},
|
||||
#{status},
|
||||
#{type},
|
||||
#{payType},
|
||||
#{startDate},
|
||||
#{endDate},
|
||||
#{amount},
|
||||
#{payAmount},
|
||||
#{payDate},
|
||||
#{invoiceDate},
|
||||
#{planOrderIdFk},
|
||||
#{orderIdFk},
|
||||
#{createUser},
|
||||
#{updateUser},
|
||||
#{createTime},
|
||||
#{updateTime},
|
||||
#{remark}
|
||||
)
|
||||
</insert>
|
||||
|
||||
|
||||
|
||||
<select id="selectPage" parameterType="com.glxp.api.req.purchase.PurContractRequest"
|
||||
resultType="com.glxp.api.res.purchase.PurContractEntityResponse">
|
||||
select
|
||||
pc.id, pc.code, pc.`name`, pc.fromCorp, pc.contractDate, pc.invCode, pc.`type`, pc.payType, pc.startDate,
|
||||
pc.endDate, pc.amount, pc.payAmount, pc.payDate, pc.invoiceDate, pc.planOrderIdFk, pc.orderIdFk, pc.`createUser`,
|
||||
pc.updateUser, pc.createTime, pc.updateTime, pc.remark,pc.approvalFlowId,pc.isGenerateOrder,
|
||||
IFNULL(saf.status,0) as status, saf.nextNodeName as nextNodeName , saf.nextApprovalNodeType as nextApprovalNodeType
|
||||
from pur_contract pc
|
||||
left join sys_approval_flow saf ON pc.approvalFlowId = saf.id
|
||||
<where>
|
||||
pc.code is not null
|
||||
<if test="!purContractRequest.sysApprovalFlow">
|
||||
<if test="purContractRequest.status != null and purContractRequest.status != 10 and purContractRequest.status != 11 and purContractRequest.status != 12 ">
|
||||
and pc.status = #{purContractRequest.status}
|
||||
</if>
|
||||
<if test="purContractRequest.status == 10">
|
||||
and (pc.status = 2 )
|
||||
</if>
|
||||
<if test="purContractRequest.status == 11">
|
||||
and (pc.status = 1 or pc.status is null )
|
||||
</if>
|
||||
<if test="purContractRequest.status == 12">
|
||||
and (pc.status = 3 or pc.status = 4)
|
||||
</if>
|
||||
</if>
|
||||
|
||||
<if test="purContractRequest.sysApprovalFlow">
|
||||
<if test="purContractRequest.status != null and purContractRequest.status != 10 and purContractRequest.status != 11 and purContractRequest.status != 12 ">
|
||||
and saf.status = #{purContractRequest.status}
|
||||
</if>
|
||||
<if test="purContractRequest.status == 10">
|
||||
and (saf.status = 2)
|
||||
</if>
|
||||
<if test="purContractRequest.status == 11">
|
||||
and (saf.status = 1 or saf.status is null)
|
||||
</if>
|
||||
<if test="purContractRequest.status == 12">
|
||||
and (saf.status = 3 or saf.status = 4)
|
||||
</if>
|
||||
</if>
|
||||
|
||||
<if test="purContractRequest.code != null and purContractRequest.code != ''" >
|
||||
and pc.code like concat('%',#{purContractRequest.code},'%')
|
||||
</if>
|
||||
<if test="purContractRequest.name != null and purContractRequest.name != ''" >
|
||||
and pc.name like concat('%',#{purContractRequest.name},'%')
|
||||
</if>
|
||||
<if test="purContractRequest.isGenerateOrder != null " >
|
||||
and pc.isGenerateOrder = #{purContractRequest.isGenerateOrder}
|
||||
</if>
|
||||
<if test="purContractRequest.startDate != null and purContractRequest.startDate != ''">
|
||||
AND pc.contractDate <![CDATA[>=]]> #{purContractRequest.startDate}
|
||||
</if>
|
||||
<if test="purContractRequest.endDate != null and purContractRequest.endDate != ''">
|
||||
AND pc.contractDate <![CDATA[<=]]> #{purContractRequest.endDate}
|
||||
</if>
|
||||
order by id desc
|
||||
</where>
|
||||
|
||||
</select>
|
||||
</mapper>
|
Loading…
Reference in New Issue