change - 修改按照事件日期生成工资,添加生产工单执行用户生成工资标识。

maser
yinq 8 months ago
parent 782a8929f6
commit b943e1efbc

@ -34,5 +34,24 @@ public class MesConstants
public static final String MES_PROCESS_270_FILM = "1030";
/**
* ERP0 1
*/
public static final String MES_IS_ERP_NO = "0";
/**
* ERP0 1
*/
public static final String MES_IS_ERP_YES = "1";
/**
* 0 1
*/
public static final String MES_IS_SALARY_NO = "0";
/**
* 0 1
*/
public static final String MES_IS_SALARY_YES = "1";
}

@ -154,9 +154,8 @@ public class ProdOrderInfo extends BaseEntity {
private String printName;
/**
* ERP0 1
* ERP0 1
*/
@Excel(name = "ERP上传标识0未上传 1已上传")
private String isFlag;
/**

@ -86,9 +86,9 @@ public class ProdPlanExecuteUser extends BaseEntity {
private Date planEndDate;
/**
*
* 0 1
*/
@Excel(name = "启用标识")
@Excel(name = "生成工资标识0未生成 1已生成")
private String isFlag;
/**
@ -185,6 +185,19 @@ public class ProdPlanExecuteUser extends BaseEntity {
@Excel(name = "输送带长度规格")
private String BeltLengthSpecifications;
/**
*
*/
private String offWorkTime;
public String getOffWorkTime() {
return offWorkTime;
}
public void setOffWorkTime(String offWorkTime) {
this.offWorkTime = offWorkTime;
}
public BigDecimal getRollCoatingArea() {
return RollCoatingArea;
}

@ -109,6 +109,48 @@ public class RecordStaffSalary extends BaseEntity
*/
private String orderCode;
/**
*
*/
@Excel(name = "工单编号")
private String planCode;
/**
* ERP0 1
*/
@Excel(name = "上传ERP标识0未上传 1已上传")
private String isErp;
/**
*
*/
@Excel(name = "生产米数")
private BigDecimal prodNumber;
public BigDecimal getProdNumber() {
return prodNumber;
}
public void setProdNumber(BigDecimal prodNumber) {
this.prodNumber = prodNumber;
}
public String getPlanCode() {
return planCode;
}
public void setPlanCode(String planCode) {
this.planCode = planCode;
}
public String getIsErp() {
return isErp;
}
public void setIsErp(String isErp) {
this.isErp = isErp;
}
public String getOrderCode() {
return orderCode;
}

@ -8,28 +8,23 @@ import java.util.stream.Collectors;
import com.os.common.constant.MesConstants;
import com.os.common.exception.ServiceException;
import com.os.common.utils.DateUtils;
import com.os.common.utils.SecurityUtils;
import com.os.common.utils.StringUtils;
import com.os.common.utils.uuid.PlanCodeUtils;
import com.os.mes.api.domain.ERPParamDto;
import com.os.mes.api.domain.LatestSalary;
import com.os.mes.api.service.IERPPortService;
import com.os.mes.base.domain.BaseProcessInfo;
import com.os.mes.base.domain.BaseStaffInfo;
import com.os.mes.base.domain.BaseTeamMembers;
import com.os.mes.base.mapper.BaseProcessInfoMapper;
import com.os.mes.base.mapper.BaseStaffInfoMapper;
import com.os.mes.base.mapper.BaseTeamMembersMapper;
import com.os.mes.prod.domain.ProdOrderInfo;
import com.os.mes.prod.domain.ProdPlanDetail;
import com.os.mes.prod.domain.ProdPlanExecuteUser;
import com.os.mes.prod.domain.ProdPlanInfo;
import com.os.mes.prod.mapper.ProdOrderInfoMapper;
import com.os.mes.prod.mapper.ProdPlanExecuteUserMapper;
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;
@ -88,7 +83,23 @@ public class RecordStaffSalaryServiceImpl implements IRecordStaffSalaryService {
*/
@Override
public List<RecordStaffSalary> selectRecordStaffSalaryList(RecordStaffSalary recordStaffSalary) {
return recordStaffSalaryMapper.selectRecordStaffSalaryList(recordStaffSalary);
List<RecordStaffSalary> recordStaffSalaryList = recordStaffSalaryMapper.selectRecordStaffSalaryList(recordStaffSalary);
List<BaseTeamMembers> teamMembers = baseTeamMembersMapper.selectBaseTeamMembersList(new BaseTeamMembers());
for (RecordStaffSalary staffSalary : recordStaffSalaryList) {
if (StringUtils.isEmpty(staffSalary.getGroupId())) {
continue;
}
for (BaseTeamMembers teamMember : teamMembers) {
if (staffSalary.getGroupId().contains(teamMember.getTeamCode())) {
if (StringUtils.isEmpty(staffSalary.getTeamName())) {
staffSalary.setTeamName(teamMember.getTeamName());
} else {
staffSalary.setTeamName(staffSalary.getTeamName() + "," + teamMember.getTeamName());
}
}
}
}
return recordStaffSalaryList;
}
/**
@ -149,130 +160,151 @@ public class RecordStaffSalaryServiceImpl implements IRecordStaffSalaryService {
* @return
*/
@Override
@Transactional(rollbackFor = ServiceException.class)
public List<RecordStaffSalary> selectTeamEmployeesWages(RecordStaffSalary recordStaffSalary) {
List<RecordStaffSalary> result = new ArrayList<>();
//调用最新工资系数接口
LatestSalary salaryData = portService.getERPLatestSalaryData(new ERPParamDto());
List<BaseTeamMembers> teamMembers = baseTeamMembersMapper.selectBaseTeamMembersList(new BaseTeamMembers());
// List<BaseTeamMembers> teamMembers = baseTeamMembersMapper.selectBaseTeamMembersList(new BaseTeamMembers());
Map<String, Object> params = recordStaffSalary.getParams();
ProdPlanExecuteUser selectExecuteUser = new ProdPlanExecuteUser();
selectExecuteUser.setParams(params); //beginOrderDate、endOrderDate
selectExecuteUser.setParams(params); //beginOffWorkTime、beginOffWorkTime 下班后才可以计算之前的工资
selectExecuteUser.setIsFlag(MesConstants.MES_IS_SALARY_NO);//未生成工资
List<ProdPlanExecuteUser> planUserList = prodPlanExecuteUserMapper.selectProdPlanExecuteUserList(selectExecuteUser);
Date beginOrderDate = null;
Date endOrderDate = null;
if (params.containsKey("beginOrderDate")) {
beginOrderDate = DateUtils.parseDate(String.valueOf(params.get("beginOrderDate")));
if (params.containsKey("beginOffWorkTime")) {
beginOrderDate = DateUtils.parseDate(String.valueOf(params.get("beginOffWorkTime")));
}
if (params.containsKey("endOrderDate")) {
endOrderDate = DateUtils.parseDate(String.valueOf(params.get("endOrderDate")));
if (params.containsKey("endOffWorkTime")) {
endOrderDate = DateUtils.parseDate(String.valueOf(params.get("endOffWorkTime")));
}
long objId = 1L;
String taskCode = PlanCodeUtils.getTaskCode();
Map<String, List<ProdPlanExecuteUser>> orderCodeMap = planUserList.stream().collect(Collectors.groupingBy(ProdPlanExecuteUser::getOrderCode));
for (String orderCode : orderCodeMap.keySet()) {
List<ProdPlanExecuteUser> orderCodeUserList = orderCodeMap.get(orderCode);
for (ProdPlanExecuteUser prodPlanExecuteUser : orderCodeUserList) {
//工序工资系数
BigDecimal coefficient = new BigDecimal(0);
//工序生产面积
BigDecimal totalArea = new BigDecimal(0);
///参加该工序的所有人的工资系数的总和
BigDecimal wageCoefficientSum = new BigDecimal(0);
///该工序的输送带面积
BigDecimal beltTotalArea = new BigDecimal(0);
//当前工序编号
String currentProcessCode = null;
//硫化工序 工序硫化的工资 = 硫化系数*硫化面积*(工资系数/参加该工序的所有人的工资系数的总和)
//硫化面积=硫化米数/客户要求总米数*硫化面积
if (prodPlanExecuteUser.getProcessCode().equals(MesConstants.MES_PROCESS_VULCANIZATION)) {
coefficient = salaryData.getVulcanizationCoefficient();
beltTotalArea = prodPlanExecuteUser.getSulfurizationArea();
}
//出布工序
if (prodPlanExecuteUser.getProcessCode().equals(MesConstants.MES_PROCESS_OUT_CLOTH)) {
coefficient = salaryData.getDistributionCoefficient();
beltTotalArea = prodPlanExecuteUser.getRolledFabricArea();
}
//成型工序
if (prodPlanExecuteUser.getProcessCode().equals(MesConstants.MES_PROCESS_FORMING)) {
beltTotalArea = prodPlanExecuteUser.getFormingArea();
}
//包胶工序
if (prodPlanExecuteUser.getProcessCode().equals(MesConstants.MES_PROCESS_LAGGING)) {
coefficient = salaryData.getEncapsulationCoefficient();
beltTotalArea = prodPlanExecuteUser.getRollCoatingArea();
}
totalArea = prodPlanExecuteUser.getCompleteAmount()
.divide(prodPlanExecuteUser.getBeltRequiredLength(), 12, RoundingMode.HALF_UP)
.multiply(beltTotalArea);
Map<String, List<ProdPlanExecuteUser>> offWorkTimeUserMap = planUserList.stream().collect(Collectors.groupingBy(ProdPlanExecuteUser::getOffWorkTime));
wageCoefficientSum = orderCodeUserList.stream().filter(e -> e.getPlanCode().equals(prodPlanExecuteUser.getPlanCode())
&& e.getBatchNumber().equals(prodPlanExecuteUser.getBatchNumber()))
.map(ProdPlanExecuteUser::getWageCoefficient).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal revenueAmount = new BigDecimal(0);//员工收入
if (wageCoefficientSum.compareTo(BigDecimal.ZERO) > 0){
BigDecimal staffCoefficient = prodPlanExecuteUser.getWageCoefficient().divide(wageCoefficientSum, 12, RoundingMode.HALF_UP);
revenueAmount = coefficient.multiply(totalArea).multiply(staffCoefficient).setScale(2, RoundingMode.HALF_UP);
}
if (StringUtils.isNotEmpty(prodPlanExecuteUser.getTeamCode())) {
for (BaseTeamMembers teamMember : teamMembers) {
if (prodPlanExecuteUser.getTeamCode().contains(teamMember.getTeamCode())) {
if (StringUtils.isEmpty(prodPlanExecuteUser.getTeamName())) {
prodPlanExecuteUser.setTeamName(teamMember.getTeamName());
} else {
prodPlanExecuteUser.setTeamName(prodPlanExecuteUser.getTeamName() + "," + teamMember.getTeamName());
}
for (String offWorkTime : offWorkTimeUserMap.keySet()) {
List<ProdPlanExecuteUser> executeUserTimeList = offWorkTimeUserMap.get(offWorkTime);
Map<String, List<ProdPlanExecuteUser>> orderCodeMap = executeUserTimeList.stream().collect(Collectors.groupingBy(ProdPlanExecuteUser::getOrderCode));
for (String orderCode : orderCodeMap.keySet()) {
List<ProdPlanExecuteUser> orderCodeUserList = orderCodeMap.get(orderCode);
for (ProdPlanExecuteUser prodPlanExecuteUser : orderCodeUserList) {
//获取员工收入金额
BigDecimal revenueAmount = this.getStaffreVenueAmount(orderCodeUserList, prodPlanExecuteUser, salaryData);
String teamCode = prodPlanExecuteUser.getTeamCode();
String teamName = prodPlanExecuteUser.getTeamName();
String idCard = prodPlanExecuteUser.getIdCard();
BigDecimal completeAmount = prodPlanExecuteUser.getCompleteAmount();
String revenueReason = prodPlanExecuteUser.getStationName().substring(0, 2) + " "
+ prodPlanExecuteUser.getBeltLengthSpecifications() + " " + prodPlanExecuteUser.getOrderCode();
RecordStaffSalary staffSalary = new RecordStaffSalary();
for (RecordStaffSalary staff : result) {
if (staff.getIdCard().equals(idCard) && staff.getGroupId().equals(prodPlanExecuteUser.getTeamCode())
&& staff.getRevenueReason().equals(revenueReason) && offWorkTime.equals(DateUtils.dateTime(staff.getEventDate()))) {
staffSalary = staff;
}
}
}
String teamCode = prodPlanExecuteUser.getTeamCode();
String teamName = prodPlanExecuteUser.getTeamName();
String idCard = prodPlanExecuteUser.getIdCard();
String revenueReason = prodPlanExecuteUser.getStationName().substring(0, 2) + " "
+ prodPlanExecuteUser.getBeltLengthSpecifications() + " " + prodPlanExecuteUser.getOrderCode();
RecordStaffSalary staffSalary = new RecordStaffSalary();
for (RecordStaffSalary staff : result) {
if (staff.getIdCard().equals(idCard) && staff.getGroupId().equals(prodPlanExecuteUser.getTeamCode())
&& staff.getRevenueReason().equals(revenueReason)) {
staffSalary = staff;
if (StringUtils.isEmpty(staffSalary.getCardId())) {
staffSalary.setTaskCode(taskCode);
staffSalary.setIdCard(prodPlanExecuteUser.getIdCard());
staffSalary.setGroupId(teamCode);
staffSalary.setEventDate(DateUtils.parseDate(offWorkTime));
staffSalary.setSalaryCategory("收入");
staffSalary.setRevenueClass("完成生产任务");
revenueAmount = revenueAmount.setScale(2, RoundingMode.HALF_UP);
staffSalary.setRevenueAmount(revenueAmount);
staffSalary.setSalaryCoefficient(prodPlanExecuteUser.getWageCoefficient());
staffSalary.setStaffName(prodPlanExecuteUser.getStaffName());
staffSalary.setCardId(idCard);
staffSalary.setTeamName(teamName);
staffSalary.setBeginDate(beginOrderDate);
staffSalary.setEndDate(endOrderDate);
staffSalary.setRevenueReason(revenueReason);
staffSalary.setOrderCode(prodPlanExecuteUser.getOrderCode());
staffSalary.setPlanCode(prodPlanExecuteUser.getPlanCode());
staffSalary.setIsErp(MesConstants.MES_IS_ERP_NO);
staffSalary.setProdNumber(completeAmount);
result.add(staffSalary);
} else {
staffSalary.setRevenueAmount(staffSalary.getRevenueAmount().add(revenueAmount));
staffSalary.setProdNumber(staffSalary.getProdNumber().add(completeAmount));
staffSalary.setGroupId(teamCode);
staffSalary.setTeamName(teamName);
}
}
if (StringUtils.isEmpty(staffSalary.getCardId())) {
staffSalary.setObjId(objId++);
staffSalary.setTaskCode(taskCode);
staffSalary.setIdCard(prodPlanExecuteUser.getIdCard());
staffSalary.setGroupId(teamCode);
staffSalary.setEventDate(new Date());
staffSalary.setSalaryCategory("收入");
staffSalary.setRevenueClass("完成生产任务");
revenueAmount = revenueAmount.setScale(2, RoundingMode.HALF_UP);
staffSalary.setRevenueAmount(revenueAmount);
staffSalary.setSalaryCoefficient(prodPlanExecuteUser.getWageCoefficient());
staffSalary.setStaffName(prodPlanExecuteUser.getStaffName());
staffSalary.setCardId(idCard);
staffSalary.setTeamName(teamName);
staffSalary.setBeginDate(beginOrderDate);
staffSalary.setEndDate(endOrderDate);
staffSalary.setRevenueReason(revenueReason);
staffSalary.setOrderCode(prodPlanExecuteUser.getOrderCode());
result.add(staffSalary);
} else {
staffSalary.setRevenueAmount(staffSalary.getRevenueAmount().add(revenueAmount));
staffSalary.setGroupId(teamCode);
staffSalary.setTeamName(teamName);
ProdPlanExecuteUser updateExecuteUser = new ProdPlanExecuteUser();
updateExecuteUser.setObjId(prodPlanExecuteUser.getObjId());
updateExecuteUser.setIsFlag(MesConstants.MES_IS_SALARY_YES);
updateExecuteUser.setUpdatedBy(SecurityUtils.getUsername());
updateExecuteUser.setUpdatedTime(DateUtils.getNowDate());
prodPlanExecuteUserMapper.updateProdPlanExecuteUser(updateExecuteUser);
}
}
}
for (RecordStaffSalary salary : result) {
this.insertRecordStaffSalary(salary);
}
recordStaffSalary.setIsErp(MesConstants.MES_IS_ERP_NO);
return this.selectRecordStaffSalaryList(recordStaffSalary);
}
/**
*
* @param orderCodeUserList
* @param prodPlanExecuteUser
* @param salaryData
* @return
*/
private BigDecimal getStaffreVenueAmount(List<ProdPlanExecuteUser> orderCodeUserList, ProdPlanExecuteUser prodPlanExecuteUser, LatestSalary salaryData) {
//工序工资系数
BigDecimal coefficient = new BigDecimal(0);
//工序生产面积
BigDecimal totalArea = new BigDecimal(0);
///参加该工序的所有人的工资系数的总和
BigDecimal wageCoefficientSum = new BigDecimal(0);
///该工序的输送带面积
BigDecimal beltTotalArea = new BigDecimal(0);
//当前工序编号
String currentProcessCode = null;
//硫化工序 工序硫化的工资 = 硫化系数*硫化面积*(工资系数/参加该工序的所有人的工资系数的总和)
//硫化面积=硫化米数/客户要求总米数*硫化面积
if (prodPlanExecuteUser.getProcessCode().equals(MesConstants.MES_PROCESS_VULCANIZATION)) {
coefficient = salaryData.getVulcanizationCoefficient();
beltTotalArea = prodPlanExecuteUser.getSulfurizationArea();
}
//出布工序
if (prodPlanExecuteUser.getProcessCode().equals(MesConstants.MES_PROCESS_OUT_CLOTH)) {
coefficient = salaryData.getDistributionCoefficient();
beltTotalArea = prodPlanExecuteUser.getRolledFabricArea();
}
//成型工序
if (prodPlanExecuteUser.getProcessCode().equals(MesConstants.MES_PROCESS_FORMING)) {
beltTotalArea = prodPlanExecuteUser.getFormingArea();
}
//包胶工序
if (prodPlanExecuteUser.getProcessCode().equals(MesConstants.MES_PROCESS_LAGGING)) {
coefficient = salaryData.getEncapsulationCoefficient();
beltTotalArea = prodPlanExecuteUser.getRollCoatingArea();
}
return result;
totalArea = prodPlanExecuteUser.getCompleteAmount()
.divide(prodPlanExecuteUser.getBeltRequiredLength(), 12, RoundingMode.HALF_UP)
.multiply(beltTotalArea);
wageCoefficientSum = orderCodeUserList.stream().filter(e -> e.getPlanCode().equals(prodPlanExecuteUser.getPlanCode())
&& e.getBatchNumber().equals(prodPlanExecuteUser.getBatchNumber()))
.map(ProdPlanExecuteUser::getWageCoefficient).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal revenueAmount = new BigDecimal(0);//员工收入
if (wageCoefficientSum.compareTo(BigDecimal.ZERO) > 0){
BigDecimal staffCoefficient = prodPlanExecuteUser.getWageCoefficient().divide(wageCoefficientSum, 12, RoundingMode.HALF_UP);
revenueAmount = coefficient.multiply(totalArea).multiply(staffCoefficient).setScale(2, RoundingMode.HALF_UP);
}
return revenueAmount;
}
@ -455,14 +487,13 @@ public class RecordStaffSalaryServiceImpl implements IRecordStaffSalaryService {
Thread thread = new Thread(() -> {
for (RecordStaffSalary staffSalary : recordStaffSalaryList) {
String objectId = portService.addSalaryBreakdown(staffSalary);
staffSalary.setObjectId(objectId);
staffSalary.setCreateTime(DateUtils.getNowDate());
recordStaffSalaryMapper.insertRecordStaffSalary(staffSalary);
//更新ERP上传标识
ProdOrderInfo orderInfo = new ProdOrderInfo();
orderInfo.setOrderCode(staffSalary.getOrderCode());
orderInfo.setIsFlag("1");
prodOrderInfoMapper.updateProdOrderInfo(orderInfo);
RecordStaffSalary updateSalary = new RecordStaffSalary();
updateSalary.setObjId(staffSalary.getObjId());
updateSalary.setObjectId(objectId);
updateSalary.setIsErp(MesConstants.MES_IS_ERP_YES);
updateSalary.setUpdateTime(DateUtils.getNowDate());
recordStaffSalaryMapper.updateRecordStaffSalary(updateSalary);
}
});
thread.start(); //启动新线程

@ -19,6 +19,7 @@
<result property="createdTime" column="created_time"/>
<result property="updatedBy" column="updated_by"/>
<result property="updatedTime" column="updated_time"/>
<result property="offWorkTime" column="off_work_time"/>
<result property="batchNumber" column="batch_number"/>
<result property="staffName" column="staff_name"/>
<result property="stationName" column="station_name"/>
@ -49,6 +50,7 @@
ppeu.updated_by,
ppeu.updated_time,
ppeu.batch_number,
FORMAT(ppeu.off_work_time, 'yyyy-MM-dd') off_work_time,
bsi.staff_name,
bsi.wage_coefficient,
bpl.product_line_name station_name,
@ -83,6 +85,9 @@
<if test="params.beginOrderDate != null and params.beginOrderDate != '' and params.endOrderDate != null and params.endOrderDate != ''">
and FORMAT(ppeu.plan_end_date, 'yyyy-MM-dd') between #{params.beginOrderDate} and #{params.endOrderDate}
</if>
<if test="params.beginOffWorkTime != null and params.beginOffWorkTime != '' and params.endOffWorkTime != null and params.endOffWorkTime != ''">
and FORMAT(ppeu.off_work_time, 'yyyy-MM-dd') between #{params.beginOffWorkTime} and #{params.endOffWorkTime}
</if>
</where>
</select>

@ -25,6 +25,10 @@
<result property="objectId" column="object_id"/>
<result property="staffName" column="staff_name"/>
<result property="teamName" column="team_name"/>
<result property="orderCode" column="order_code"/>
<result property="planCode" column="plan_code"/>
<result property="isErp" column="is_erp"/>
<result property="prodNumber" column="prod_number"/>
</resultMap>
<sql id="selectRecordStaffSalaryVo">
@ -45,11 +49,13 @@
rss.object_id,
rss.begin_date,
rss.end_date,
bsi.staff_name,
btm.team_name
rss.order_code,
rss.plan_code,
rss.is_erp,
rss.prod_number,
bsi.staff_name
from record_staff_salary rss
left join base_staff_info bsi on rss.id_card = bsi.pass_word
left join base_team_members btm on rss.group_id = btm.team_code
</sql>
<select id="selectRecordStaffSalaryList" parameterType="RecordStaffSalary" resultMap="RecordStaffSalaryResult">
@ -58,7 +64,7 @@
<if test="idCard != null and idCard != ''">and rss.id_card = #{idCard}</if>
<if test="groupId != null and groupId != ''">and rss.group_id = #{groupId}</if>
<if test="params.beginEventDate != null and params.beginEventDate != '' and params.endEventDate != null and params.endEventDate != ''">
and rss.event_date between #{params.beginEventDate} and #{params.endEventDate}
and FORMAT(rss.event_date, 'yyyy-MM-dd') between #{params.beginEventDate} and #{params.endEventDate}
</if>
<if test="salaryCategory != null and salaryCategory != ''">and rss.salary_category = #{salaryCategory}</if>
<if test="revenueClass != null and revenueClass != ''">and rss.revenue_class = #{revenueClass}</if>
@ -70,8 +76,14 @@
<if test="taskCode != null and taskCode != ''">and rss.task_code = #{taskCode}</if>
<if test="salaryCoefficient != null ">and rss.salary_coefficient = #{salaryCoefficient}</if>
<if test="objectId != null ">and rss.object_id = #{objectId}</if>
<if test="isErp != null and isErp != ''">and rss.is_erp = #{isErp}</if>
<if test="orderCode != null and orderCode != ''">and rss.order_code like concat('%', #{orderCode}, '%')</if>
<if test="planCode != null and planCode != ''">and rss.plan_code like concat('%', #{planCode}, '%')</if>
<if test="params.beginOffWorkTime != null and params.beginOffWorkTime != '' and params.endOffWorkTime != null and params.endOffWorkTime != ''">
and FORMAT(rss.event_date, 'yyyy-MM-dd') between #{params.beginOffWorkTime} and #{params.endOffWorkTime}
</if>
</where>
order by rss.task_code desc, rss.group_id
order by rss.event_date, rss.group_id, rss.id_card
</select>
<select id="selectRecordStaffSalaryByObjId" parameterType="Long" resultMap="RecordStaffSalaryResult">
@ -98,6 +110,10 @@
<if test="beginDate != null">begin_date,</if>
<if test="endDate != null">end_date,</if>
<if test="objectId != null">object_id,</if>
<if test="orderCode != null">order_code,</if>
<if test="planCode != null">plan_code,</if>
<if test="isErp != null">is_erp,</if>
<if test="prodNumber != null">prod_number,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="idCard != null">#{idCard},</if>
@ -116,6 +132,10 @@
<if test="beginDate != null">#{beginDate},</if>
<if test="endDate != null">#{endDate},</if>
<if test="objectId != null">#{objectId},</if>
<if test="orderCode != null">#{orderCode},</if>
<if test="planCode != null">#{planCode},</if>
<if test="isErp != null">#{isErp},</if>
<if test="prodNumber != null">#{prodNumber},</if>
</trim>
</insert>
@ -138,6 +158,10 @@
<if test="beginDate != null">begin_date = #{beginDate},</if>
<if test="endDate != null">end_date = #{endDate},</if>
<if test="objectId != null">object_id = #{objectId},</if>
<if test="orderCode != null">order_code = #{orderCode},</if>
<if test="planCode != null">plan_code = #{planCode},</if>
<if test="isErp != null">is_erp = #{isErp},</if>
<if test="prodNumber != null">prod_number = #{prodNumber},</if>
</trim>
where obj_id = #{objId}
</update>

Loading…
Cancel
Save