diff --git a/src/main/java/com/spring/ifs/api/BaseSearchApi.java b/src/main/java/com/spring/ifs/api/BaseSearchApi.java index 3a8caa8d..8ab0c385 100644 --- a/src/main/java/com/spring/ifs/api/BaseSearchApi.java +++ b/src/main/java/com/spring/ifs/api/BaseSearchApi.java @@ -626,22 +626,26 @@ public class BaseSearchApi { * @date 2025/5/6 11:58 * @version 1.0 */ - public static List getLaborClassCosts(Server srv, String siteCon, int startIndex, int pageSize) throws APException { + public static List getLaborClassCosts(Server srv, String siteCon, int startIndex, int pageSize) throws APException { StringBuilder searchSql = new StringBuilder(); - searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT, LABOR_CLASS_NO,"); - searchSql.append(" ifsapp.LABOR_CLASS_API.Get_labor_class_Description(CONTRACT, LABOR_CLASS_NO) laborClassDesc,"); - searchSql.append(" COST_SET, ifsapp.COST_SET_API.Get_Description(CONTRACT,COST_SET) costSetDesc, labor_class_RATE, labor_class_COST_CODE,"); - searchSql.append(" to_char(START_DATE, 'yyyy-MM-dd') START_DATE, to_char(END_DATE, 'yyyy-MM-dd') END_DATE"); - searchSql.append(" FROM ifsapp.LABOR_CLASS_COST"); - searchSql.append(" WHERE COST_SET = '1' AND END_DATE IS NULL"); + searchSql.append("SELECT lcc.OBJID ifsRowId, lcc.OBJVERSION ifsRowVersion, lcc.CONTRACT, lcc.LABOR_CLASS_NO,"); + searchSql.append(" ifsapp.LABOR_CLASS_API.Get_labor_class_Description(lcc.CONTRACT, lcc.LABOR_CLASS_NO) laborClassDesc,"); + searchSql.append(" lcc.COST_SET, ifsapp.COST_SET_API.Get_Description(lcc.CONTRACT,lcc.COST_SET) costSetDesc,"); + searchSql.append(" lcc.labor_class_RATE, lcc.labor_class_COST_CODE,"); + searchSql.append(" to_char(lcc.START_DATE, 'yyyy-MM-dd') START_DATE, to_char(lcc.END_DATE, 'yyyy-MM-dd') END_DATE,"); + searchSql.append(" (CASE WHEN lc.objstate = 'Active' THEN 'Y' ELSE 'N' END) active"); + searchSql.append(" FROM ifsapp.LABOR_CLASS_COST lcc"); + searchSql.append(" LEFT JOIN ifsapp.labor_class lc ON lc.CONTRACT = lcc.CONTRACT AND lc.LABOR_CLASS_NO = lcc.LABOR_CLASS_NO"); + searchSql.append(" WHERE lcc.COST_SET = '1' AND lcc.END_DATE IS NULL"); + //添加判断的查询条件 if(!(null == siteCon || "".equals(siteCon))) { - searchSql.append(" AND pcs.contract IN "+siteCon); + searchSql.append(" AND lcc.contract IN "+siteCon); } //设置查询的入参 Map inParam = new HashMap<>(); //添加排序语句 - searchSql.append(" ORDER BY CONTRACT, LABOR_CLASS_NO"); + searchSql.append(" ORDER BY lcc.CONTRACT, lcc.LABOR_CLASS_NO"); //添加分页的查询语句 searchSql.append(" OFFSET "+startIndex+" ROWS FETCH NEXT "+pageSize+" ROWS ONLY"); logger.info("人员等级成本查询语句sql"+searchSql.toString()); @@ -651,25 +655,25 @@ public class BaseSearchApi { if (recordCollection == null) { return new ArrayList<>(); } else { - List returnlList = new ArrayList<>(); + List returnlList = new ArrayList<>(); //处理结果集 List> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection); //获取数据转bean for (int i = 0; i < resultList.size(); i++) { Map tempMap = resultList.get(i); - LaborClassCost tempItem = new LaborClassCost(); + PersonnelLevelVo tempItem = new PersonnelLevelVo(); //设置参数 - tempItem.setIfsRowId(tempMap.get("IFSROWID")); + //tempItem.setIfsRowId(tempMap.get("IFSROWID")); tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION")); - tempItem.setContract(tempMap.get("CONTRACT")); - tempItem.setLaborClassNo(tempMap.get("LABOR_CLASS_NO")); - tempItem.setLaborClassDesc(tempMap.get("LABORCLASSDESC")); - tempItem.setCostSet(tempMap.get("COST_SET")); - tempItem.setCostSetDesc(tempMap.get("COSTSETDESC")); - tempItem.setLaborClassRate(tempMap.get("LABOR_CLASS_RATE")); - tempItem.setLaborClassCostCode(tempMap.get("LABOR_CLASS_COST_CODE")); - tempItem.setStartDate(tempMap.get("START_DATE")); - tempItem.setEndDate(tempMap.get("END_DATE")); + tempItem.setSite(tempMap.get("CONTRACT")); + tempItem.setLevelId(tempMap.get("LABOR_CLASS_NO")); + tempItem.setLevelDesc(tempMap.get("LABORCLASSDESC")); + tempItem.setActive(tempMap.get("ACTIVE")); + tempItem.setCreateDate(DateUtils.getStringToDate(tempMap.get("START_DATE"), "yyyy-MM-dd")); + tempItem.setCreateBy(tempMap.get("Admin")); + tempItem.setUpdateDate(null); // 从tempMap获取值 + tempItem.setUpdateBy(tempMap.get("UPDATE_BY")); // 从tempMap获取值 + tempItem.setLevelCost(new BigDecimal(tempMap.get("LABOR_CLASS_RATE"))); //添加对象 returnlList.add(tempItem); } diff --git a/src/main/java/com/spring/ifs/api/BaseSearchApiTest.java b/src/main/java/com/spring/ifs/api/BaseSearchApiTest.java index 81ea04b0..23e49d39 100644 --- a/src/main/java/com/spring/ifs/api/BaseSearchApiTest.java +++ b/src/main/java/com/spring/ifs/api/BaseSearchApiTest.java @@ -6,6 +6,7 @@ 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.entity.APIEntity.PartIfsInventory; import com.spring.modules.part.vo.InventoryPartUnitCostSumVo; import ifs.fnd.ap.APException; @@ -14,6 +15,7 @@ import ifs.fnd.ap.Server; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -582,46 +584,54 @@ public class BaseSearchApiTest { * @date 2025/5/6 11:58 * @version 1.0 */ - public static List getLaborClassCosts(Server srv, int startIndex, int pageSize) throws APException { + public static List getLaborClassCosts(Server srv, String siteCon, int startIndex, int pageSize) throws APException { StringBuilder searchSql = new StringBuilder(); - searchSql.append("SELECT OBJID ifsRowId, OBJVERSION ifsRowVersion, CONTRACT, LABOR_CLASS_NO,"); - searchSql.append(" ifsapp.LABOR_CLASS_API.Get_labor_class_Description(CONTRACT, LABOR_CLASS_NO) laborClassDesc,"); - searchSql.append(" COST_SET, ifsapp.COST_SET_API.Get_Description(CONTRACT,COST_SET) costSetDesc, labor_class_RATE, labor_class_COST_CODE,"); - searchSql.append(" to_char(START_DATE, 'yyyy-MM-dd') START_DATE, to_char(END_DATE, 'yyyy-MM-dd') END_DATE"); - searchSql.append(" FROM ifsapp.LABOR_CLASS_COST"); - searchSql.append(" WHERE COST_SET = '1' AND END_DATE IS NULL"); + searchSql.append("SELECT lcc.OBJID ifsRowId, lcc.OBJVERSION ifsRowVersion, lcc.CONTRACT, lcc.LABOR_CLASS_NO,"); + searchSql.append(" ifsapp.LABOR_CLASS_API.Get_labor_class_Description(lcc.CONTRACT, lcc.LABOR_CLASS_NO) laborClassDesc,"); + searchSql.append(" lcc.COST_SET, ifsapp.COST_SET_API.Get_Description(lcc.CONTRACT,lcc.COST_SET) costSetDesc,"); + searchSql.append(" lcc.labor_class_RATE, lcc.labor_class_COST_CODE,"); + searchSql.append(" to_char(lcc.START_DATE, 'yyyy-MM-dd') START_DATE, to_char(lcc.END_DATE, 'yyyy-MM-dd') END_DATE,"); + searchSql.append(" (CASE WHEN lc.objstate = 'Active' THEN 'Y' ELSE 'N' END) active"); + searchSql.append(" FROM ifsapp.LABOR_CLASS_COST lcc"); + searchSql.append(" LEFT JOIN ifsapp.labor_class lc ON lc.CONTRACT = lcc.CONTRACT AND lc.LABOR_CLASS_NO = lcc.LABOR_CLASS_NO"); + searchSql.append(" WHERE lcc.COST_SET = '1' AND lcc.END_DATE IS NULL"); + + //添加判断的查询条件 + if (!(null == siteCon || "".equals(siteCon))) { + searchSql.append(" AND lcc.contract IN " + siteCon); + } //设置查询的入参 Map inParam = new HashMap<>(); //添加排序语句 - searchSql.append(" ORDER BY CONTRACT, LABOR_CLASS_NO"); + searchSql.append(" ORDER BY lcc.CONTRACT, lcc.LABOR_CLASS_NO"); //添加分页的查询语句 - searchSql.append(" OFFSET "+startIndex+" ROWS FETCH NEXT "+pageSize+" ROWS ONLY"); - logger.info("人员等级成本查询语句sql"+searchSql.toString()); + searchSql.append(" OFFSET " + startIndex + " ROWS FETCH NEXT " + pageSize + " ROWS ONLY"); + logger.info("人员等级成本查询语句sql" + searchSql.toString()); //调用查询的通用方法 RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam); //判断能否返回 if (recordCollection == null) { return new ArrayList<>(); } else { - List returnlList = new ArrayList<>(); + List returnlList = new ArrayList<>(); //处理结果集 List> resultList = IfsConverterToMap.ConverterIfsToList(recordCollection); //获取数据转bean for (int i = 0; i < resultList.size(); i++) { Map tempMap = resultList.get(i); - LaborClassCost tempItem = new LaborClassCost(); + PersonnelLevelVo tempItem = new PersonnelLevelVo(); //设置参数 - tempItem.setIfsRowId(tempMap.get("IFSROWID")); + //tempItem.setIfsRowId(tempMap.get("IFSROWID")); tempItem.setIfsRowVersion(tempMap.get("IFSROWVERSION")); - tempItem.setContract(tempMap.get("CONTRACT")); - tempItem.setLaborClassNo(tempMap.get("LABOR_CLASS_NO")); - tempItem.setLaborClassDesc(tempMap.get("LABORCLASSDESC")); - tempItem.setCostSet(tempMap.get("COST_SET")); - tempItem.setCostSetDesc(tempMap.get("COSTSETDESC")); - tempItem.setLaborClassRate(tempMap.get("LABOR_CLASS_RATE")); - tempItem.setLaborClassCostCode(tempMap.get("LABOR_CLASS_COST_CODE")); - tempItem.setStartDate(tempMap.get("START_DATE")); - tempItem.setEndDate(tempMap.get("END_DATE")); + tempItem.setSite(tempMap.get("CONTRACT")); + tempItem.setLevelId(tempMap.get("LABOR_CLASS_NO")); + tempItem.setLevelDesc(tempMap.get("LABORCLASSDESC")); + tempItem.setActive(tempMap.get("ACTIVE")); + tempItem.setCreateDate(DateUtils.getStringToDate(tempMap.get("START_DATE"), "yyyy-MM-dd")); + tempItem.setCreateBy(tempMap.get("Admin")); + tempItem.setUpdateDate(null); // 从tempMap获取值 + tempItem.setUpdateBy(tempMap.get("UPDATE_BY")); // 从tempMap获取值 + tempItem.setLevelCost(new BigDecimal(tempMap.get("LABOR_CLASS_RATE"))); //添加对象 returnlList.add(tempItem); } diff --git a/src/main/java/com/spring/ifs/bean/BaseSearchBean.java b/src/main/java/com/spring/ifs/bean/BaseSearchBean.java index b44c1381..fb9a9382 100644 --- a/src/main/java/com/spring/ifs/bean/BaseSearchBean.java +++ b/src/main/java/com/spring/ifs/bean/BaseSearchBean.java @@ -277,16 +277,16 @@ public class BaseSearchBean { * @date 2025/5/6 11:55 * @version 1.0 */ - public List getLaborClassCosts(Server srv, BaseSearchData inData) throws APException { + public List getLaborClassCosts(Server srv, BaseSearchData inData) throws APException { //查询的参数 logger.info("人员等级成本开始查询!"); String siteCon = inData.getSiteCon(); - List resultList = new ArrayList<>(); + List resultList = new ArrayList<>(); int pageSize = 200; //迭代查询 for(int i = 0; i < 100; i++){ int startIndex = i * pageSize; - List tempList = BaseSearchApi.getLaborClassCosts(srv, siteCon, startIndex, pageSize); + List tempList = BaseSearchApi.getLaborClassCosts(srv, siteCon, startIndex, pageSize); //判断查询是否结束 if(tempList.size() > 0) { resultList.addAll(tempList); diff --git a/src/main/java/com/spring/ifs/bean/BaseSearchBeanTest.java b/src/main/java/com/spring/ifs/bean/BaseSearchBeanTest.java index 2db15bb1..d85ff1f6 100644 --- a/src/main/java/com/spring/ifs/bean/BaseSearchBeanTest.java +++ b/src/main/java/com/spring/ifs/bean/BaseSearchBeanTest.java @@ -9,6 +9,7 @@ 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.entity.APIEntity.PartIfsInventory; import com.spring.modules.part.entity.PartInformationEntity; import com.spring.modules.part.vo.InventoryPartUnitCostSumVo; @@ -286,19 +287,20 @@ public class BaseSearchBeanTest { * @date 2025/5/6 11:55 * @version 1.0 */ - public List getLaborClassCosts(BaseSearchData inData) throws APException { + public List getLaborClassCosts(BaseSearchData inData) throws APException { //查询的参数 logger.info("人员等级成本开始查询!"); String username = inData.getIfsUsername(); String password = inData.getIfsPassword(); - List resultList = new ArrayList<>(); + String siteCon = inData.getSiteCon(); + List resultList = new ArrayList<>(); int pageSize = 200; try { Server srv = ifsServer.getIfsServer(username, password); //迭代查询 for(int i = 0; i < 100; i++){ int startIndex = i * pageSize; - List tempList = BaseSearchApi.getLaborClassCosts(srv, startIndex, pageSize); + List tempList = BaseSearchApi.getLaborClassCosts(srv, siteCon, startIndex, pageSize); //判断查询是否结束 if(tempList.size() > 0) { resultList.addAll(tempList); diff --git a/src/main/java/com/spring/ifs/controller/TestIfsController.java b/src/main/java/com/spring/ifs/controller/TestIfsController.java index bf4de5b3..3540bf74 100644 --- a/src/main/java/com/spring/ifs/controller/TestIfsController.java +++ b/src/main/java/com/spring/ifs/controller/TestIfsController.java @@ -3,6 +3,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.base.vo.PersonnelLevelVo; import com.spring.modules.part.entity.APIEntity.PartIfsInventory; import com.spring.modules.part.entity.APIEntity.RecipeIfsAlternative; import com.spring.modules.part.entity.APIEntity.RecipeIfsHeader; @@ -2095,6 +2096,7 @@ public class TestIfsController { try { List returnList = baseSearchBeanTest.getWorkCenterCosts(inData); resultMap.put("returnMap", returnList); + resultMap.put("total", returnList.size()); resultMap.put("code", 200); resultMap.put("msg", "操作成功!"); } catch (Exception e) { @@ -2135,8 +2137,9 @@ public class TestIfsController { public Object getLaborClassCosts(@RequestBody BaseSearchData inData) throws APException { Map resultMap = new HashMap(); try { - List returnList = baseSearchBeanTest.getLaborClassCosts(inData); + List returnList = baseSearchBeanTest.getLaborClassCosts(inData); resultMap.put("returnMap", returnList); + resultMap.put("total", returnList.size()); resultMap.put("code", 200); resultMap.put("msg", "操作成功!"); } catch (Exception e) {