From 4065e91cf60198845dbc4d693b4ca2da488e2395 Mon Sep 17 00:00:00 2001 From: zengchenxi Date: Fri, 19 Apr 2024 17:01:34 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E9=9C=80=E6=B1=82=E3=80=91=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E4=BE=9B=E5=BA=94=E5=95=86=E6=95=B0=E6=8D=AE=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/biz/chanjet/ChanjetController.java | 8 ++ .../biz/chanjet/ChanjetInterfaceEnum.java | 1 + .../module/biz/manager/ChanjetManager.java | 73 ++++++++++++++++++- .../src/api/biz/customer/index.ts | 5 ++ .../src/api/biz/supplier/index.ts | 5 ++ 5 files changed, 90 insertions(+), 2 deletions(-) diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/chanjet/ChanjetController.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/chanjet/ChanjetController.java index c1b8838e..d985d851 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/chanjet/ChanjetController.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/chanjet/ChanjetController.java @@ -78,4 +78,12 @@ public class ChanjetController { chanjetManager.queryCustomer(); return success(null); } + + @PostMapping("/supplier/query") + @Operation(summary = "获取供应商数据") + @PreAuthorize("@ss.hasPermission('biz:supplier:query')") + public CommonResult querySupplier() throws ChanjetApiException { + chanjetManager.querySupplier(); + return success(null); + } } diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/chanjet/ChanjetInterfaceEnum.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/chanjet/ChanjetInterfaceEnum.java index 4d6ef465..13c81eeb 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/chanjet/ChanjetInterfaceEnum.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/chanjet/ChanjetInterfaceEnum.java @@ -19,6 +19,7 @@ public enum ChanjetInterfaceEnum { CREATE_DEPARTMENT("/tplus/api/v2/department/Create", "创建部门", CreateDepartmentVO.class, SimpleChanjetResponse.class), CREATE_WORKSHOP("/tplus/api/v2/department/Create", "创建车间", CreateDepartmentVO.class, SimpleChanjetResponse.class), QUERY_CUSTOMER("/tplus/api/v2/partner/Query", "查询客户", QueryPartnerVO.class, SimpleChanjetResponse.class), // TODO reponse + QUERY_SUPPLIER("/tplus/api/v2/partner/Query", "查询供应商", QueryPartnerVO.class, SimpleChanjetResponse.class), // TODO reponse ; private String uri; diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetManager.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetManager.java index 84eda0d6..f618acc6 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetManager.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetManager.java @@ -10,8 +10,10 @@ import com.chanko.yunxi.mes.module.biz.chanjet.vo.QueryPartnerVO; import com.chanko.yunxi.mes.module.biz.chanjet.vo.SimpleChanjetResponse; import com.chanko.yunxi.mes.module.biz.controller.admin.workshop.vo.WorkshopSaveReqVO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.customer.CustomerDO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.supplier.SupplierDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.workshop.WorkshopDO; import com.chanko.yunxi.mes.module.biz.dal.mysql.customer.CustomerMapper; +import com.chanko.yunxi.mes.module.biz.dal.mysql.supplier.SupplierMapper; import com.chanko.yunxi.mes.module.biz.enums.ValidStatusEnum; import com.chanko.yunxi.mes.module.biz.service.workshop.WorkshopService; import com.chanko.yunxi.mes.module.system.controller.admin.dept.vo.dept.DeptSaveReqVO; @@ -26,8 +28,7 @@ import javax.validation.Valid; import java.util.*; import java.util.stream.Collectors; -import static com.chanko.yunxi.mes.module.biz.chanjet.ChanjetInterfaceEnum.CREATE_DEPARTMENT; -import static com.chanko.yunxi.mes.module.biz.chanjet.ChanjetInterfaceEnum.QUERY_CUSTOMER; +import static com.chanko.yunxi.mes.module.biz.chanjet.ChanjetInterfaceEnum.*; /** * 畅捷通 管理类 @@ -46,6 +47,8 @@ public class ChanjetManager { private WorkshopService workshopService; @Resource private CustomerMapper customerMapper; + @Resource + private SupplierMapper supplierMapper; /** * 创建部门 @@ -157,4 +160,70 @@ public class ChanjetManager { }while (maxTs != null); } + + /** + * 获取供应商数据 + * @throws ChanjetApiException + */ + public void querySupplier() throws ChanjetApiException { + + Long maxTs = null; + do { + QueryPartnerVO.QueryPartnerParamVO paramVO = new QueryPartnerVO.QueryPartnerParamVO(new HashMap() {{ + put("Name", "供应商"); + }}, maxTs); + SimpleChanjetResponse response = (SimpleChanjetResponse) chanjetSpi.execute(QUERY_SUPPLIER, new QueryPartnerVO(paramVO)); + if(!response.isSuccess()){ + throw new RuntimeException(response.getMessage()); + } + if(!StringUtils.isEmpty(response.getResult())){ + List dataList = JSON.parseObject(JSON.toJSONString(response.getResult()), new TypeReference>() { + }); + + // 取最大 ts + Map tsMaxData = dataList.stream().sorted((Comparator.comparing(m -> 0 - Long.parseLong(String.valueOf(m.get("ts")))))).findFirst().get(); + maxTs = Long.parseLong(String.valueOf(tsMaxData.get("ts"))); + + // 存在即更新不存在则插入 + ArrayList doList = new ArrayList<>(16); + ArrayList insertList = new ArrayList<>(16); + ArrayList updateList = new ArrayList<>(16); + dataList.forEach(dataMap -> { + // TODO 缺少其他字段 + String code = String.valueOf(dataMap.get("code")); + String name = String.valueOf(dataMap.get("name")); + String shorthand = String.valueOf(dataMap.get("shorthand")); + + SupplierDO aDo = new SupplierDO(); + aDo.setCode(code).setName(name).setBrief(shorthand).setStatus(ValidStatusEnum.VALID.getCode()); + doList.add(aDo); + }); + + List codeList = doList.stream().map(SupplierDO::getCode).collect(Collectors.toList()); + List existsDOList = supplierMapper.selectList(new LambdaQueryWrapper() {{ + in(SupplierDO::getCode, codeList); + }}); + Map> existsDOs = existsDOList.stream().collect(Collectors.groupingBy(SupplierDO::getCode)); + doList.forEach(sDO -> { + List historyDOs = existsDOs.get(sDO.getCode()); + if(historyDOs != null){ + // 对比字段 如有变化则更新 + SupplierDO hDO = historyDOs.get(0); + if(!hDO.getName().equals(sDO.getName()) || !hDO.getBrief().equals(sDO.getBrief())){ + hDO.setName(sDO.getName()).setBrief(sDO.getBrief()); + updateList.add(hDO); + } + }else{ + insertList.add(sDO); + } + }); + // 入库 + if(!insertList.isEmpty()) supplierMapper.insertBatch(insertList); + if(!updateList.isEmpty()) supplierMapper.updateBatch(updateList); + + }else{ + maxTs = null; + } + }while (maxTs != null); + } } diff --git a/mes-ui/mes-ui-admin-vue3/src/api/biz/customer/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/biz/customer/index.ts index 7c6fedb7..afef6832 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/biz/customer/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/biz/customer/index.ts @@ -64,3 +64,8 @@ export const deleteCustomer = async (id: number) => { export const exportCustomer = async (params) => { return await request.download({ url: `/biz/customer/export-excel`, params }) } + +// 查询客户数据 +export const queryCustomerChanjet = async () => { + return await request.get({ url: `/biz/chanjet/customer/query` }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/api/biz/supplier/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/biz/supplier/index.ts index d46b8c18..b021e0d6 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/biz/supplier/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/biz/supplier/index.ts @@ -70,3 +70,8 @@ export const deleteSupplier = async (id: number) => { export const exportSupplier = async (params) => { return await request.download({ url: `/biz/supplier/export-excel`, params }) } + +// 查询客户数据 +export const querySupplierChanjet = async () => { + return await request.get({ url: `/biz/chanjet/supplier/query` }) +}