TwinWkEmpRotaServiceImpl.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. package com.jjt.wkEmp.service.impl;
  2. import com.jjt.biz.vo.KnittingEmpVO;
  3. import com.jjt.wkEmp.domain.TwinWkEmpRota;
  4. import com.jjt.wkEmp.mapper.TwinWkEmpRotaMapper;
  5. import com.jjt.wkEmp.service.ITwinWkEmpRotaService;
  6. import org.springframework.stereotype.Service;
  7. import javax.annotation.Resource;
  8. import java.util.Date;
  9. import java.util.List;
  10. import java.util.Set;
  11. import java.util.TreeSet;
  12. import java.util.stream.Collectors;
  13. /**
  14. * 经编车间员工排班Service业务层处理
  15. *
  16. * @author wukai
  17. * @date 2025-04-28
  18. */
  19. @Service
  20. public class TwinWkEmpRotaServiceImpl implements ITwinWkEmpRotaService {
  21. @Resource
  22. private TwinWkEmpRotaMapper twinWkEmpRotaMapper;
  23. /**
  24. * 查询经编车间员工排班
  25. *
  26. * @param shiftId 经编车间员工排班主键
  27. * @return 经编车间员工排班
  28. */
  29. @Override
  30. public TwinWkEmpRota selectTwinWkEmpRotaByShiftId(Long shiftId) {
  31. return twinWkEmpRotaMapper.selectTwinWkEmpRotaByShiftId(shiftId);
  32. }
  33. /**
  34. * 查询经编车间员工排班列表
  35. *
  36. * @param twinWkEmpRota 经编车间员工排班
  37. * @return 经编车间员工排班
  38. */
  39. @Override
  40. public List<TwinWkEmpRota> selectTwinWkEmpRotaList(TwinWkEmpRota twinWkEmpRota) {
  41. return twinWkEmpRotaMapper.selectTwinWkEmpRotaList(twinWkEmpRota);
  42. }
  43. /**
  44. * 新增经编车间员工排班
  45. *
  46. * @param twinWkEmpRota 经编车间员工排班
  47. * @return 结果
  48. */
  49. @Override
  50. public int insertTwinWkEmpRota(TwinWkEmpRota twinWkEmpRota) {
  51. twinWkEmpRota.setCreatedTime(new Date());
  52. return twinWkEmpRotaMapper.insertTwinWkEmpRota(twinWkEmpRota);
  53. }
  54. /**
  55. * 修改经编车间员工排班
  56. *
  57. * @param twinWkEmpRota 经编车间员工排班
  58. * @return 结果
  59. */
  60. @Override
  61. public int updateTwinWkEmpRota(TwinWkEmpRota twinWkEmpRota) {
  62. twinWkEmpRota.setUpdatedTime(new Date());
  63. return twinWkEmpRotaMapper.updateTwinWkEmpRota(twinWkEmpRota);
  64. }
  65. /**
  66. * 批量删除经编车间员工排班
  67. *
  68. * @param shiftIds 需要删除的经编车间员工排班主键
  69. * @return 结果
  70. */
  71. @Override
  72. public int deleteTwinWkEmpRotaByShiftIds(Long[] shiftIds) {
  73. return twinWkEmpRotaMapper.deleteTwinWkEmpRotaByShiftIds(shiftIds);
  74. }
  75. /**
  76. * 删除经编车间员工排班信息
  77. *
  78. * @param shiftId 经编车间员工排班主键
  79. * @return 结果
  80. */
  81. @Override
  82. public int deleteTwinWkEmpRotaByShiftId(Long shiftId) {
  83. return twinWkEmpRotaMapper.deleteTwinWkEmpRotaByShiftId(shiftId);
  84. }
  85. /**
  86. * 数据同步
  87. *
  88. * @param data 接口数据
  89. */
  90. @Override
  91. public void sync(KnittingEmpVO data) {
  92. TwinWkEmpRota rota = selectByEmp(data.getDate(), data.getId());
  93. rota.setEmpId(data.getId());
  94. rota.setEmpName(data.getName());
  95. rota.setEmpTeam(data.getTeam());
  96. rota.setInTime(data.getIn());
  97. rota.setOutTime(data.getOut());
  98. Set<Integer> deviceSet = new TreeSet<>();
  99. for (String s : data.getDevices()) {
  100. String id = s.replace("J", "");
  101. deviceSet.add(Integer.parseInt(id));
  102. }
  103. String devices = deviceSet.stream().map(String::valueOf).collect(Collectors.joining(","));
  104. rota.setDevices(devices);
  105. if (rota.getShiftId() != null) {
  106. updateTwinWkEmpRota(rota);
  107. } else {
  108. insertTwinWkEmpRota(rota);
  109. }
  110. }
  111. /**
  112. * 按时间和员工号查询记录
  113. */
  114. private TwinWkEmpRota selectByEmp(Date date, String empId) {
  115. TwinWkEmpRota search = new TwinWkEmpRota();
  116. search.setEmpDate(date);
  117. search.setEmpId(empId);
  118. List<TwinWkEmpRota> list = selectTwinWkEmpRotaList(search);
  119. TwinWkEmpRota rota;
  120. if (list.size() > 0) {
  121. rota = list.get(0);
  122. } else {
  123. rota = search;
  124. }
  125. return rota;
  126. }
  127. }