【需求】完善部门接口

dev
zengchenxi 6 months ago
parent baf98b2d19
commit 09d4db4aa1

@ -1,6 +1,6 @@
package com.chanko.yunxi.mes.module.biz.config;
import com.chanjet.openapi.sdk.java.ChanjetClient;
import com.chanjet.openapi.sdk.java.AbstractChanjetClient;
import com.chanjet.openapi.sdk.java.DefaultChanjetClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -13,7 +13,7 @@ import org.springframework.context.annotation.Configuration;
@Configuration
public class ChanjetClientConfig {
@Bean
public ChanjetClient chanjetClient(ChanjetOpenApiConfig chanjetOpenApiConfig) {
public AbstractChanjetClient chanjetClient(ChanjetOpenApiConfig chanjetOpenApiConfig) {
return new DefaultChanjetClient(chanjetOpenApiConfig.getGatewayUrl(), chanjetOpenApiConfig.getSecret());
}
}

@ -1,4 +1,4 @@
package com.chanko.yunxi.mes.module.biz.chanjet;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet;
import com.chanjet.openapi.sdk.java.exception.ChanjetApiException;
import com.chanjet.openapi.sdk.java.response.GetTokenResponse;
@ -7,9 +7,7 @@ import com.chanko.yunxi.mes.framework.tenant.core.aop.TenantIgnore;
import com.chanko.yunxi.mes.module.biz.controller.admin.procedure.vo.ProcedureSaveReqVO;
import com.chanko.yunxi.mes.module.biz.controller.admin.storage.vo.StorageSaveReqVO;
import com.chanko.yunxi.mes.module.biz.controller.admin.taskreport.vo.TaskReportSaveReqVO;
import com.chanko.yunxi.mes.module.biz.controller.admin.workshop.vo.WorkshopSaveReqVO;
import com.chanko.yunxi.mes.module.biz.manager.ChanjetManager;
import com.chanko.yunxi.mes.module.system.controller.admin.dept.vo.dept.DeptSaveReqVO;
import com.chanko.yunxi.mes.module.system.controller.admin.user.vo.user.UserSaveReqVO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@ -61,18 +59,20 @@ public class ChanjetController {
return response;
}
@PostMapping("/dept/create")
@Operation(summary = "创建部门")
@PreAuthorize("@ss.hasPermission('system:dept:create')")
public CommonResult<Long> createDept(@Valid @RequestBody DeptSaveReqVO createReqVO) throws ChanjetApiException {
return success(chanjetManager.createDepartment(createReqVO));
@GetMapping("/dept/query")
@Operation(summary = "获取部门数据")
@PreAuthorize("@ss.hasPermission('system:dept:query')")
public CommonResult<Boolean> queryDept() throws ChanjetApiException {
chanjetManager.queryDept();
return success(true);
}
@PostMapping("/workshop/create")
@Operation(summary = "创建车间")
@PreAuthorize("@ss.hasPermission('biz:workshop:create')")
public CommonResult<Long> createWorkshop(@Valid @RequestBody WorkshopSaveReqVO createReqVO) throws ChanjetApiException {
return success(chanjetManager.createWorkshop(createReqVO));
@GetMapping("/workshop/query")
@Operation(summary = "获取车间数据")
@PreAuthorize("@ss.hasPermission('biz:workshop:query')")
public CommonResult<Boolean> queryWorkshop() throws ChanjetApiException {
chanjetManager.queryWorkshop();
return success(true);
}
@PostMapping("/customer/query")

@ -1,10 +1,9 @@
package com.chanko.yunxi.mes.module.biz.chanjet;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet;
import com.chanjet.openapi.sdk.java.ChanjetContent;
import com.chanjet.openapi.sdk.java.ChanjetResponse;
import com.chanjet.openapi.sdk.java.enums.HttpMethod;
import com.chanko.yunxi.mes.module.biz.chanjet.vo.*;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo.*;
import lombok.Getter;
/**
@ -15,8 +14,7 @@ import lombok.Getter;
@Getter
public enum ChanjetInterfaceEnum {
CREATE_DEPARTMENT("/tplus/api/v2/department/Create", "创建部门", CreateDepartmentReqVO.class, SimpleChanjetResponse.class),
CREATE_WORKSHOP("/tplus/api/v2/department/Create", "创建车间", CreateDepartmentReqVO.class, SimpleChanjetResponse.class),
QUERY_DEPARTMENT_OR_WORKSHOP("/tplus/api/v2/department/Query", "查询部门/车间", CreateDepartmentReqVO.class, QueryDepartmentResVO.class),
QUERY_CUSTOMER("/tplus/api/v2/partner/Query", "查询客户", QueryPartnerReqVO.class, SimpleChanjetResponse.class), // TODO reponse
QUERY_SUPPLIER("/tplus/api/v2/partner/Query", "查询供应商", QueryPartnerReqVO.class, SimpleChanjetResponse.class), // TODO reponse
CREATE_PROCEDURE("/tplus/api/v2/process/Create", "创建工序", CreateProcedureReqVO.class, SimpleChanjetResponse.class),
@ -35,9 +33,9 @@ public enum ChanjetInterfaceEnum {
private HttpMethod httpMethod;
private String description;
private Class<? extends ChanjetContent> requestContentClass;
private Class<? extends ChanjetResponse> responseContentClass;
private Class<?> responseContentClass;
ChanjetInterfaceEnum(String uri, String description, Class<? extends ChanjetContent> requestContentClass, Class<? extends ChanjetResponse> responseContentClass) {
ChanjetInterfaceEnum(String uri, String description, Class<? extends ChanjetContent> requestContentClass, Class<?> responseContentClass) {
this.uri = uri;
this.description = description;
this.requestContentClass = requestContentClass;

@ -1,8 +1,13 @@
package com.chanko.yunxi.mes.module.biz.chanjet;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet;
import com.chanjet.openapi.sdk.java.ChanjetClient;
import cn.hutool.http.HttpStatus;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.util.ParameterizedTypeImpl;
import com.chanjet.openapi.sdk.java.AbstractChanjetClient;
import com.chanjet.openapi.sdk.java.ChanjetContent;
import com.chanjet.openapi.sdk.java.ChanjetResponse;
import com.chanjet.openapi.sdk.java.HttpResponse;
import com.chanjet.openapi.sdk.java.domain.GetAppAccessTokenContent;
import com.chanjet.openapi.sdk.java.domain.GetOrgAccessTokenContent;
import com.chanjet.openapi.sdk.java.domain.GetPermanentAuthCodeContent;
@ -10,13 +15,15 @@ import com.chanjet.openapi.sdk.java.domain.GetTokenByPermanentCodeContent;
import com.chanjet.openapi.sdk.java.exception.ChanjetApiException;
import com.chanjet.openapi.sdk.java.request.*;
import com.chanjet.openapi.sdk.java.response.*;
import com.chanko.yunxi.mes.module.biz.chanjet.ChanjetInterfaceEnum;
import com.chanko.yunxi.mes.module.biz.chanjet.vo.SimpleChanjetRequest;
import com.chanko.yunxi.mes.module.biz.chanjet.vo.SimpleChanjetResponse;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.module.biz.config.ChanjetOpenApiConfig;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo.SimpleChanjetRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import java.lang.reflect.Type;
import java.util.List;
import java.util.Map;
/**
@ -30,7 +37,7 @@ public class ChanjetSpi {
@Autowired
private ChanjetOpenApiConfig chanjetOpenApiConfig;
@Autowired
private ChanjetClient chanjetClient;
private AbstractChanjetClient chanjetClient;
/**
*
@ -94,7 +101,7 @@ public class ChanjetSpi {
//填写开发者的真实OAuth回调地址
getTokenRequest.addQueryParam("redirectUri", chanjetOpenApiConfig.getRedirectUri());
getTokenRequest.addQueryParam("code", code);
getTokenRequest.setRequestUri("/auth/v2/getToken");
getTokenRequest.setRequestUri("/auth/getToken");
return chanjetClient.execute(getTokenRequest);
}
@ -147,4 +154,57 @@ public class ChanjetSpi {
return execute(chanjetInterfaceEnum, null, chanjetContent);
}
public <T> CommonResult<T> invoke(ChanjetInterfaceEnum chanjetInterfaceEnum, Map<String, String> queryParams, ChanjetContent chanjetContent, Class<T> responseClass) throws ChanjetApiException {
CommonResult<T> result = CommonResult.success(null);
SimpleChanjetRequest simpleChanjetRequest = new SimpleChanjetRequest(chanjetInterfaceEnum, queryParams, chanjetContent);
HttpResponse response = chanjetClient.invoke(simpleChanjetRequest);
if(response.getStatusCode() == HttpStatus.HTTP_OK){
if(!StringUtils.isEmpty(response.getBody())){
result.setData(JSON.parseObject(response.getBody(), buildType(responseClass)));
}
}else{
return CommonResult.error(response.getStatusCode(), response.getBody());
}
return result;
}
public <T> CommonResult<List<T>> invokeRetList(ChanjetInterfaceEnum chanjetInterfaceEnum, Map<String, String> queryParams, ChanjetContent chanjetContent, Class<T> responseClass) throws ChanjetApiException {
CommonResult<List<T>> result = CommonResult.success(null);
SimpleChanjetRequest simpleChanjetRequest = new SimpleChanjetRequest(chanjetInterfaceEnum, queryParams, chanjetContent);
HttpResponse response = chanjetClient.invoke(simpleChanjetRequest);
if(response.getStatusCode() == HttpStatus.HTTP_OK){
if(!StringUtils.isEmpty(response.getBody())){
result.setData(JSON.parseObject(response.getBody(), buildType(List.class, responseClass)));
}
}else{
return CommonResult.error(response.getStatusCode(), response.getBody());
}
return result;
}
public <T> CommonResult<T> invoke(ChanjetInterfaceEnum chanjetInterfaceEnum, Map<String, String> queryParams, Class<T> responseClass) throws ChanjetApiException {
return invoke(chanjetInterfaceEnum, queryParams, null, responseClass);
}
public <T> CommonResult<T> invoke(ChanjetInterfaceEnum chanjetInterfaceEnum, ChanjetContent chanjetContent, Class<T> responseClass) throws ChanjetApiException {
return invoke(chanjetInterfaceEnum, null, chanjetContent, responseClass);
}
public <T> CommonResult<List<T>> invokeRetList(ChanjetInterfaceEnum chanjetInterfaceEnum, Map<String, String> queryParams, Class<T> responseClass) throws ChanjetApiException {
return invokeRetList(chanjetInterfaceEnum, queryParams, null, responseClass);
}
public <T> CommonResult<List<T>> invokeRetList(ChanjetInterfaceEnum chanjetInterfaceEnum, ChanjetContent chanjetContent, Class<T> responseClass) throws ChanjetApiException {
return invokeRetList(chanjetInterfaceEnum, null, chanjetContent, responseClass);
}
public static Type buildType(Type... types) {
ParameterizedTypeImpl beforeType = null;
if (types != null && types.length > 0) {
for (int i = types.length - 1; i > 0; i--) {
beforeType = new ParameterizedTypeImpl(new Type[]{beforeType == null ? types[i] : beforeType}, null, types[i - 1]);
}
}
return beforeType;
}
}

@ -1,4 +1,4 @@
package com.chanko.yunxi.mes.module.biz.chanjet;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet;
import com.alibaba.fastjson.JSON;
import com.chanjet.openapi.sdk.java.exception.ChanjetApiException;

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 16:43:39
@ -35,4 +35,4 @@ public class AdjustCostDetails {
return Amount;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -19,4 +19,4 @@ public class BusinessType {
return Code;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
import lombok.Data;
import lombok.experimental.Accessors;

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
import lombok.Data;
import lombok.experimental.Accessors;

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -19,4 +19,4 @@ public class Customer {
return Code;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -19,4 +19,4 @@ public class Department {
return Code;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -11,4 +11,4 @@ package com.chanko.yunxi.mes.module.biz.chanjet.dto;
*/
public class DynamicPropertyKeys {
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -11,4 +11,4 @@ package com.chanko.yunxi.mes.module.biz.chanjet.dto;
*/
public class DynamicPropertyValues {
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -19,4 +19,4 @@ public class InspectionReturnReason {
return Code;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -19,4 +19,4 @@ public class Inventory {
return Code;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
import java.util.List;
/**
@ -15,7 +15,7 @@ public class ManufactureReportDetails {
private String SourceVoucherId;
private MultiMaterialWasteReasonSelect MultiMaterialWasteReasonSelect;
private String Inventory_Code;
private Process Process;
private com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto.Process Process;
private List<ManufactureReportTeamDetails> ManufactureReportTeamDetails;
private Unit Unit;
private int QualifiedQuantity;
@ -62,10 +62,10 @@ public class ManufactureReportDetails {
return Inventory_Code;
}
public void setProcess(Process Process) {
public void setProcess(com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto.Process Process) {
this.Process = Process;
}
public Process getProcess() {
public com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto.Process getProcess() {
return Process;
}
@ -244,4 +244,4 @@ public class ManufactureReportDetails {
return Inventory;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -91,4 +91,4 @@ public class ManufactureReportTeamDetails {
return QualifiedQuantity;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -19,4 +19,4 @@ public class MultiArtificialWasteReasonSelect {
return Code;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -19,4 +19,4 @@ public class MultiMaterialWasteReasonSelect {
return Code;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -19,4 +19,4 @@ public class Partner {
return Code;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -19,4 +19,4 @@ public class Person {
return Code;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -27,4 +27,4 @@ public class Process {
return Code;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -19,4 +19,4 @@ public class ProcessSubUnit {
return Name;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -19,4 +19,4 @@ public class ProcessTeam {
return Code;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -19,4 +19,4 @@ public class Project {
return Code;
}
}
}

@ -0,0 +1,13 @@
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
import lombok.Data;
/**
* @author chenxi
* @date 2024-04-22 16:43
*/
@Data
public class QueryDepartmentDTO {
private String SelectFields = "ID,Code,Name,Parent.Code,Parent.Name";
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -19,4 +19,4 @@ public class Routing {
return Code;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
import java.util.List;
/**
@ -20,4 +20,4 @@ public class SNObject {
return SnAccountDetails;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -19,4 +19,4 @@ public class SalaryType {
return Code;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -19,4 +19,4 @@ public class SnAccountDetails {
return SNCode;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -19,4 +19,4 @@ public class Unit {
return Name;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -19,4 +19,4 @@ public class Unit2 {
return Name;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 16:43:39
@ -19,4 +19,4 @@ public class Warehouse {
return Code;
}
}
}

@ -1,7 +1,7 @@
/**
* Copyright 2024 bejson.com
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.chanjet.dto;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
/**
* Auto-generated: 2024-04-20 15:37:29
@ -19,4 +19,4 @@ public class WorkShop {
return Code;
}
}
}

@ -1,4 +1,4 @@
package com.chanko.yunxi.mes.module.biz.chanjet.vo;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo;
import com.chanjet.openapi.sdk.java.AbstractChanjetContent;
import lombok.AllArgsConstructor;

@ -1,4 +1,4 @@
package com.chanko.yunxi.mes.module.biz.chanjet.vo;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo;
import com.chanjet.openapi.sdk.java.AbstractChanjetContent;
import lombok.AllArgsConstructor;

@ -1,4 +1,4 @@
package com.chanko.yunxi.mes.module.biz.chanjet.vo;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo;
import com.chanjet.openapi.sdk.java.AbstractChanjetContent;
import lombok.AllArgsConstructor;

@ -1,7 +1,7 @@
package com.chanko.yunxi.mes.module.biz.chanjet.vo;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo;
import com.chanjet.openapi.sdk.java.AbstractChanjetContent;
import com.chanko.yunxi.mes.module.biz.chanjet.dto.CreateReportDto;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto.CreateReportDto;
import lombok.AllArgsConstructor;
import lombok.Data;

@ -1,7 +1,7 @@
package com.chanko.yunxi.mes.module.biz.chanjet.vo;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo;
import com.chanjet.openapi.sdk.java.AbstractChanjetContent;
import com.chanko.yunxi.mes.module.biz.chanjet.dto.CreateStockOutOrderDto;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto.CreateStockOutOrderDto;
import lombok.AllArgsConstructor;
import lombok.Data;

@ -1,4 +1,4 @@
package com.chanko.yunxi.mes.module.biz.chanjet.vo;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo;
import com.chanjet.openapi.sdk.java.AbstractChanjetContent;
import lombok.AllArgsConstructor;

@ -1,4 +1,4 @@
package com.chanko.yunxi.mes.module.biz.chanjet.vo;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo;
import com.chanjet.openapi.sdk.java.AbstractChanjetContent;
import lombok.AllArgsConstructor;

@ -0,0 +1,17 @@
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo;
import com.chanjet.openapi.sdk.java.AbstractChanjetContent;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto.QueryDepartmentDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* @author chenxi
* @date 2024-04-22 16:43
*/
@Data
@AllArgsConstructor
public class QueryDepartmentReqVO extends AbstractChanjetContent {
private QueryDepartmentDTO dto;
}

@ -0,0 +1,24 @@
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo;
import lombok.Data;
/**
* @author chenxi
* @date 2024-04-22 16:49
*/
@Data
public class QueryDepartmentResVO {
private Long id;
private String code;
private String name;
private ParentVO parent;
@Data
public static class ParentVO {
private Long id;
private String code;
private String name;
}
}

@ -1,4 +1,4 @@
package com.chanko.yunxi.mes.module.biz.chanjet.vo;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo;
import com.chanjet.openapi.sdk.java.AbstractChanjetContent;
import lombok.AllArgsConstructor;

@ -1,4 +1,4 @@
package com.chanko.yunxi.mes.module.biz.chanjet.vo;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo;
import com.chanjet.openapi.sdk.java.AbstractChanjetContent;
import lombok.AllArgsConstructor;

@ -1,4 +1,4 @@
package com.chanko.yunxi.mes.module.biz.chanjet.vo;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo;
import com.chanjet.openapi.sdk.java.AbstractChanjetContent;
import lombok.AllArgsConstructor;

@ -1,4 +1,4 @@
package com.chanko.yunxi.mes.module.biz.chanjet.vo;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo;
import com.chanjet.openapi.sdk.java.AbstractChanjetContent;
import lombok.AllArgsConstructor;

@ -1,11 +1,10 @@
package com.chanko.yunxi.mes.module.biz.chanjet.vo;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo;
import com.chanjet.openapi.sdk.java.AbstractChanjetRequest;
import com.chanjet.openapi.sdk.java.ChanjetContent;
import com.chanjet.openapi.sdk.java.ChanjetResponse;
import com.chanjet.openapi.sdk.java.enums.HttpMethod;
import com.chanko.yunxi.mes.module.biz.chanjet.ChanjetInterfaceEnum;
import com.chanko.yunxi.mes.module.biz.chanjet.ChanjetTokenHolder;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.ChanjetInterfaceEnum;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.ChanjetTokenHolder;
import java.util.Map;
@ -16,28 +15,27 @@ import java.util.Map;
*/
public class SimpleChanjetRequest extends AbstractChanjetRequest {
private Class<? extends ChanjetResponse> responseClass;
private Class<?> responseClass;
public SimpleChanjetRequest(String uri, Class<? extends ChanjetResponse> responseClass){
public SimpleChanjetRequest(String uri, Class<?> responseClass){
this(uri, responseClass, null, null);
}
public SimpleChanjetRequest(String uri, Class<? extends ChanjetResponse> responseClass, ChanjetContent chanjetContent){
public SimpleChanjetRequest(String uri, Class<?> responseClass, ChanjetContent chanjetContent){
this(uri, responseClass, chanjetContent, null);
}
public SimpleChanjetRequest(String uri, Class<? extends ChanjetResponse> responseClass, Map<String,String> queryParams){
public SimpleChanjetRequest(String uri, Class<?> responseClass, Map<String,String> queryParams){
this(uri, responseClass, null, queryParams);
}
public SimpleChanjetRequest(String uri, Class<? extends ChanjetResponse> responseClass, ChanjetContent chanjetContent, Map<String,String> queryParams){
public SimpleChanjetRequest(String uri, Class<?> responseClass, ChanjetContent chanjetContent, Map<String,String> queryParams){
this.setRequestUri(uri);
this.setAppKey(ChanjetTokenHolder.APP_KEY);
this.setAppSecret(ChanjetTokenHolder.APP_SECRET);
this.setOpenToken(ChanjetTokenHolder.TOKEN);
if(chanjetContent != null) this.setBizContent(chanjetContent);
if(queryParams != null) this.addQueryParams(queryParams);
this.responseClass = responseClass;
}
public SimpleChanjetRequest(ChanjetInterfaceEnum chanjetInterfaceEnum, Map<String, String> queryParams, ChanjetContent chanjetContent) {
@ -45,7 +43,7 @@ public class SimpleChanjetRequest extends AbstractChanjetRequest {
}
@Override
public Class<? extends ChanjetResponse> getResponseClass() {
public Class<?> getResponseClass() {
return responseClass;
}

@ -1,4 +1,4 @@
package com.chanko.yunxi.mes.module.biz.chanjet.vo;
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo;
import com.chanjet.openapi.sdk.java.AbstractChanjetResponse;
import lombok.Data;

@ -1,19 +1,22 @@
package com.chanko.yunxi.mes.module.biz.manager;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.chanjet.openapi.sdk.java.exception.ChanjetApiException;
import com.chanko.yunxi.mes.framework.common.enums.CommonStatusEnum;
import com.chanko.yunxi.mes.module.biz.chanjet.ChanjetSpi;
import com.chanko.yunxi.mes.module.biz.chanjet.dto.CreateReportDto;
import com.chanko.yunxi.mes.module.biz.chanjet.dto.CreateStockOutOrderDto;
import com.chanko.yunxi.mes.module.biz.chanjet.dto.ManufactureReportDetails;
import com.chanko.yunxi.mes.module.biz.chanjet.vo.*;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.ChanjetSpi;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto.CreateReportDto;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto.CreateStockOutOrderDto;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto.ManufactureReportDetails;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto.QueryDepartmentDTO;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo.*;
import com.chanko.yunxi.mes.module.biz.controller.admin.procedure.vo.ProcedureSaveReqVO;
import com.chanko.yunxi.mes.module.biz.controller.admin.storage.vo.StorageSaveReqVO;
import com.chanko.yunxi.mes.module.biz.controller.admin.taskreport.vo.TaskReportSaveReqVO;
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.material.MaterialDO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.procedure.ProcedureDO;
@ -31,10 +34,10 @@ import com.chanko.yunxi.mes.module.biz.service.procedure.ProcedureService;
import com.chanko.yunxi.mes.module.biz.service.storage.StorageService;
import com.chanko.yunxi.mes.module.biz.service.taskreport.TaskReportService;
import com.chanko.yunxi.mes.module.biz.service.workshop.WorkshopService;
import com.chanko.yunxi.mes.module.system.controller.admin.dept.vo.dept.DeptSaveReqVO;
import com.chanko.yunxi.mes.module.system.controller.admin.user.vo.user.UserSaveReqVO;
import com.chanko.yunxi.mes.module.system.dal.dataobject.dept.DeptDO;
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
import com.chanko.yunxi.mes.module.system.dal.mysql.dept.DeptMapper;
import com.chanko.yunxi.mes.module.system.service.dept.DeptService;
import com.chanko.yunxi.mes.module.system.service.user.AdminUserService;
import org.springframework.stereotype.Component;
@ -42,11 +45,10 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.*;
import java.util.stream.Collectors;
import static com.chanko.yunxi.mes.module.biz.chanjet.ChanjetInterfaceEnum.*;
import static com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.ChanjetInterfaceEnum.*;
/**
*
@ -60,8 +62,6 @@ public class ChanjetManager {
@Resource
private ChanjetSpi chanjetSpi;
@Resource
private DeptService deptService;
@Resource
private WorkshopService workshopService;
@Resource
private CustomerMapper customerMapper;
@ -79,48 +79,66 @@ public class ChanjetManager {
private TaskReportService taskReportService;
@Resource
private StorageService storageService;
@Resource
private DeptMapper deptMapper;
/**
*
* @param deptSaveReqVO
* @return
*
* @throws ChanjetApiException
*/
@Transactional(rollbackFor = Exception.class)
public Long createDepartment(@Valid DeptSaveReqVO deptSaveReqVO) throws ChanjetApiException {
Long deptId = deptService.createDept(deptSaveReqVO);
public void queryDept() throws ChanjetApiException {
CommonResult<List<QueryDepartmentResVO>> result = chanjetSpi.invokeRetList(QUERY_DEPARTMENT_OR_WORKSHOP, new QueryDepartmentReqVO(new QueryDepartmentDTO()), QueryDepartmentResVO.class);
if(!result.isSuccess()){
throw new RuntimeException(result.getMsg());
}
DeptDO deptDO = deptService.getDept(deptId);
if(CollUtil.isNotEmpty(result.getData())){
// 过滤车间数据
List<QueryDepartmentResVO> deptDataList = result.getData().stream().filter(queryDepartmentResVO -> queryDepartmentResVO.getName().indexOf("车间") < 0).collect(Collectors.toList());
if(CollUtil.isNotEmpty(deptDataList)){
ArrayList<DeptDO> insertList = new ArrayList<>(16);
ArrayList<DeptDO> updateList = new ArrayList<>(16);
Map<Long, List<QueryDepartmentResVO>> queryDeptGroupById = deptDataList.stream().collect(Collectors.groupingBy(QueryDepartmentResVO::getId));
LambdaQueryWrapper<DeptDO> query = new LambdaQueryWrapper<>();
query.in(DeptDO::getId, queryDeptGroupById.keySet());
List<DeptDO> existsDOList = deptMapper.selectList(query);
Map<Long, List<DeptDO>> existsDOGroupById = existsDOList.stream().collect(Collectors.groupingBy(DeptDO::getId));
// 处理
queryDeptGroupById.forEach((id, voList) -> {
QueryDepartmentResVO queryDept = voList.get(0);
QueryDepartmentResVO.ParentVO parent = queryDept.getParent();
long parentId = parent != null && parent.getId() != null ? parent.getId() : 0;
List<DeptDO> existsDOs = existsDOGroupById.get(id);
if(CollUtil.isNotEmpty(existsDOs)){
DeptDO existsDO = existsDOs.get(0);
existsDO.setCode(queryDept.getCode()).setName(existsDO.getName()).setParentId(parentId);
updateList.add(existsDO);
}else{
DeptDO deptDO = BeanUtils.toBean(queryDept, DeptDO.class);
deptDO.setParentId(parentId);
insertList.add(deptDO);
}
});
CreateDepartmentReqVO.DepartmentVO departmentVO = new CreateDepartmentReqVO.DepartmentVO(String.valueOf(deptDO.getId()), deptDO.getName(), new HashMap<String, String>(1) {{
put("Code", String.valueOf(deptDO.getParentId()));
}});
SimpleChanjetResponse response = (SimpleChanjetResponse) chanjetSpi.execute(CREATE_DEPARTMENT, new CreateDepartmentReqVO(departmentVO));
if(!response.isSuccess()){
throw new RuntimeException(response.getMessage());
// 入库
if(CollUtil.isNotEmpty(updateList)) deptMapper.updateBatch(updateList);
if(CollUtil.isNotEmpty(insertList)) deptMapper.insertBatch(insertList);
}
}
return deptId;
}
/**
*
* @param createReqVO
* @return
*
* @throws ChanjetApiException
*/
@Transactional(rollbackFor = Exception.class)
public Long createWorkshop(WorkshopSaveReqVO createReqVO) throws ChanjetApiException {
Long workshopId = workshopService.createWorkshop(createReqVO);
WorkshopDO workshop = workshopService.getWorkshop(workshopId);
public void queryWorkshop() throws ChanjetApiException {
CreateDepartmentReqVO.DepartmentVO departmentVO = new CreateDepartmentReqVO.DepartmentVO(String.valueOf(workshop.getCode()), workshop.getName(), new HashMap<String, String>(1) {{
put("Code", String.valueOf(workshop.getDeptId()));
}});
SimpleChanjetResponse response = (SimpleChanjetResponse) chanjetSpi.execute(CREATE_DEPARTMENT, new CreateDepartmentReqVO(departmentVO));
if(!response.isSuccess()){
throw new RuntimeException(response.getMessage());
}
return workshopId;
}
/**
@ -528,4 +546,5 @@ public class ChanjetManager {
return id;
}
}

@ -19,6 +19,10 @@ public class DeptRespDTO {
*
*/
private String name;
/**
*
*/
private String code;
/**
*
*/

@ -10,6 +10,9 @@ public class DeptListReqVO {
@Schema(description = "部门名称,模糊匹配", example = "芋道")
private String name;
@Schema(description = "部门编码,模糊匹配", example = "芋道")
private String code;
@Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1")
private Integer status;

@ -15,6 +15,9 @@ public class DeptRespVO {
@Schema(description = "部门名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
private String name;
@Schema(description = "部门编码", example = "芋道")
private String code;
@Schema(description = "父部门 ID", example = "1024")
private Long parentId;

@ -22,6 +22,10 @@ public class DeptSaveReqVO {
@Size(max = 30, message = "部门名称长度不能超过 30 个字符")
private String name;
@Schema(description = "部门编码")
@Size(max = 16, message = "部门名称长度不能超过 16 个字符")
private String code;
@Schema(description = "父部门 ID", example = "1024")
private Long parentId;

@ -17,6 +17,9 @@ public class DeptSimpleRespVO {
@Schema(description = "部门名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
private String name;
@Schema(description = "部门编码")
private String code;
@Schema(description = "父部门 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long parentId;

@ -30,6 +30,10 @@ public class DeptDO extends TenantBaseDO {
*
*/
private String name;
/**
*
*/
private String code;
/**
* ID
*

@ -15,6 +15,7 @@ public interface DeptMapper extends BaseMapperX<DeptDO> {
default List<DeptDO> selectList(DeptListReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<DeptDO>()
.likeIfPresent(DeptDO::getName, reqVO.getName())
.likeIfPresent(DeptDO::getCode, reqVO.getCode())
.eqIfPresent(DeptDO::getStatus, reqVO.getStatus()));
}

@ -224,4 +224,4 @@ chanjet:
appKey: fZtARspH #需要填写在开放平台申请的appKey
appSecret: B071433DABBE48DB2241AE12280C8CBC #需要填写在开放平台申请的appSecret
secret: 1234567890123456 #秘钥,用于解密,需要去开放平台自主填写,然后配置在此处
redirectUri: http://192.168.0.158:9021/admin-api/mes/chanjet/receiveCode #Oauth重定向地址需要去开放平台自主填写然后配置在此处
redirectUri: http://192.168.0.72:9021/admin-api/mes/chanjet/receiveCode #Oauth重定向地址需要去开放平台自主填写然后配置在此处

@ -190,7 +190,7 @@ mes:
- /jmreport/* # 积木报表,无法携带租户编号
- /ureport/* # UReport 报表,无法携带租户编号
- /admin-api/mp/open/** # 微信公众号开放平台,微信回调接口,无法携带租户编号
- /admin-api/mes/chanjet/** # 畅捷通开放平台 无需租户
- /admin-api/biz/chanjet/receiveCode # 畅捷通开放平台 无需租户
ignore-tables:
- system_tenant
- system_tenant_package

@ -3,3 +3,5 @@ ALTER TABLE base_procedure ADD COLUMN standard_labour_price DECIMAL ( 20, 2 ) CO
ALTER TABLE base_procedure ADD COLUMN piecework_basis CHAR ( 2 ) COMMENT '计件依据 01合格数量02报工数量' AFTER `procedure_type`;
ALTER TABLE project_sale_order ADD COLUMN `external_code` VARCHAR ( 64 ) COMMENT '销售订单号 来源用友 唯一' AFTER `code`;
ALTER TABLE system_dept ADD COLUMN `code` VARCHAR ( 16 ) COMMENT '部门编码' AFTER `name`;

Loading…
Cancel
Save