计件工资统计

master
Yangwl 11 months ago
parent 01dd5b5629
commit 97dc167cea

@ -5,6 +5,8 @@ import org.apache.commons.lang3.builder.ToStringStyle;
import com.op.common.core.annotation.Excel;
import com.op.common.core.web.domain.BaseEntity;
import java.math.BigDecimal;
/**
* mes_unitprice_report
*
@ -45,6 +47,13 @@ public class MesUnitpriceReport extends BaseEntity {
private String lineCode;
private String equipmentName;
private String totalQuantity;
private BigDecimal result;
private String headCount;
private String avgResult;
private String realWages;
/**
*
@ -82,6 +91,55 @@ public class MesUnitpriceReport extends BaseEntity {
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String attr2;
public String getRealWages() {
return realWages;
}
public void setRealWages(String realWages) {
this.realWages = realWages;
}
public String getHeadCount() {
return headCount;
}
public void setHeadCount(String headCount) {
this.headCount = headCount;
}
public String getAvgResult() {
return avgResult;
}
public void setAvgResult(String avgResult) {
this.avgResult = avgResult;
}
public BigDecimal getResult() {
return result;
}
public void setResult(BigDecimal result) {
this.result = result;
}
public String getTotalQuantity() {
return totalQuantity;
}
public void setTotalQuantity(String totalQuantity) {
this.totalQuantity = totalQuantity;
}
public String getEquipmentName() {
return equipmentName;
}
public void setEquipmentName(String equipmentName) {
this.equipmentName = equipmentName;
}
public String getLineCode() {
return lineCode;
}

@ -3,7 +3,9 @@ package com.op.mes.service.impl;
import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.context.SecurityContextHolder;
import com.op.common.core.utils.DateUtils;
import com.op.common.security.utils.SecurityUtils;
import com.op.mes.domain.MesUnitpriceReport;
import com.op.mes.mapper.MesUnitpriceReportMapper;
import com.op.mes.service.IMesUnitpriceReportService;
@ -29,6 +31,7 @@ public class MesUnitpriceReportServiceImpl implements IMesUnitpriceReportService
* @return
*/
@Override
@DS("#header.poolName")
public MesUnitpriceReport selectMesUnitpriceReportById(String id) {
return mesUnitpriceReportMapper.selectMesUnitpriceReportById(id);
}
@ -52,6 +55,7 @@ public class MesUnitpriceReportServiceImpl implements IMesUnitpriceReportService
* @return
*/
@Override
public int insertMesUnitpriceReport(MesUnitpriceReport mesUnitpriceReport) {
mesUnitpriceReport.setCreateTime(DateUtils.getNowDate());
return mesUnitpriceReportMapper.insertMesUnitpriceReport(mesUnitpriceReport);
@ -64,8 +68,10 @@ public class MesUnitpriceReportServiceImpl implements IMesUnitpriceReportService
* @return
*/
@Override
@DS("#header.poolName")
public int updateMesUnitpriceReport(MesUnitpriceReport mesUnitpriceReport) {
mesUnitpriceReport.setUpdateTime(DateUtils.getNowDate());
mesUnitpriceReport.setUpdateBy(SecurityContextHolder.getUserName());
return mesUnitpriceReportMapper.updateMesUnitpriceReport(mesUnitpriceReport);
}

@ -11,11 +11,17 @@
<result property="productName" column="product_name"/>
<result property="productCode" column="product_code"/>
<result property="lineCode" column="line_code"/>
<result property="equipmentName" column="equipment_name"/>
<result property="userName" column="user_name"/>
<result property="nickName" column="nick_name"/>
<result property="childprocessCode" column="childprocess_code"/>
<result property="childprocessName" column="childprocess_name"/>
<result property="totalQuantity" column="total_quantity"/>
<result property="headCount" column="head_count"/>
<result property="avgResult" column="avg_result"/>
<result property="result" column="result"/>
<result property="attr1" column="attr1"/>
<result property="realWages" column="real_wages"/>
<result property="attr2" column="attr2"/>
<result property="attr3" column="attr3"/>
<result property="createBy" column="create_by"/>
@ -31,36 +37,42 @@
<select id="selectMesUnitpriceReportList" parameterType="MesUnitpriceReport" resultMap="MesUnitpriceReportResult">
SELECT
mur.id,
mur.workorder_code,
mur.workorder_code_sap,
mur.product_code,
mur.product_name,
mur.line_code,
mur.attr1 AS real_wages,
be.equipment_name,
mur.nick_name,
mur.childprocess_code,
mup.childprocess_name,
mrw.total_quantity,
mup.attr1,
mrw.total_quantity * mup.attr1 AS result
CAST(CAST(mrw.total_quantity AS DECIMAL(18,2)) * CAST(mup.attr1 AS DECIMAL(18,5)) AS DECIMAL(18, 6)) AS result,
COUNT(*) OVER (PARTITION BY mur.workorder_code_sap, mur.childprocess_code) AS head_count,
ROUND(
CAST (
CAST(CAST(mrw.total_quantity AS DECIMAL(18,2)) * CAST(mup.attr1 AS DECIMAL(18,5)) AS DECIMAL(18, 6)) / NULLIF ( COUNT ( * ) OVER ( PARTITION BY mur.workorder_code_sap, mur.childprocess_code ), 0 ) AS DECIMAL ( 18, 4 )
),
4
) AS avg_result
FROM
mes_unitprice_report mur
LEFT JOIN
mes_unit_price mup ON RIGHT(mur.product_code, 11) = mup.product_code AND mur.childprocess_code = mup.childprocess_code
LEFT JOIN
(SELECT
workorder_code,
SUM(quantity) AS total_quantity
FROM
mes_report_work
LEFT JOIN base_equipment be ON be.equipment_code=mur.line_code
LEFT JOIN ( SELECT parent_order, SUM ( quantity ) AS total_quantity FROM mes_report_work GROUP BY parent_order ) mrw ON mur.workorder_code = mrw.parent_order
<where>
<if test="workorderCode != null and workorderCode != ''">and workorder_code = #{workorderCode}</if>
<if test="workorderCodeSap != null and workorderCodeSap != ''">and workorder_code_sap =
<if test="workorderCodeSap != null and workorderCodeSap != ''">and mur.workorder_code_sap =
#{workorderCodeSap}
</if>
<if test="productName != null and productName != ''">and product_name like concat('%', #{productName},
<if test="productName != null and productName != ''">and mur.product_name like concat('%', #{productName},
'%')
</if>
<if test="productCode != null and productCode != ''">and product_code = #{productCode}</if>
<if test="productCode != null and productCode != ''">and mur.product_code = #{productCode}</if>
<if test="userName != null and userName != ''">and user_name like concat('%', #{userName}, '%')</if>
<if test="nickName != null and nickName != ''">and nick_name like concat('%', #{nickName}, '%')</if>
<if test="childprocessCode != null and childprocessCode != ''">and childprocess_code =
@ -74,12 +86,14 @@
<if test="attr3 != null and attr3 != ''">and attr3 = #{attr3}</if>
</where>
GROUP BY
workorder_code) mrw ON mur.workorder_code = mrw.workorder_code
GROUP BY
mur.id,
mur.workorder_code,
mur.workorder_code_sap,
mur.product_code,
mur.product_name,
mur.attr1,
mur.line_code,
be.equipment_name,
mur.nick_name,
mur.childprocess_code,
mup.childprocess_name,
@ -138,21 +152,21 @@
<update id="updateMesUnitpriceReport" parameterType="MesUnitpriceReport">
update mes_unitprice_report
<trim prefix="SET" suffixOverrides=",">
<if test="workorderCode != null">workorder_code = #{workorderCode},</if>
<if test="workorderCodeSap != null">workorder_code_sap = #{workorderCodeSap},</if>
<if test="productName != null">product_name = #{productName},</if>
<if test="productCode != null">product_code = #{productCode},</if>
<if test="userName != null and userName != ''">user_name = #{userName},</if>
<if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
<if test="childprocessCode != null">childprocess_code = #{childprocessCode},</if>
<if test="childprocessName != null">childprocess_name = #{childprocessName},</if>
<!-- <if test="workorderCode != null">workorder_code = #{workorderCode},</if>-->
<!-- <if test="workorderCodeSap != null">workorder_code_sap = #{workorderCodeSap},</if>-->
<!-- <if test="productName != null">product_name = #{productName},</if>-->
<!-- <if test="productCode != null">product_code = #{productCode},</if>-->
<!-- <if test="userName != null and userName != ''">user_name = #{userName},</if>-->
<!-- <if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>-->
<!-- <if test="childprocessCode != null">childprocess_code = #{childprocessCode},</if>-->
<!-- <if test="childprocessName != null">childprocess_name = #{childprocessName},</if>-->
<if test="attr1 != null">attr1 = #{attr1},</if>
<if test="attr2 != null">attr2 = #{attr2},</if>
<if test="attr3 != null">attr3 = #{attr3},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<!-- <if test="attr2 != null">attr2 = #{attr2},</if>-->
<!-- <if test="attr3 != null">attr3 = #{attr3},</if>-->
<!-- <if test="createBy != null">create_by = #{createBy},</if>-->
<!-- <if test="createTime != null">create_time = #{createTime},</if>-->
<!-- <if test="updateBy != null">update_by = #{updateBy},</if>-->
<!-- <if test="updateTime != null">update_time = #{updateTime},</if>-->
<if test="remark != null">remark = #{remark},</if>
</trim>
where id = #{id}

@ -12,6 +12,8 @@ import javax.servlet.http.HttpServletResponse;
import com.op.system.domain.SysMenu;
import com.op.system.mapper.SysMenuMapper;
import org.apache.commons.lang3.ArrayUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;

Loading…
Cancel
Save