change - 生产工单加导入类型、定时同步ERP生产计划管理、首页看板接口

maser
yinq 9 months ago
parent 9ff53f30fa
commit a6e4223a63

@ -6,9 +6,9 @@ spring:
# 主库数据源
master:
driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
url: jdbc:sqlserver://121.37.164.0:1433;SelectMethod=cursor;DatabaseName=xmxs_os
url: jdbc:sqlserver://119.45.202.115:1433;SelectMethod=cursor;DatabaseName=xmxs_os
username: sa
password: Yq123456
password: haiwei@123
# 从库数据源
slave:
driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver

@ -61,6 +61,34 @@ public class ERPParamDto {
@JsonProperty(value = "TaskCode")
private String TaskCode;
/**
*
*/
@JsonProperty(value = "PlanStartTime")
private String PlanStartTime;
/**
*
*/
@JsonProperty(value = "PlanEndTime")
private String PlanEndTime;
public String getPlanStartTime() {
return PlanStartTime;
}
public void setPlanStartTime(String planStartTime) {
PlanStartTime = planStartTime;
}
public String getPlanEndTime() {
return PlanEndTime;
}
public void setPlanEndTime(String planEndTime) {
PlanEndTime = planEndTime;
}
public String getTaskCode() {
return TaskCode;
}

@ -54,4 +54,10 @@ public interface IERPPortService {
*/
String getERPProductionPlan(ERPParamDto paramDto);
/**
* ERP
* @param paramDto
*/
void getProductionPlanTask(ERPParamDto paramDto);
}

@ -187,20 +187,20 @@ public class ERPPortServiceImpl implements IERPPortService {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.UPPER_CAMEL_CASE);
requestParam = objectMapper.writeValueAsString(erpStaffSalary);
// result = ApiUtils.sendERPHttpPost(ERPConstants.ERP_URL, requestParam);
result = "{\n" +
"\t\"Successful\": true,\n" +
"\t\"ErrorMessage\": null,\n" +
"\t\"Logined\": false,\n" +
"\t\"ReturnData\": {\n" +
"\t\t\"data\": {\n" +
"\t\t\t\"ObjectId\": \"25ff81b4-fb0b-4f1c-b9b1-6a2afab1cd0f\"\n" +
"\t\t},\n" +
"\t\t\"result\": \"success\",\n" +
"\t\t\"message\": \"创建成功!\"\n" +
"\t},\n" +
"\t\"DataType\": 0\n" +
"}";
result = ApiUtils.sendERPHttpPost(ERPConstants.ERP_URL, requestParam);
// result = "{\n" +
// "\t\"Successful\": true,\n" +
// "\t\"ErrorMessage\": null,\n" +
// "\t\"Logined\": false,\n" +
// "\t\"ReturnData\": {\n" +
// "\t\t\"data\": {\n" +
// "\t\t\t\"ObjectId\": \"25ff81b4-fb0b-4f1c-b9b1-6a2afab1cd0f\"\n" +
// "\t\t},\n" +
// "\t\t\"result\": \"success\",\n" +
// "\t\t\"message\": \"创建成功!\"\n" +
// "\t},\n" +
// "\t\"DataType\": 0\n" +
// "}";
// 处理接口返回消息
ObjectMapper resultMapper = new ObjectMapper();
// 将 JSON 字符串转换为 Java 对象
@ -233,9 +233,6 @@ public class ERPPortServiceImpl implements IERPPortService {
if (StringUtils.isEmpty(paramDto.getActionName())) {
paramDto.setActionName(ERPConstants.planActionName);
}
if (StringUtils.isEmpty(paramDto.getTaskCode())) {
return null;
}
try {
// 创建ObjectMapper实例 对象转JSON字符串
@ -260,4 +257,13 @@ public class ERPPortServiceImpl implements IERPPortService {
}
/**
* ERP
* @param paramDto
*/
@Override
public void getProductionPlanTask(ERPParamDto paramDto) {
this.getERPProductionPlan(paramDto);
}
}

@ -85,6 +85,25 @@ public class BaseDeviceLedger extends BaseEntity
@Excel(name = "资产编号")
private String assetCode;
private String processCode;
private String processName;
public String getProcessCode() {
return processCode;
}
public void setProcessCode(String processCode) {
this.processCode = processCode;
}
public String getProcessName() {
return processName;
}
public void setProcessName(String processName) {
this.processName = processName;
}
public String getProductLineName() {
return productLineName;
}

@ -64,4 +64,12 @@ public interface BaseDeviceLedgerMapper
* @return
*/
public String getDeviceCode();
/**
*
*
* @param deviceCode
* @return
*/
public BaseDeviceLedger selectBaseDeviceLedgerByDeviceCode(String deviceCode);
}

@ -2,6 +2,7 @@ package com.os.mes.prod.domain;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
@ -62,39 +63,39 @@ public class ProdPlanErpInfo extends BaseEntity
private String equipmentNo;
/** 准备时间(分) */
@Excel(name = "准备时间", readConverterExp = "分=")
@Excel(name = "准备时间")
private BigDecimal preparationDuration;
/** 收尾时间(分) */
@Excel(name = "收尾时间", readConverterExp = "分=")
@Excel(name = "收尾时间")
private BigDecimal windUpDuration;
/** 出布最小速度(米 / 分) */
@Excel(name = "出布最小速度", readConverterExp = "米=,/=,分=")
@Excel(name = "出布最小速度")
private BigDecimal clothMinimumSpeed;
/** 出布最大速度(米 / 分) */
@Excel(name = "出布最大速度", readConverterExp = "米=,/=,分=")
@Excel(name = "出布最大速度")
private BigDecimal clothMaximumSpeed;
/** 成型最小速度(米 / 分) */
@Excel(name = "成型最小速度", readConverterExp = "米=,/=,分=")
@Excel(name = "成型最小速度")
private BigDecimal formingMinimumSpeed;
/** 成型最大速度(米 / 分) */
@Excel(name = "成型最大速度", readConverterExp = "米=,/=,分=")
@Excel(name = "成型最大速度")
private BigDecimal formingMaximumSpeed;
/** 包胶最小速度(米 / 分) */
@Excel(name = "包胶最小速度", readConverterExp = "米=,/=,分=")
@Excel(name = "包胶最小速度")
private BigDecimal glueMinimumSpeed;
/** 包胶最大速度(米 / 分) */
@Excel(name = "包胶最大速度", readConverterExp = "米=,/=,分=")
@Excel(name = "包胶最大速度")
private BigDecimal glueMaximumSpeed;
/** 每锅硫化米数m */
@Excel(name = "每锅硫化米数", readConverterExp = "m=")
@Excel(name = "每锅硫化米数")
private BigDecimal sulfurizationLength;
/** 硫化机类型 */
@ -130,31 +131,31 @@ public class ProdPlanErpInfo extends BaseEntity
private String conveyorLengthSpecification;
/** 上胶厚度mm */
@Excel(name = "上胶厚度", readConverterExp = "m=m")
@Excel(name = "上胶厚度")
private BigDecimal upGlueThickness;
/** 上缓冲胶厚度mm */
@Excel(name = "上缓冲胶厚度", readConverterExp = "m=m")
@Excel(name = "上缓冲胶厚度")
private BigDecimal upBufferGlueThickness;
/** 下胶厚度mm */
@Excel(name = "下胶厚度", readConverterExp = "m=m")
@Excel(name = "下胶厚度")
private BigDecimal belowGlueThickness;
/** 下缓冲胶厚度mm */
@Excel(name = "下缓冲胶厚度", readConverterExp = "m=m")
@Excel(name = "下缓冲胶厚度")
private BigDecimal belowBufferGlueThickness;
/** 输送带宽度mm */
@Excel(name = "输送带宽度", readConverterExp = "m=m")
@Excel(name = "输送带宽度")
private BigDecimal beltWidth;
/** 客户要求输送带长度m */
@Excel(name = "客户要求输送带长度", readConverterExp = "m=")
@Excel(name = "客户要求输送带长度")
private BigDecimal customerRequestConveyorLength;
/** 压延生产米数m */
@Excel(name = "压延生产米数", readConverterExp = "m=")
@Excel(name = "压延生产米数")
private BigDecimal rollingProductionMeters;
/** 需要硫化米数 */
@ -178,27 +179,27 @@ public class ProdPlanErpInfo extends BaseEntity
private BigDecimal encapsulationMeters;
/** 工作速度(每小时) */
@Excel(name = "工作速度", readConverterExp = "每=小时")
@Excel(name = "工作速度")
private BigDecimal workSpeed;
/** 需要工时(小时) */
@Excel(name = "需要工时", readConverterExp = "小=时")
@Excel(name = "需要工时")
private BigDecimal workingHours;
/** 出布面积(㎡) */
@Excel(name = "出布面积", readConverterExp = "㎡=")
@Excel(name = "出布面积")
private BigDecimal distributionArea;
/** 包胶面积(㎡) */
@Excel(name = "包胶面积", readConverterExp = "㎡=")
@Excel(name = "包胶面积")
private BigDecimal encapsulationArea;
/** 硫化面积(㎡) */
@Excel(name = "硫化面积", readConverterExp = "㎡=")
@Excel(name = "硫化面积")
private BigDecimal vulcanizationArea;
/** 输送带总面积(㎡) */
@Excel(name = "输送带总面积", readConverterExp = "㎡=")
@Excel(name = "输送带总面积")
private BigDecimal conveyorTotalArea;
/** 胶料工艺 */
@ -214,7 +215,7 @@ public class ProdPlanErpInfo extends BaseEntity
private BigDecimal upGlueCoefficient;
/** 上胶标准用胶量KG */
@Excel(name = "上胶标准用胶量", readConverterExp = "K=G")
@Excel(name = "上胶标准用胶量")
private BigDecimal upGlueDosage;
/** 下胶使用胶料 */
@ -226,7 +227,7 @@ public class ProdPlanErpInfo extends BaseEntity
private BigDecimal belowGlueCoefficient;
/** 下胶标准用胶量KG */
@Excel(name = "下胶标准用胶量", readConverterExp = "K=G")
@Excel(name = "下胶标准用胶量")
private BigDecimal belowGlueDosage;
/** 缓冲/布胶使用胶料 */
@ -238,7 +239,7 @@ public class ProdPlanErpInfo extends BaseEntity
private BigDecimal bufferGlueCoefficient;
/** 缓冲胶标准用胶量KG */
@Excel(name = "缓冲胶标准用胶量", readConverterExp = "K=G")
@Excel(name = "缓冲胶标准用胶量")
private BigDecimal bufferGlueDosage;
/** 大布布料规格 */
@ -250,7 +251,7 @@ public class ProdPlanErpInfo extends BaseEntity
private BigDecimal largeClothFrictioningCoefficient;
/** 胶布标准用胶量KG */
@Excel(name = "胶布标准用胶量", readConverterExp = "K=G")
@Excel(name = "胶布标准用胶量")
private BigDecimal largeClothDosage;
/** 中间胶使用胶料 */
@ -262,7 +263,7 @@ public class ProdPlanErpInfo extends BaseEntity
private BigDecimal middleGlueCoefficient;
/** 中间胶标准用胶量KG */
@Excel(name = "中间胶标准用胶量", readConverterExp = "K=G")
@Excel(name = "中间胶标准用胶量")
private BigDecimal middleGlueDosage;
/** 设备使用限制 */
@ -289,9 +290,40 @@ public class ProdPlanErpInfo extends BaseEntity
@Excel(name = "组长")
private String groupLeader;
/** 小组编号 */
@Excel(name = "小组编号")
private String teamNo;
/** 人员活动详情 */
@Excel(name = "人员活动详情")
private List<String> personnelOperationDetails;
private List<HashMap<String, String>> personnelOperationDetails;
private String processCode;
private String stationCode;
public String getTeamNo() {
return teamNo;
}
public void setTeamNo(String teamNo) {
this.teamNo = teamNo;
}
public String getProcessCode() {
return processCode;
}
public void setProcessCode(String processCode) {
this.processCode = processCode;
}
public String getStationCode() {
return stationCode;
}
public void setStationCode(String stationCode) {
this.stationCode = stationCode;
}
public void setObjId(Long objId)
{
@ -897,11 +929,11 @@ public class ProdPlanErpInfo extends BaseEntity
return groupLeader;
}
public List<String> getPersonnelOperationDetails() {
public List<HashMap<String, String>> getPersonnelOperationDetails() {
return personnelOperationDetails;
}
public void setPersonnelOperationDetails(List<String> personnelOperationDetails) {
public void setPersonnelOperationDetails(List<HashMap<String, String>> personnelOperationDetails) {
this.personnelOperationDetails = personnelOperationDetails;
}

@ -150,8 +150,8 @@ public class ProdPlanInfo extends BaseEntity {
@Excel(name = "计划结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date planEndTime;
/** 工单状态0未开始 1执行中 2执行完成 3取消 */
@Excel(name = "工单状态", readConverterExp = "0=未开始,1=执行中,2=执行完成,3=取消")
/** 工单状态0未开始 1执行中 2执行完成 3取消 4待执行 */
@Excel(name = "工单状态", readConverterExp = "0=未开始,1=执行中,2=执行完成,3=取消,4=待执行")
private String planStatus;
/** 班次1早班 2小夜 3大夜 */
@ -162,8 +162,19 @@ public class ProdPlanInfo extends BaseEntity {
@Excel(name = "工序编号")
private String processCode;
/** 导入类型0=人工1=ERP */
private String importFlag;
private List<ProdPlanDetail> prodPlanDetailList;
public String getImportFlag() {
return importFlag;
}
public void setImportFlag(String importFlag) {
this.importFlag = importFlag;
}
public List<ProdPlanDetail> getProdPlanDetailList() {
return prodPlanDetailList;
}

@ -3,6 +3,9 @@ package com.os.mes.prod.service.impl;
import java.util.List;
import com.os.common.utils.DateUtils;
import com.os.common.utils.StringUtils;
import com.os.mes.base.domain.BaseDeviceLedger;
import com.os.mes.base.mapper.BaseDeviceLedgerMapper;
import com.os.mes.prod.domain.ProdPlanInfo;
import com.os.mes.prod.service.IProdPlanInfoService;
import org.springframework.beans.factory.annotation.Autowired;
@ -26,6 +29,9 @@ public class ProdPlanErpInfoServiceImpl implements IProdPlanErpInfoService {
@Autowired
private IProdPlanInfoService prodPlanInfoService;
@Autowired
private BaseDeviceLedgerMapper deviceLedgerMapper;
/**
*
*
@ -104,6 +110,14 @@ public class ProdPlanErpInfoServiceImpl implements IProdPlanErpInfoService {
@Transactional
public void insertOrUpdateProdPlanErpInfoList(List<ProdPlanErpInfo> dataList) {
for (ProdPlanErpInfo planErpInfo : dataList) {
String equipmentNo = planErpInfo.getEquipmentNo();
if (StringUtils.isNotEmpty(equipmentNo)) {
BaseDeviceLedger deviceLedger = deviceLedgerMapper.selectBaseDeviceLedgerByDeviceCode(equipmentNo);
if (StringUtils.isNotNull(deviceLedger)){
planErpInfo.setStationCode(deviceLedger.getProductLineCode());
planErpInfo.setProcessCode(deviceLedger.getProcessCode());
}
}
String seqNo = planErpInfo.getSeqNo();
ProdPlanErpInfo selectErpInfo = new ProdPlanErpInfo();
selectErpInfo.setSeqNo(seqNo);
@ -118,8 +132,11 @@ public class ProdPlanErpInfoServiceImpl implements IProdPlanErpInfoService {
planInfo.setPlanAmount(planErpInfo.getCustomerRequestConveyorLength());
planInfo.setPlanBeginTime(planErpInfo.getPlanStartTime());
planInfo.setPlanEndTime(planErpInfo.getPlanEndTime());
planInfo.setDeviceCode(equipmentNo);
planInfo.setProcessCode(planErpInfo.getProcessCode());
planInfo.setStationCode(planErpInfo.getStationCode());
planInfo.setTeamCode(planErpInfo.getTeamNo());
prodPlanInfoService.updateProdPlanInfo(planInfo);
ProdPlanErpInfo prodPlanErpInfo = infoList.get(0);
planErpInfo.setObjId(prodPlanErpInfo.getObjId());
this.updateProdPlanErpInfo(planErpInfo);
@ -128,14 +145,17 @@ public class ProdPlanErpInfoServiceImpl implements IProdPlanErpInfoService {
planInfo.setPlanCode(planErpInfo.getSeqNo());
planInfo.setOrderCode(planErpInfo.getTaskCode());
planInfo.setPlanAmount(planErpInfo.getCustomerRequestConveyorLength());
// planInfo.setDeviceCode(planErpInfo.getResourceName());
planInfo.setDeviceCode(equipmentNo);
planInfo.setProcessCode(planErpInfo.getProcessCode());
planInfo.setStationCode(planErpInfo.getStationCode());
planInfo.setPlanBeginTime(planErpInfo.getPlanStartTime());
planInfo.setPlanEndTime(planErpInfo.getPlanEndTime());
planInfo.setTeamCode(planErpInfo.getTeamNo());
planInfo.setPlanStatus("0");
planInfo.setImportFlag("1");
prodPlanInfoService.insertProdPlanInfo(planInfo);
this.insertProdPlanErpInfo(planErpInfo);
}
}
}
}

@ -101,6 +101,17 @@ public class RecordStaffSalary extends BaseEntity
/** ERP数据的ObjectId */
private String objectId;
/** 工序编号 */
private String processCode;
public String getProcessCode() {
return processCode;
}
public void setProcessCode(String processCode) {
this.processCode = processCode;
}
public String getObjectId() {
return objectId;
}

@ -0,0 +1,94 @@
package com.os.mes.record.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.os.common.annotation.Excel;
import com.os.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.math.BigDecimal;
import java.util.Date;
/**
* record_staff_salary
*
* @author Yinq
* @date 2024-07-02
*/
public class StaffSalaryVo extends BaseEntity
{
private static final long serialVersionUID = 1L;
/**
*
*/
private String processCode;
/**
* ID
*/
private String staffId;
/**
*
*/
private String staffName;
/** 工资系数 */
private BigDecimal salaryCoefficient;
/** 该工序所有员工工资系数 */
private BigDecimal sumSalaryCoefficient;
public String getProcessCode() {
return processCode;
}
public void setProcessCode(String processCode) {
this.processCode = processCode;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public BigDecimal getSalaryCoefficient() {
return salaryCoefficient;
}
public void setSalaryCoefficient(BigDecimal salaryCoefficient) {
this.salaryCoefficient = salaryCoefficient;
}
public BigDecimal getSumSalaryCoefficient() {
return sumSalaryCoefficient;
}
public void setSumSalaryCoefficient(BigDecimal sumSalaryCoefficient) {
this.sumSalaryCoefficient = sumSalaryCoefficient;
}
@Override
public String toString() {
return "StaffSalaryVo{" +
"processCode='" + processCode + '\'' +
", staffId='" + staffId + '\'' +
", staffName='" + staffName + '\'' +
", salaryCoefficient=" + salaryCoefficient +
", sumSalaryCoefficient=" + sumSalaryCoefficient +
'}';
}
}

@ -4,6 +4,7 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import com.os.common.exception.ServiceException;
import com.os.common.utils.DateUtils;
import com.os.common.utils.StringUtils;
import com.os.common.utils.uuid.PlanCodeUtils;
@ -22,12 +23,15 @@ import com.os.mes.prod.domain.ProdPlanInfo;
import com.os.mes.prod.mapper.ProdOrderInfoMapper;
import com.os.mes.prod.mapper.ProdPlanInfoMapper;
import com.os.mes.record.domain.RecordStaffCommute;
import com.os.mes.record.domain.StaffSalaryVo;
import com.os.mes.record.mapper.RecordStaffCommuteMapper;
import com.sun.org.apache.xpath.internal.operations.Bool;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.os.mes.record.mapper.RecordStaffSalaryMapper;
import com.os.mes.record.domain.RecordStaffSalary;
import com.os.mes.record.service.IRecordStaffSalaryService;
import org.springframework.transaction.annotation.Transactional;
/**
* Service
@ -130,6 +134,12 @@ public class RecordStaffSalaryServiceImpl implements IRecordStaffSalaryService {
/**
*
* = **/
* =/*
*
* 1
* 2
* 3 = * (/*) * (/) * (/)
*
* @param recordStaffSalary
* @return
@ -137,12 +147,93 @@ public class RecordStaffSalaryServiceImpl implements IRecordStaffSalaryService {
@Override
public List<RecordStaffSalary> selectTeamEmployeesWages(RecordStaffSalary recordStaffSalary) {
List<RecordStaffSalary> result = new ArrayList<>();
//调用最新工资系数接口
LatestSalary salaryData = portService.getERPLatestSalaryData(new ERPParamDto());
//遍历工序
List<BaseProcessInfo> processInfoList = baseProcessInfoMapper.selectBaseProcessInfoList(new BaseProcessInfo());
BaseProcessInfo selectProcessInfo = new BaseProcessInfo();
selectProcessInfo.setProcessCode(recordStaffSalary.getProcessCode());
List<BaseProcessInfo> processInfoList = baseProcessInfoMapper.selectBaseProcessInfoList(selectProcessInfo);
ProdPlanInfo planInfo = new ProdPlanInfo();
Map<String, Object> params = recordStaffSalary.getParams();
planInfo.setParams(params);
Date beginOrderDate = null;
Date endOrderDate = null;
if (params.containsKey("beginOrderDate")) {
beginOrderDate = DateUtils.parseDate(String.valueOf(params.get("beginOrderDate")));
}
if (params.containsKey("endOrderDate")) {
endOrderDate = DateUtils.parseDate(String.valueOf(params.get("endOrderDate")));
}
long objId = 1L;
String taskCode = PlanCodeUtils.getTaskCode();
//(每个工单的实际硫化米数/客户要求总米数*硫化面积)
for (BaseProcessInfo processInfo : processInfoList) {
List<StaffSalaryVo> salaryVoList = selectSumEmployeeSalary(processInfo.getProcessCode());
for (StaffSalaryVo staffSalaryVo : salaryVoList) {
}
}
return result;
}
/**
*
* @param processCode
* @return
*/
public List<StaffSalaryVo> selectSumEmployeeSalary(String processCode) {
List<StaffSalaryVo> employeeList = new ArrayList<>();
BaseTeamMembers teamMembers = new BaseTeamMembers();
teamMembers.setProcessCode(processCode);
List<BaseTeamMembers> members = baseTeamMembersMapper.selectBaseTeamMembersList(teamMembers);
BigDecimal sumSalaryCoefficient = new BigDecimal(0);
for (BaseTeamMembers member : members) {
BaseStaffInfo staffInfo = new BaseStaffInfo();
staffInfo.setTeamCode(member.getTeamCode());
List<BaseStaffInfo> staffInfoList = baseStaffInfoMapper.selectBaseStaffInfoList(staffInfo);
for (BaseStaffInfo baseStaffInfo : staffInfoList) {
StaffSalaryVo salary = new StaffSalaryVo();
salary.setProcessCode(processCode);
salary.setStaffId(baseStaffInfo.getStaffId());
salary.setStaffName(baseStaffInfo.getStaffName());
salary.setSalaryCoefficient(baseStaffInfo.getWageCoefficient());
sumSalaryCoefficient = sumSalaryCoefficient.add(baseStaffInfo.getWageCoefficient());
boolean isRepeat = true;
for (StaffSalaryVo salaryVo : employeeList) {
if (salaryVo.getStaffId().equals(baseStaffInfo.getStaffId())){
salaryVo.setSalaryCoefficient(salaryVo.getSumSalaryCoefficient().add(sumSalaryCoefficient));
isRepeat = false;
}
}
if (isRepeat){
employeeList.add(salary);
}
}
}
for (StaffSalaryVo salaryVo : employeeList) {
salaryVo.setSumSalaryCoefficient(sumSalaryCoefficient);
}
return employeeList;
}
/* @Override
public List<RecordStaffSalary> selectTeamEmployeesWages(RecordStaffSalary recordStaffSalary) {
List<RecordStaffSalary> result = new ArrayList<>();
//调用最新工资系数接口
LatestSalary salaryData = portService.getERPLatestSalaryData(new ERPParamDto());
//遍历工序
BaseProcessInfo selectProcessInfo = new BaseProcessInfo();
selectProcessInfo.setProcessCode(recordStaffSalary.getProcessCode());
List<BaseProcessInfo> processInfoList = baseProcessInfoMapper.selectBaseProcessInfoList(selectProcessInfo);
ProdPlanInfo planInfo = new ProdPlanInfo();
Map<String, Object> params = recordStaffSalary.getParams();
@ -256,95 +347,7 @@ public class RecordStaffSalaryServiceImpl implements IRecordStaffSalaryService {
}
return result;
}
// /**
// * 生成班组员工工资
// * @param recordStaffSalary
// * @return
// */
// @Override
// public List<RecordStaffSalary> selectTeamEmployeesWages(RecordStaffSalary recordStaffSalary) {
// List<RecordStaffSalary> result = new ArrayList<>();
// BaseTeamMembers members = new BaseTeamMembers();
// members.setTeamCode(recordStaffSalary.getGroupId());
// List<BaseTeamMembers> membersList = baseTeamMembersMapper.selectBaseTeamMembersList(members);
// //调用最新工资系数接口
// LatestSalary salaryData = portService.getERPLatestSalaryData(new ERPParamDto());
//
// ProdOrderInfo orderInfo = new ProdOrderInfo();
// Map<String, Object> params = recordStaffSalary.getParams();
// Date beginOrderDate = null;
// Date endOrderDate = null;
// if (params.containsKey("beginOrderDate")){
// beginOrderDate = DateUtils.parseDate(String.valueOf(params.get("beginOrderDate")));
// }
// if (params.containsKey("endOrderDate")){
// endOrderDate = DateUtils.parseDate(String.valueOf(params.get("endOrderDate")));
// }
// orderInfo.setParams(params);
// List<ProdOrderInfo> orderInfoList = prodOrderInfoMapper.selectProdOrderInfoList(orderInfo);
//
// long objId = 1L;
// String taskCode = PlanCodeUtils.getTaskCode();
// //按照班组 分工资;
// for (BaseTeamMembers team : membersList) {
// String processCode = team.getProcessCode();
// //工序工资系数
// BigDecimal coefficient = new BigDecimal(0);
// //工序生产面积
// BigDecimal totalArea = new BigDecimal(0);
//
// //硫化工序 工序硫化的工资 = 硫化系数*硫化面积*(工资系数/参加该工序的所有人的工资系数的总和)
// //硫化面积=硫化米数/客户要求总米数*硫化面积
// if(processCode.equals("1002")){
// coefficient = salaryData.getVulcanizationCoefficient();
// totalArea = orderInfoList.stream().map(ProdOrderInfo::getOrderDetail)
// .map(e -> e.getBeltRequiredLength().divide(e.getBeltRequiredLength(), 6, RoundingMode.HALF_UP)
// .multiply(e.getSulfurizationArea()))
// .reduce(BigDecimal.ZERO, BigDecimal::add);
// }
// //成型工序
// if(processCode.equals("1001")){
// coefficient = salaryData.getFormingCoefficient();
// totalArea = orderInfoList.stream().map(ProdOrderInfo::getOrderDetail)
// .map(e -> e.getBeltRequiredLength().divide(e.getBeltRequiredLength(), 6, RoundingMode.HALF_UP)
// .multiply(e.getFormingArea()))
// .reduce(BigDecimal.ZERO, BigDecimal::add);
// }
// //获取这个时间段内员工打卡记录
// BaseStaffInfo selectStaffInfo = new BaseStaffInfo();
// selectStaffInfo.setTeamCode(team.getTeamCode());
// selectStaffInfo.setDelFlag("0");
// List<BaseStaffInfo> staffInfoList = baseStaffInfoMapper.selectBaseStaffInfoList(selectStaffInfo);
// BigDecimal totalWageCoefficient = staffInfoList.stream().map(BaseStaffInfo::getWageCoefficient)
// .filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
//
// for (BaseStaffInfo staffInfo : staffInfoList) {
// RecordStaffSalary staffSalary = new RecordStaffSalary();
// staffSalary.setObjId(objId++);
// staffSalary.setTaskCode(taskCode);
// staffSalary.setIdCard(staffInfo.getPassWord());
// staffSalary.setGroupId(team.getTeamCode());
// staffSalary.setEventDate(new Date());
// staffSalary.setSalaryCategory("收入");
// staffSalary.setRevenueClass("完成生产任务");
// BigDecimal staffCoefficient = staffInfo.getWageCoefficient().divide(totalWageCoefficient, 6, RoundingMode.HALF_UP);
// BigDecimal revenueAmount = coefficient.multiply(totalArea).multiply(staffCoefficient);
// revenueAmount = revenueAmount.setScale(2, RoundingMode.HALF_UP);
// staffSalary.setRevenueAmount(revenueAmount);
// staffSalary.setSalaryCoefficient(staffInfo.getWageCoefficient());
// staffSalary.setStaffName(staffInfo.getStaffName());
// staffSalary.setCardId(staffInfo.getCardId());
// staffSalary.setTeamName(team.getTeamName());
// staffSalary.setBeginDate(beginOrderDate);
// staffSalary.setEndDate(endOrderDate);
// result.add(staffSalary);
// }
//
// }
// return result;
// }
}*/
/**
*
@ -354,6 +357,7 @@ public class RecordStaffSalaryServiceImpl implements IRecordStaffSalaryService {
* @return
*/
@Override
@Transactional(rollbackFor = ServiceException.class)
public int uploadERPStaffSalary(List<RecordStaffSalary> recordStaffSalaryList) {
Thread thread = new Thread(() -> {
for (RecordStaffSalary staffSalary : recordStaffSalaryList) {

@ -1,11 +1,10 @@
package com.os.mes.report.controller;
import java.util.HashMap;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.os.common.core.controller.BaseController;
import com.os.common.core.domain.AjaxResult;
import com.os.mes.report.domain.ReportBoardPort;
@ -34,5 +33,16 @@ public class ReportBoardPortController extends BaseController
return success(list);
}
/**
*
* @param paramMap
* @return
*/
@PostMapping("/homeBoard")
public AjaxResult homeBoard(@RequestBody HashMap<String, String> paramMap)
{
HashMap<String, Object> list = reportBoardPortService.selectReportHomeBoard(paramMap);
return success(list);
}
}

@ -1,5 +1,6 @@
package com.os.mes.report.service;
import java.util.HashMap;
import java.util.List;
import com.os.mes.report.domain.ReportBoardPort;
@ -20,4 +21,11 @@ public interface IReportBoardPortService
public List<ReportBoardPort> selectReportBoardPortList(ReportBoardPort reportBoardPort);
/**
*
* @param paramMap
* @return
*/
HashMap<String, Object> selectReportHomeBoard(HashMap<String, String> paramMap);
}

@ -1,6 +1,13 @@
package com.os.mes.report.service.impl;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import com.os.common.utils.DateUtils;
import com.os.mes.prod.domain.ProdOrderInfo;
import com.os.mes.prod.service.IProdOrderInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.os.mes.report.domain.ReportBoardPort;
import com.os.mes.report.service.IReportBoardPortService;
@ -15,8 +22,49 @@ import com.os.mes.report.service.IReportBoardPortService;
public class ReportBoardPortServiceImpl implements IReportBoardPortService
{
@Autowired
private IProdOrderInfoService prodOrderInfoService;
@Override
public List<ReportBoardPort> selectReportBoardPortList(ReportBoardPort reportBoardPort) {
return null;
}
/**
*
* @param paramMap
* @return
*/
@Override
public HashMap<String, Object> selectReportHomeBoard(HashMap<String, String> paramMap) {
//计划订单数量 在制订单数量 今日计划米数 今日完成米数
HashMap<String, Object> result = new HashMap<>();
ProdOrderInfo orderInfo = new ProdOrderInfo();
HashMap<String, Object> map = new HashMap<>();
String date = DateUtils.getDate() + " 00:00:00";
map.put("beginBeginDate", date);
map.put("endBeginDate", date);
orderInfo.setParams(map);
List<ProdOrderInfo> infoList = prodOrderInfoService.selectProdOrderInfoList(orderInfo);
Long planOrder = 0L;
Long makeOrder = 0L;
BigDecimal todayNumber = new BigDecimal(0);
BigDecimal finishNumber = new BigDecimal(0);
for (ProdOrderInfo prodOrderInfo : infoList) {
planOrder++;
todayNumber = todayNumber.add(prodOrderInfo.getOrderAmount());
if (prodOrderInfo.getOrderAmount().compareTo(prodOrderInfo.getCompleteAmount()) < 1){
makeOrder++;
finishNumber = finishNumber.add(prodOrderInfo.getOrderAmount());
}
}
result.put("planOrder", planOrder);
result.put("makeOrder", makeOrder);
result.put("todayNumber", todayNumber);
result.put("finishNumber", finishNumber);
return result;
}
}

@ -26,6 +26,8 @@
<result property="factoryCode" column="factory_code"/>
<result property="teamCode" column="team_code"/>
<result property="assetCode" column="asset_code"/>
<result property="processCode" column="process_code"/>
<result property="processName" column="process_name"/>
</resultMap>
<sql id="selectBaseDeviceLedgerVo">
@ -49,9 +51,12 @@
bdl.update_time,
bdl.factory_code,
bdl.team_code,
bdl.asset_code
bdl.asset_code,
bpi.process_code,
bpi.process_name
from base_device_ledger bdl
left join base_product_line bpl on bpl.product_line_code = bdl.product_line_code
left join base_process_info bpi on bpi.station_codes like concat('%', bpl.product_line_code, '%')
</sql>
<select id="selectBaseDeviceLedgerList" parameterType="BaseDeviceLedger" resultMap="BaseDeviceLedgerResult">
@ -172,4 +177,9 @@
from base_deviceledger
</select>
<select id="selectBaseDeviceLedgerByDeviceCode" parameterType="String" resultMap="BaseDeviceLedgerResult">
<include refid="selectBaseDeviceLedgerVo"/>
where bdl.device_code = #{deviceCode}
</select>
</mapper>

@ -29,6 +29,7 @@
<result property="planStatus" column="plan_status"/>
<result property="classes" column="classes"/>
<result property="processCode" column="process_code"/>
<result property="importFlag" column="import_flag"/>
<collection property="prodPlanDetailList" javaType="java.util.List" resultMap="ProdPlanDetailResult"/>
</resultMap>
@ -68,7 +69,8 @@
ppi.updated_by,
ppi.updated_time,
ppi.plan_begin_time,
ppi.plan_end_time
ppi.plan_end_time,
ppi.import_flag
from prod_plan_info ppi
left join base_product_line bpl on bpl.product_line_code = ppi.station_code
left join base_team_members btm on btm.team_code = ppi.team_code
@ -177,6 +179,7 @@
<if test="planStatus != null">plan_status,</if>
<if test="classes != null">classes,</if>
<if test="processCode != null">process_code,</if>
<if test="importFlag != null">import_flag,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="planCode != null and planCode != ''">#{planCode},</if>
@ -200,6 +203,7 @@
<if test="planStatus != null">#{planStatus},</if>
<if test="classes != null">#{classes},</if>
<if test="processCode != null">#{processCode},</if>
<if test="importFlag != null">#{importFlag},</if>
</trim>
</insert>
@ -227,6 +231,7 @@
<if test="planStatus != null">plan_status = #{planStatus},</if>
<if test="classes != null">classes = #{classes},</if>
<if test="processCode != null">process_code = #{processCode},</if>
<if test="importFlag != null">import_flag = #{importFlag},</if>
</trim>
where obj_id = #{objId}
</update>
@ -251,7 +256,7 @@
<if test="orderCode != null and orderCode != ''">and ppi.order_code = #{orderCode}</if>
<if test="processCode != null and processCode != ''">and ppi.process_code = #{processCode}</if>
<if test="params.beginOrderDate != null and params.beginOrderDate != '' and params.endOrderDate != null and params.endOrderDate != ''">
and LEFT(CONVERT(VARCHAR(17), ppd.begin_time, 120), 10) between #{params.beginOrderDate} and #{params.endOrderDate}
and ppd.end_time between #{params.beginOrderDate} and #{params.endOrderDate}
</if>
</where>
</select>

@ -49,13 +49,14 @@ public class ERPTask {
portService.getERPEmployeeWageData(paramDto);
}
public void ERPProductionPlanTask() {
public void ERPProductionPlanTask(Long startDays, Long endDays) {
//获取生产计划管理
String startDate = convertDaysToDateString(startDays, 0);
String endDate = convertDaysToDateString(endDays, 1);
ERPParamDto paramDto = new ERPParamDto();
paramDto.setAppCode(ERPConstants.salaryAppCode);
paramDto.setController(ERPConstants.salaryController);
paramDto.setActionName(ERPConstants.salaryActionName);
portService.getERPEmployeeWageData(paramDto);
paramDto.setPlanStartTime(startDate);
paramDto.setPlanEndTime(endDate);
portService.getProductionPlanTask(paramDto);
}
/**

Loading…
Cancel
Save