From b096280db68089a56e180acc63277f32e210f02b Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Mon, 13 May 2024 11:57:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=AE=BE=E5=A4=87=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=BC=98=E5=8C=96-0513-=E5=90=88=E5=90=8C=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=A4=8D=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/PurContractController.java | 207 ++++++++++++++++++ .../dao/purchase/PurContractDetailMapper.java | 9 + .../api/dao/purchase/PurContractMapper.java | 15 ++ .../purchase/PurContractDetailEntity.java | 155 +++++++++++++ .../entity/purchase/PurContractEntity.java | 167 ++++++++++++++ .../api/entity/purchase/PurPlanEntity.java | 5 + .../basic/CompanyProductRelevanceRequest.java | 2 + .../req/purchase/AddPurPlanDetailRequest.java | 19 ++ .../req/purchase/PostPurContractRequest.java | 14 ++ .../purchase/PurContractDetailRequest.java | 17 ++ .../api/req/purchase/PurContractRequest.java | 42 ++++ .../glxp/api/req/purchase/PurPlanRequest.java | 8 +- .../glxp/api/res/basic/UdiRlSupResponse.java | 2 + .../purchase/PurContractEntityResponse.java | 168 ++++++++++++++ .../api/res/purchase/PurPlanResponse.java | 6 + .../impl/PurContractDetailService.java | 100 +++++++++ .../purchase/impl/PurContractService.java | 115 ++++++++++ .../mybatis/mapper/basic/UdiRlSupDao.xml | 7 +- .../purchase/PurContractDetailMapper.xml | 88 ++++++++ .../mapper/purchase/PurContractMapper.xml | 151 +++++++++++++ .../mybatis/mapper/purchase/PurPlanDao.xml | 3 + src/main/resources/schemas/schema_v2.4.sql | 91 +++++++- 22 files changed, 1382 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/glxp/api/controller/purchase/PurContractController.java create mode 100644 src/main/java/com/glxp/api/dao/purchase/PurContractDetailMapper.java create mode 100644 src/main/java/com/glxp/api/dao/purchase/PurContractMapper.java create mode 100644 src/main/java/com/glxp/api/entity/purchase/PurContractDetailEntity.java create mode 100644 src/main/java/com/glxp/api/entity/purchase/PurContractEntity.java create mode 100644 src/main/java/com/glxp/api/req/purchase/AddPurPlanDetailRequest.java create mode 100644 src/main/java/com/glxp/api/req/purchase/PostPurContractRequest.java create mode 100644 src/main/java/com/glxp/api/req/purchase/PurContractDetailRequest.java create mode 100644 src/main/java/com/glxp/api/req/purchase/PurContractRequest.java create mode 100644 src/main/java/com/glxp/api/res/purchase/PurContractEntityResponse.java create mode 100644 src/main/java/com/glxp/api/service/purchase/impl/PurContractDetailService.java create mode 100644 src/main/java/com/glxp/api/service/purchase/impl/PurContractService.java create mode 100644 src/main/resources/mybatis/mapper/purchase/PurContractDetailMapper.xml create mode 100644 src/main/resources/mybatis/mapper/purchase/PurContractMapper.xml diff --git a/src/main/java/com/glxp/api/controller/purchase/PurContractController.java b/src/main/java/com/glxp/api/controller/purchase/PurContractController.java new file mode 100644 index 000000000..6fc994640 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/purchase/PurContractController.java @@ -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 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(); + } + +} diff --git a/src/main/java/com/glxp/api/dao/purchase/PurContractDetailMapper.java b/src/main/java/com/glxp/api/dao/purchase/PurContractDetailMapper.java new file mode 100644 index 000000000..fde9899ea --- /dev/null +++ b/src/main/java/com/glxp/api/dao/purchase/PurContractDetailMapper.java @@ -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 { + +// int insert(PurContractDetailEntity purContractDetailEntity); +} diff --git a/src/main/java/com/glxp/api/dao/purchase/PurContractMapper.java b/src/main/java/com/glxp/api/dao/purchase/PurContractMapper.java new file mode 100644 index 000000000..9dc509ae6 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/purchase/PurContractMapper.java @@ -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 { + @Override + int insert(PurContractEntity purContractEntity); + + Page selectPage(Page page, @Param("purContractRequest") PurContractRequest purContractRequest); +} diff --git a/src/main/java/com/glxp/api/entity/purchase/PurContractDetailEntity.java b/src/main/java/com/glxp/api/entity/purchase/PurContractDetailEntity.java new file mode 100644 index 000000000..d672b3012 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/purchase/PurContractDetailEntity.java @@ -0,0 +1,155 @@ +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_detail") +public class PurContractDetailEntity implements Serializable { + /** + * 单据业务ID + */ + @TableId(value = "id", type = IdType.INPUT) + private Long id; + + /** + * 关联合同编号 + */ + @TableField(value = "orderIdFk") + private String orderIdFk; + + /** + * 产品编码 + */ + @TableField(value = "productId") + private Long productId; + + /** + * 产品唯一id uniqueId + */ + @TableField(value = "productUniqueId") + private String productUniqueId; + + /** + * 最小销售标识 + */ + @TableField(value = "nameCode") + private String nameCode; + + /** + * 批次号 + */ + @TableField(value = "batchNo") + private String batchNo; + + /** + * 产品名称 + */ + @TableField(value = "productName") + private String productName; + + /** + * 生产厂家 + */ + @TableField(value = "productCompany") + private String productCompany; + + /** + * 生产日期 + */ + @TableField(value = "produceDate") + private Date produceDate; + + /** + * 过期时间 + */ + @TableField(value = "expireDate") + private Date expireDate; + + /** + * 注册证/备案号 + */ + @TableField(value = "zczbhhzbapzbh") + private String zczbhhzbapzbh; + + /** + * 规格型号 + */ + @TableField(value = "ggxh") + private String ggxh; + + /** + * 包装级别 + */ + @TableField(value = "packRatio") + private String packRatio; + + /** + * 供应商id + */ + @TableField(value = "supId") + private Long supId; + + /** + * 供应商名称 + */ + @TableField(value = "supName") + private String supName; + + /** + * 订单该产品实际数量 + */ + @TableField(value = "`count`") + private Integer count; + + /** + * 价格 + */ + @TableField(value = "price") + private BigDecimal price; + + /** + * 销售发票号(第一票) + */ + @TableField(value = "firstSalesInvNo") + private String firstSalesInvNo; + + /** + * 销售发票号(第二票) + */ + @TableField(value = "secSalesInvNo") + private String secSalesInvNo; + + /** + * 销售清单号(第二票) + */ + @TableField(value = "secSalesListNo") + private String secSalesListNo; + + /** + * 开票日期 + */ + @TableField(value = "invoiceDate") + private String invoiceDate; + + @TableField(value = "remark") + private String remark; + + private static final long serialVersionUID = 1L; +} diff --git a/src/main/java/com/glxp/api/entity/purchase/PurContractEntity.java b/src/main/java/com/glxp/api/entity/purchase/PurContractEntity.java new file mode 100644 index 000000000..13878ec9b --- /dev/null +++ b/src/main/java/com/glxp/api/entity/purchase/PurContractEntity.java @@ -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; +} diff --git a/src/main/java/com/glxp/api/entity/purchase/PurPlanEntity.java b/src/main/java/com/glxp/api/entity/purchase/PurPlanEntity.java index 5047816fd..f17a8cc09 100644 --- a/src/main/java/com/glxp/api/entity/purchase/PurPlanEntity.java +++ b/src/main/java/com/glxp/api/entity/purchase/PurPlanEntity.java @@ -150,6 +150,11 @@ public class PurPlanEntity { @TableField(value = "approvalFlowId") private String approvalFlowId; + /** + * 是否导入 + */ + @TableField(value = "importStatus") + private Integer importStatus; public static final String COL_ID = "id"; diff --git a/src/main/java/com/glxp/api/req/basic/CompanyProductRelevanceRequest.java b/src/main/java/com/glxp/api/req/basic/CompanyProductRelevanceRequest.java index 881f9ffb4..e884f5200 100644 --- a/src/main/java/com/glxp/api/req/basic/CompanyProductRelevanceRequest.java +++ b/src/main/java/com/glxp/api/req/basic/CompanyProductRelevanceRequest.java @@ -78,4 +78,6 @@ public class CompanyProductRelevanceRequest extends ListPageRequest { private String basicPrductRemak8; private String category; private String action; + + private List ids; } diff --git a/src/main/java/com/glxp/api/req/purchase/AddPurPlanDetailRequest.java b/src/main/java/com/glxp/api/req/purchase/AddPurPlanDetailRequest.java new file mode 100644 index 000000000..4f3c54794 --- /dev/null +++ b/src/main/java/com/glxp/api/req/purchase/AddPurPlanDetailRequest.java @@ -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; +} diff --git a/src/main/java/com/glxp/api/req/purchase/PostPurContractRequest.java b/src/main/java/com/glxp/api/req/purchase/PostPurContractRequest.java new file mode 100644 index 000000000..c9de2c93c --- /dev/null +++ b/src/main/java/com/glxp/api/req/purchase/PostPurContractRequest.java @@ -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 purContractDetailEntities; +} diff --git a/src/main/java/com/glxp/api/req/purchase/PurContractDetailRequest.java b/src/main/java/com/glxp/api/req/purchase/PurContractDetailRequest.java new file mode 100644 index 000000000..0cfda7324 --- /dev/null +++ b/src/main/java/com/glxp/api/req/purchase/PurContractDetailRequest.java @@ -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; + +} diff --git a/src/main/java/com/glxp/api/req/purchase/PurContractRequest.java b/src/main/java/com/glxp/api/req/purchase/PurContractRequest.java new file mode 100644 index 000000000..170d90a1e --- /dev/null +++ b/src/main/java/com/glxp/api/req/purchase/PurContractRequest.java @@ -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; +} diff --git a/src/main/java/com/glxp/api/req/purchase/PurPlanRequest.java b/src/main/java/com/glxp/api/req/purchase/PurPlanRequest.java index dc8f2d869..59866cc17 100644 --- a/src/main/java/com/glxp/api/req/purchase/PurPlanRequest.java +++ b/src/main/java/com/glxp/api/req/purchase/PurPlanRequest.java @@ -1,6 +1,7 @@ package com.glxp.api.req.purchase; +import com.baomidou.mybatisplus.annotation.TableField; import com.glxp.api.util.page.ListPageRequest; import lombok.Data; @@ -100,7 +101,10 @@ public class PurPlanRequest extends ListPageRequest { private Boolean sysApprovalFlow; - - + /** + * 是否导入 + */ + @TableField(value = "importStatus") + private Integer importStatus; } diff --git a/src/main/java/com/glxp/api/res/basic/UdiRlSupResponse.java b/src/main/java/com/glxp/api/res/basic/UdiRlSupResponse.java index eb88aa88e..d31ba24da 100644 --- a/src/main/java/com/glxp/api/res/basic/UdiRlSupResponse.java +++ b/src/main/java/com/glxp/api/res/basic/UdiRlSupResponse.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; + @Data public class UdiRlSupResponse { diff --git a/src/main/java/com/glxp/api/res/purchase/PurContractEntityResponse.java b/src/main/java/com/glxp/api/res/purchase/PurContractEntityResponse.java new file mode 100644 index 000000000..41841469b --- /dev/null +++ b/src/main/java/com/glxp/api/res/purchase/PurContractEntityResponse.java @@ -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; +} diff --git a/src/main/java/com/glxp/api/res/purchase/PurPlanResponse.java b/src/main/java/com/glxp/api/res/purchase/PurPlanResponse.java index 072fef23b..19368ecc0 100644 --- a/src/main/java/com/glxp/api/res/purchase/PurPlanResponse.java +++ b/src/main/java/com/glxp/api/res/purchase/PurPlanResponse.java @@ -90,4 +90,10 @@ public class PurPlanResponse { private String flowAuditByName; private String approvalFlowId; + + /** + * 是否导入 + */ + @TableField(value = "importStatus") + private Integer importStatus; } diff --git a/src/main/java/com/glxp/api/service/purchase/impl/PurContractDetailService.java b/src/main/java/com/glxp/api/service/purchase/impl/PurContractDetailService.java new file mode 100644 index 000000000..87c03b527 --- /dev/null +++ b/src/main/java/com/glxp/api/service/purchase/impl/PurContractDetailService.java @@ -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 { + + @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 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 queryPageList(PurContractDetailRequest purContractDetailRequest) { + QueryWrapper wrapper = buildPurContractDetailQueryWrapper(purContractDetailRequest); + IPage page = new Page<>(purContractDetailRequest.getPage(), purContractDetailRequest.getLimit()); + return purContractDetailMapper.selectPage(page, wrapper); + } + + /** + * 构造查询条件 + * + * @param purContractDetailRequest + * @return + */ + private QueryWrapper buildPurContractDetailQueryWrapper(PurContractDetailRequest purContractDetailRequest) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StrUtil.isNotBlank(purContractDetailRequest.getOrderIdFk()), "orderIdFk", purContractDetailRequest.getOrderIdFk()) + .orderByDesc("id"); + return wrapper; + } + + public int deleteByOrderId(Long id) { + UpdateWrapper uw = new UpdateWrapper<>(); + uw.eq("orderIdFk",id); + return purContractDetailMapper.delete(uw); + } + + public int deleteByIds(List asList) { + UpdateWrapper uw = new UpdateWrapper<>(); + uw.in("id",asList); + return purContractDetailMapper.delete(uw); + } +} diff --git a/src/main/java/com/glxp/api/service/purchase/impl/PurContractService.java b/src/main/java/com/glxp/api/service/purchase/impl/PurContractService.java new file mode 100644 index 000000000..e23d0ef32 --- /dev/null +++ b/src/main/java/com/glxp/api/service/purchase/impl/PurContractService.java @@ -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 { + + @Resource + PurContractMapper purContractMapper; + @Resource + PurPlanDetailService purPlanDetailService; + @Resource + PurPlanDao purPlanDao; + @Resource + private GennerOrderUtils gennerOrderUtils; + @Resource + PurContractDetailMapper purContractDetailMapper; + @Resource + CustomerService customerService; + + public IPage queryPageList(PurContractRequest purContractRequest) { + IPage purPlanEntities = purContractMapper.selectPage(purContractRequest.getPageObj(),purContractRequest); + return purPlanEntities; + } +// +// /** +// * 构造查询条件 +// * +// * @param purContractRequest +// * @return +// */ +// private QueryWrapper buildPurContractQueryWrapper(PurContractRequest purContractRequest) { +// QueryWrapper 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 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); + } +} diff --git a/src/main/resources/mybatis/mapper/basic/UdiRlSupDao.xml b/src/main/resources/mybatis/mapper/basic/UdiRlSupDao.xml index 4a3946bf0..d94206e66 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiRlSupDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiRlSupDao.xml @@ -250,10 +250,15 @@ AND (basic_udirel.isDisable is null or basic_udirel.isDisable = false) - and (tp.flbm = #{flbm} or basic_products.flbm = #{flbm}) + + and company_product_relevance.id in + + #{item} + + ORDER BY company_product_relevance.updateTime DESC diff --git a/src/main/resources/mybatis/mapper/purchase/PurContractDetailMapper.xml b/src/main/resources/mybatis/mapper/purchase/PurContractDetailMapper.xml new file mode 100644 index 000000000..46a079797 --- /dev/null +++ b/src/main/resources/mybatis/mapper/purchase/PurContractDetailMapper.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, orderIdFk, productId, productUniqueId, nameCode, batchNo, productName, productCompany, + produceDate, expireDate, zczbhhzbapzbh, ggxh, packRatio, supId, supName, `count`, + price, firstSalesInvNo, secSalesInvNo, secSalesListNo, invoiceDate, remark + + + + 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} + ) + + diff --git a/src/main/resources/mybatis/mapper/purchase/PurContractMapper.xml b/src/main/resources/mybatis/mapper/purchase/PurContractMapper.xml new file mode 100644 index 000000000..9eee36987 --- /dev/null +++ b/src/main/resources/mybatis/mapper/purchase/PurContractMapper.xml @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, code, `name`, fromCorp, contractDate, invCode, `status`, `type`, payType, startDate, + endDate, amount, payAmount, payDate, invoiceDate, planOrderIdFk, orderIdFk, `createUser`, + updateUser, createTime, updateTime, remark + + + + 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} + ) + + + + + + diff --git a/src/main/resources/mybatis/mapper/purchase/PurPlanDao.xml b/src/main/resources/mybatis/mapper/purchase/PurPlanDao.xml index 296f3f1b1..0c911b196 100644 --- a/src/main/resources/mybatis/mapper/purchase/PurPlanDao.xml +++ b/src/main/resources/mybatis/mapper/purchase/PurPlanDao.xml @@ -92,6 +92,9 @@ AND emergency = #{emergency} + + AND importStatus = #{importStatus} + diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index aa514c59d..b9f56a239 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -2511,14 +2511,12 @@ CALL Pro_Temp_ColumnWork('device_change_order', 'approvalFlowId', CALL Pro_Temp_ColumnWork('device_change_order', 'billNo', ' varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT ''单据号'' ', 1); -# INSERT IGNORE INTO sys_approval_flow_config(`id`, `type`, `typeName`, `approvalSort`, `createUser`, `createTime`, `updateUser`, `updateTime`) -# VALUES ('5', 'sbdj', '设备登记', 5, NULL, NULL, NULL, NULL); -# -# INSERT IGNORE INTO sys_approval_flow_config(`id`, `type`, `typeName`, `approvalSort`, `createUser`, `createTime`, `updateUser`, `updateTime`) -# VALUES ('6', 'sbbg', '设备变更', 6, NULL, NULL, NULL, NULL); INSERT IGNORE INTO sys_approval_flow_config(`id`, `type`, `typeName`, `approvalSort`, `createUser`, `createTime`, `updateUser`, `updateTime`) -VALUES ('7', 'sbyc', '设备移除', 7, NULL, NULL, NULL, NULL); +VALUES ('5', 'sbyc', '设备移除', 7, NULL, NULL, NULL, NULL); + +INSERT IGNORE INTO sys_approval_flow_config(`id`, `type`, `typeName`, `approvalSort`, `createUser`, `createTime`, `updateUser`, `updateTime`) +VALUES ('6', 'cght', '采购合同单据', 6, NULL, NULL, NULL, NULL); CALL Pro_Temp_ColumnWork('sys_approval_flow_config_mx', 'approvalNodeType', ' bigint(0) NOT NULL COMMENT ''审批节点类型 1 人员 2 岗位'' ', @@ -2548,3 +2546,84 @@ CALL Pro_Temp_ColumnWork('sys_approval_flow', 'nextNodeName', CALL Pro_Temp_ColumnWork('sys_approval_flow', 'nextApprovalNodeType', ' varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT ''下一个节点审核类型'' ', 1); + +-- ---------------------------- +-- Table structure for pur_contract +-- ---------------------------- +CREATE TABLE IF NOT EXISTS `pur_contract` ( + `id` int(0) NOT NULL AUTO_INCREMENT, + `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '合同编号', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '合同名称', + `fromCorp` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '往来单位/供应商', + `contractDate` datetime(0) NULL DEFAULT NULL COMMENT '合同签订日期', + `invCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '当前仓库', + `status` int(0) NULL DEFAULT NULL COMMENT '合同状态', + `type` int(0) NULL DEFAULT NULL COMMENT '合同类型', + `payType` int(0) NULL DEFAULT NULL COMMENT '付款方式', + `startDate` datetime(0) NULL DEFAULT NULL COMMENT '开始时间', + `endDate` datetime(0) NULL DEFAULT NULL COMMENT '截止时间', + `amount` decimal(10, 3) NULL DEFAULT NULL COMMENT '合同金额', + `payAmount` decimal(10, 3) NULL DEFAULT NULL COMMENT '实付金额', + `payDate` datetime(0) NULL DEFAULT NULL COMMENT '付款日期', + `invoiceDate` datetime(0) NULL DEFAULT NULL COMMENT '开票日期', + `planOrderIdFk` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '采购计划ID外键', + `orderIdFk` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '采购订单外键', + `createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建人', + `updateUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新人', + `createTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `updateTime` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', + `approvalFlowId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '审批表主键(关联审批流程主表)', + `isGenerateOrder` int(0) NULL DEFAULT 0 COMMENT '是否生成订单 1.已生成;0.未生成 ', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '采购合同表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for pur_contract_detail +-- ---------------------------- +CREATE TABLE IF NOT EXISTS `pur_contract_detail` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '单据业务ID', + `orderIdFk` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NOT NULL COMMENT '关联合同编号', + `productId` bigint(0) NULL DEFAULT NULL COMMENT '产品编码', + `productUniqueId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '产品唯一id uniqueId', + `nameCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '最小销售标识', + `batchNo` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '批次号', + `productName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '产品名称', + `productCompany` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '生产厂家', + `produceDate` date NULL DEFAULT NULL COMMENT '生产日期', + `expireDate` date NULL DEFAULT NULL COMMENT '过期时间', + `zczbhhzbapzbh` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '注册证/备案号', + `ggxh` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '规格型号', + `packRatio` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '包装级别', + `supId` bigint(0) NULL DEFAULT NULL COMMENT '供应商id', + `supName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '供应商名称', + `count` int(0) NULL DEFAULT NULL COMMENT '订单该产品实际数量', + `price` decimal(10, 2) NULL DEFAULT NULL COMMENT '价格', + `firstSalesInvNo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '销售发票号(第一票)', + `secSalesInvNo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '销售发票号(第二票)', + `secSalesListNo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '销售清单号(第二票)', + `invoiceDate` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '开票日期', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_as_cs COMMENT = '单据业务详情表' ROW_FORMAT = Dynamic; + +CALL Pro_Temp_ColumnWork('pur_plan', 'importStatus', + ' bit(1) NOT NULL DEFAULT b''0'' COMMENT ''是否 导入''', + 1); + +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 (3679, '合同管理', 1673, 4, 'purContract', NULL, NULL, 1, 0, 'M', '0', '0', NULL, NULL, '超级用户', '2023-02-10 14:52:34', 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 (3680, '待提交合同', 3679, 1, 'purchase/purContract/purContract', 'purchase/purContract/purContract', NULL, 1, 0, 'C', '0', '0', NULL, NULL, '超级用户', '2023-02-10 16:25:48', 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 (3689, '待审核合同', 3679, 2, 'purchase/purContract/purContractReviewed', 'purchase/purContract/purContractReviewed', NULL, 1, 0, 'C', '0', '0', NULL, NULL, '超级用户', '2023-02-14 11:07:07', 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 (3690, '已完成合同', 3679, 3, 'purchase/purContract/purContractFinish', 'purchase/purContract/purContractFinish', NULL, 1, 0, 'C', '0', '0', NULL, NULL, '超级用户', '2023-02-14 11:27:49', NULL, NULL, NULL); + +CALL Pro_Temp_ColumnWork('pur_plan', 'importStatus', + ' bit(1) NOT NULL DEFAULT b''0'' COMMENT ''是否 导入''', + 1);