diff --git a/src/main/java/com/spring/ifs/api/BaseSearchApi.java b/src/main/java/com/spring/ifs/api/BaseSearchApi.java index 7d0dc4aa..286f55bc 100644 --- a/src/main/java/com/spring/ifs/api/BaseSearchApi.java +++ b/src/main/java/com/spring/ifs/api/BaseSearchApi.java @@ -4,6 +4,7 @@ import com.spring.common.utils.DateUtils; import com.spring.ifs.data.*; import com.spring.ifs.utils.IfsConverterToMap; import com.spring.ifs.utils.IfsPlsqlUtils; +import com.spring.modules.base.entity.WorkCenterCost; import com.spring.modules.base.vo.PersonnelLevelVo; import com.spring.modules.part.vo.InventoryPartUnitCostSumVo; import com.spring.modules.part.vo.LocationInformationVo; @@ -418,4 +419,72 @@ public class BaseSearchApi { return technicalAttributes; } } + + /** + * @description: 加工中心成本 + * @author LR + * @date 2025/2/10 15:17 + * @version 1.0 + */ + public static List getWorkCenterCosts(Server srv, String siteCon, String ifsRowVersion, int startIndex, int pageSize) throws APException { + StringBuilder searchSql = new StringBuilder(); + searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT, WORK_CENTER_NO,"); + searchSql.append(" ifsapp.WORK_CENTER_API.Get_Description(CONTRACT, WORK_CENTER_NO) workCenterDesc,"); + searchSql.append(" COST_SET, ifsapp.COST_SET_API.Get_Description(CONTRACT,COST_SET) costSetDesc, WC_RATE, WC_COST_CODE,"); + searchSql.append(" OVERHEAD1_FAC, OVERHEAD1_APPL, OVERHEAD2_FAC, OVERHEAD2_APPL,"); + searchSql.append(" to_char(START_DATE, 'yyyy-MM-dd') START_DATE, to_char(END_DATE, 'yyyy-MM-dd') END_DATE"); + searchSql.append(" FROM ifsapp.WORK_CENTER_COST"); + searchSql.append(" WHERE ifsapp.Work_Center_API.Get_Work_Center_Code_Db(contract, work_center_no) = 'I'"); + + //设置查询的入参 + Map inParam = new HashMap<>(); + //判断是否存在入参 + if ((ifsRowVersion == null || "".equals(ifsRowVersion))){ + searchSql.append(" AND OBJVERSION >= :ifsRowVersion"); + inParam.put("ifsRowVersion", ifsRowVersion); + } + //添加排序语句 + searchSql.append(" ORDER BY OBJVERSION, CONTRACT, WORK_CENTER_NO"); + //添加分页的查询语句 + searchSql.append(" OFFSET "+startIndex+" ROWS FETCH NEXT "+pageSize+" ROWS ONLY"); + //调用查询的通用方法 + RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam); + //判断能否返回 + if (recordCollection == null) { + return new ArrayList<>(); + } else { + List technicalAttributes = new ArrayList<>(); + //处理结果集 + List> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection); + //获取数据转bean + for (int i = 0; i < resultList.size(); i++) { + Map tempMap = resultList.get(i); + WorkCenterCost tempItem = new WorkCenterCost(); + //设置参数 + tempItem.setIfsRowId(tempMap.get("IFSROWID")); + tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION")); + tempItem.setSite(tempMap.get("CONTRACT")); + tempItem.setWorkCenterNo(tempMap.get("WORK_CENTER_NO")); + tempItem.setWorkCenterDesc(tempMap.get("WORKCENTERDESC")); + tempItem.setCostSet(tempMap.get("COST_SET")); + tempItem.setCostSetDesc(tempMap.get("COSTSETDESC")); + tempItem.setWcCostCode(tempMap.get("WC_COST_CODE")); + tempItem.setOverhead1Fac(tempMap.get("OVERHEAD1_FAC")); + tempItem.setOverhead2Fac(tempMap.get("OVERHEAD2_FAC")); + tempItem.setOverhead1Appl(tempMap.get("OVERHEAD1_APPL")); + tempItem.setOverhead2Appl(tempMap.get("OVERHEAD2_APPL")); + String startDate = tempMap.get("START_DATE"); + if (!(null == startDate || "".equals(startDate))){ + tempItem.setBeginDate(DateUtils.getStringToDate(startDate, "yyyy-MM-dd")); + } + String endDate = tempMap.get("END_DATE"); + if (!(null == endDate || "".equals(endDate))) { + tempItem.setEndDate(DateUtils.getStringToDate(endDate, "yyyy-MM-dd")); + } + //添加对象 + technicalAttributes.add(tempItem); + } + return technicalAttributes; + } + } } diff --git a/src/main/java/com/spring/ifs/api/BaseSearchApiTest.java b/src/main/java/com/spring/ifs/api/BaseSearchApiTest.java index b1c5a3fb..56f36fef 100644 --- a/src/main/java/com/spring/ifs/api/BaseSearchApiTest.java +++ b/src/main/java/com/spring/ifs/api/BaseSearchApiTest.java @@ -1,8 +1,10 @@ package com.spring.ifs.api; +import com.spring.common.utils.DateUtils; import com.spring.ifs.data.*; import com.spring.ifs.utils.IfsConverterToMap; import com.spring.ifs.utils.IfsPlsqlUtils; +import com.spring.modules.base.entity.WorkCenterCost; import com.spring.modules.part.vo.InventoryPartUnitCostSumVo; import ifs.fnd.ap.APException; import ifs.fnd.ap.RecordCollection; @@ -414,4 +416,73 @@ public class BaseSearchApiTest { } } + + /** + * @description: 加工中心成本 + * @author LR + * @date 2025/2/10 15:17 + * @version 1.0 + */ + public static List getWorkCenterCosts(Server srv, String siteCon, String ifsRowVersion, int startIndex, int pageSize) throws APException { + StringBuilder searchSql = new StringBuilder(); + searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT, WORK_CENTER_NO,"); + searchSql.append(" ifsapp.WORK_CENTER_API.Get_Description(CONTRACT, WORK_CENTER_NO) workCenterDesc,"); + searchSql.append(" COST_SET, ifsapp.COST_SET_API.Get_Description(CONTRACT,COST_SET) costSetDesc, WC_RATE, WC_COST_CODE,"); + searchSql.append(" OVERHEAD1_FAC, OVERHEAD1_APPL, OVERHEAD2_FAC, OVERHEAD2_APPL,"); + searchSql.append(" to_char(START_DATE, 'yyyy-MM-dd') START_DATE, to_char(END_DATE, 'yyyy-MM-dd') END_DATE"); + searchSql.append(" FROM ifsapp.WORK_CENTER_COST"); + searchSql.append(" WHERE ifsapp.Work_Center_API.Get_Work_Center_Code_Db(contract, work_center_no) = 'I'"); + + //设置查询的入参 + Map inParam = new HashMap<>(); + //判断是否存在入参 + if ((ifsRowVersion == null || "".equals(ifsRowVersion))){ + searchSql.append(" AND OBJVERSION >= :ifsRowVersion"); + inParam.put("ifsRowVersion", ifsRowVersion); + } + //添加排序语句 + searchSql.append(" ORDER BY OBJVERSION, CONTRACT, WORK_CENTER_NO"); + //添加分页的查询语句 + searchSql.append(" OFFSET "+startIndex+" ROWS FETCH NEXT "+pageSize+" ROWS ONLY"); + //调用查询的通用方法 + RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam); + //判断能否返回 + if (recordCollection == null) { + return new ArrayList<>(); + } else { + List technicalAttributes = new ArrayList<>(); + //处理结果集 + List> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection); + //获取数据转bean + for (int i = 0; i < resultList.size(); i++) { + Map tempMap = resultList.get(i); + WorkCenterCost tempItem = new WorkCenterCost(); + //设置参数 + tempItem.setIfsRowId(tempMap.get("IFSROWID")); + tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION")); + tempItem.setSite(tempMap.get("CONTRACT")); + tempItem.setWorkCenterNo(tempMap.get("WORK_CENTER_NO")); + tempItem.setWorkCenterDesc(tempMap.get("WORKCENTERDESC")); + tempItem.setCostSet(tempMap.get("COST_SET")); + tempItem.setCostSetDesc(tempMap.get("COSTSETDESC")); + tempItem.setWcCostCode(tempMap.get("WC_COST_CODE")); + tempItem.setOverhead1Fac(tempMap.get("OVERHEAD1_FAC")); + tempItem.setOverhead2Fac(tempMap.get("OVERHEAD2_FAC")); + tempItem.setOverhead1Appl(tempMap.get("OVERHEAD1_APPL")); + tempItem.setOverhead2Appl(tempMap.get("OVERHEAD2_APPL")); + String startDate = tempMap.get("START_DATE"); + if (!(null == startDate || "".equals(startDate))){ + tempItem.setBeginDate(DateUtils.getStringToDate(startDate, "yyyy-MM-dd")); + } + String endDate = tempMap.get("END_DATE"); + if (!(null == endDate || "".equals(endDate))) { + tempItem.setEndDate(DateUtils.getStringToDate(endDate, "yyyy-MM-dd")); + } + //添加对象 + technicalAttributes.add(tempItem); + } + return technicalAttributes; + } + } + } \ No newline at end of file diff --git a/src/main/java/com/spring/ifs/bean/BaseSearchBean.java b/src/main/java/com/spring/ifs/bean/BaseSearchBean.java index b3fdf9de..146c9c30 100644 --- a/src/main/java/com/spring/ifs/bean/BaseSearchBean.java +++ b/src/main/java/com/spring/ifs/bean/BaseSearchBean.java @@ -5,6 +5,7 @@ import com.spring.ifs.api.BaseSearchApi; import com.spring.ifs.api.IfsServer; import com.spring.ifs.api.TechnicalClassApi; import com.spring.ifs.data.*; +import com.spring.modules.base.entity.WorkCenterCost; import com.spring.modules.base.vo.PersonnelLevelVo; import com.spring.modules.part.entity.PartInformationEntity; import com.spring.modules.part.vo.InventoryPartUnitCostSumVo; @@ -214,4 +215,32 @@ public class BaseSearchBean { return returnMap; } + /** + * @description: 查询加工中心成本 + * @author LR + * @date 2025/1/17 13:20 + * @version 1.0 + */ + public List getWorkCenterCosts(Server srv, BaseSearchData inData) throws APException { + //查询的参数 + String siteCon = inData.getSiteCon(); + String ifsRowVersion = inData.getIfsRowVersion(); + logger.info("加工中心成本的请求参数:"+siteCon); + List resultList = new ArrayList<>(); + int pageSize = 200; + //迭代查询 + for(int i = 0; i < 10; i++){ + int startIndex = i * pageSize; + List tempList = BaseSearchApi.getWorkCenterCosts(srv, siteCon, ifsRowVersion, startIndex, pageSize); + //判断查询是否结束 + if(tempList.size() > 0) { + resultList.addAll(tempList); + }else { + break; + } + } + logger.info("返回集合大小:"+resultList.size()); + return resultList; + } + } diff --git a/src/main/java/com/spring/ifs/bean/BaseSearchBeanTest.java b/src/main/java/com/spring/ifs/bean/BaseSearchBeanTest.java index ce9ba22d..61e6c746 100644 --- a/src/main/java/com/spring/ifs/bean/BaseSearchBeanTest.java +++ b/src/main/java/com/spring/ifs/bean/BaseSearchBeanTest.java @@ -1,13 +1,18 @@ package com.spring.ifs.bean; +import com.spring.common.utils.DateUtils; import com.spring.ifs.api.BaseSearchApi; import com.spring.ifs.api.BaseSearchApiTest; import com.spring.ifs.api.IfsServer; import com.spring.ifs.api.TechnicalClassApi; import com.spring.ifs.data.*; +import com.spring.ifs.utils.IfsConverterToMap; +import com.spring.ifs.utils.IfsPlsqlUtils; +import com.spring.modules.base.entity.WorkCenterCost; import com.spring.modules.part.entity.PartInformationEntity; import com.spring.modules.part.vo.InventoryPartUnitCostSumVo; import ifs.fnd.ap.APException; +import ifs.fnd.ap.RecordCollection; import ifs.fnd.ap.Server; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -15,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -209,4 +215,37 @@ public class BaseSearchBeanTest { List resultList = BaseSearchApi.getTechnicalAttributesByCon(srv, technicalSpecNo); return resultList; } + + /** + * @description: 查询加工中心成本 + * @author LR + * @date 2025/1/17 13:20 + * @version 1.0 + */ + public List getWorkCenterCosts(BaseSearchData inData) throws APException { + //查询的参数 + String username = inData.getIfsUsername(); + String password = inData.getIfsPassword(); + String siteCon = inData.getSiteCon(); + String ifsRowVersion = inData.getIfsRowVersion(); + logger.info("加工中心成本的请求参数:"+siteCon); + List resultList = new ArrayList<>(); + int pageSize = 200; + //获取连接 + Server srv = ifsServer.getIfsServer(username, password); + //迭代查询 + for(int i = 0; i < 10; i++){ + int startIndex = i * pageSize; + List tempList = BaseSearchApi.getWorkCenterCosts(srv, siteCon, ifsRowVersion, startIndex, pageSize); + //判断查询是否结束 + if(tempList.size() > 0) { + resultList.addAll(tempList); + }else { + break; + } + } + logger.info("返回集合大小:"+resultList.size()); + return resultList; + } + } \ No newline at end of file diff --git a/src/main/java/com/spring/ifs/controller/TestIfsController.java b/src/main/java/com/spring/ifs/controller/TestIfsController.java index d28ac273..7b4f9433 100644 --- a/src/main/java/com/spring/ifs/controller/TestIfsController.java +++ b/src/main/java/com/spring/ifs/controller/TestIfsController.java @@ -2,6 +2,7 @@ package com.spring.ifs.controller; import com.spring.ifs.bean.*; import com.spring.ifs.data.*; +import com.spring.modules.base.entity.WorkCenterCost; import com.spring.modules.part.entity.APIEntity.RecipeIfsAlternative; import com.spring.modules.part.entity.APIEntity.RecipeIfsHeader; import com.spring.modules.part.entity.APIEntity.RecipeIfsItem; @@ -2082,4 +2083,19 @@ public class TestIfsController { return resultMap; } + @PostMapping("/getWorkCenterCosts") + public Object getWorkCenterCosts(@RequestBody BaseSearchData inData) throws APException { + Map resultMap = new HashMap(); + try { + List returnList = baseSearchBeanTest.getWorkCenterCosts(inData); + resultMap.put("returnMap", returnList); + resultMap.put("code", 200); + resultMap.put("msg", "操作成功!"); + } catch (Exception e) { + resultMap.put("code", 400); + resultMap.put("msg", e.getMessage()); + } + return resultMap; + } + } \ No newline at end of file diff --git a/src/main/java/com/spring/modules/base/entity/WorkCenterCost.java b/src/main/java/com/spring/modules/base/entity/WorkCenterCost.java index cf4146ae..108920e4 100644 --- a/src/main/java/com/spring/modules/base/entity/WorkCenterCost.java +++ b/src/main/java/com/spring/modules/base/entity/WorkCenterCost.java @@ -49,4 +49,15 @@ public class WorkCenterCost implements Serializable { @TableField(exist = false) private String active; + private String ifsRowId; + private String ifsRowVersion; + private String costSet; + private String costSetDesc; + private String wcRate; + private String wcCostCode; + private String overhead1Fac; + private String overhead2Fac; + private String overhead1Appl; + private String overhead2Appl; + }