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 list(ImMaterialBo bo, PageQuery pageQuery) { return iImMaterialService.queryPageList(bo, pageQuery); } /** * 金蝶chaxun */ @GetMapping("/inventory") public R handleData(String materialCode) { Map 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(); } } }