工艺穿梭框

highway
zhaoxiaolin 1 year ago
parent 9178d37581
commit 897166b783

@ -110,7 +110,6 @@ public class MesReportWorkController extends BaseController {
startPage();
List<MesProcessReport> list = mesReportWorkService.getProcessFinishList(mesReportWork);
TableDataInfo tableDataInfo = getDataTable(list);
//tableDataInfo.setTotal(4);//TODO;zxl;测试用
return tableDataInfo;
}
@ -149,9 +148,9 @@ public class MesReportWorkController extends BaseController {
}
/**
*
*
*/
@RequiresPermissions("mes:production:list")
@RequiresPermissions("mes:dailyReport:list")
@GetMapping("/getDailyReport")
public TableDataInfo getDailyReport(MesDailyReport mesDailyReport) {
startPage();

@ -17,544 +17,247 @@ import java.util.Date;
*/
public class MesDailyReport extends BaseEntity {
private static final long serialVersionUID = 1L;
private String teamCode;//组别
private String teamDesc;
private String prodType;//分类
private String teamLeaderName;//组长
private String productCode;//产品编码
private String spec;//规格
private String productName;//产品名称
private String unit;//单位
private String quantity;//计划数量(箱)
private String quantityAct;//实际数量(盒)
private String quantityFeedback;//实际数量(箱)
private String completeRate;//完成率
private String iei;//标准效率
private String manStandar;//用人标准
private String useMan;//用人实际
private String workTimeStandar;//工时-标准
private String workTime;//工时-实际
private String productivity;//工时-产线效率
private String manAvgStandar;//人均效率-标准
private String manAvgActual;//人均效率-实际
private String manAvgDo;//人均效率-达成
private String actManHour;//实际人工时
private Date productDate;//工单日期
private String productDateStr;//工单日期字符串
private String productStartDate;
private String productEndDate;
private String workCenter;
/** 记录id */
private String id;
/** 报工类型报工类型SELF自行报工、UNI统一报工 */
@Excel(name = "报工类型报工类型SELF自行报工、UNI统一报工")
private String reportType;
/** 报工单编号 */
@Excel(name = "报工单编号")
private String reportCode;
/** 生产工单编码 */
@Excel(name = "生产工单编码")
private String workorderCode;
/** 产品编码 */
@Excel(name = "产品编码")
private String productCode;
/** 产品名称 */
@Excel(name = "产品名称")
private String productName;
/** 规格型号 */
@Excel(name = "规格型号")
private String spec;
/** 单位 */
@Excel(name = "单位")
private String unit;
/** 排产数量 */
@Excel(name = "排产数量")
private BigDecimal quantity;
/** 本次报工数量 */
@Excel(name = "本次报工数量")
private BigDecimal quantityFeedback;
/** 合格数量 */
@Excel(name = "合格数量")
private BigDecimal quantityQualified;
/** 不合格数量 */
@Excel(name = "不合格数量")
private BigDecimal quantityUnqualified;
/** 报工人员 */
@Excel(name = "报工人员")
private String userName;
/** 人员名称 */
@Excel(name = "人员名称")
private String nickName;
/** 报工途径PAD、MOBILE、PC */
@Excel(name = "报工途径PAD、MOBILE、PC")
private String feedbackChannel;
/** 报工时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "报工时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date feedbackTime;
/** 录入人员 */
@Excel(name = "录入人员")
private String recordUser;
/** 状态 */
@Excel(name = "状态")
private String status;
/** 工时 */
@Excel(name = "工时")
private Long workTime;
/** 线体编码 */
@Excel(name = "线体编码")
private String machineCode;
/** 线体名称 */
@Excel(name = "线体名称")
private String machineName;
/** 班组编码 */
@Excel(name = "班组编码")
private String teamCode;
/** 班次编码 */
@Excel(name = "班次编码")
private String shiftCode;
/** 预留字段1 */
@Excel(name = "预留字段1")
private String attr1;
/** 预留字段2 */
@Excel(name = "预留字段2")
private String attr2;
/** 预留字段3 */
@Excel(name = "预留字段3")
private String attr3;
/** 预留字段4 */
@Excel(name = "预留字段4")
private String attr4;
@Excel(name = "计划生产日期")
private String productDate;
private String productDateStart;
private String productDateEnd;
@Excel(name = "订单编号")
private String orderCode;
@Excel(name = "规格型号")
private String productSpc;
@Excel(name = "工序名称")
private String processName;
@Excel(name = "工序编码")
private String processCode;
private String factoryCode;
private String factoryName;
private String carCode;
private String carName;
private Date uploadTime;
private String uploadStatus;
private String uploadMsg;
private String workorderCodeSap;
private String routeCode;
private String sac1;
private String sac2;
private String sac3;
private String sac4;
private String sac5;
private String sac6;
public String getWorkorderCodeSap() {
return workorderCodeSap;
}
public void setWorkorderCodeSap(String workorderCodeSap) {
this.workorderCodeSap = workorderCodeSap;
}
public String getRouteCode() {
return routeCode;
}
public void setRouteCode(String routeCode) {
this.routeCode = routeCode;
}
public String getSac1() {
return sac1;
}
public void setSac1(String sac1) {
this.sac1 = sac1;
}
public String getSac2() {
return sac2;
}
public void setSac2(String sac2) {
this.sac2 = sac2;
}
public String getSac3() {
return sac3;
}
public void setSac3(String sac3) {
this.sac3 = sac3;
}
public String getSac4() {
return sac4;
public String getProductDateStr() {
return productDateStr;
}
public void setSac4(String sac4) {
this.sac4 = sac4;
public void setProductDateStr(String productDateStr) {
this.productDateStr = productDateStr;
}
public String getSac5() {
return sac5;
public String getQuantityAct() {
return quantityAct;
}
public void setSac5(String sac5) {
this.sac5 = sac5;
public void setQuantityAct(String quantityAct) {
this.quantityAct = quantityAct;
}
public String getSac6() {
return sac6;
public String getCompleteRate() {
return completeRate;
}
public void setSac6(String sac6) {
this.sac6 = sac6;
public void setCompleteRate(String completeRate) {
this.completeRate = completeRate;
}
public Date getUploadTime() {
return uploadTime;
public String getWorkTimeStandar() {
return workTimeStandar;
}
public void setUploadTime(Date uploadTime) {
this.uploadTime = uploadTime;
public void setWorkTimeStandar(String workTimeStandar) {
this.workTimeStandar = workTimeStandar;
}
public String getUploadStatus() {
return uploadStatus;
public String getProductivity() {
return productivity;
}
public void setUploadStatus(String uploadStatus) {
this.uploadStatus = uploadStatus;
public void setProductivity(String productivity) {
this.productivity = productivity;
}
public String getUploadMsg() {
return uploadMsg;
public String getManAvgStandar() {
return manAvgStandar;
}
public void setUploadMsg(String uploadMsg) {
this.uploadMsg = uploadMsg;
public void setManAvgStandar(String manAvgStandar) {
this.manAvgStandar = manAvgStandar;
}
public String getFactoryCode() {
return factoryCode;
public String getManAvgActual() {
return manAvgActual;
}
public void setFactoryCode(String factoryCode) {
this.factoryCode = factoryCode;
public void setManAvgActual(String manAvgActual) {
this.manAvgActual = manAvgActual;
}
public String getFactoryName() {
return factoryName;
public String getManAvgDo() {
return manAvgDo;
}
public void setFactoryName(String factoryName) {
this.factoryName = factoryName;
public void setManAvgDo(String manAvgDo) {
this.manAvgDo = manAvgDo;
}
public String getCarCode() {
return carCode;
public String getActManHour() {
return actManHour;
}
public void setCarCode(String carCode) {
this.carCode = carCode;
public void setActManHour(String actManHour) {
this.actManHour = actManHour;
}
public String getCarName() {
return carName;
public String getProductStartDate() {
return productStartDate;
}
public void setCarName(String carName) {
this.carName = carName;
public void setProductStartDate(String productStartDate) {
this.productStartDate = productStartDate;
}
public String getProcessCode() {
return processCode;
public String getProductEndDate() {
return productEndDate;
}
public void setProcessCode(String processCode) {
this.processCode = processCode;
public void setProductEndDate(String productEndDate) {
this.productEndDate = productEndDate;
}
public String getProductDateStart() {
return productDateStart;
public String getTeamCode() {
return teamCode;
}
public void setProductDateStart(String productDateStart) {
this.productDateStart = productDateStart;
public void setTeamCode(String teamCode) {
this.teamCode = teamCode;
}
public String getProductDateEnd() {
return productDateEnd;
public String getTeamDesc() {
return teamDesc;
}
public void setProductDateEnd(String productDateEnd) {
this.productDateEnd = productDateEnd;
public void setTeamDesc(String teamDesc) {
this.teamDesc = teamDesc;
}
public void setId(String id) {
this.id = id;
public String getProdType() {
return prodType;
}
public String getId() {
return id;
public void setProdType(String prodType) {
this.prodType = prodType;
}
public void setReportType(String reportType) {
this.reportType = reportType;
}
public String getReportType() {
return reportType;
public String getTeamLeaderName() {
return teamLeaderName;
}
public void setReportCode(String reportCode) {
this.reportCode = reportCode;
}
public String getReportCode() {
return reportCode;
public void setTeamLeaderName(String teamLeaderName) {
this.teamLeaderName = teamLeaderName;
}
public void setWorkorderCode(String workorderCode) {
this.workorderCode = workorderCode;
public String getProductCode() {
return productCode;
}
public String getWorkorderCode() {
return workorderCode;
}
public void setProductCode(String productCode) {
this.productCode = productCode;
}
public String getProductCode() {
return productCode;
}
public void setProductName(String productName) {
this.productName = productName;
public String getSpec() {
return spec;
}
public String getProductName() {
return productName;
}
public void setSpec(String spec) {
this.spec = spec;
}
public String getSpec() {
return spec;
public String getProductName() {
return productName;
}
public void setUnit(String unit) {
this.unit = unit;
public void setProductName(String productName) {
this.productName = productName;
}
public String getUnit() {
return unit;
}
public void setQuantity(BigDecimal quantity) {
this.quantity = quantity;
public void setUnit(String unit) {
this.unit = unit;
}
public BigDecimal getQuantity() {
public String getQuantity() {
return quantity;
}
public void setQuantityFeedback(BigDecimal quantityFeedback) {
this.quantityFeedback = quantityFeedback;
}
public BigDecimal getQuantityFeedback() {
return quantityFeedback;
}
public void setQuantityQualified(BigDecimal quantityQualified) {
this.quantityQualified = quantityQualified;
public void setQuantity(String quantity) {
this.quantity = quantity;
}
public BigDecimal getQuantityQualified() {
return quantityQualified;
}
public void setQuantityUnqualified(BigDecimal quantityUnqualified) {
this.quantityUnqualified = quantityUnqualified;
public String getQuantityFeedback() {
return quantityFeedback;
}
public BigDecimal getQuantityUnqualified() {
return quantityUnqualified;
}
public void setUserName(String userName) {
this.userName = userName;
public void setQuantityFeedback(String quantityFeedback) {
this.quantityFeedback = quantityFeedback;
}
public String getUserName() {
return userName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
public String getIei() {
return iei;
}
public String getNickName() {
return nickName;
}
public void setFeedbackChannel(String feedbackChannel) {
this.feedbackChannel = feedbackChannel;
public void setIei(String iei) {
this.iei = iei;
}
public String getFeedbackChannel() {
return feedbackChannel;
}
public void setFeedbackTime(Date feedbackTime) {
this.feedbackTime = feedbackTime;
public String getManStandar() {
return manStandar;
}
public Date getFeedbackTime() {
return feedbackTime;
}
public void setRecordUser(String recordUser) {
this.recordUser = recordUser;
public void setManStandar(String manStandar) {
this.manStandar = manStandar;
}
public String getRecordUser() {
return recordUser;
}
public void setStatus(String status) {
this.status = status;
public String getUseMan() {
return useMan;
}
public String getStatus() {
return status;
}
public void setWorkTime(Long workTime) {
this.workTime = workTime;
public void setUseMan(String useMan) {
this.useMan = useMan;
}
public Long getWorkTime() {
public String getWorkTime() {
return workTime;
}
public void setMachineCode(String machineCode) {
this.machineCode = machineCode;
}
public String getMachineCode() {
return machineCode;
}
public void setMachineName(String machineName) {
this.machineName = machineName;
}
public String getMachineName() {
return machineName;
}
public void setTeamCode(String teamCode) {
this.teamCode = teamCode;
}
public String getTeamCode() {
return teamCode;
}
public void setShiftCode(String shiftCode) {
this.shiftCode = shiftCode;
}
public String getShiftCode() {
return shiftCode;
}
public void setAttr1(String attr1) {
this.attr1 = attr1;
}
public String getAttr1() {
return attr1;
}
public void setAttr2(String attr2) {
this.attr2 = attr2;
}
public String getAttr2() {
return attr2;
}
public void setAttr3(String attr3) {
this.attr3 = attr3;
}
public String getAttr3() {
return attr3;
}
public void setAttr4(String attr4) {
this.attr4 = attr4;
}
public String getAttr4() {
return attr4;
public void setWorkTime(String workTime) {
this.workTime = workTime;
}
public String getProductDate() {
public Date getProductDate() {
return productDate;
}
public void setProductDate(String productDate) {
public void setProductDate(Date productDate) {
this.productDate = productDate;
}
public String getOrderCode() {
return orderCode;
}
public void setOrderCode(String orderCode) {
this.orderCode = orderCode;
}
public String getProductSpc() {
return productSpc;
}
public void setProductSpc(String productSpc) {
this.productSpc = productSpc;
}
public String getProcessName() {
return processName;
}
public void setProcessName(String processName) {
this.processName = processName;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("reportType", getReportType())
.append("reportCode", getReportCode())
.append("workorderCode", getWorkorderCode())
.append("productCode", getProductCode())
.append("productName", getProductName())
.append("spec", getSpec())
.append("unit", getUnit())
.append("quantity", getQuantity())
.append("quantityFeedback", getQuantityFeedback())
.append("quantityQualified", getQuantityQualified())
.append("quantityUnqualified", getQuantityUnqualified())
.append("userName", getUserName())
.append("nickName", getNickName())
.append("feedbackChannel", getFeedbackChannel())
.append("feedbackTime", getFeedbackTime())
.append("recordUser", getRecordUser())
.append("status", getStatus())
.append("remark", getRemark())
.append("workTime", getWorkTime())
.append("machineCode", getMachineCode())
.append("machineName", getMachineName())
.append("teamCode", getTeamCode())
.append("shiftCode", getShiftCode())
.append("attr1", getAttr1())
.append("attr2", getAttr2())
.append("attr3", getAttr3())
.append("attr4", getAttr4())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateTime", getUpdateTime())
.append("updateBy", getUpdateBy())
.toString();
public String getWorkCenter() {
return workCenter;
}
public void setWorkCenter(String workCenter) {
this.workCenter = workCenter;
}
}

@ -170,7 +170,47 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService {
@Override
@DS("#header.poolName")
public List<MesDailyReport> getDailyReport(MesDailyReport mesDailyReport) {
return mesReportWorkMapper.getDailyReport(mesDailyReport);
List<MesDailyReport> dtos = mesReportWorkMapper.getDailyReport(mesDailyReport);
for(MesDailyReport dto:dtos){
String spc = dto.getSpec();//规格
//本日产量-实际(盒数)
BigDecimal actCase = new BigDecimal(dto.getQuantityFeedback()).multiply(new BigDecimal(spc));
dto.setQuantityAct(actCase.toString());
//本日产量-完成率=实际箱数/计划箱数
BigDecimal completeRate = new BigDecimal(dto.getQuantityFeedback())
.multiply(new BigDecimal("100.00"))
.divide(new BigDecimal(dto.getQuantity()))
.setScale(2, BigDecimal.ROUND_HALF_UP);
dto.setCompleteRate(completeRate.toString()+"%");
//工时标准=盒量/标准数量
BigDecimal workTimeStandar = new BigDecimal(dto.getQuantityAct())
.divide(new BigDecimal(dto.getIei()),1, BigDecimal.ROUND_UP);
dto.setWorkTimeStandar(workTimeStandar.toString());
//工时产线效率=工时标准/工时实际
BigDecimal productivity = new BigDecimal(dto.getWorkTimeStandar())
.multiply(new BigDecimal("100.00"))
.divide(new BigDecimal(dto.getWorkTime()),0, BigDecimal.ROUND_UP);
dto.setProductivity(productivity.toString()+"%");
//人均效率标准 = 本日产量实际/用人标准/工时标准
BigDecimal manAvgStandar = new BigDecimal(dto.getQuantityFeedback())
.divide(new BigDecimal(dto.getManStandar()),4, BigDecimal.ROUND_HALF_UP)
.divide(new BigDecimal(dto.getWorkTimeStandar()),1, BigDecimal.ROUND_HALF_UP);
dto.setManAvgStandar(manAvgStandar.toString());
//实际人工时 = 用人实际*工时实际
BigDecimal actManHour = new BigDecimal(dto.getUseMan())
.multiply(new BigDecimal(dto.getWorkTime()));
dto.setActManHour(actManHour.toString());
//人均效率实际 = 本日产量实际/实际人工时
BigDecimal manAvgActual = new BigDecimal(dto.getQuantityFeedback())
.divide(new BigDecimal(dto.getActManHour()),1, BigDecimal.ROUND_HALF_UP);
dto.setManAvgActual(manAvgActual.toString());
//达成 = 人均效率实际/人均效率标准
BigDecimal manAvgDo = new BigDecimal(dto.getManAvgActual())
.multiply(new BigDecimal("100.00"))
.divide(new BigDecimal(dto.getManAvgStandar()),0, BigDecimal.ROUND_HALF_UP);
dto.setManAvgDo(manAvgDo.toString()+"%");
}
return dtos;
}
}

@ -177,27 +177,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="getDailyReport" resultType="com.op.mes.domain.MesDailyReport">
select
mrw.team_code,
tm.Team_Desc,
mrw.prod_type,
tm.team_leader_name,
mrw.product_code,
mrw.work_center workCenter,
#{productDateStr} productDateStr,
mrw.team_code teamCode,
tm.Team_Desc teamDesc,
mrw.prod_type prodType,
tm.team_leader_name teamLeaderName,
mrw.product_code productCode,
mrw.spec,
mrw.product_name,
mrw.product_name productName,
mrw.unit,
mrw.quantity,
mrw.quantity_feedback,
mrw.quantity_feedback quantityFeedback,
bpa.iei,
bpa.man_standar,
mrw.use_man,
mrw.work_time
bpa.man_standar manStandar,
mrw.use_man useMan,
mrw.work_time workTime
from pro_order_workorder ow
left join mes_report_work mrw on ow.workorder_code = mrw.workorder_code
left join base_team_t tm on mrw.team_code = tm.Team_Code
left join base_product_attached bpa on bpa.product_code = mrw.product_code
where ow.product_date = CONVERT(varchar(100), GETDATE(), 23)
and mrw.work_center = ''
order by
where CONVERT(varchar(100),ow.product_date, 23) = CONVERT(varchar(100), #{productDate}, 23)
and mrw.work_center = #{workCenter}
order by ow.workorder_code
</select>
<insert id="insertMesReportWork" parameterType="MesReportWork">

@ -94,9 +94,19 @@ public class ProRouteProductController extends BaseController {
return toAjax(proRouteProductService.deleteProRouteProductByRecordIds(recordIds));
}
/**穿梭框**/
/**穿梭框(左)**/
@GetMapping("/getList")
public ProRouteProduct getList(ProRouteProduct proRouteProduct) {
return proRouteProductService.getList(proRouteProduct);
public TableDataInfo getList(ProRouteProduct proRouteProduct) {
startPage();
List<ProRouteProduct> list = proRouteProductService.getList(proRouteProduct);;
return getDataTable(list);
}
/**穿梭框(右边)**/
@GetMapping("/getRightList")
public TableDataInfo getRightList(ProRouteProduct proRouteProduct) {
startPage();
List<ProRouteProduct> list = proRouteProductService.getRightList(proRouteProduct);;
return getDataTable(list);
}
}

@ -58,5 +58,7 @@ public interface IProRouteProductService {
*/
public int deleteProRouteProductByRecordId(String recordId);
ProRouteProduct getList(ProRouteProduct proRouteProduct);
public List<ProRouteProduct> getList(ProRouteProduct proRouteProduct);
public List<ProRouteProduct> getRightList(ProRouteProduct proRouteProduct);
}

@ -121,12 +121,26 @@ public class ProRouteProductServiceImpl implements IProRouteProductService {
@Override
@DS("#header.poolName")
public ProRouteProduct getList(ProRouteProduct proRouteProduct) {
ProRouteProduct dto = new ProRouteProduct();
List<ProRouteProduct> unSelected = proRouteProductMapper.getRouteProdProductListUndo(proRouteProduct);
dto.setUnSelect(unSelected);
public List<ProRouteProduct> getList(ProRouteProduct proRouteProduct) {
List<ProRouteProduct> dto = proRouteProductMapper.getRouteProdProductListUndo(proRouteProduct);
List<ProRouteProduct> selected= proRouteProductMapper.getRouteProdProductListDo(proRouteProduct);
dto.setSelected(selected);
dto.addAll(selected);
dto.forEach(item -> {
item.setKey(item.getItemCode());
});
return dto;
}
@Override
@DS("#header.poolName")
public List<ProRouteProduct> getRightList(ProRouteProduct proRouteProduct) {
List<ProRouteProduct> selected= proRouteProductMapper.getRouteProdProductListDo(proRouteProduct);
selected.forEach(item -> {
item.setKey(item.getItemCode());
});
return selected;
}
}

@ -52,7 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<!-- </select>-->
<!-- 现在逻辑:关联产品-->
<select id="getRouteProdProductListUndo" resultType="com.op.technology.domain.ProRouteProduct">
select bp.product_code [key],
select bp.product_code itemCode,
bp.product_desc_zh label,
bp.product_desc_zh itemName,
bp.product_id itemId
@ -69,7 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<!-- </select>-->
<select id="getRouteProdProductListDo" resultType="com.op.technology.domain.ProRouteProduct">
select pp.item_code [key],
select pp.item_code itemCode,
bp.product_desc_zh label
from pro_route_product pp
left join base_product bp on pp.item_code = bp.product_code

Loading…
Cancel
Save