From beb5b55fd4eafb0857a4aa5a74be65310fc762f2 Mon Sep 17 00:00:00 2001 From: wangwei <1610949092@qq.com> Date: Mon, 27 Mar 2023 14:51:18 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=89=93=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application-pro.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/resources/application-pro.yml b/src/main/resources/application-pro.yml index c2300674a..b478cd74c 100644 --- a/src/main/resources/application-pro.yml +++ b/src/main/resources/application-pro.yml @@ -3,7 +3,7 @@ server: spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - jdbc-url: jdbc:mysql://192.168.0.66:3364/udi_wms_glxp?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + jdbc-url: jdbc:mysql://192.168.0.66:3364/udi_wms_wmd?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root password: Glxp@6066 hikari: @@ -48,3 +48,8 @@ UDI_KEY: 6b137c66-6286-46c6-8efa-c2f5dd9237df UDI_SERVER_URL: https://www.udims.com/UDI_DL_Server_test SPMS_KEY: lCOdWCBKS6Kw45wdnnqUTELXyuSKnXEs +back_file_path: D:/share/udisps/back/ +API_KEY: 1101 +API_SECRET: zBITspLNvuoEd4FaamlSoqxRHmNsmQ9L + + From fe27449cb7b93c8f201cf3071246c91832d06443 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Mon, 27 Mar 2023 15:15:27 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=8D=95=E6=8D=AE=E5=A4=8D=E5=88=B6?= =?UTF-8?q?=E5=8A=9F=E8=83=BD,=E4=B8=AD=E7=BB=A7=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/inout/IoOrderController.java | 21 ++- src/main/java/com/glxp/api/dao/idc/DbDao.java | 146 ++++++++---------- .../api/idc/controller/IdcController.java | 92 ++++++----- .../com/glxp/api/idc/service/IdcService.java | 3 +- .../api/idc/service/impl/IdcServiceImpl.java | 146 +++++++++--------- .../glxp/api/idc/thread/AsyncFetchTask.java | 53 +++++++ .../com/glxp/api/idc/thread/AsyncIdcTask.java | 2 +- .../java/com/glxp/api/idc/utils/DBAUtils.java | 4 +- src/main/resources/application-dev.yml | 4 +- src/main/resources/application-pro.yml | 2 +- 10 files changed, 268 insertions(+), 205 deletions(-) create mode 100644 src/main/java/com/glxp/api/idc/thread/AsyncFetchTask.java diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java index e5427161c..6a5226328 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -12,6 +12,7 @@ import com.glxp.api.constant.Constant; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.controller.BaseController; import com.glxp.api.entity.auth.InvBusUserEntity; +import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.basic.EntrustReceEntity; import com.glxp.api.entity.inout.*; @@ -24,6 +25,7 @@ import com.glxp.api.res.inout.IoOrderDetailBizResponse; import com.glxp.api.res.inout.IoOrderResponse; import com.glxp.api.res.inout.PdaBusOrderResponse; import com.glxp.api.service.auth.InvBusUserService; +import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.basic.EntrustReceService; import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.inout.*; @@ -472,23 +474,36 @@ public class IoOrderController extends BaseController { @Resource GennerOrderUtils gennerOrderUtils; + @Resource + InvWarehouseService invWarehouseService; @AuthRuleAnnotation("") @PostMapping("/udiwms/stock/order/change") public BaseResponse stockOrderChange(@RequestBody AddOrderChangeRequest addOrderChangeRequest) { + IoOrderEntity originOrder = orderService.findByBillNo(addOrderChangeRequest.getOrderId()); IoOrderEntity newOrder = new IoOrderEntity(); List originCodes = codeService.findByOrderId(originOrder.getBillNo()); newOrder.setCreateTime(new Date()); newOrder.setFromCorp(addOrderChangeRequest.getFromCorp()); + newOrder.setFromInvCode(addOrderChangeRequest.getFromInvCode()); - newOrder.setFromDeptCode(addOrderChangeRequest.getFromDeptCode()); + if (addOrderChangeRequest.getFromInvCode() != null) { + InvWarehouseEntity fromInv = invWarehouseService.findByInvSubByCode(addOrderChangeRequest.getFromInvCode()); + newOrder.setFromDeptCode(fromInv.getParentId()); + } + + + InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(addOrderChangeRequest.getInvCode()); newOrder.setInvCode(addOrderChangeRequest.getInvCode()); - newOrder.setDeptCode(addOrderChangeRequest.getDeptCode()); + newOrder.setDeptCode(invWarehouseEntity.getParentId()); newOrder.setCorpOrderId(CustomUtil.getId() + "x"); - newOrder.setMainAction(addOrderChangeRequest.getMainAction()); + + BasicBussinessTypeEntity basicBussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderChangeRequest.getAction()); newOrder.setAction(addOrderChangeRequest.getAction()); + newOrder.setMainAction(basicBussinessTypeEntity.getMainAction()); + newOrder.setExportStatus(0); //设置导出状态为未导出 newOrder.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT);//设置单据未草稿状态 newOrder.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE); //设置验收状态为未验收 diff --git a/src/main/java/com/glxp/api/dao/idc/DbDao.java b/src/main/java/com/glxp/api/dao/idc/DbDao.java index fcce7e00a..de642a8d9 100644 --- a/src/main/java/com/glxp/api/dao/idc/DbDao.java +++ b/src/main/java/com/glxp/api/dao/idc/DbDao.java @@ -8,82 +8,72 @@ import java.util.Map; /*获取表相关信息*/ @Mapper public interface DbDao { - @Insert("${sql}") - int save(@Param("sql") String sql); - - @Update("${sql}") - int update(@Param("sql") String sql); - - @Delete("${sql}") - int delete(@Param("sql") String sql); - - Map get(@Param("sql") String sql); - - List> list(Map map); - - int count(Map map); - - @Select("select table_name tableName, engine, table_comment tableComment, create_time createTime from information_schema.tables" - + " where table_schema = (select database())") - List> listMysql(); - - @Select("select tname as \"tableName\",'oracle' as \"engine\",tname as \"tableComment\",sysdate as \"createTime\" from tab where instr('BIN,ACT',substr(tname,1,3))<1") - List> listOracle(); - - @Select("select name tableName, 'sqlserver' engine, name tableComment, crdate createTime from SYSOBJECTS" - + " WHERE XTYPE='U' ORDER BY NAME") - List> listSqlserver(); - - @Select("select count(*) from information_schema.tables where table_schema = (select database())") - int countMysql(Map map); - - @Select("select count(*) from tab where tabtype='TABLE' and instr('BIN,ACT',substr(tname,1,3))<1") - int countOracle(Map map); - - @Select("select count(*) from SYSOBJECTS where XTYPE='U'") - int countSqlserver(Map map); - - @Select("select table_name tableName, engine, table_comment tableComment, create_time createTime from information_schema.tables \r\n" - + " where table_schema = (select database()) and lower(table_name) = lower(#{tableName})") - Map getMysql(String tableName); - - @Select("select tname as \"tableName\",'oracle' \"engine\",tname \"tableComment\",sysdate \"createTime\" from tab \r\n" - + " where tname= upper(#{tableName})") - Map getOracle(String tableName); - - @Select("select name tableName, 'sqlserver' engine, name tableComment, crdate createTime from SYSOBJECTS" - + " WHERE lower(name)=lower(#{tableName})") - Map getSqlserver(String tableName); - - @Select("select column_name columnName, data_type dataType, column_comment columnComment, column_key columnKey, extra as extra,table_name tableName, " - + "concat('(',if(NUMERIC_PRECISION>0,CONVERT(NUMERIC_PRECISION,CHAR),''),if(NUMERIC_SCALE>0,concat(',',CONVERT(NUMERIC_SCALE,CHAR)),''),if(CHARACTER_MAXIMUM_LENGTH>0,CONVERT(CHARACTER_MAXIMUM_LENGTH,CHAR),''),')') as width " - + " from information_schema.columns\r\n" - + " where lower(table_name) = lower(#{tableName}) and table_schema = (select database()) order by ordinal_position") - List> listColumnsMysql(String tableName); - - @Select("select column_name columnName, data_type dataType, column_comment columnComment, column_key columnKey, extra as extra,table_name tableName, " - + "concat('(',if(NUMERIC_PRECISION>0,CONVERT(NUMERIC_PRECISION,CHAR),''),if(NUMERIC_SCALE>0,concat(',',CONVERT(NUMERIC_SCALE,CHAR)),''),if(CHARACTER_MAXIMUM_LENGTH>0,CONVERT(CHARACTER_MAXIMUM_LENGTH,CHAR),''),')') as width " - + " from information_schema.columns\r\n" - + " where lower(table_name) = lower(#{tableName}) column_key='PRI' and table_schema = (select database()) order by ordinal_position") - List> listKeyMysql(String tableName); - - @Select("select cname as \"columnName\",coltype as \"dataType\",cname \"columnComment\",'' as \"columnKey\",'' as \"extra\",tname \"tableName\", " - + " '('||decode(sign(PRECISION),1,to_char(PRECISION),'')||decode(sign(SCALE),1,','||to_char(SCALE),'')||decode(sign(PRECISION),1,'',decode(sign(SCALE),1,'',to_char(width)))||')' as width " - + "from col \r\n" - + " where tname = upper(#{tableName}) order by colno") - List> listColumnsOracle(String tableName); - - @Select("select syscolumns.name columnName, systypes.name as dataType, syscolumns.name columnComment, \r\n" - + "(select 'PRI' from sysindexkeys,sysobjects,sysindexes where sysindexkeys.id=syscolumns.id and sysindexkeys.colid=syscolumns.colid \r\n" - + " and sysindexkeys.id=syscolumns.id and sysindexes.id=syscolumns.id and sysindexkeys.indid=sysindexes.indid and sysobjects.name=sysindexes.name and sysobjects.xtype='PK'" - + ") columnKey,'' extra,#{tableName} tableName, " - + "'('+case when syscolumns.xprec>0 then cast(syscolumns.xprec as varchar) else '' end + case when syscolumns.xscale>0 then ','+cast(syscolumns.xscale as varchar) else '' end +case when syscolumns.xscale>0 or syscolumns.xprec>0 then '' else cast(syscolumns.length as varchar) end +')' as width " - + " from syscolumns,\r\n" - + " systypes" - + " where syscolumns.xtype=systypes.xtype and syscolumns.id = OBJECT_ID(#{tableName}) order by syscolumns.colid") - List> listColumnsSqlserver(String tableName); - - - @Select("select c.column_name as \"columnName\" from user_constraints con,user_cons_columns c where con.constraint_name=c.constraint_name and con.constraint_type='P' and c.table_name=upper(#{tableName})") - List> listKeyOracle(String tableName); + @Insert("${sql}") + int save(@Param("sql")String sql); + + @Update("${sql}") + int update(@Param("sql")String sql); + + @Delete("${sql}") + int delete(@Param("sql")String sql); + + Map get(@Param("sql")String sql); + List> list(Map map); + int count(Map map); + + @Select("select table_name tableName, engine, table_comment tableComment, create_time createTime from information_schema.tables" + + " where table_schema = (select database())") + List> listMysql(); + + @Select("select tname as \"tableName\",'oracle' as \"engine\",tname as \"tableComment\",sysdate as \"createTime\" from tab where instr('BIN,ACT',substr(tname,1,3))<1") + List> listOracle(); + + @Select("select name tableName, 'sqlserver' engine, name tableComment, crdate createTime from SYSOBJECTS" + + " WHERE XTYPE='U' ORDER BY NAME") + List> listSqlserver(); + + @Select("select count(*) from information_schema.tables where table_schema = (select database())") + int countMysql(Map map); + @Select("select count(*) from tab where tabtype='TABLE' and instr('BIN,ACT',substr(tname,1,3))<1") + int countOracle(Map map); + @Select("select count(*) from SYSOBJECTS where XTYPE='U'") + int countSqlserver(Map map); + @Select("select table_name tableName, engine, table_comment tableComment, create_time createTime from information_schema.tables \r\n" + + " where table_schema = (select database()) and lower(table_name) = lower(#{tableName})") + Map getMysql(String tableName); + @Select("select tname as \"tableName\",'oracle' \"engine\",tname \"tableComment\",sysdate \"createTime\" from tab \r\n" + + " where tname= upper(#{tableName})") + Map getOracle(String tableName); + @Select("select name tableName, 'sqlserver' engine, name tableComment, crdate createTime from SYSOBJECTS" + + " WHERE lower(name)=lower(#{tableName})") + Map getSqlserver(String tableName); + @Select("select column_name columnName, data_type dataType, column_comment columnComment, column_key columnKey, extra as extra,table_name tableName, " + + "concat('(',if(NUMERIC_PRECISION>0,CONVERT(NUMERIC_PRECISION,CHAR),''),if(NUMERIC_SCALE>0,concat(',',CONVERT(NUMERIC_SCALE,CHAR)),''),if(CHARACTER_MAXIMUM_LENGTH>0,CONVERT(CHARACTER_MAXIMUM_LENGTH,CHAR),''),')') as width " + + " from information_schema.columns\r\n" + + " where lower(table_name) = lower(#{tableName}) and table_schema = (select database()) order by ordinal_position") + List> listColumnsMysql(String tableName); + @Select("select column_name columnName, data_type dataType, column_comment columnComment, column_key columnKey, extra as extra,table_name tableName, " + + "concat('(',if(NUMERIC_PRECISION>0,CONVERT(NUMERIC_PRECISION,CHAR),''),if(NUMERIC_SCALE>0,concat(',',CONVERT(NUMERIC_SCALE,CHAR)),''),if(CHARACTER_MAXIMUM_LENGTH>0,CONVERT(CHARACTER_MAXIMUM_LENGTH,CHAR),''),')') as width " + + " from information_schema.columns\r\n" + + " where lower(table_name) = lower(#{tableName}) and column_key='PRI' and table_schema = (select database()) order by ordinal_position") + List> listKeyMysql(String tableName); + @Select("select cname as \"columnName\",coltype as \"dataType\",cname \"columnComment\",'' as \"columnKey\",'' as \"extra\",tname \"tableName\", " + +" '('||decode(sign(PRECISION),1,to_char(PRECISION),'')||decode(sign(SCALE),1,','||to_char(SCALE),'')||decode(sign(PRECISION),1,'',decode(sign(SCALE),1,'',to_char(width)))||')' as width " + + "from col \r\n" + +" where tname = upper(#{tableName}) order by colno") + List> listColumnsOracle(String tableName); + + @Select("select syscolumns.name columnName, systypes.name as dataType, syscolumns.name columnComment, \r\n" + +"(select 'PRI' from sysindexkeys,sysobjects,sysindexes where sysindexkeys.id=syscolumns.id and sysindexkeys.colid=syscolumns.colid \r\n" + +" and sysindexkeys.id=syscolumns.id and sysindexes.id=syscolumns.id and sysindexkeys.indid=sysindexes.indid and sysobjects.name=sysindexes.name and sysobjects.xtype='PK'" + +") columnKey,'' extra,#{tableName} tableName, " + +"'('+case when syscolumns.xprec>0 then cast(syscolumns.xprec as varchar) else '' end + case when syscolumns.xscale>0 then ','+cast(syscolumns.xscale as varchar) else '' end +case when syscolumns.xscale>0 or syscolumns.xprec>0 then '' else cast(syscolumns.length as varchar) end +')' as width " + + " from syscolumns,\r\n" + + " systypes" + + " where syscolumns.xtype=systypes.xtype and syscolumns.id = OBJECT_ID(#{tableName}) order by syscolumns.colid") + List> listColumnsSqlserver(String tableName); + + + @Select("select c.column_name as \"columnName\" from user_constraints con,user_cons_columns c where con.constraint_name=c.constraint_name and con.constraint_type='P' and c.table_name=upper(#{tableName})") + List> listKeyOracle(String tableName); } diff --git a/src/main/java/com/glxp/api/idc/controller/IdcController.java b/src/main/java/com/glxp/api/idc/controller/IdcController.java index 795e50daa..0540442b6 100644 --- a/src/main/java/com/glxp/api/idc/controller/IdcController.java +++ b/src/main/java/com/glxp/api/idc/controller/IdcController.java @@ -16,55 +16,53 @@ import java.util.Map; */ @RestController public class IdcController { - @Resource - IdcService idcService; - @Resource - DbDao dbDao; + @Resource + IdcService idcService; + @Resource + DbDao dbDao; + /*通用上传接口*/ + //@Log("中继服务数据接收,下级往上级上传") + @RequestMapping(value = "/spssync/common/upload") + public BaseResponse upload(HttpServletRequest request, + @RequestParam("content") String content, + @RequestParam(value = "files", required = false) MultipartFile[] files) { + // + return idcService.receive("U",request, content, files); + } + /*通用下发接口*/ + //@Log("中继服务数据接收,上级往下级下发") + @RequestMapping(value = "/spssync/common/issued") + public BaseResponse issued(HttpServletRequest request, + @RequestParam("content") String content, + @RequestParam(value = "files", required = false) MultipartFile[] files) { + // + return idcService.receive("I",request, content, files); + } - /*通用上传接口*/ -// @Log("中继服务数据接收,下级往上级上传") - @RequestMapping(value = "/spssync/common/upload") - public BaseResponse upload(HttpServletRequest request, - @RequestParam("content") String content, - @RequestParam(value = "files", required = false) MultipartFile[] files) { - // - return idcService.receive("U", request, content, files); - } + //@Log("数据同步测试") + @RequestMapping(value = "/spssync/common/test") + public BaseResponse test(HttpServletRequest request,@RequestBody Map params) { + // + return idcService.send(params); + } - /*通用下发接口*/ -// @Log("中继服务数据接收,上级往下级下发") - @RequestMapping(value = "/spssync/common/issued") - public BaseResponse issued(HttpServletRequest request, - @RequestParam("content") String content, - @RequestParam(value = "files", required = false) MultipartFile[] files) { - // - return idcService.receive("I", request, content, files); - } + //@Log("数据同步任务列表拉取") + @RequestMapping(value = "/spssync/common/list") + public BaseResponse list(HttpServletRequest request,@RequestBody(required = false) Map params) { + return idcService.taskList(request,params); + } - // @Log("数据同步测试") - @RequestMapping(value = "/spssync/common/test") - public BaseResponse test(HttpServletRequest request, @RequestBody Map params) { - // - return idcService.send(params); - } + //@Log("数据同步任务根据任务ID下载数据") + @RequestMapping(value = "/spssync/common/download") + @ResponseBody + public BaseResponse download(HttpServletRequest request,@RequestBody Map params) { + return idcService.download(request,params); + } - // @Log("数据同步任务列表拉取") - @RequestMapping(value = "/spssync/common/list") - public BaseResponse list(HttpServletRequest request, @RequestBody(required = false) Map params) { - return idcService.taskList(request, params); - } - - // @Log("数据同步任务根据任务ID下载数据") - @RequestMapping(value = "/spssync/common/download") - @ResponseBody - public BaseResponse download(HttpServletRequest request, @RequestBody Map params) { - return idcService.download(request, params); - } - - // @Log("数据同步任务根据任务ID,返回下载成功标记") - @RequestMapping(value = "/spssync/common/success") - @ResponseBody - public BaseResponse success(HttpServletRequest request, @RequestBody Map params) { - return idcService.downlaodSuccess(request, params); - } + //@Log("数据同步任务根据任务ID,返回下载成功标记") + @RequestMapping(value = "/spssync/common/success") + @ResponseBody + public BaseResponse success(HttpServletRequest request,@RequestBody Map params) { + return idcService.downlaodSuccess(request,params); + } } diff --git a/src/main/java/com/glxp/api/idc/service/IdcService.java b/src/main/java/com/glxp/api/idc/service/IdcService.java index 297006798..5b8d6e704 100644 --- a/src/main/java/com/glxp/api/idc/service/IdcService.java +++ b/src/main/java/com/glxp/api/idc/service/IdcService.java @@ -22,9 +22,10 @@ public interface IdcService { BaseResponse download(HttpServletRequest request, Map params); - void pull(); + public void asyncFetchTask(); BaseResponse downlaodSuccess(HttpServletRequest request, Map params); public void asyncIdcTask(); + } diff --git a/src/main/java/com/glxp/api/idc/service/impl/IdcServiceImpl.java b/src/main/java/com/glxp/api/idc/service/impl/IdcServiceImpl.java index e5bd76d68..66244a98d 100644 --- a/src/main/java/com/glxp/api/idc/service/impl/IdcServiceImpl.java +++ b/src/main/java/com/glxp/api/idc/service/impl/IdcServiceImpl.java @@ -53,8 +53,7 @@ public class IdcServiceImpl implements IdcService { private String apiKey; @Value("${API_SECRET}") private String apiSecret; - // "sup_company/updateTime//配送供应商资质信息", -// "sup_company/updateTime//配送供应商资质信息", + /*自助平台->UDI*/ private final String[] SPMS_TO_UDI_TABLES = { "basic_udirel/updateTime//耗材字典", "basic_products///耗材字典信息详情", "company_product_relevance/updateTime//供应商关联信息", @@ -63,25 +62,19 @@ public class IdcServiceImpl implements IdcService { "thr_inv_products/updateTime//第三方库存", "thr_inv_warehouse///第三方仓库", "thr_order/updateTime//第三方单据", "thr_order_detail/updateTime//第三方单据详情", "thr_products/updateTime//第三方产品信息", "sup_cert/updateTime/filePath/资质证书信息", - "sup_cert_set/updateTime//供应商资质证书设置", + "sup_cert_set/updateTime//供应商资质证书设置", "sup_company/updateTime//配送供应商资质信息", "sup_manufacturer/updateTime//生产企业资质信息", "sup_product/updateTime//产品资质信息"}; /*UDI->自助平台*/ private final String[] UDI_TO_SPMS_TABLES = { "basic_udirel/updateTime//耗材字典", "basic_products///耗材字典信息详情", "company_product_relevance/updateTime//供应商关联信息", - }; - - - /** - * "basic_udirel/updateTime//耗材字典", "basic_products///耗材字典信息详情", "company_product_relevance/updateTime//供应商关联信息", - * "basic_corp/updateTime//往来单位", "thr_bustype_origin/updateTime//第三方单据类型", - * "thr_corp/updateTime//第三方往来单位", "thr_dept/updateTime//第三方部门", - * "thr_inv_products/updateTime//第三方库存", "thr_inv_warehouse///第三方仓库", - * "thr_order/updateTime//第三方单据", "thr_order_detail/updateTime//第三方单据详情", - * "thr_products/updateTime//第三方产品信息", "sup_cert/updateTime/filePath/资质证书信息", - * "sup_cert_set/updateTime//供应商资质证书设置", - * "sup_manufacturer/updateTime//生产企业资质信息", "sup_product/updateTime//产品资质信息", - * "productinfo/updateTime//国家库UDI数据,udicompany/updateTime//国际库医疗器械注册人信息"}; - */ + "basic_corp/updateTime//往来单位", "thr_bustype_origin/updateTime//第三方单据类型", + "thr_corp/updateTime//第三方往来单位", "thr_dept/updateTime//第三方部门", + "thr_inv_products/updateTime//第三方库存", "thr_inv_warehouse///第三方仓库", + "thr_order/updateTime//第三方单据", "thr_order_detail/updateTime//第三方单据详情", + "thr_products/updateTime//第三方产品信息", "sup_cert/updateTime/filePath/资质证书信息", + "sup_cert_set/updateTime//供应商资质证书设置", "sup_company/updateTime//配送供应商资质信息", + "sup_manufacturer/updateTime//生产企业资质信息", "sup_product/updateTime//产品资质信息", + "productinfo/updateTime//国家库UDI数据,udicompany/updateTime//国际库医疗器械注册人信息"}; private int orderNum = 0; @@ -116,18 +109,27 @@ public class IdcServiceImpl implements IdcService { } /*拉取前一级中继服务数据*/ + @Async @Override - public void pull() { - Map query = new HashMap(); - String result = post(getNextHost("U") + "/spssync/common/list", query); - JSONObject json = JSON.parseObject(result); - if (json.getInteger("code") == 20000 && json.getString("data") != null) { - List list = JSON.parseArray(json.getString("data"), Map.class); - if (list != null) { - for (Map map : list) { - Map params = new HashMap(); - params.put("taskId", map.get("taskId")); - pullData(getNextHost("U") + "/spssync/common/list", params); + public void asyncFetchTask() { + String[] directions = {"I", "U"}; + for (String dir : directions) { + Map query = new HashMap(); + String host = getNextHost(dir); + if (!StringUtils.isEmpty(host)) { + String result = post(host + "/spssync/common/list", query); + if (IDCUtils.isJson(result)) { + JSONObject json = JSON.parseObject(result); + if (json != null && json.getInteger("code") == 20000 && json.getString("data") != null) { + List list = JSON.parseArray(json.getString("data"), Map.class); + if (list != null) { + for (Map map : list) { + Map params = new HashMap(); + params.put("taskId", map.get("taskId")); + fetchData(host + "/spssync/common/list", params); + } + } + } } } } @@ -142,14 +144,14 @@ public class IdcServiceImpl implements IdcService { if (direction.equals("I")) { tNames = SPMS_TO_UDI_TABLES; - } else { + } else if (direction.equals("U")) { tNames = UDI_TO_SPMS_TABLES; } /*为顶级或末级,以及下游或上游连通,可执行*/ Boolean isLastLevel = isLastLevel(direction); Boolean isRelay = isRelay(direction); - logger.info("-----数据传输任务开始----" + direction + "\n"); - logger.info("-----是否顶级或末级服务:" + isLastLevel + ",是否转发数据:" + isRelay + "----\n"); + logger.info("-----数据传输任务开始----" + direction + "\n"); + logger.info("-----是否需要上传或下发数据:" + isLastLevel + ",是否已配置接收地址:" + isRelay + "----\n"); if (isLastLevel && isRelay) { for (String t : tNames) { uploadData(t); @@ -158,18 +160,22 @@ public class IdcServiceImpl implements IdcService { } + private void uploadData(String t) { String[] tn = t.split("/"); String lastUpdateTime = getUpdateTime(tn[0]); Date nowUpdateTime = new Date(); + List> keyList = dbDao.listKeyMysql(tn[0]); + String keyColumn = keyList != null && keyList.size() > 0 ? keyList.get(0).get("columnName").toString() : "id"; Map map = new HashMap(); - String sqlWhere = "not exists (select fkId from idc_record where fkId=" + tn[0] + ".id)"; + String sqlWhere = "not exists (select fkId from idc_record where type='" + tn[0] + "' and fkId=" + tn[0] + "." + keyColumn + ")"; if (!StringUtils.isEmpty(tn[1])) { sqlWhere += " and " + tn[1] + ">=cast('" + lastUpdateTime + "' as datetime)"; -// sqlWhere += " and ifnull(" + tn[1] + ",now())>=cast('" + lastUpdateTime + "' as datetime)"; } else { map.put("isEnd", "1"); } + if (tn[0].equals("thr_order")) + logger.info("-------------------" + sqlWhere); map.put("sqlWhere", sqlWhere); map.put("tableName", tn[0]); map.put("filePathColumn", tn[2]); @@ -185,15 +191,15 @@ public class IdcServiceImpl implements IdcService { Date nextTimePoint = cronSequenceGenerator.next(DateUtil.parseDate(lastUpdateTime)); send = nextTimePoint.before(nowUpdateTime); } - //if(send) { - BaseResponse result = send(map); - if (result.getCode() == 20000) { - setUpdateTime(tn[0], DateUtil.formatDate(nowUpdateTime)); + if (send) { + BaseResponse result = send(map); + if (result.getCode() == 20000) { + setUpdateTime(tn[0], DateUtil.formatDate(nowUpdateTime, "yyyy-MM-dd HH:mm:ss")); + } } - //} } - private String pullData(String url, Map params) { + private String fetchData(String url, Map params) { OkHttpClient client = new OkHttpClient().newBuilder() .build(); MediaType mediaType = MediaType.parse("application/json"); @@ -300,13 +306,20 @@ public class IdcServiceImpl implements IdcService { /*数据同步,从数据库获取数据下发或上传下级中继服务*/ @Override public BaseResponse send(Map params) { + return send(params.get("messageType").toString(), params.get("tableName").toString(), params); + + } @Override public BaseResponse send(String messageType, String tableName, Map params) { - if (sendOnPage(messageType, tableName, params)) - return ResultVOUtils.success(); + try { + if (sendOnPage(messageType, tableName, params)) + return ResultVOUtils.success(); + } catch (Exception ex) { + logger.error(ex.getMessage()); + } return ResultVOUtils.error(9999, ""); } @@ -356,7 +369,7 @@ public class IdcServiceImpl implements IdcService { } private boolean sendOnPage(String messageType, String tableName, Map params) { - boolean success = true; + boolean success = false; Map table = dbDao.getMysql(tableName); if (!(table != null && table.get("tableName") != null)) return false; @@ -376,9 +389,14 @@ public class IdcServiceImpl implements IdcService { String filePathColumn = params.get("filePathColumn") != null ? params.get("filePathColumn").toString() : ""; orderNum++; saveIdcLog(messageType, "", tableName + ">" + where, 0, total); + if (tableName.equals("thr_order")) + logger.info("tableName-->" + tableName + "-->row-->" + total + "-->sqlWhere-->" + where); if (total > 0) { + success = true; params.put("page", 0); params.put("limit", limit); + List> keyList = dbDao.listKeyMysql(tableName); + String keyColumn = keyList != null && keyList.size() > 0 ? keyList.get(0).get("columnName").toString() : "id"; for (int i = 0; i < Math.ceil(total / limit) + 1; i++) { params.replace("page", i * limit); params.replace("limit", limit); @@ -395,7 +413,7 @@ public class IdcServiceImpl implements IdcService { files[m] = list.get(m).get(filePathColumn).toString(); } recordSql += !StringUtils.isEmpty(recordSql) ? "," : ""; - recordSql += "('" + UUID.randomUUID().toString().replaceAll("-", "") + "','" + tableName + "','" + list.get(m).get("id") + "','" + isEnd + "',now())"; + recordSql += "('" + UUID.randomUUID().toString().replaceAll("-", "") + "','" + tableName + "','" + list.get(m).get(keyColumn) + "','" + isEnd + "',now())"; } orderNum++; @@ -417,6 +435,7 @@ public class IdcServiceImpl implements IdcService { } } } + } return success; } @@ -485,6 +504,7 @@ public class IdcServiceImpl implements IdcService { String extra = columnList.get(k).get("extra") != null && columnList.get(k).get("extra").toLowerCase().contains("auto") ? "A" : "N"; String attrName = columnList.get(k).get("attrName"); String value = list.get(i).get(attrName) != null ? list.get(i).get(attrName).toString() : ""; + value = DBAUtils.escape(value); String dataType = columnList.get(k).get("dataType").toLowerCase().contains("char") || columnList.get(k).get("dataType").toLowerCase().contains("text") ? "C" : columnList.get(k).get("dataType").toLowerCase().contains("date") ? "D" : "N"; if (extra.equals("N")) { @@ -583,44 +603,30 @@ public class IdcServiceImpl implements IdcService { /*获取转发服务地址,当前值允许单向,只使用参数upper_server_ip*/ private String getNextHost(String direction) { - SystemParamConfigEntity systemParamConfigEntity = getSystemParamConfig("upper_server_ip", "中继上传服务地址", "", ""); - //direction.equals("U") ? getSystemParamConfig("upper_server_ip","中继上传服务地址" , "",""): - //getSystemParamConfig("sync_idc_lower_host","下级(下发)中继服务地址" , "","") ; - return systemParamConfigEntity.getParamValue(); + SystemParamConfigEntity systemParamConfigEntity = + direction.equals("U") ? getSystemParamConfig("upper_server_host", "自助平台数据接收服务地址", "", "接收由UDI系统上传的数据") : + direction.equals("I") ? getSystemParamConfig("lower_server_host", "UDI系统数据接收服务地址", "", "接收由自助平台下发的数据") : null; + String host = systemParamConfigEntity != null ? systemParamConfigEntity.getParamValue() : ""; + host = !StringUtils.isEmpty(host) && host.substring(host.length() - 1).equals("/") ? host.substring(0, host.length() - 1) : host; + return host; } - /*判断是否最后一级*/ + /*判断是否上传或下发数据*/ private boolean isLastLevel(String direction) { - SystemParamConfigEntity systemParamConfigEntity = - direction.equals("I") ? getSystemParamConfig("sync_idc_top", "是否顶级中继服务(连接自助平台)", "0", "0:否;1:是(是,接收下级上传数据后解析入库)") : - getSystemParamConfig("sync_idc_final", "是否末级中继服务(连接UDI管理系统)", "0", "0:否;1:是(是,接收上级下发数据后解析入库)"); - return systemParamConfigEntity.getParamValue().equals("0") ? false : true; - + return direction.equals("I") || direction.equals("U") ? true : false; } /*检查当前系统为自助平台(下发)还是UDI系统(上传),返回传输方向,如果都未设置,默认返回下发*/ private String getDirection() { - SystemParamConfigEntity systemParamConfigEntity = getSystemParamConfig("sync_idc_top", "是否顶级中继服务(连接自助平台)", "0", "0:否;1:是(是,接收下级上传数据后解析入库)"); - System.out.print(">>>>>>>>>>" + JSON.toJSONString(systemParamConfigEntity) + "\n"); - if (systemParamConfigEntity.getParamValue().equals("0")) { - systemParamConfigEntity = getSystemParamConfig("sync_idc_final", "是否末级中继服务(连接UDI管理系统)", "0", "0:否;1:是(是,接收上级下发数据后解析入库)"); - if (systemParamConfigEntity.getParamValue().equals("1")) - return "U"; - } - return "I"; - + SystemParamConfigEntity systemParamConfigEntity = getSystemParamConfig("sync_system_type", "系统类型", "IDC", "UDI(UDI管理系统,由UDI系统往自助平台上传数据),SPS(自助平台,由自助平台往UDI系统下发数据),IDC(中继服务,只接收,转发或暂存数据供下一级服务拉取数据)"); + return systemParamConfigEntity.getParamValue().equals("UDI") ? "U" : systemParamConfigEntity.getParamValue().equals("SPS") ? "I" : "N"; } /*是否需要转发*/ private boolean isRelay(String direction) { - String relayStr = direction.equals("U") ? "sync_upstream_enable" : "sync_downstream_enable"; + String relayHost = getNextHost(direction); - SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey(relayStr); - if (systemParamConfigEntity != null && systemParamConfigEntity.getParamValue() != null && - systemParamConfigEntity.getParamValue().equals("0")) { - return false; - } - return true; + return !StringUtils.isEmpty(relayHost); } @@ -715,7 +721,7 @@ public class IdcServiceImpl implements IdcService { String updateTime = ""; Map map = dbDao.get("select * from idc_status where id='" + id + "'"); if (map != null && map.get("id") != null) { - updateTime = DateUtil.formatDate(IDCUtils.parseDate(map.get("statusTime").toString())); + updateTime = DateUtil.formatDate(IDCUtils.parseDate(map.get("statusTime").toString()), "yyyy-MM-dd HH:mm:ss"); } else { updateTime = "2000-01-01 00:00:00"; String sql = "insert into idc_status (id,statusTime) values ('" + id + "',cast('" + updateTime + "' as datetime))"; diff --git a/src/main/java/com/glxp/api/idc/thread/AsyncFetchTask.java b/src/main/java/com/glxp/api/idc/thread/AsyncFetchTask.java new file mode 100644 index 000000000..e2178acc3 --- /dev/null +++ b/src/main/java/com/glxp/api/idc/thread/AsyncFetchTask.java @@ -0,0 +1,53 @@ +package com.glxp.api.idc.thread; + +import com.glxp.api.dao.schedule.ScheduledDao; +import com.glxp.api.entity.system.ScheduledEntity; +import com.glxp.api.idc.service.IdcService; +import com.glxp.api.req.system.ScheduledRequest; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.support.CronTrigger; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +@Component +@EnableScheduling +public class AsyncFetchTask implements SchedulingConfigurer { + + final Logger logger = LoggerFactory.getLogger(AsyncIdcTask.class); + + @Resource + private ScheduledDao scheduledDao; + + @Resource + private IdcService idcService; + + @Override + public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { + scheduledTaskRegistrar.addTriggerTask(() -> process(), + triggerContext -> { + ScheduledRequest scheduledRequest = new ScheduledRequest(); + scheduledRequest.setCronName("syncFetch"); + logger.info("syncFetch----------------"); + ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); + String cron = scheduledEntity != null ? scheduledEntity.getCron() : "15 * * * * ?"; + + if (cron.isEmpty()) { + logger.error("cron is null"); + } + logger.info("syncFetch----------------"); + return new CronTrigger(cron).nextExecutionTime(triggerContext); + }); + } + + private void process() { + logger.info("syncFetch----process------------"); + + idcService.asyncFetchTask(); + } + +} diff --git a/src/main/java/com/glxp/api/idc/thread/AsyncIdcTask.java b/src/main/java/com/glxp/api/idc/thread/AsyncIdcTask.java index 2d3792537..000c1c89c 100644 --- a/src/main/java/com/glxp/api/idc/thread/AsyncIdcTask.java +++ b/src/main/java/com/glxp/api/idc/thread/AsyncIdcTask.java @@ -34,7 +34,7 @@ public class AsyncIdcTask implements SchedulingConfigurer { scheduledRequest.setCronName("syncIdc"); logger.info("syncIdc----------------"); ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); - String cron = scheduledEntity != null ? scheduledEntity.getCron() : "0 */5 * * * ?"; + String cron = scheduledEntity != null ? scheduledEntity.getCron() : "0 */30 * * * ?"; if (cron.isEmpty()) { logger.error("cron is null"); diff --git a/src/main/java/com/glxp/api/idc/utils/DBAUtils.java b/src/main/java/com/glxp/api/idc/utils/DBAUtils.java index b72a2cde1..8858fbf3a 100644 --- a/src/main/java/com/glxp/api/idc/utils/DBAUtils.java +++ b/src/main/java/com/glxp/api/idc/utils/DBAUtils.java @@ -390,8 +390,8 @@ public class DBAUtils { public static String escape(String str) { String value = str; if (value != null && value.contains("'")) { - value = value.replaceAll("'", "AAA12345ZZZ"); - value = value.replaceAll("AAA12345ZZZ", "''"); + value = value.replaceAll("'", "CCCBBBAAA12345ZZZYYYXXX"); + value = value.replaceAll("CCCBBBAAA12345ZZZYYYXXX", "''"); } return value; } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 2e0318f58..97b7afa15 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -4,9 +4,9 @@ server: spring: datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver - jdbc-url: jdbc:p6spy:mysql://miradio.51vip.biz:3364/udi_wms_wmd?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root - password: Glxp@6066 + password: 123456 hikari: connection-timeout: 60000 maximum-pool-size: 20 diff --git a/src/main/resources/application-pro.yml b/src/main/resources/application-pro.yml index c2300674a..c11712e52 100644 --- a/src/main/resources/application-pro.yml +++ b/src/main/resources/application-pro.yml @@ -3,7 +3,7 @@ server: spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - jdbc-url: jdbc:mysql://192.168.0.66:3364/udi_wms_glxp?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + jdbc-url: jdbc:mysql://192.168.0.66:3364/udi_wms_wmd?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root password: Glxp@6066 hikari: From 098ada84c9c4c7374be759725d910619345b1db4 Mon Sep 17 00:00:00 2001 From: x_z Date: Mon, 27 Mar 2023 16:36:30 +0800 Subject: [PATCH 3/3] =?UTF-8?q?1.=E6=8F=90=E4=BA=A4=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E5=B7=A1=E6=A3=80=EF=BC=8C=E7=BB=B4=E4=BF=9D=E7=AD=89=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/api/common/req/UpdateRequest.java | 31 +++++ .../inv/DeptDeviceDetailController.java | 2 +- .../inv/DeviceInspectOrderController.java | 116 ++++++++++++++++++ .../inv/DeviceInspectPlanController.java | 116 ++++++++++++++++++ .../inv/DeviceInspectSetController.java | 68 ++++++++++ .../inv/DeviceRepairOrderController.java | 115 +++++++++++++++++ .../api/dao/inv/DeviceInspectOrderDao.java | 24 ++++ .../api/dao/inv/DeviceInspectPlanDao.java | 12 ++ .../api/dao/inv/DeviceRepairOrderDao.java | 21 ++++ .../inv/FilterDeviceInspectOrderRequest.java | 2 +- .../res/inv/DeviceInspectPlanResponse.java | 12 +- .../{impl => }/DeptDeviceDetailService.java | 2 +- .../inv/DeviceInspectOrderService.java | 65 ++++++++++ .../service/inv/DeviceRepairOrderService.java | 66 ++++++++++ .../inv/impl/DeptDeviceDetailServiceImpl.java | 1 + .../impl/DeviceInspectOrderServiceImpl.java | 104 ++++++++++++++++ .../impl/DeviceInspectPlanServiceImpl.java | 22 +++- .../inv/impl/DeviceInspectSetServiceImpl.java | 2 +- .../impl/DeviceReceiveOrderServiceImpl.java | 1 + .../impl/DeviceRepairOrderServiceImpl.java | 105 ++++++++++++++++ .../mapper/inv/DeviceInspectOrderDao.xml | 76 ++++++++---- .../mapper/inv/DeviceInspectPlanDao.xml | 45 +++++++ .../mapper/inv/DeviceRepairOrderDao.xml | 67 ++++++---- 23 files changed, 1021 insertions(+), 54 deletions(-) create mode 100644 src/main/java/com/glxp/api/common/req/UpdateRequest.java create mode 100644 src/main/java/com/glxp/api/controller/inv/DeviceInspectOrderController.java create mode 100644 src/main/java/com/glxp/api/controller/inv/DeviceInspectPlanController.java create mode 100644 src/main/java/com/glxp/api/controller/inv/DeviceInspectSetController.java create mode 100644 src/main/java/com/glxp/api/controller/inv/DeviceRepairOrderController.java rename src/main/java/com/glxp/api/service/inv/{impl => }/DeptDeviceDetailService.java (96%) create mode 100644 src/main/java/com/glxp/api/service/inv/DeviceInspectOrderService.java create mode 100644 src/main/java/com/glxp/api/service/inv/DeviceRepairOrderService.java create mode 100644 src/main/java/com/glxp/api/service/inv/impl/DeviceInspectOrderServiceImpl.java create mode 100644 src/main/java/com/glxp/api/service/inv/impl/DeviceRepairOrderServiceImpl.java diff --git a/src/main/java/com/glxp/api/common/req/UpdateRequest.java b/src/main/java/com/glxp/api/common/req/UpdateRequest.java new file mode 100644 index 000000000..570b0b295 --- /dev/null +++ b/src/main/java/com/glxp/api/common/req/UpdateRequest.java @@ -0,0 +1,31 @@ +package com.glxp.api.common.req; + +import lombok.Data; + +/** + * 更新审核接口基础参数 + */ +@Data +public class UpdateRequest { + + /** + * ID + */ + private String id; + + /** + * 单号 + */ + private String orderId; + + /** + * 状态 + */ + private Integer status; + + /** + * 审核意见 + */ + private String auditOpinion; + +} diff --git a/src/main/java/com/glxp/api/controller/inv/DeptDeviceDetailController.java b/src/main/java/com/glxp/api/controller/inv/DeptDeviceDetailController.java index 0a33b7480..1bbc14d47 100644 --- a/src/main/java/com/glxp/api/controller/inv/DeptDeviceDetailController.java +++ b/src/main/java/com/glxp/api/controller/inv/DeptDeviceDetailController.java @@ -9,7 +9,7 @@ import com.glxp.api.req.inv.AddDeptDeviceRequest; import com.glxp.api.req.inv.FilterDeptDeviceRequest; import com.glxp.api.req.system.DeleteRequest; import com.glxp.api.res.inv.DeptDeviceDetailResponse; -import com.glxp.api.service.inv.impl.DeptDeviceDetailService; +import com.glxp.api.service.inv.DeptDeviceDetailService; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; diff --git a/src/main/java/com/glxp/api/controller/inv/DeviceInspectOrderController.java b/src/main/java/com/glxp/api/controller/inv/DeviceInspectOrderController.java new file mode 100644 index 000000000..36711332b --- /dev/null +++ b/src/main/java/com/glxp/api/controller/inv/DeviceInspectOrderController.java @@ -0,0 +1,116 @@ +package com.glxp.api.controller.inv; + +import cn.hutool.core.util.StrUtil; +import com.github.pagehelper.PageInfo; +import com.glxp.api.common.req.UpdateRequest; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.entity.inv.DeviceInspectOrderEntity; +import com.glxp.api.req.inv.AddDeviceInspectOrderRequest; +import com.glxp.api.req.inv.FilterDeviceInspectOrderRequest; +import com.glxp.api.req.system.DeleteRequest; +import com.glxp.api.res.inv.DeviceInspectOrderResponse; +import com.glxp.api.service.inv.DeviceInspectOrderService; +import lombok.extern.slf4j.Slf4j; +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 javax.annotation.Resource; +import java.util.List; + +/** + * 设备维保单接口 + */ +@Slf4j +@RestController +public class DeviceInspectOrderController { + + @Resource + private DeviceInspectOrderService deviceInspectOrderService; + + /** + * 查询设备维保单列表 + * + * @param deviceInspectOrderRequest + * @return + */ + @GetMapping("/udiwms/inv/device/inspect/order/filter") + public BaseResponse filterList(FilterDeviceInspectOrderRequest deviceInspectOrderRequest) { + List list = deviceInspectOrderService.filterList(deviceInspectOrderRequest); + PageInfo pageInfo = new PageInfo<>(list); + return ResultVOUtils.page(pageInfo); + } + + /** + * 新增维保单 + * + * @param addDeviceInspectOrderRequest + * @return + */ + @PostMapping("/udiwms/inv/device/inspect/order/add") + public BaseResponse addDeviceInspectOrder(@RequestBody AddDeviceInspectOrderRequest addDeviceInspectOrderRequest) { + if (null == addDeviceInspectOrderRequest) { + return ResultVOUtils.paramVerifyFail(); + } + return deviceInspectOrderService.addDeviceInspectOrder(addDeviceInspectOrderRequest); + } + + /** + * 更新维保单信息 + * + * @param deviceInspectOrderEntity + * @return + */ + @PostMapping("/udiwms/inv/device/inspect/order/update") + public BaseResponse updateDeviceInspectOrder(@RequestBody DeviceInspectOrderEntity deviceInspectOrderEntity) { + if (null == deviceInspectOrderEntity) { + return ResultVOUtils.paramVerifyFail(); + } + return deviceInspectOrderService.updateDeviceInspectOrder(deviceInspectOrderEntity); + } + + /** + * 维保单提交审核 + * + * @param updateRequest + * @return + */ + @PostMapping("/udiwms/inv/device/inspect/order/submitAudit") + public BaseResponse submitAudit(@RequestBody UpdateRequest updateRequest) { + if (null == updateRequest || StrUtil.isBlank(updateRequest.getOrderId())) { + return ResultVOUtils.paramVerifyFail(); + } + return deviceInspectOrderService.submitAudit(updateRequest.getOrderId()); + } + + /** + * 更新维保单状态 + * + * @param updateRequest + * @return + */ + @PostMapping("/udiwms/inv/device/inspect/order/updateStatus") + public BaseResponse updateStatus(@RequestBody UpdateRequest updateRequest) { + if (null == updateRequest || StrUtil.isBlank(updateRequest.getOrderId())) { + return ResultVOUtils.paramVerifyFail(); + } + return deviceInspectOrderService.updateStatus(updateRequest.getOrderId(), updateRequest.getStatus()); + } + + /** + * 删除维保单 + * + * @param deleteRequest + * @return + */ + @PostMapping("/udiwms/inv/device/inspect/order/delete") + public BaseResponse deleteDeviceInspectOrder(@RequestBody DeleteRequest deleteRequest) { + if (null == deleteRequest || StrUtil.isBlank(deleteRequest.getId())) { + return ResultVOUtils.paramVerifyFail(); + } + return deviceInspectOrderService.deleteOrder(deleteRequest.getId()); + } + +} diff --git a/src/main/java/com/glxp/api/controller/inv/DeviceInspectPlanController.java b/src/main/java/com/glxp/api/controller/inv/DeviceInspectPlanController.java new file mode 100644 index 000000000..60ffadfd6 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/inv/DeviceInspectPlanController.java @@ -0,0 +1,116 @@ +package com.glxp.api.controller.inv; + +import cn.hutool.core.util.StrUtil; +import com.github.pagehelper.PageInfo; +import com.glxp.api.common.req.UpdateRequest; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.entity.inv.DeviceInspectPlanEntity; +import com.glxp.api.req.inv.AddDeviceInspectOrderRequest; +import com.glxp.api.req.inv.FilterDeviceInspectPlanRequest; +import com.glxp.api.req.system.DeleteRequest; +import com.glxp.api.res.inv.DeviceInspectPlanResponse; +import com.glxp.api.service.inv.DeviceInspectPlanService; +import lombok.extern.slf4j.Slf4j; +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 javax.annotation.Resource; +import java.util.List; + +/** + * 设备巡检计划接口 + */ +@Slf4j +@RestController +public class DeviceInspectPlanController { + + @Resource + private DeviceInspectPlanService deviceInspectPlanService; + + /** + * 查询设备巡检计划列表 + * + * @param filterDeviceInspectPlanRequest + * @return + */ + @GetMapping("/udiwms/inv/device/inspect/plan/filter") + public BaseResponse filterList(FilterDeviceInspectPlanRequest filterDeviceInspectPlanRequest) { + List list = deviceInspectPlanService.filterList(filterDeviceInspectPlanRequest); + PageInfo pageInfo = new PageInfo<>(list); + return ResultVOUtils.page(pageInfo); + } + + /** + * 添加设备巡检计划 + * + * @param addDeviceInspectOrderRequest + * @return + */ + @PostMapping("/udiwms/inv/device/inspect/plan/addInspectPlan") + public BaseResponse addInspectPlan(@RequestBody AddDeviceInspectOrderRequest addDeviceInspectOrderRequest) { + if (null == addDeviceInspectOrderRequest || StrUtil.isBlank(addDeviceInspectOrderRequest.getCode())) { + return ResultVOUtils.paramVerifyFail(); + } + return deviceInspectPlanService.addDeviceInspectPlan(addDeviceInspectOrderRequest); + } + + /** + * 更新设备巡检计划 + * + * @param deviceInspectPlanEntity + * @return + */ + @PostMapping("/udiwms/inv/device/inspect/plan/updateInspectPlan") + public BaseResponse updateInspectPlan(@RequestBody DeviceInspectPlanEntity deviceInspectPlanEntity) { + if (null == deviceInspectPlanEntity) { + return ResultVOUtils.paramVerifyFail(); + } + return deviceInspectPlanService.updateDeviceInspectPlan(deviceInspectPlanEntity); + } + + /** + * 提交审核 + * + * @param orderId + * @return + */ + @PostMapping("/udiwms/inv/device/inspect/plan/submitAudit") + public BaseResponse submitAudit(@RequestBody UpdateRequest updateRequest) { + if (null == updateRequest || StrUtil.isBlank(updateRequest.getOrderId())) { + return ResultVOUtils.paramVerifyFail(); + } + return deviceInspectPlanService.submitAudit(updateRequest.getOrderId()); + } + + /** + * 更新设备巡检计划状态 + * + * @param updateRequest + * @return + */ + @PostMapping("/udiwms/inv/device/inspect/plan/updateStatus") + public BaseResponse updateStatus(@RequestBody UpdateRequest updateRequest) { + if (null == updateRequest || StrUtil.isBlank(updateRequest.getOrderId())) { + return ResultVOUtils.paramVerifyFail(); + } + return deviceInspectPlanService.updateStatus(updateRequest.getOrderId(), updateRequest.getStatus()); + } + + /** + * 删除设备巡检计划 + * + * @param deleteRequest + * @return + */ + @PostMapping("/udiwms/inv/device/inspect/plan/deleteInspectPlan") + public BaseResponse deleteInspectPlan(@RequestBody DeleteRequest deleteRequest) { + if (null == deleteRequest || StrUtil.isBlank(deleteRequest.getId())) { + return ResultVOUtils.paramVerifyFail(); + } + return deviceInspectPlanService.deletePlan(deleteRequest.getId()); + } + +} diff --git a/src/main/java/com/glxp/api/controller/inv/DeviceInspectSetController.java b/src/main/java/com/glxp/api/controller/inv/DeviceInspectSetController.java new file mode 100644 index 000000000..7998b781c --- /dev/null +++ b/src/main/java/com/glxp/api/controller/inv/DeviceInspectSetController.java @@ -0,0 +1,68 @@ +package com.glxp.api.controller.inv; + +import cn.hutool.core.util.StrUtil; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.entity.inv.DeviceInspectSetEntity; +import com.glxp.api.req.inv.AddDeviceInspectSetRequest; +import com.glxp.api.res.inv.DeviceInspectSetResponse; +import com.glxp.api.service.inv.DeviceInspectSetService; +import lombok.extern.slf4j.Slf4j; +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 javax.annotation.Resource; + +/** + * 科室设备巡检设置接口 + */ +@Slf4j +@RestController +public class DeviceInspectSetController { + + @Resource + private DeviceInspectSetService deviceInspectSetService; + + /** + * 查询设备巡检设置 + * + * @param code + * @return + */ + @GetMapping("/udiwms/inv/device/inspect/set/findInspectSet") + public BaseResponse findInspectSet(String code) { + DeviceInspectSetResponse inspectSet = deviceInspectSetService.findInspectSet(code); + return ResultVOUtils.success(inspectSet); + } + + /** + * 添加设备巡检设置 + * + * @param addDeviceInspectSetRequest + * @return + */ + @PostMapping("/udiwms/inv/device/inspect/set/addDeviceInspect") + public BaseResponse addDeviceInspect(@RequestBody AddDeviceInspectSetRequest addDeviceInspectSetRequest) { + if (null == addDeviceInspectSetRequest || StrUtil.isBlank(addDeviceInspectSetRequest.getCode())) { + return ResultVOUtils.paramVerifyFail(); + } + return deviceInspectSetService.addDeviceInspect(addDeviceInspectSetRequest); + } + + /** + * 更新设备巡检设置 + * + * @param deviceInspectSetEntity + * @return + */ + @PostMapping("/udiwms/inv/device/inspect/set/updateInspectSet") + public BaseResponse updateInspectSet(@RequestBody DeviceInspectSetEntity deviceInspectSetEntity) { + if (null == deviceInspectSetEntity) { + return ResultVOUtils.paramVerifyFail(); + } + return deviceInspectSetService.updateInspectSet(deviceInspectSetEntity); + } + +} diff --git a/src/main/java/com/glxp/api/controller/inv/DeviceRepairOrderController.java b/src/main/java/com/glxp/api/controller/inv/DeviceRepairOrderController.java new file mode 100644 index 000000000..4ffd32fda --- /dev/null +++ b/src/main/java/com/glxp/api/controller/inv/DeviceRepairOrderController.java @@ -0,0 +1,115 @@ +package com.glxp.api.controller.inv; + +import cn.hutool.core.util.StrUtil; +import com.github.pagehelper.PageInfo; +import com.glxp.api.common.req.UpdateRequest; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.entity.inv.DeviceRepairOrderEntity; +import com.glxp.api.req.inv.AddDeviceRepairOrderRequest; +import com.glxp.api.req.inv.FilterDeviceRepairOrderRequest; +import com.glxp.api.req.system.DeleteRequest; +import com.glxp.api.res.inv.DeviceRepairOrderResponse; +import com.glxp.api.service.inv.DeviceRepairOrderService; +import lombok.extern.slf4j.Slf4j; +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 javax.annotation.Resource; +import java.util.List; + +/** + * 设备报修单接口 + */ +@Slf4j +@RestController +public class DeviceRepairOrderController { + + @Resource + private DeviceRepairOrderService deviceRepairOrderService; + + /** + * 查询设备报修单列表 + * + * @param deviceRepairOrderRequest + * @return + */ + @GetMapping("/udiwms/inv/device/repair/order/filter") + public BaseResponse filterList(FilterDeviceRepairOrderRequest deviceRepairOrderRequest) { + List list = deviceRepairOrderService.filterList(deviceRepairOrderRequest); + PageInfo pageInfo = new PageInfo<>(list); + return ResultVOUtils.page(pageInfo); + } + + /** + * 添加设备报修单 + * + * @param addDeviceRepairOrderRequest + * @return + */ + @PostMapping("/udiwms/inv/device/repair/order/addDeviceRepairOrder") + public BaseResponse addDeviceRepairOrder(@RequestBody AddDeviceRepairOrderRequest addDeviceRepairOrderRequest) { + if (null == addDeviceRepairOrderRequest || StrUtil.isBlank(addDeviceRepairOrderRequest.getCode())) { + return ResultVOUtils.paramVerifyFail(); + } + return deviceRepairOrderService.addDeviceRepairOrder(addDeviceRepairOrderRequest); + } + + /** + * 更新设备报修单信息 + * + * @param deviceRepairOrderEntity + * @return + */ + @PostMapping("/udiwms/inv/device/repair/order/updateDeviceRepairOrder") + public BaseResponse updateDeviceRepairOrder(@RequestBody DeviceRepairOrderEntity deviceRepairOrderEntity) { + if (null == deviceRepairOrderEntity || StrUtil.isBlank(deviceRepairOrderEntity.getCode())) { + return ResultVOUtils.paramVerifyFail(); + } + return deviceRepairOrderService.updateDeviceRepairOrder(deviceRepairOrderEntity); + } + + /** + * 提交审核 + * + * @param updateRequest + * @return + */ + @PostMapping("/udiwms/inv/device/repair/order/submitAudit") + public BaseResponse submitAudit(@RequestBody UpdateRequest updateRequest) { + if (null == updateRequest || StrUtil.isBlank(updateRequest.getOrderId())) { + return ResultVOUtils.paramVerifyFail(); + } + return deviceRepairOrderService.submitAudit(updateRequest.getOrderId()); + } + + /** + * 更新维保单状态 + * + * @param updateRequest + * @return + */ + @PostMapping("/udiwms/inv/device/repair/order/updateStatus") + public BaseResponse updateStatus(@RequestBody UpdateRequest updateRequest) { + if (null == updateRequest) { + return ResultVOUtils.paramVerifyFail(); + } + return deviceRepairOrderService.updateStatus(updateRequest.getOrderId(), updateRequest.getStatus()); + } + + /** + * 删除维保单 + * @param deleteRequest + * @return + */ + @PostMapping("/udiwms/inv/device/repair/order/deleteRepairOrder") + public BaseResponse deleteRepairOrder(@RequestBody DeleteRequest deleteRequest) { + if (null == deleteRequest || StrUtil.isBlank(deleteRequest.getId())) { + return ResultVOUtils.paramVerifyFail(); + } + return deviceRepairOrderService.deleteRepairOrder(deleteRequest.getId()); + } + +} diff --git a/src/main/java/com/glxp/api/dao/inv/DeviceInspectOrderDao.java b/src/main/java/com/glxp/api/dao/inv/DeviceInspectOrderDao.java index 213c339cd..9e4d63754 100644 --- a/src/main/java/com/glxp/api/dao/inv/DeviceInspectOrderDao.java +++ b/src/main/java/com/glxp/api/dao/inv/DeviceInspectOrderDao.java @@ -2,6 +2,30 @@ package com.glxp.api.dao.inv; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.glxp.api.entity.inv.DeviceInspectOrderEntity; +import com.glxp.api.req.inv.FilterDeviceInspectOrderRequest; +import com.glxp.api.res.inv.DeviceInspectOrderResponse; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 设备维保单Dao + */ public interface DeviceInspectOrderDao extends BaseMapper { + + /** + * 查询设备维保单列表 + * + * @param deviceInspectOrderRequest + * @return + */ + List filterList(FilterDeviceInspectOrderRequest deviceInspectOrderRequest); + + /** + * 根据单号查询维保单信息 + * + * @param orderId + * @return + */ + DeviceInspectOrderEntity selectByOrderId(@Param("orderId") String orderId); } \ No newline at end of file diff --git a/src/main/java/com/glxp/api/dao/inv/DeviceInspectPlanDao.java b/src/main/java/com/glxp/api/dao/inv/DeviceInspectPlanDao.java index 9287bde71..7d81dd0a8 100644 --- a/src/main/java/com/glxp/api/dao/inv/DeviceInspectPlanDao.java +++ b/src/main/java/com/glxp/api/dao/inv/DeviceInspectPlanDao.java @@ -2,8 +2,12 @@ package com.glxp.api.dao.inv; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.glxp.api.entity.inv.DeviceInspectPlanEntity; +import com.glxp.api.req.inv.FilterDeviceInspectPlanRequest; +import com.glxp.api.res.inv.DeviceInspectPlanResponse; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 科室设备巡检计划Dao */ @@ -16,4 +20,12 @@ public interface DeviceInspectPlanDao extends BaseMapper filterList(FilterDeviceInspectPlanRequest filterDeviceInspectPlanRequest); } \ No newline at end of file diff --git a/src/main/java/com/glxp/api/dao/inv/DeviceRepairOrderDao.java b/src/main/java/com/glxp/api/dao/inv/DeviceRepairOrderDao.java index 340546a0e..dab82b8a1 100644 --- a/src/main/java/com/glxp/api/dao/inv/DeviceRepairOrderDao.java +++ b/src/main/java/com/glxp/api/dao/inv/DeviceRepairOrderDao.java @@ -2,6 +2,27 @@ package com.glxp.api.dao.inv; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.glxp.api.entity.inv.DeviceRepairOrderEntity; +import com.glxp.api.req.inv.FilterDeviceRepairOrderRequest; +import com.glxp.api.res.inv.DeviceRepairOrderResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface DeviceRepairOrderDao extends BaseMapper { + + /** + * 根据报修单号查询单据信息 + * + * @param orderId + * @return + */ + DeviceRepairOrderEntity selectByOrderId(@Param("orderId") String orderId); + + /** + * 查询设备报修单列表 + * + * @param filterDeviceRepairOrderRequest + * @return + */ + List filterList(FilterDeviceRepairOrderRequest filterDeviceRepairOrderRequest); } \ No newline at end of file diff --git a/src/main/java/com/glxp/api/req/inv/FilterDeviceInspectOrderRequest.java b/src/main/java/com/glxp/api/req/inv/FilterDeviceInspectOrderRequest.java index b858324f3..fc51d36b9 100644 --- a/src/main/java/com/glxp/api/req/inv/FilterDeviceInspectOrderRequest.java +++ b/src/main/java/com/glxp/api/req/inv/FilterDeviceInspectOrderRequest.java @@ -49,6 +49,6 @@ public class FilterDeviceInspectOrderRequest extends ListPageRequest { /** * 设备状态(0:异常;2:正常) */ - private String deviceStatus; + private Integer deviceStatus; } diff --git a/src/main/java/com/glxp/api/res/inv/DeviceInspectPlanResponse.java b/src/main/java/com/glxp/api/res/inv/DeviceInspectPlanResponse.java index 24a1d05b6..2d2b101ba 100644 --- a/src/main/java/com/glxp/api/res/inv/DeviceInspectPlanResponse.java +++ b/src/main/java/com/glxp/api/res/inv/DeviceInspectPlanResponse.java @@ -1,6 +1,5 @@ package com.glxp.api.res.inv; -import com.baomidou.mybatisplus.annotation.TableField; import lombok.Data; import java.util.Date; @@ -61,7 +60,6 @@ public class DeviceInspectPlanResponse { /** * 审核时间 */ - @TableField(value = "auditTime") private Date auditTime; /** @@ -94,4 +92,14 @@ public class DeviceInspectPlanResponse { */ private String batchNo; + /** + * 创建人名称 + */ + private String createUserName; + + /** + * 审核人名称 + */ + private String auditUserName; + } diff --git a/src/main/java/com/glxp/api/service/inv/impl/DeptDeviceDetailService.java b/src/main/java/com/glxp/api/service/inv/DeptDeviceDetailService.java similarity index 96% rename from src/main/java/com/glxp/api/service/inv/impl/DeptDeviceDetailService.java rename to src/main/java/com/glxp/api/service/inv/DeptDeviceDetailService.java index 851b4e17a..d215a20c4 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/DeptDeviceDetailService.java +++ b/src/main/java/com/glxp/api/service/inv/DeptDeviceDetailService.java @@ -1,4 +1,4 @@ -package com.glxp.api.service.inv.impl; +package com.glxp.api.service.inv; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.entity.inv.DeptDeviceDetailEntity; diff --git a/src/main/java/com/glxp/api/service/inv/DeviceInspectOrderService.java b/src/main/java/com/glxp/api/service/inv/DeviceInspectOrderService.java new file mode 100644 index 000000000..c2d2612d6 --- /dev/null +++ b/src/main/java/com/glxp/api/service/inv/DeviceInspectOrderService.java @@ -0,0 +1,65 @@ +package com.glxp.api.service.inv; + +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.entity.inv.DeviceInspectOrderEntity; +import com.glxp.api.req.inv.AddDeviceInspectOrderRequest; +import com.glxp.api.req.inv.FilterDeviceInspectOrderRequest; +import com.glxp.api.res.inv.DeviceInspectOrderResponse; + +import java.util.List; + +/** + * 设备维保单Service + */ +public interface DeviceInspectOrderService { + + /** + * 查询维保单列表 + * + * @param deviceInspectOrderRequest + * @return + */ + List filterList(FilterDeviceInspectOrderRequest deviceInspectOrderRequest); + + /** + * 新增维保单 + * + * @param addDeviceInspectOrderRequest + * @return + */ + BaseResponse addDeviceInspectOrder(AddDeviceInspectOrderRequest addDeviceInspectOrderRequest); + + /** + * 更新维保单状态 + * + * @param deviceInspectOrderEntity + * @return + */ + BaseResponse updateDeviceInspectOrder(DeviceInspectOrderEntity deviceInspectOrderEntity); + + /** + * 维保单提交审核 + * + * @param orderId + * @return + */ + BaseResponse submitAudit(String orderId); + + /** + * 更新维保单状态 + * + * @param orderId + * @param status + * @return + */ + BaseResponse updateStatus(String orderId, Integer status); + + /** + * 删除设备维保单 + * + * @param id + * @return + */ + BaseResponse deleteOrder(String id); + +} diff --git a/src/main/java/com/glxp/api/service/inv/DeviceRepairOrderService.java b/src/main/java/com/glxp/api/service/inv/DeviceRepairOrderService.java new file mode 100644 index 000000000..73f2fc8ec --- /dev/null +++ b/src/main/java/com/glxp/api/service/inv/DeviceRepairOrderService.java @@ -0,0 +1,66 @@ +package com.glxp.api.service.inv; + +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.entity.inv.DeviceRepairOrderEntity; +import com.glxp.api.req.inv.AddDeviceRepairOrderRequest; +import com.glxp.api.req.inv.FilterDeviceRepairOrderRequest; +import com.glxp.api.res.inv.DeviceRepairOrderResponse; + +import java.util.List; + +/** + * 设备保修单Service + */ +public interface DeviceRepairOrderService { + + /** + * 查询设备报修单列表 + * + * @param filterDeviceRepairOrderRequest + * @return + */ + List filterList(FilterDeviceRepairOrderRequest filterDeviceRepairOrderRequest); + + /** + * 添加设备保修单 + * + * @param addDeviceRepairOrderRequest + * @return + */ + BaseResponse addDeviceRepairOrder(AddDeviceRepairOrderRequest addDeviceRepairOrderRequest); + + /** + * 更新设备报修单状态 + * + * @param deviceRepairOrderEntity + * @return + */ + BaseResponse updateDeviceRepairOrder(DeviceRepairOrderEntity deviceRepairOrderEntity); + + /** + * 提交审核 + * + * @param orderId + * @return + */ + BaseResponse submitAudit(String orderId); + + /** + * 更新设备保修单状态 + * + * @param orderId + * @param status + * @return + */ + BaseResponse updateStatus(String orderId, Integer status); + + /** + * 删除设备报修单 + * + * @param id + * @return + */ + BaseResponse deleteRepairOrder(String id); + + +} diff --git a/src/main/java/com/glxp/api/service/inv/impl/DeptDeviceDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/DeptDeviceDetailServiceImpl.java index e84ce70aa..2f50335ca 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/DeptDeviceDetailServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/DeptDeviceDetailServiceImpl.java @@ -18,6 +18,7 @@ import com.glxp.api.req.inv.FilterDeviceReceiveOrderDetailRequest; import com.glxp.api.res.inv.DeptDeviceDetailResponse; import com.glxp.api.res.inv.DeviceReceiveOrderDetailResponse; import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.inv.DeptDeviceDetailService; import com.glxp.api.util.IdUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/glxp/api/service/inv/impl/DeviceInspectOrderServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/DeviceInspectOrderServiceImpl.java new file mode 100644 index 000000000..8123a24af --- /dev/null +++ b/src/main/java/com/glxp/api/service/inv/impl/DeviceInspectOrderServiceImpl.java @@ -0,0 +1,104 @@ +package com.glxp.api.service.inv.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; +import com.github.pagehelper.PageHelper; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.dao.inv.DeviceInspectOrderDao; +import com.glxp.api.entity.inv.DeviceInspectOrderEntity; +import com.glxp.api.req.inv.AddDeviceInspectOrderRequest; +import com.glxp.api.req.inv.FilterDeviceInspectOrderRequest; +import com.glxp.api.res.inv.DeviceInspectOrderResponse; +import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.inv.DeviceInspectOrderService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.Date; +import java.util.List; + +@Slf4j +@Service +@Transactional(rollbackFor = Exception.class) +public class DeviceInspectOrderServiceImpl implements DeviceInspectOrderService { + + @Resource + private DeviceInspectOrderDao deviceInspectOrderDao; + @Resource + private CustomerService customerService; + + @Override + public List filterList(FilterDeviceInspectOrderRequest deviceInspectOrderRequest) { + if (null == deviceInspectOrderRequest) { + return Collections.emptyList(); + } + if (null != deviceInspectOrderRequest.getPage() && null != deviceInspectOrderRequest.getLimit()) { + PageHelper.offsetPage((deviceInspectOrderRequest.getPage() -1) * deviceInspectOrderRequest.getLimit(), deviceInspectOrderRequest.getLimit()); + } + return deviceInspectOrderDao.filterList(deviceInspectOrderRequest); + } + + @Override + public BaseResponse addDeviceInspectOrder(AddDeviceInspectOrderRequest addDeviceInspectOrderRequest) { + DeviceInspectOrderEntity deviceInspectOrderEntity = new DeviceInspectOrderEntity(); + BeanUtil.copyProperties(addDeviceInspectOrderRequest, deviceInspectOrderEntity); + Date date = new Date(); + deviceInspectOrderEntity.setCreateUser(customerService.getUserIdStr()); + deviceInspectOrderEntity.setAuditUser(customerService.getUserIdStr()); + deviceInspectOrderEntity.setCreateTime(date); + deviceInspectOrderEntity.setUpdateTime(date); + deviceInspectOrderDao.insert(deviceInspectOrderEntity); + return ResultVOUtils.success(); + } + + @Override + public BaseResponse updateDeviceInspectOrder(DeviceInspectOrderEntity deviceInspectOrderEntity) { + DeviceInspectOrderEntity inspectOrderEntity = deviceInspectOrderDao.selectByOrderId(deviceInspectOrderEntity.getOrderId()); + BeanUtil.copyProperties(deviceInspectOrderEntity, inspectOrderEntity, "id", "createUser", "createTime"); + inspectOrderEntity.setUpdateTime(new Date()); + deviceInspectOrderDao.updateById(inspectOrderEntity); + return ResultVOUtils.success(); + } + + @Override + public BaseResponse submitAudit(String orderId) { + if (StrUtil.isBlank(orderId)) { + return ResultVOUtils.paramVerifyFail(); + } + DeviceInspectOrderEntity deviceInspectOrderEntity = deviceInspectOrderDao.selectByOrderId(orderId); + deviceInspectOrderEntity.setStatus(1); + deviceInspectOrderEntity.setUpdateTime(new Date()); + deviceInspectOrderDao.updateById(deviceInspectOrderEntity); + return ResultVOUtils.success(); + } + + @Override + public BaseResponse updateStatus(String orderId, Integer status) { + if (StrUtil.isBlank(orderId) || null == status) { + return ResultVOUtils.paramVerifyFail(); + } + DeviceInspectOrderEntity deviceInspectOrderEntity = deviceInspectOrderDao.selectByOrderId(orderId); + deviceInspectOrderEntity.setStatus(status); + Date date = new Date(); + if (status == 2) { + //审核通过 + deviceInspectOrderEntity.setAuditTime(date); + deviceInspectOrderEntity.setAuditUser(customerService.getUserIdStr()); + } + deviceInspectOrderDao.updateById(deviceInspectOrderEntity); + return ResultVOUtils.success(); + } + + @Override + public BaseResponse deleteOrder(String id) { + if (StrUtil.isBlank(id)) { + return ResultVOUtils.paramVerifyFail(); + } + deviceInspectOrderDao.deleteById(id); + return ResultVOUtils.success(); + } +} diff --git a/src/main/java/com/glxp/api/service/inv/impl/DeviceInspectPlanServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/DeviceInspectPlanServiceImpl.java index 552ba5a84..0d890201e 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/DeviceInspectPlanServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/DeviceInspectPlanServiceImpl.java @@ -2,6 +2,7 @@ package com.glxp.api.service.inv.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; +import com.github.pagehelper.PageHelper; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.dao.inv.DeviceInspectPlanDao; @@ -16,6 +17,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.Collections; import java.util.Date; import java.util.List; @@ -31,19 +33,31 @@ public class DeviceInspectPlanServiceImpl implements DeviceInspectPlanService { @Override public List filterList(FilterDeviceInspectPlanRequest filterDeviceInspectPlanRequest) { - return null; + if (null == filterDeviceInspectPlanRequest) { + return Collections.emptyList(); + } + if (null != filterDeviceInspectPlanRequest.getPage() && null != filterDeviceInspectPlanRequest.getLimit()) { + PageHelper.offsetPage((filterDeviceInspectPlanRequest.getPage() - 1) * filterDeviceInspectPlanRequest.getLimit(), filterDeviceInspectPlanRequest.getLimit()); + } + return deviceInspectPlanDao.filterList(filterDeviceInspectPlanRequest); } @Override public BaseResponse addDeviceInspectPlan(AddDeviceInspectOrderRequest addDeviceInspectOrderRequest) { - - return null; + DeviceInspectPlanEntity deviceInspectPlanEntity = new DeviceInspectPlanEntity(); + BeanUtil.copyProperties(addDeviceInspectOrderRequest, deviceInspectPlanEntity); + deviceInspectPlanEntity.setCreateUser(customerService.getUserIdStr()); + Date date = new Date(); + deviceInspectPlanEntity.setCreateTime(date); + deviceInspectPlanEntity.setUpdateTime(date); + deviceInspectPlanDao.insert(deviceInspectPlanEntity); + return ResultVOUtils.success(); } @Override public BaseResponse updateDeviceInspectPlan(DeviceInspectPlanEntity deviceInspectPlanEntity) { DeviceInspectPlanEntity deviceInspectPlan = deviceInspectPlanDao.selectById(deviceInspectPlanEntity.getId()); - BeanUtil.copyProperties(deviceInspectPlanEntity, deviceInspectPlan, "createTime", "createUser"); + BeanUtil.copyProperties(deviceInspectPlanEntity, deviceInspectPlan, "id", "createTime", "createUser"); deviceInspectPlan.setUpdateTime(new Date()); deviceInspectPlanDao.updateById(deviceInspectPlan); return ResultVOUtils.success(); diff --git a/src/main/java/com/glxp/api/service/inv/impl/DeviceInspectSetServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/DeviceInspectSetServiceImpl.java index b1de8ac3b..cd7c3a3b4 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/DeviceInspectSetServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/DeviceInspectSetServiceImpl.java @@ -40,7 +40,7 @@ public class DeviceInspectSetServiceImpl implements DeviceInspectSetService { @Override public BaseResponse updateInspectSet(DeviceInspectSetEntity deviceInspectSetEntity) { DeviceInspectSetEntity inspectSetEntity = deviceInspectSetDao.selectById(deviceInspectSetEntity.getId()); - BeanUtil.copyProperties(deviceInspectSetEntity, inspectSetEntity, "createUser", "createTime"); + BeanUtil.copyProperties(deviceInspectSetEntity, inspectSetEntity, "id","createUser", "createTime"); inspectSetEntity.setUpdateTime(new Date()); deviceInspectSetDao.updateById(inspectSetEntity); return ResultVOUtils.success(); diff --git a/src/main/java/com/glxp/api/service/inv/impl/DeviceReceiveOrderServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/DeviceReceiveOrderServiceImpl.java index 44345ebd4..2e61864e2 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/DeviceReceiveOrderServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/DeviceReceiveOrderServiceImpl.java @@ -15,6 +15,7 @@ import com.glxp.api.entity.inv.DeviceReceiveOrderEntity; import com.glxp.api.req.inv.FilterDeviceReceiveOrderRequest; import com.glxp.api.res.inv.DeviceReceiveOrderResponse; import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.inv.DeptDeviceDetailService; import com.glxp.api.service.inv.DeviceReceiveOrderService; import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.OrderNoTypeBean; diff --git a/src/main/java/com/glxp/api/service/inv/impl/DeviceRepairOrderServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/DeviceRepairOrderServiceImpl.java new file mode 100644 index 000000000..12f89f8cf --- /dev/null +++ b/src/main/java/com/glxp/api/service/inv/impl/DeviceRepairOrderServiceImpl.java @@ -0,0 +1,105 @@ +package com.glxp.api.service.inv.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; +import com.github.pagehelper.PageHelper; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.dao.inv.DeviceRepairOrderDao; +import com.glxp.api.entity.inv.DeviceRepairOrderEntity; +import com.glxp.api.req.inv.AddDeviceRepairOrderRequest; +import com.glxp.api.req.inv.FilterDeviceRepairOrderRequest; +import com.glxp.api.res.inv.DeviceRepairOrderResponse; +import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.inv.DeviceRepairOrderService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.Date; +import java.util.List; + +@Slf4j +@Service +@Transactional(rollbackFor = Exception.class) +public class DeviceRepairOrderServiceImpl implements DeviceRepairOrderService { + + @Resource + private DeviceRepairOrderDao deviceRepairOrderDao; + @Resource + private CustomerService customerService; + + @Override + public List filterList(FilterDeviceRepairOrderRequest filterDeviceRepairOrderRequest) { + if (null == filterDeviceRepairOrderRequest) { + return Collections.emptyList(); + } + if (null != filterDeviceRepairOrderRequest.getPage() && null != filterDeviceRepairOrderRequest.getLimit()) { + PageHelper.offsetPage((filterDeviceRepairOrderRequest.getPage() - 1) * filterDeviceRepairOrderRequest.getLimit(), filterDeviceRepairOrderRequest.getLimit()); + } + return deviceRepairOrderDao.filterList(filterDeviceRepairOrderRequest); + } + + @Override + public BaseResponse addDeviceRepairOrder(AddDeviceRepairOrderRequest addDeviceRepairOrderRequest) { + DeviceRepairOrderEntity deviceRepairOrderEntity = new DeviceRepairOrderEntity(); + BeanUtil.copyProperties(addDeviceRepairOrderRequest, deviceRepairOrderEntity); + deviceRepairOrderEntity.setCreateUser(customerService.getUserIdStr()); + Date date = new Date(); + deviceRepairOrderEntity.setCreateTime(date); + deviceRepairOrderEntity.setUpdateTime(date); + deviceRepairOrderDao.insert(deviceRepairOrderEntity); + return ResultVOUtils.success(); + } + + @Override + public BaseResponse updateDeviceRepairOrder(DeviceRepairOrderEntity deviceRepairOrderEntity) { + DeviceRepairOrderEntity repairOrderEntity = deviceRepairOrderDao.selectByOrderId(deviceRepairOrderEntity.getOrderId()); + BeanUtil.copyProperties(deviceRepairOrderEntity, repairOrderEntity, "id", "createTime", "createUser"); + repairOrderEntity.setUpdateTime(new Date()); + deviceRepairOrderDao.updateById(repairOrderEntity); + return ResultVOUtils.success(); + } + + @Override + public BaseResponse submitAudit(String orderId) { + if (StrUtil.isBlank(orderId)) { + return ResultVOUtils.paramVerifyFail(); + } + DeviceRepairOrderEntity deviceRepairOrderEntity = deviceRepairOrderDao.selectByOrderId(orderId); + deviceRepairOrderEntity.setStatus(1); + deviceRepairOrderEntity.setUpdateTime(new Date()); + deviceRepairOrderDao.updateById(deviceRepairOrderEntity); + return ResultVOUtils.success(); + } + + @Override + public BaseResponse updateStatus(String orderId, Integer status) { + if (StrUtil.isBlank(orderId) || null == status) { + return ResultVOUtils.paramVerifyFail(); + } + DeviceRepairOrderEntity deviceRepairOrderEntity = deviceRepairOrderDao.selectByOrderId(orderId); + deviceRepairOrderEntity.setStatus(status); + Date date = new Date(); + if (status == 2) { + //审核通过 TODO 保修单审核通过,生成维保单 + deviceRepairOrderEntity.setAuditUser(customerService.getUserIdStr()); + deviceRepairOrderEntity.setAuditTime(date); + } + deviceRepairOrderEntity.setUpdateTime(date); + deviceRepairOrderDao.updateById(deviceRepairOrderEntity); + return ResultVOUtils.success(); + } + + @Override + public BaseResponse deleteRepairOrder(String id) { + if (StrUtil.isBlank(id)) { + return ResultVOUtils.paramVerifyFail(); + } + deviceRepairOrderDao.deleteById(id); + return ResultVOUtils.success(); + } + +} diff --git a/src/main/resources/mybatis/mapper/inv/DeviceInspectOrderDao.xml b/src/main/resources/mybatis/mapper/inv/DeviceInspectOrderDao.xml index 16662d5d9..af0d0c726 100644 --- a/src/main/resources/mybatis/mapper/inv/DeviceInspectOrderDao.xml +++ b/src/main/resources/mybatis/mapper/inv/DeviceInspectOrderDao.xml @@ -1,27 +1,57 @@ - - - - - - - - - - - - - - - - - - - - - id, deptCode, invCode, code, lastOrderId, `type`, `status`, deviceStatus, `createUser`, - auditUser, createTime, auditTime, updateTime, remark - + + + \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/inv/DeviceInspectPlanDao.xml b/src/main/resources/mybatis/mapper/inv/DeviceInspectPlanDao.xml index 8f8053afd..d903ff1ba 100644 --- a/src/main/resources/mybatis/mapper/inv/DeviceInspectPlanDao.xml +++ b/src/main/resources/mybatis/mapper/inv/DeviceInspectPlanDao.xml @@ -7,4 +7,49 @@ where orderId = #{orderId} + \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/inv/DeviceRepairOrderDao.xml b/src/main/resources/mybatis/mapper/inv/DeviceRepairOrderDao.xml index c14ea67de..c293954a0 100644 --- a/src/main/resources/mybatis/mapper/inv/DeviceRepairOrderDao.xml +++ b/src/main/resources/mybatis/mapper/inv/DeviceRepairOrderDao.xml @@ -1,25 +1,50 @@ - - - - - - - - - - - - - - - - - - - id, deptCode, invCode, code, `status`, `createUser`, auditUser, msg, createTime, - auditTime, updateTime, remark - + + + \ No newline at end of file