From e07ed0bb7084ac579b9c8af571bf1b8c61ceefb9 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Fri, 26 May 2023 22:25:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../trace/TraceManuOrderController.java | 52 +++++++++ .../trace/TraceOrderController.java | 30 ++++- .../controller/trace/UdiTraceController.java | 4 + .../entity/trace/TraceManuCodeRelEntity.java | 12 +- .../entity/trace/TraceManuOrderEntity.java | 4 +- .../api/entity/trace/TraceOrderEntity.java | 6 +- .../api/req/trace/TraceManuDetailRequest.java | 6 +- .../trace/TraceManuOrderUploadRequest.java | 86 ++++++++++++++ .../glxp/api/req/trace/TraceOrderRequest.java | 2 +- .../req/trace/TraceOrderUploadRequest.java | 110 ++++++++++++++++++ .../api/res/trace/TraceOrderResponse.java | 2 +- .../service/trace/TraceManuOrderService.java | 4 + .../mybatis/mapper/trace/TraceOrderMapper.xml | 2 +- .../mapper/trace/TraceRecordMapper.xml | 10 +- src/main/resources/schemas/schema_v2.1.sql | 2 +- 15 files changed, 310 insertions(+), 22 deletions(-) create mode 100644 src/main/java/com/glxp/api/req/trace/TraceManuOrderUploadRequest.java create mode 100644 src/main/java/com/glxp/api/req/trace/TraceOrderUploadRequest.java diff --git a/src/main/java/com/glxp/api/controller/trace/TraceManuOrderController.java b/src/main/java/com/glxp/api/controller/trace/TraceManuOrderController.java index 87a36b6..bcb5933 100644 --- a/src/main/java/com/glxp/api/controller/trace/TraceManuOrderController.java +++ b/src/main/java/com/glxp/api/controller/trace/TraceManuOrderController.java @@ -1,11 +1,19 @@ package com.glxp.api.controller.trace; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.IdUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; +import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.entity.purchase.SupCertRemindMsgEntity; +import com.glxp.api.entity.sup.UserCertEntity; +import com.glxp.api.entity.trace.TraceManuCodeRelEntity; +import com.glxp.api.entity.trace.TraceManuOrderEntity; import com.glxp.api.req.trace.TraceManuDetailRequest; import com.glxp.api.req.trace.TraceManuOrderRequest; +import com.glxp.api.req.trace.TraceManuOrderUploadRequest; import com.glxp.api.req.trace.TraceRecordRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.trace.TraceManuCodeRellResponse; @@ -14,13 +22,24 @@ import com.glxp.api.res.trace.TraceRecordResponse; import com.glxp.api.service.trace.TraceManuCodeRelService; import com.glxp.api.service.trace.TraceManuOrderService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; import java.util.List; + +/** + * 追溯查询-生产信息相关接口 + */ + @ApiIgnore @RestController @Slf4j @@ -55,4 +74,37 @@ public class TraceManuOrderController { return ResultVOUtils.success(pageSimpleResponse); } + + //客户端生产信息上传接口 + @AuthRuleAnnotation("udi/trace/manu/order/upload") + @PostMapping("udi/trace/manu/order/upload") + public BaseResponse uploadManuOrder(@RequestBody TraceManuOrderUploadRequest traceManuOrderUploadRequest, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + TraceManuOrderEntity traceManuOrderEntity = new TraceManuOrderEntity(); + BeanUtils.copyProperties(traceManuOrderUploadRequest, traceManuOrderEntity); + traceManuOrderEntity.setId(IdUtil.getSnowflakeNextId()); + traceManuOrderEntity.setUpdateTime(new Date()); + + List traceManuDetailRequests = traceManuOrderUploadRequest.getDetails(); + if (CollUtil.isEmpty(traceManuDetailRequests)) { + return ResultVOUtils.error(500, "UDI码关联关系不能为空!"); + } + List traceManuCodeRelEntities = new ArrayList<>(); + traceManuDetailRequests.stream().forEach(item -> { + TraceManuCodeRelEntity traceManuCodeRelEntity = new TraceManuCodeRelEntity(); + BeanUtils.copyProperties(item, traceManuCodeRelEntity); + traceManuCodeRelEntity.setManuOrderIdFk(traceManuOrderEntity.getId()); + traceManuCodeRelEntity.setManuOrderNo(traceManuOrderEntity.getRecordCode()); + traceManuCodeRelEntity.setId(IdUtil.getSnowflakeNextId()); + traceManuCodeRelEntities.add(traceManuCodeRelEntity); + }); + traceManuOrderService.save(traceManuOrderEntity); + traceManuCodeRelService.saveOrUpdateBatch(traceManuCodeRelEntities); + return ResultVOUtils.success("成功"); + } + + } diff --git a/src/main/java/com/glxp/api/controller/trace/TraceOrderController.java b/src/main/java/com/glxp/api/controller/trace/TraceOrderController.java index c434fc7..cce70da 100644 --- a/src/main/java/com/glxp/api/controller/trace/TraceOrderController.java +++ b/src/main/java/com/glxp/api/controller/trace/TraceOrderController.java @@ -1,23 +1,29 @@ package com.glxp.api.controller.trace; +import cn.hutool.core.util.IdUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; +import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.controller.BaseController; -import com.glxp.api.entity.auth.AuthAdmin; +import com.glxp.api.entity.trace.TraceOrderEntity; import com.glxp.api.req.trace.TraceOrderDetailRequest; -import com.glxp.api.req.trace.TraceOrderRequest; +import com.glxp.api.req.trace.TraceOrderUploadRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.trace.TraceOrderResponse; -import com.glxp.api.res.trace.TraceRecordResponse; import com.glxp.api.service.trace.TraceOrderService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; import javax.annotation.Resource; +import java.util.Date; import java.util.List; @ApiIgnore @@ -38,4 +44,22 @@ public class TraceOrderController extends BaseController { pageSimpleResponse.setList(traceOrderResponses); return ResultVOUtils.success(pageSimpleResponse); } + + + //客户端出入库单据上传接口 + @AuthRuleAnnotation("udi/trace/order/upload") + @PostMapping("udi/trace/order/upload") + public BaseResponse uploadOrder(@RequestBody TraceOrderUploadRequest traceOrderUploadRequest, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + TraceOrderEntity traceOrderEntity = new TraceOrderEntity(); + BeanUtils.copyProperties(traceOrderUploadRequest, traceOrderEntity); + traceOrderEntity.setId(IdUtil.getSnowflakeNextId()); + traceOrderEntity.setUpdateTime(new Date()); + traceOrderService.save(traceOrderEntity); + return ResultVOUtils.success("上传成功"); + } + + } diff --git a/src/main/java/com/glxp/api/controller/trace/UdiTraceController.java b/src/main/java/com/glxp/api/controller/trace/UdiTraceController.java index f19511f..6e37b2b 100644 --- a/src/main/java/com/glxp/api/controller/trace/UdiTraceController.java +++ b/src/main/java/com/glxp/api/controller/trace/UdiTraceController.java @@ -10,4 +10,8 @@ import springfox.documentation.annotations.ApiIgnore; @RestController @Slf4j public class UdiTraceController extends BaseController { + + + + } diff --git a/src/main/java/com/glxp/api/entity/trace/TraceManuCodeRelEntity.java b/src/main/java/com/glxp/api/entity/trace/TraceManuCodeRelEntity.java index 396e119..d713171 100644 --- a/src/main/java/com/glxp/api/entity/trace/TraceManuCodeRelEntity.java +++ b/src/main/java/com/glxp/api/entity/trace/TraceManuCodeRelEntity.java @@ -64,10 +64,16 @@ public class TraceManuCodeRelEntity implements Serializable { private Integer bzcj; /** - * 生产订单号外键 + * 生产订单号 */ - @TableField(value = "manuOrderFk") - private Integer manuOrderFk; + @TableField(value = "manuOrderNo") + private String manuOrderNo; + /** + * 生产订单号ID外键 + */ + @TableField(value = "manuOrderIdFk") + private Long manuOrderIdFk; + private static final long serialVersionUID = 1L; } diff --git a/src/main/java/com/glxp/api/entity/trace/TraceManuOrderEntity.java b/src/main/java/com/glxp/api/entity/trace/TraceManuOrderEntity.java index 0fd0e04..870cade 100644 --- a/src/main/java/com/glxp/api/entity/trace/TraceManuOrderEntity.java +++ b/src/main/java/com/glxp/api/entity/trace/TraceManuOrderEntity.java @@ -86,8 +86,8 @@ public class TraceManuOrderEntity implements Serializable { /** * 查询记录号外键 */ - @TableField(value = "recordCodeFk") - private String recordCodeFk; + @TableField(value = "recordCode") + private String recordCode; /** diff --git a/src/main/java/com/glxp/api/entity/trace/TraceOrderEntity.java b/src/main/java/com/glxp/api/entity/trace/TraceOrderEntity.java index 9c149f1..6f7b848 100644 --- a/src/main/java/com/glxp/api/entity/trace/TraceOrderEntity.java +++ b/src/main/java/com/glxp/api/entity/trace/TraceOrderEntity.java @@ -83,7 +83,7 @@ public class TraceOrderEntity implements Serializable { * 客户端类型 */ @TableField(value = "clientType") - private Byte clientType; + private Integer clientType; /** * 退货原因(退货时填写) @@ -141,8 +141,8 @@ public class TraceOrderEntity implements Serializable { /** * 查询记录号外键 */ - @TableField(value = "recordCodeFk") - private String recordCodeFk; + @TableField(value = "recordCode") + private String recordCode; private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/glxp/api/req/trace/TraceManuDetailRequest.java b/src/main/java/com/glxp/api/req/trace/TraceManuDetailRequest.java index 693c8e9..8e98a6d 100644 --- a/src/main/java/com/glxp/api/req/trace/TraceManuDetailRequest.java +++ b/src/main/java/com/glxp/api/req/trace/TraceManuDetailRequest.java @@ -1,13 +1,11 @@ package com.glxp.api.req.trace; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.glxp.api.util.page.ListPageRequest; import lombok.Data; @Data public class TraceManuDetailRequest extends ListPageRequest { + private Long id; /** @@ -54,5 +52,7 @@ public class TraceManuDetailRequest extends ListPageRequest { * 生产订单号外键 */ private String manuOrderNo; + private String manuOrderIdFk; + } diff --git a/src/main/java/com/glxp/api/req/trace/TraceManuOrderUploadRequest.java b/src/main/java/com/glxp/api/req/trace/TraceManuOrderUploadRequest.java new file mode 100644 index 0000000..bd1584d --- /dev/null +++ b/src/main/java/com/glxp/api/req/trace/TraceManuOrderUploadRequest.java @@ -0,0 +1,86 @@ +package com.glxp.api.req.trace; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +public class TraceManuOrderUploadRequest { + + + @NotNull(message = "追溯记录号") + private String recordCode; + + + /** + * 生产订单号 + */ + @NotNull(message = "生产订单号不能为空") + private String billNo; + + /** + * 订单日期 + */ + @NotNull(message = "订单日期不能为空") + private String billDate; + + /** + * 产品名称 + */ + @NotNull(message = "产品名称不能为空") + private String cpmctymc; + + /** + * 规格型号 + */ + private String ggxh; + + /** + * 产品描述 + */ + private String cpms; + + /** + * 注册/备案证号 + */ + private String zczbhhzbapzbh; + + /** + * DI + */ + @NotNull(message = "DI标识不能为空") + private String nameCode; + + /** + * 国家库UUID + */ + @NotNull(message = "国家库UUID不能为空") + private String uuid; + + /** + * 医疗器械注册人 + */ + private String ylqxzcrbarmc; + + /** + * 生产企业 + */ + private String manufactory; + + /** + * 企业信息ID外键 + */ + @NotNull(message = "企业信息ID不能为空") + private Long companyIdFk; + + /** + * 上传者ID + */ + @NotNull(message = "上传者ID不能为空") + private Long uploadUser; + + @NotNull(message = "UDI码关联关系不能为空") + List details; + +} diff --git a/src/main/java/com/glxp/api/req/trace/TraceOrderRequest.java b/src/main/java/com/glxp/api/req/trace/TraceOrderRequest.java index a1330c6..451d533 100644 --- a/src/main/java/com/glxp/api/req/trace/TraceOrderRequest.java +++ b/src/main/java/com/glxp/api/req/trace/TraceOrderRequest.java @@ -63,7 +63,7 @@ public class TraceOrderRequest extends ListPageRequest { /** * 客户端类型 */ - private Byte clientType; + private Integer clientType; /** * 退货原因(退货时填写) diff --git a/src/main/java/com/glxp/api/req/trace/TraceOrderUploadRequest.java b/src/main/java/com/glxp/api/req/trace/TraceOrderUploadRequest.java new file mode 100644 index 0000000..fe61bdf --- /dev/null +++ b/src/main/java/com/glxp/api/req/trace/TraceOrderUploadRequest.java @@ -0,0 +1,110 @@ +package com.glxp.api.req.trace; + +import lombok.Data; + +@Data +public class TraceOrderUploadRequest { + + + /** + * 单据号 + */ + private String billNo; + + /** + * 单据时间 + */ + private String billDate; + + /** + * 1:入库;2:出库 + */ + private Byte inOutType; + + /** + * 单据类型 + */ + private String billType; + + /** + * 发货企业 + */ + private String fromCorp; + + /** + * 发货企业统一社会信用号 + */ + private String fromCorpCreditNum; + + /** + * 收货企业 + */ + private String toCorp; + + /** + * 收货企业统一社会信用号 + */ + private String toCorpCreditNum; + + /** + * 单据创建者 + */ + private Long createUser; + + /** + * 企业信息ID外键 + */ + private Long companyIdFk; + + /** + * 客户端类型 + */ + private Integer clientType; + + /** + * 退货原因(退货时填写) + */ + private String returnReason; + + /** + * 销毁原因(销毁时填写) + */ + private String destoryReason; + + /** + * 执行销毁人(销毁时填写) + */ + private String excuseUser; + + /** + * 执行销毁人证件号(销毁时填写) + */ + private String excuseCode; + + /** + * 监督人姓名【销毁出库时填写】 + */ + private String superviserUser; + + /** + * 监督人证件号【销毁出库时填写】 + */ + private String superviserCode; + + /** + * 上传着ID + */ + private Long uploadUser; + + /** + * 备注 + */ + private String remark; + + /** + * 查询记录号外键 + */ + private String recordCode; + + +} diff --git a/src/main/java/com/glxp/api/res/trace/TraceOrderResponse.java b/src/main/java/com/glxp/api/res/trace/TraceOrderResponse.java index 53eaad7..409af38 100644 --- a/src/main/java/com/glxp/api/res/trace/TraceOrderResponse.java +++ b/src/main/java/com/glxp/api/res/trace/TraceOrderResponse.java @@ -66,7 +66,7 @@ public class TraceOrderResponse { /** * 客户端类型 */ - private Byte clientType; + private Integer clientType; /** * 退货原因(退货时填写) diff --git a/src/main/java/com/glxp/api/service/trace/TraceManuOrderService.java b/src/main/java/com/glxp/api/service/trace/TraceManuOrderService.java index b590758..bab828f 100644 --- a/src/main/java/com/glxp/api/service/trace/TraceManuOrderService.java +++ b/src/main/java/com/glxp/api/service/trace/TraceManuOrderService.java @@ -12,4 +12,8 @@ import java.util.List; public interface TraceManuOrderService extends IService { List filterTraces(TraceManuOrderRequest traceManuOrderRequest); + + + + } diff --git a/src/main/resources/mybatis/mapper/trace/TraceOrderMapper.xml b/src/main/resources/mybatis/mapper/trace/TraceOrderMapper.xml index 093ae4d..bea3e1f 100644 --- a/src/main/resources/mybatis/mapper/trace/TraceOrderMapper.xml +++ b/src/main/resources/mybatis/mapper/trace/TraceOrderMapper.xml @@ -9,7 +9,7 @@ LEFT JOIN user_company uc ON uc.id = tor.companyIdFk LEFT JOIN (SELECT tr.recordCode,trd.* FROM trace_record tr - LEFT JOIN trace_record_detail trd ON trd.recordIdFk = tr.id) trmid ON trmid.recordCode = tor.recordCodeFk + LEFT JOIN trace_record_detail trd ON trd.recordIdFk = tr.id) trmid ON trmid.recordCode = tor.recordCode and udiCode = #{udiCode} diff --git a/src/main/resources/mybatis/mapper/trace/TraceRecordMapper.xml b/src/main/resources/mybatis/mapper/trace/TraceRecordMapper.xml index ef309bf..5ff73a5 100644 --- a/src/main/resources/mybatis/mapper/trace/TraceRecordMapper.xml +++ b/src/main/resources/mybatis/mapper/trace/TraceRecordMapper.xml @@ -3,11 +3,13 @@