diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java index 88475046..54f84451 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java @@ -159,7 +159,7 @@ public class IoOrderDetailBizController extends BaseController { // todo 查询产品是否已经通过认证 if (isVailCert && udiRelevanceResponse.isNeedCert()) { - SupProductEntity supProductEntity = supProductService.findByManufactury(udiRelevanceResponse.getCpmctymc(), udiRelevanceResponse.getManufactory(),""); + SupProductEntity supProductEntity = supProductService.findByManufactury(udiRelevanceResponse.getCpmctymc(), udiRelevanceResponse.getManufactory(), ""); if (supProductEntity != null && (supProductEntity.getAuditStatus() == ConstantStatus.AUDIT_PASS || supProductEntity.getAuditStatus() == ConstantStatus.AUDIT_CHANGE_PASS)) { } else { @@ -559,6 +559,8 @@ public class IoOrderDetailBizController extends BaseController { ioOrderInvoiceEntity.setProductDate(ioOrderDetailBizEntity.getProductDate()); ioOrderInvoiceEntity.setExpireDate(ioOrderDetailBizEntity.getExpireDate()); ioOrderInvoiceEntity.setBizIdFk(ioOrderDetailBizEntity.getId()); + ioOrderInvoiceEntity.setCreateTime(new Date()); + ioOrderInvoiceEntity.setUpdateTime(new Date()); boolean b = ioOrderInvoiceService.insertInvoice(ioOrderInvoiceEntity); return ResultVOUtils.success("成功"); diff --git a/src/main/java/com/glxp/api/controller/sync/SpsSyncDownloadController.java b/src/main/java/com/glxp/api/controller/sync/SpsSyncDownloadController.java index bc80ed6c..a0431e99 100644 --- a/src/main/java/com/glxp/api/controller/sync/SpsSyncDownloadController.java +++ b/src/main/java/com/glxp/api/controller/sync/SpsSyncDownloadController.java @@ -9,10 +9,7 @@ import com.glxp.api.constant.BasicProcessStatus; import com.glxp.api.constant.Constant; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.controller.purchase.PurOrderController; -import com.glxp.api.dao.inout.IoCodeTempDao; -import com.glxp.api.dao.inout.IoOrderDao; -import com.glxp.api.dao.inout.IoOrderDetailBizDao; -import com.glxp.api.dao.inout.IoOrderDetailCodeDao; +import com.glxp.api.dao.inout.*; import com.glxp.api.dao.purchase.PurOrderDao; import com.glxp.api.dao.purchase.PurOrderDetailDao; import com.glxp.api.entity.inout.*; @@ -26,6 +23,8 @@ import com.glxp.api.req.sync.SpsSyncDataRequest; import com.glxp.api.res.sync.SpsSyncBusOrderResponse; import com.glxp.api.res.sync.SpsSyncOrderResponse; import com.glxp.api.res.system.SyncDataSetResponse; +import com.glxp.api.service.inout.IoAddInoutService; +import com.glxp.api.service.inout.IoCheckInoutService; import com.glxp.api.service.inout.IoOrderService; import com.glxp.api.service.sync.BasicDownloadService; import com.glxp.api.service.sync.BasicExportService; @@ -59,6 +58,10 @@ public class SpsSyncDownloadController { SqlSessionFactory sqlSessionFactory; @Resource IoOrderService orderService; + @Resource + IoAddInoutService addInoutService; + @Resource + IoCheckInoutService ioCheckInoutService; // 下发单据,生成单据任务由中继服务,UDI管理系统下载 @@ -85,7 +88,7 @@ public class SpsSyncDownloadController { } // 接收中继服务、UDI管理系统上传单据 - @AuthRuleAnnotation("sps/sync/order/upload") +// @AuthRuleAnnotation("sps/sync/order/upload") @PostMapping("/sps/sync/order/upload") public BaseResponse save(@RequestBody @Valid SpsSyncOrderResponse syncDataResponse) { BasicDownloadStatusEntity basicDownloadStatusEntity = new BasicDownloadStatusEntity(); @@ -111,6 +114,8 @@ public class SpsSyncDownloadController { if (temp == null) { orderEntity.setId(null); mapper.insert(orderEntity); + + //更新码详情 if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailCodeEntities())) { IoCodeTempDao codeMappert = batchSession.getMapper(IoCodeTempDao.class); List warehouseEntityList = syncDataResponse.getCodeEntities(); @@ -124,6 +129,7 @@ public class SpsSyncDownloadController { } } + //更新业务详情 if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailBizEntities())) { IoOrderDetailBizDao orderDetailBizDao = batchSession.getMapper(IoOrderDetailBizDao.class); List orderDetailBizEntities = syncDataResponse.getOrderDetailBizEntities(); @@ -134,17 +140,48 @@ public class SpsSyncDownloadController { } } + //更新码详情 if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailCodeEntities())) { IoOrderDetailCodeDao orderDetailCodeDao = batchSession.getMapper(IoOrderDetailCodeDao.class); List orderDetailCodeEntities = syncDataResponse.getOrderDetailCodeEntities(); - for (IoOrderDetailCodeEntity detailCodeEntity : orderDetailCodeEntities) { - if (detailCodeEntity.getOrderIdFk().equals(orderEntity.getBillNo())) { - orderDetailCodeDao.insert(detailCodeEntity); + for (IoOrderDetailCodeEntity codeEntity : orderDetailCodeEntities) { + if (codeEntity.getOrderIdFk().equals(orderEntity.getBillNo())) { + orderDetailCodeDao.insert(codeEntity); + } + } + } + + + //更新结果详情 + if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailResultEntities())) { + IoOrderDetailResultDao orderDetailResultDao = batchSession.getMapper(IoOrderDetailResultDao.class); + List orderDetailResultEntities = syncDataResponse.getOrderDetailResultEntities(); + for (IoOrderDetailResultEntity detailResultEntity : orderDetailResultEntities) { + if (detailResultEntity.getOrderIdFk().equals(orderEntity.getBillNo())) { + orderDetailResultDao.insert(detailResultEntity); + } + } + } + + + //更新发票信息 + if (CollUtil.isNotEmpty(syncDataResponse.getOrderInvoiceEntities())) { + IoOrderInvoiceMapper orderInvoiceMapper = batchSession.getMapper(IoOrderInvoiceMapper.class); + List orderInvoiceEntities = syncDataResponse.getOrderInvoiceEntities(); + for (IoOrderInvoiceEntity orderInvoiceEntity : orderInvoiceEntities) { + if (orderInvoiceEntity.getOrderIdFk().equals(orderEntity.getBillNo())) { + orderInvoiceMapper.insert(orderInvoiceEntity); } } } batchSession.commit(); + orderEntity = orderService.findByBillNo(orderEntity.getBillNo()); + addInoutService.dealProcess(orderEntity); + orderEntity = orderService.findByBillNo(orderEntity.getBillNo()); + if (orderEntity.getStatus() != ConstantStatus.ORDER_STATS_ERROR && !ioCheckInoutService.checkManual(orderEntity.getBillNo())) { + ioCheckInoutService.check(orderEntity.getBillNo()); + } } } batchSession.commit(); @@ -152,8 +189,12 @@ public class SpsSyncDownloadController { String logs = ""; if (CollUtil.isNotEmpty(syncDataResponse.getOrderEntities())) logs = logs + "单据:" + syncDataResponse.getOrderEntities().size() + "条\n"; - if (CollUtil.isNotEmpty(syncDataResponse.getOrderEntities())) - logs = logs + "单据详情:" + syncDataResponse.getOrderDetailBizEntities().size() + "条\n"; + if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailBizEntities())) + logs = logs + "业务详情:" + syncDataResponse.getOrderDetailBizEntities().size() + "条\n"; + if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailCodeEntities())) + logs = logs + "单据扫码详情:" + syncDataResponse.getOrderDetailCodeEntities().size() + "条\n"; + if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailResultEntities())) + logs = logs + "单据结果详情:" + syncDataResponse.getOrderDetailResultEntities().size() + "条\n"; if (CollUtil.isNotEmpty(syncDataResponse.getCodeEntities())) logs = logs + "单据条码信息:" + syncDataResponse.getCodeEntities().size() + "条\n"; remark.append(logs); @@ -168,6 +209,7 @@ public class SpsSyncDownloadController { basicDownloadStatusEntity.setStatus(ConstantStatus.SYNC_STATUS_SUCCESS); basicDownloadService.updateDownloadStatus(basicDownloadStatusEntity); + return ResultVOUtils.success("上传成功!"); } diff --git a/src/main/java/com/glxp/api/idc/utils/TableUtils.java b/src/main/java/com/glxp/api/idc/utils/TableUtils.java index 1d1ff6e0..7142172f 100644 --- a/src/main/java/com/glxp/api/idc/utils/TableUtils.java +++ b/src/main/java/com/glxp/api/idc/utils/TableUtils.java @@ -6,7 +6,7 @@ package com.glxp.api.idc.utils; public class TableUtils { /*同步表,格式:同步设置表列名/同步设置表列名(子表时设置,主表不设置)/主表唯一列(多列逗号分隔)/主表关联列/子表关联列/数据库实际表/时间列/图片或文件列/数据条件/说明*/ -//同步设置表字段(主表设置)/同步设置表字段(字表设置)/表名/主表唯一键/ + //同步设置表字段(主表设置)/同步设置表字段(字表设置)/表名/主表唯一键/ private static final String[] SYNC_TABLES = { "basicProducts//basic_udirel/id///updateTime///耗材字典", "/basicProducts/basic_products/id/uuid/uuid////耗材字典信息详情", @@ -21,12 +21,13 @@ public class TableUtils { "/productCert/sup_cert/id/productId/productIdFk/updateTime/filePath/type=3/产品资质证书信息", "//udicompany/id///updateTime///国际库医疗器械注册人信息", "basicType//basic_hosp_type/id///updateTime///物资字典分类", + "//io_order_invoice/id///updateTime/filePath//发票信息", }; /** - * "//auth_dept/id///updateTime///部门信息", - * "//auth_warehouse/id///updateTime///仓库信息", + * "//auth_dept/id///updateTime///部门信息", + * "//auth_warehouse/id///updateTime///仓库信息", * "typeThird//thr_bustype_origin/id///updateTime///第三方单据类型", * "basicThirdCorp//thr_corp/id///updateTime///第三方往来单位", * "//thr_dept/id///updateTime///第三方部门", diff --git a/src/main/java/com/glxp/api/res/sync/SpsSyncOrderResponse.java b/src/main/java/com/glxp/api/res/sync/SpsSyncOrderResponse.java index e46dea35..56aa1312 100644 --- a/src/main/java/com/glxp/api/res/sync/SpsSyncOrderResponse.java +++ b/src/main/java/com/glxp/api/res/sync/SpsSyncOrderResponse.java @@ -15,6 +15,7 @@ public class SpsSyncOrderResponse { List orderDetailBizEntities; List orderDetailCodeEntities; List orderDetailResultEntities; + List orderInvoiceEntities; } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java index e6c9f016..9e6a430e 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java @@ -11,6 +11,7 @@ import com.glxp.api.service.inout.IoOrderInvoiceService; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.Date; import java.util.List; @Service @@ -34,6 +35,7 @@ public class IoOrderInvoiceServiceImpl implements IoOrderInvoiceService { public boolean updateByInvId(IoOrderInvoiceRequest ioOrderInvoiceRequest) { IoOrderInvoiceEntity ioOrderInvoiceEntity = new IoOrderInvoiceEntity(); BeanUtils.copyProperties(ioOrderInvoiceRequest, ioOrderInvoiceEntity); + ioOrderInvoiceEntity.setUpdateTime(new Date()); return this.ioOrderInvoiceMapper.updateById(ioOrderInvoiceEntity) > 0; } diff --git a/src/main/java/com/glxp/api/service/sync/SpsSyncDownloadService.java b/src/main/java/com/glxp/api/service/sync/SpsSyncDownloadService.java index 7feb95ad..93aa7e6d 100644 --- a/src/main/java/com/glxp/api/service/sync/SpsSyncDownloadService.java +++ b/src/main/java/com/glxp/api/service/sync/SpsSyncDownloadService.java @@ -47,6 +47,9 @@ public class SpsSyncDownloadService { @Resource BasicExportTimeService basicExportTimeService; + @Resource + IoOrderInvoiceService orderInvoiceService; + public void syncOrderUpdateTime() { log.info("创建单据同步任务"); @@ -90,6 +93,7 @@ public class SpsSyncDownloadService { List orderDetailBizEntities = new ArrayList<>(); List orderDetailCodeEntities = new ArrayList<>(); List orderDetailResultEntities = new ArrayList<>(); + List orderInvoiceEntities = new ArrayList<>(); if (CollUtil.isNotEmpty(orderEntities)) { for (IoOrderEntity orderEntity : orderEntities) { @@ -114,12 +118,19 @@ public class SpsSyncDownloadService { if (CollUtil.isNotEmpty(detailResultEntities)) { orderDetailResultEntities.addAll(detailResultEntities); } + + List invoiceEntities = orderInvoiceService.findByBillNo(orderEntity.getBillNo()); + if (CollUtil.isNotEmpty(invoiceEntities)) { + orderInvoiceEntities.addAll(invoiceEntities); + } + } } syncOrderResponse.setCodeEntities(codeEntities); syncOrderResponse.setOrderDetailBizEntities(orderDetailBizEntities); syncOrderResponse.setOrderDetailCodeEntities(orderDetailCodeEntities); syncOrderResponse.setOrderDetailResultEntities(orderDetailResultEntities); + syncOrderResponse.setOrderInvoiceEntities(orderInvoiceEntities); return ResultVOUtils.success(syncOrderResponse); } diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml index 712fbb3f..ab5ed1b1 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml @@ -91,19 +91,19 @@ - AND ((`action` in + AND (`action` in #{item} and status = 10) - or (( + or ( `action` in #{item} - ) and status = 7 - )) + and status = 7 + ) diff --git a/src/main/resources/schemas/schema_v2.1.sql b/src/main/resources/schemas/schema_v2.1.sql index 2a5af56a..947b9db3 100644 --- a/src/main/resources/schemas/schema_v2.1.sql +++ b/src/main/resources/schemas/schema_v2.1.sql @@ -143,5 +143,7 @@ CALL Pro_Temp_ColumnWork('auth_warehouse', 'updateTime', 'datetime ', 1); CALL Pro_Temp_ColumnWork('sync_data_set', 'basicType', 'tinyint', 1); CALL Pro_Temp_ColumnWork('sync_data_set', 'basicDept', 'tinyint', 1); +# CALL Pro_Temp_ColumnWork('sup_cert_set', 'foreign', 'tinyint', 3); +# CALL Pro_Temp_ColumnWork('sup_cert_set', 'needForeign', 'tinyint', 1);