From d901e9e1b88dd5c93830826b981975d65edb470f Mon Sep 17 00:00:00 2001 From: yinq Date: Mon, 17 Jun 2024 11:17:53 +0800 Subject: [PATCH] =?UTF-8?q?change=20-=20=E5=90=8C=E6=AD=A5=E5=91=98?= =?UTF-8?q?=E5=B7=A5=E5=B7=A5=E8=B5=84=E7=B3=BB=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/api/controller/ERPPortController.java | 15 ++++ .../mes/api/domain/UpperLowerGlueItem1.java | 4 +- .../os/mes/api/service/IERPPortService.java | 9 +++ .../api/service/impl/ERPPortServiceImpl.java | 41 +++++++++++ .../com/os/mes/api/utils/ERPConstants.java | 2 +- .../base/service/IBaseStaffInfoService.java | 9 +++ .../impl/BaseStaffInfoServiceImpl.java | 34 ++++++++++ os-quartz/pom.xml | 6 ++ .../main/java/com/os/quartz/task/ERPTask.java | 68 +++++++++++++++++++ 9 files changed, 185 insertions(+), 3 deletions(-) create mode 100644 os-quartz/src/main/java/com/os/quartz/task/ERPTask.java diff --git a/os-mes/src/main/java/com/os/mes/api/controller/ERPPortController.java b/os-mes/src/main/java/com/os/mes/api/controller/ERPPortController.java index cf92c78..007aa20 100644 --- a/os-mes/src/main/java/com/os/mes/api/controller/ERPPortController.java +++ b/os-mes/src/main/java/com/os/mes/api/controller/ERPPortController.java @@ -40,5 +40,20 @@ public class ERPPortController extends BaseController { return AjaxResult.success(portService.getERPOrderData(paramDto)); } + /** + * 获取员工工资系数 + * + * @param paramMap + * @return + */ + @PostMapping("/getERPEmployeeWageData") + public AjaxResult getERPEmployeeWageData(@RequestBody Map paramMap) { + ERPParamDto paramDto = new ERPParamDto(); + paramDto.setAppCode(String.valueOf(paramMap.get("AppCode"))); + paramDto.setController(String.valueOf(paramMap.get("Controller"))); + paramDto.setActionName(String.valueOf(paramMap.get("ActionName"))); + return AjaxResult.success(portService.getERPEmployeeWageData(paramDto)); + } + } diff --git a/os-mes/src/main/java/com/os/mes/api/domain/UpperLowerGlueItem1.java b/os-mes/src/main/java/com/os/mes/api/domain/UpperLowerGlueItem1.java index 775d612..c2f7873 100644 --- a/os-mes/src/main/java/com/os/mes/api/domain/UpperLowerGlueItem1.java +++ b/os-mes/src/main/java/com/os/mes/api/domain/UpperLowerGlueItem1.java @@ -25,11 +25,11 @@ public class UpperLowerGlueItem1 { MaterialNo = materialNo; } - public com.os.mes.api.domain.Material getMaterial() { + public Material getMaterial() { return Material; } - public void setMaterial(com.os.mes.api.domain.Material material) { + public void setMaterial(Material material) { Material = material; } diff --git a/os-mes/src/main/java/com/os/mes/api/service/IERPPortService.java b/os-mes/src/main/java/com/os/mes/api/service/IERPPortService.java index 0a2db15..0e25fd3 100644 --- a/os-mes/src/main/java/com/os/mes/api/service/IERPPortService.java +++ b/os-mes/src/main/java/com/os/mes/api/service/IERPPortService.java @@ -2,6 +2,7 @@ package com.os.mes.api.service; import com.os.mes.api.domain.ERPParamDto; +import com.os.mes.base.domain.BaseStaffInfo; import com.os.mes.prod.domain.ProdOrderDetail; import java.util.List; @@ -22,4 +23,12 @@ public interface IERPPortService { */ List getERPOrderData(ERPParamDto paramDto); + /** + * 获取员工工资系数 + * @param paramDto + * @return + */ + List getERPEmployeeWageData(ERPParamDto paramDto); + + } diff --git a/os-mes/src/main/java/com/os/mes/api/service/impl/ERPPortServiceImpl.java b/os-mes/src/main/java/com/os/mes/api/service/impl/ERPPortServiceImpl.java index 6de1dec..6e3d2ad 100644 --- a/os-mes/src/main/java/com/os/mes/api/service/impl/ERPPortServiceImpl.java +++ b/os-mes/src/main/java/com/os/mes/api/service/impl/ERPPortServiceImpl.java @@ -9,6 +9,8 @@ import com.os.mes.api.domain.ResponseData; import com.os.mes.api.service.IERPPortService; import com.os.mes.api.utils.ApiUtils; import com.os.mes.api.utils.ERPConstants; +import com.os.mes.base.domain.BaseStaffInfo; +import com.os.mes.base.service.IBaseStaffInfoService; import com.os.mes.prod.domain.ProdOrderDetail; import com.os.mes.prod.service.IProdOrderInfoService; import com.os.mes.prod.service.impl.ProdOrderInfoServiceImpl; @@ -18,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; @@ -34,6 +37,9 @@ public class ERPPortServiceImpl implements IERPPortService { @Autowired private IProdOrderInfoService orderInfoService; + @Autowired + private IBaseStaffInfoService staffInfoService; + /** * 获取ERP订单接口 * @@ -70,4 +76,39 @@ public class ERPPortServiceImpl implements IERPPortService { } + /** + * 获取员工工资系数 + * @param paramDto + * @return + */ + @Override + public List getERPEmployeeWageData(ERPParamDto paramDto) { + List resultList = new ArrayList<>(); + String requestParam = null; + String result = null; + try { + // 创建ObjectMapper实例 对象转JSON字符串 + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.UPPER_CAMEL_CASE); + requestParam = objectMapper.writeValueAsString(paramDto); + result = ApiUtils.sendERPHttpPost(ERPConstants.ERP_URL, requestParam); + // 处理接口返回消息 + ObjectMapper resultMapper = new ObjectMapper(); + // 将 JSON 字符串转换为 Java 对象 + HashMap hashMap = resultMapper.readValue(result, HashMap.class); + HashMap returnData = (HashMap)hashMap.get("ReturnData"); + List> dataList = (List>)returnData.get("data"); + for (HashMap data : dataList) { + BaseStaffInfo baseStaffInfo = staffInfoService.insertStaffByERP(data); + resultList.add(baseStaffInfo); + } + logger.warn("获取员工工资系数成功:" + requestParam + "|" + result); + } catch (JsonProcessingException e) { + logger.warn("获取员工工资系数异常:" + requestParam + "|" + result + "|" + e); + } + + return resultList; + } + + } diff --git a/os-mes/src/main/java/com/os/mes/api/utils/ERPConstants.java b/os-mes/src/main/java/com/os/mes/api/utils/ERPConstants.java index a8e276b..8812eb6 100644 --- a/os-mes/src/main/java/com/os/mes/api/utils/ERPConstants.java +++ b/os-mes/src/main/java/com/os/mes/api/utils/ERPConstants.java @@ -32,7 +32,7 @@ public class ERPConstants { public static final String orderActionName = "GetReleaseOrders"; - //获取【政策与条款】-最新工资系数 + //最新工资系数 public static final String salaryAppCode = "A1c661aa059ad4d4f8230b187a85385c5"; public static final String salaryController = "SalaryCoefficientApiController"; public static final String salaryActionName = "GetSalaryCoefficient"; diff --git a/os-mes/src/main/java/com/os/mes/base/service/IBaseStaffInfoService.java b/os-mes/src/main/java/com/os/mes/base/service/IBaseStaffInfoService.java index 463d9cd..4314bf0 100644 --- a/os-mes/src/main/java/com/os/mes/base/service/IBaseStaffInfoService.java +++ b/os-mes/src/main/java/com/os/mes/base/service/IBaseStaffInfoService.java @@ -1,5 +1,6 @@ package com.os.mes.base.service; +import java.util.HashMap; import java.util.List; import com.os.mes.base.domain.BaseStaffInfo; @@ -58,4 +59,12 @@ public interface IBaseStaffInfoService { * @return 结果 */ public int deleteBaseStaffInfoByObjId(Long objId); + + /** + * 通过ERP接口维护人员信息 + * @param data + * @return + */ + public BaseStaffInfo insertStaffByERP(HashMap data); + } diff --git a/os-mes/src/main/java/com/os/mes/base/service/impl/BaseStaffInfoServiceImpl.java b/os-mes/src/main/java/com/os/mes/base/service/impl/BaseStaffInfoServiceImpl.java index d7758f0..ba2decb 100644 --- a/os-mes/src/main/java/com/os/mes/base/service/impl/BaseStaffInfoServiceImpl.java +++ b/os-mes/src/main/java/com/os/mes/base/service/impl/BaseStaffInfoServiceImpl.java @@ -1,5 +1,7 @@ package com.os.mes.base.service.impl; +import java.math.BigDecimal; +import java.util.HashMap; import java.util.List; import com.os.common.utils.DateUtils; @@ -94,4 +96,36 @@ public class BaseStaffInfoServiceImpl implements IBaseStaffInfoService { baseStaffInfo.setDelFlag("2"); return baseStaffInfoMapper.updateBaseStaffInfo(baseStaffInfo); } + + /** + * 员工工资系数 + * + * @param data + * @return + */ + @Override + public BaseStaffInfo insertStaffByERP(HashMap data) { + String jobNumber = String.valueOf(data.get("JobNumber")); + String SalaryCoefficient = String.valueOf(data.get("SalaryCoefficient")); + BaseStaffInfo staffInfo = new BaseStaffInfo(); + staffInfo.setStaffId(jobNumber); + List staffInfoList = baseStaffInfoMapper.selectBaseStaffInfoList(staffInfo); + + if (staffInfoList.size() > 0) { + staffInfo = staffInfoList.get(0); + staffInfo.setWageCoefficient(new BigDecimal(SalaryCoefficient)); + staffInfo.setUpdateTime(DateUtils.getNowDate()); + baseStaffInfoMapper.updateBaseStaffInfo(staffInfo); + } else { + staffInfo.setStaffName(jobNumber); + staffInfo.setStaffType("2"); + staffInfo.setSex("2"); + staffInfo.setTeamCode(" "); + staffInfo.setWageCoefficient(new BigDecimal(SalaryCoefficient)); + staffInfo.setCreateTime(DateUtils.getNowDate()); + baseStaffInfoMapper.insertBaseStaffInfo(staffInfo); + } + + return staffInfo; + } } diff --git a/os-quartz/pom.xml b/os-quartz/pom.xml index 77d1460..0633a31 100644 --- a/os-quartz/pom.xml +++ b/os-quartz/pom.xml @@ -35,6 +35,12 @@ haiwei-common + + + com.haiwei + haiwei-mes + + \ No newline at end of file diff --git a/os-quartz/src/main/java/com/os/quartz/task/ERPTask.java b/os-quartz/src/main/java/com/os/quartz/task/ERPTask.java new file mode 100644 index 0000000..9752c39 --- /dev/null +++ b/os-quartz/src/main/java/com/os/quartz/task/ERPTask.java @@ -0,0 +1,68 @@ +package com.os.quartz.task; + + +import com.os.mes.api.domain.ERPParamDto; +import com.os.mes.api.service.IERPPortService; +import com.os.mes.api.utils.ERPConstants; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + + +/** + * @Author YinQ + * @create 2023-10-08 9:11 + */ +@Component("ERPTask") +public class ERPTask { + + @Autowired + private IERPPortService portService; + + public void ERPOrderTask(Long startDays, Long endDays) { + String startDate = convertDaysToDateString(startDays, 0); + String endDate = convertDaysToDateString(endDays, 1); + ERPParamDto paramDto = new ERPParamDto(); + paramDto.setAppCode(ERPConstants.orderAppCode); + paramDto.setController(ERPConstants.orderController); + paramDto.setActionName(ERPConstants.orderActionName); + paramDto.setOrderStartTime(startDate); + paramDto.setOrderEndTime(endDate); + portService.getERPOrderData(paramDto); + } + + public void ERPEmployeeWageTask() { + ERPParamDto paramDto = new ERPParamDto(); + paramDto.setAppCode(ERPConstants.employeeAppCode); + paramDto.setController(ERPConstants.employeeController); + paramDto.setActionName(ERPConstants.employeeActionName); + portService.getERPEmployeeWageData(paramDto); + } + + /** + * 输出days天type的日期 + * type: 0-减法;1-加法 + * + * @param days + * @return + */ + public static String convertDaysToDateString(Long days, Integer type) { + // 获取当前日期 + LocalDate currentDate = LocalDate.now(); + LocalDate targetDate = null; + // 减去相应的天数 + if (type.equals(0)) { + targetDate = currentDate.minusDays(days); + } else { + targetDate = currentDate.plusDays(days); + } + + // 创建DateTimeFormatter对象,指定日期格式 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd 00:00:00"); + + // 格式化日期为字符串并返回 + return targetDate.format(formatter); + } +}