|
|
|
@ -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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|