|
|
@ -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.chanjet.vo.SimpleChanjetResponse;
|
|
|
|
import com.chanko.yunxi.mes.module.biz.controller.admin.workshop.vo.WorkshopSaveReqVO;
|
|
|
|
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.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.dataobject.workshop.WorkshopDO;
|
|
|
|
import com.chanko.yunxi.mes.module.biz.dal.mysql.customer.CustomerMapper;
|
|
|
|
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.enums.ValidStatusEnum;
|
|
|
|
import com.chanko.yunxi.mes.module.biz.service.workshop.WorkshopService;
|
|
|
|
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.dept.vo.dept.DeptSaveReqVO;
|
|
|
@ -26,8 +28,7 @@ import javax.validation.Valid;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
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.*;
|
|
|
|
import static com.chanko.yunxi.mes.module.biz.chanjet.ChanjetInterfaceEnum.QUERY_CUSTOMER;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 畅捷通 管理类
|
|
|
|
* 畅捷通 管理类
|
|
|
@ -46,6 +47,8 @@ public class ChanjetManager {
|
|
|
|
private WorkshopService workshopService;
|
|
|
|
private WorkshopService workshopService;
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
private CustomerMapper customerMapper;
|
|
|
|
private CustomerMapper customerMapper;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
private SupplierMapper supplierMapper;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 创建部门
|
|
|
|
* 创建部门
|
|
|
@ -157,4 +160,70 @@ public class ChanjetManager {
|
|
|
|
}while (maxTs != null);
|
|
|
|
}while (maxTs != null);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 获取供应商数据
|
|
|
|
|
|
|
|
* @throws ChanjetApiException
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public void querySupplier() throws ChanjetApiException {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Long maxTs = null;
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
|
|
|
QueryPartnerVO.QueryPartnerParamVO paramVO = new QueryPartnerVO.QueryPartnerParamVO(new HashMap<String, String>() {{
|
|
|
|
|
|
|
|
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<Map> dataList = JSON.parseObject(JSON.toJSONString(response.getResult()), new TypeReference<List<Map>>() {
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 取最大 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<SupplierDO> doList = new ArrayList<>(16);
|
|
|
|
|
|
|
|
ArrayList<SupplierDO> insertList = new ArrayList<>(16);
|
|
|
|
|
|
|
|
ArrayList<SupplierDO> 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<String> codeList = doList.stream().map(SupplierDO::getCode).collect(Collectors.toList());
|
|
|
|
|
|
|
|
List<SupplierDO> existsDOList = supplierMapper.selectList(new LambdaQueryWrapper<SupplierDO>() {{
|
|
|
|
|
|
|
|
in(SupplierDO::getCode, codeList);
|
|
|
|
|
|
|
|
}});
|
|
|
|
|
|
|
|
Map<String, List<SupplierDO>> existsDOs = existsDOList.stream().collect(Collectors.groupingBy(SupplierDO::getCode));
|
|
|
|
|
|
|
|
doList.forEach(sDO -> {
|
|
|
|
|
|
|
|
List<SupplierDO> 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);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|