evoToK3Cloud/ruoyi-system/src/main/java/com/ruoyi/system/controller/IndexController.java
2024-11-16 09:28:08 +08:00

116 lines
5.0 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.ruoyi.system.controller;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.kingdee.bos.webapi.sdk.K3CloudApi;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.utils.JdUtils;
import com.ruoyi.system.domain.bo.ImMaterialBo;
import com.ruoyi.system.domain.bo.ImProductionPlanBo;
import com.ruoyi.system.domain.vo.ImMaterialVo;
import com.ruoyi.system.domain.vo.InventoryInfoVO;
import com.ruoyi.system.service.IImMaterialService;
import com.ruoyi.system.service.IImProductionPlanService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
@RequiredArgsConstructor
@RestController
@RequestMapping("/index")
public class IndexController {
private final IImMaterialService iImMaterialService;
private final IImProductionPlanService imProductionPlanService;
@GetMapping("/list")
public TableDataInfo<ImMaterialVo> list(ImMaterialBo bo, PageQuery pageQuery) {
return iImMaterialService.queryPageList(bo, pageQuery);
}
/**
* 金蝶chaxun
*/
@GetMapping("/inventory")
public R<InventoryInfoVO> handleData(String materialCode) {
Map<String, String> marilMap = JdUtils.selectKuCun(materialCode);
if (marilMap.isEmpty() ) {
// 处理查询失败的情况
return R.fail("库存信息未找到");
}
InventoryInfoVO inventoryInfoVO = new InventoryInfoVO();
inventoryInfoVO.setMaterialCode(marilMap.get("materialCode"));
inventoryInfoVO.setQuantity(marilMap.get("inventory"));
inventoryInfoVO.setMaterialName(marilMap.get("materialName"));
inventoryInfoVO.setStockName(marilMap.get("stockName"));
inventoryInfoVO.setStockUnit(marilMap.get("stockUnit"));
return R.ok(inventoryInfoVO);
}
@Log(title = "生产计划")
@PostMapping("/JDList")
public void synchronize_lists() {
K3CloudApi client = new K3CloudApi();
//请求参数要求为json字符串
JsonObject json = new JsonObject();
json.addProperty("FormId", "PRD_MO");
json.addProperty("FieldKeys", "FID,F_UCHN_Text,FBillType.FNUMBER,FMaterialId.FNumber,FMaterialName,FQty,FBillType.FNUMBER,FWorkShopID.FNumber,FDate,FProductType,FPickMtrlStatus");
JsonArray filterString = new JsonArray();
JsonObject filterObject = new JsonObject();
filterObject.addProperty("FieldName", "F_UCHN_Text");
filterObject.addProperty("Compare", "17");
filterObject.addProperty("Value", "QB");
filterObject.addProperty("Left", "");
filterObject.addProperty("Right", "");
filterObject.addProperty("Logic", 0);
filterString.add(filterObject);
json.add("FilterString", filterString);
json.addProperty("OrderString", "");
json.addProperty("TopRowCount", 0);
json.addProperty("StartRow", 0);
json.addProperty("Limit", 2000);
json.addProperty("SubSystemId", "");
String jsonData = json.toString();
try {
// 调用接口并获取结果
String input = String.valueOf(client.executeBillQuery(jsonData));
input = input.substring(2, input.length() - 2);
String[] split = input.split("]\\, \\[");
for (String imProductionn : split) {
ImProductionPlanBo imProductionPlan = new ImProductionPlanBo();
String[] imPro= imProductionn.split(",");
imProductionPlan.setFID(Long.valueOf(imPro[0]));
imProductionPlan.setProductionCode(imPro[1]);
imProductionPlan.setTypeName(imPro[2]);
imProductionPlan.setWorkShop(imPro[7]);
// 解析时间
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
Date parse = simpleDateFormat.parse(imPro[8]);
imProductionPlan.setDateF(parse);
imProductionPlan.setUnit(imPro[9]);
imProductionPlan.setProductTyp(imPro[10]);
imProductionPlan.setFigureNumber(imPro[3]);
imProductionPlan.setFigureName(imPro[4]);
// imProductionPlan.setOneNumber(imPro[5]);
imProductionPlan.setPickmtrlStatus(imPro[10]);
imProductionPlan.setUpdateTime(new Date());
imProductionPlan.setSearchValue("1");
imProductionPlan.setUpdateBy("admin");
imProductionPlan.setCreateTime(new Date());
imProductionPlan.setCreateBy("admin");
imProductionPlanService.insertByBo(imProductionPlan) ;
}
} catch (Exception e) {
e.printStackTrace();
}
}
}