|
|
|
@ -32,6 +32,7 @@ import java.math.RoundingMode;
|
|
|
|
import java.text.ParseException;
|
|
|
|
import java.text.ParseException;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 包活派工单Service业务层处理
|
|
|
|
* 包活派工单Service业务层处理
|
|
|
|
@ -58,8 +59,40 @@ public class PayWorkOrderBaohuoServiceImpl implements IPayWorkOrderBaohuoService
|
|
|
|
* 查询包活派工单
|
|
|
|
* 查询包活派工单
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public PayWorkOrderBaohuoVo queryById(Long id){
|
|
|
|
public PayWorkOrderBaohuoBo queryById(Long id){
|
|
|
|
return baseMapper.selectVoById(id);
|
|
|
|
PayWorkOrderBaohuo workOrderBaohuo = sgrWorkOrderBaohuoMapper.selectById(id);
|
|
|
|
|
|
|
|
PayWorkOrderBaohuoBo bo = BeanUtil.toBean(workOrderBaohuo,PayWorkOrderBaohuoBo.class);
|
|
|
|
|
|
|
|
// 获取工单下所有的员工
|
|
|
|
|
|
|
|
PayBaohuoEmployeeBo sgrBaohuoEmployee = new PayBaohuoEmployeeBo();
|
|
|
|
|
|
|
|
sgrBaohuoEmployee.setWoId(id);
|
|
|
|
|
|
|
|
List<PayBaohuoEmployeeVo> sgrBaohuoEmployees = bhemployeeService.queryList(sgrBaohuoEmployee);
|
|
|
|
|
|
|
|
bo.setEmpList(sgrBaohuoEmployees.stream().map(a->{
|
|
|
|
|
|
|
|
PayBaohuoEmployee payBaohuoEmployee = BeanUtil.toBean(a, PayBaohuoEmployee.class);
|
|
|
|
|
|
|
|
return payBaohuoEmployee;
|
|
|
|
|
|
|
|
}).collect(Collectors.toList()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取工单下所有的产品
|
|
|
|
|
|
|
|
PayBaohuoProductBo product = new PayBaohuoProductBo();
|
|
|
|
|
|
|
|
product.setWoId(id);
|
|
|
|
|
|
|
|
List<PayBaohuoProductVo> sgrBaohuoProducts = bhproductService.queryList(product);
|
|
|
|
|
|
|
|
bo.setProdList(sgrBaohuoProducts.stream().map(a->{
|
|
|
|
|
|
|
|
PayBaohuoProduct payBaohuoProduct = BeanUtil.toBean(a, PayBaohuoProduct.class);
|
|
|
|
|
|
|
|
return payBaohuoProduct;
|
|
|
|
|
|
|
|
}).collect(Collectors.toList()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取工单下所有的工时
|
|
|
|
|
|
|
|
PayBaohuoWorktimeBo sgrBaohuoWorktime = new PayBaohuoWorktimeBo();
|
|
|
|
|
|
|
|
sgrBaohuoWorktime.setWoId(id);
|
|
|
|
|
|
|
|
if (sgrBaohuoEmployees.size() != 0) {
|
|
|
|
|
|
|
|
sgrBaohuoWorktime.setEmpId(sgrBaohuoEmployees.get(0).getEmpId());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
List<PayBaohuoWorktimeVo> sgrBaohuoWorktimes = bhworktimeService.queryList(sgrBaohuoWorktime);
|
|
|
|
|
|
|
|
bo.setWorktimeList(sgrBaohuoWorktimes.stream().map(a->{
|
|
|
|
|
|
|
|
PayBaohuoWorktime payBaohuoWorktime = BeanUtil.toBean(a, PayBaohuoWorktime.class);
|
|
|
|
|
|
|
|
return payBaohuoWorktime;
|
|
|
|
|
|
|
|
}).collect(Collectors.toList()));
|
|
|
|
|
|
|
|
return bo;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
@ -274,14 +307,14 @@ public class PayWorkOrderBaohuoServiceImpl implements IPayWorkOrderBaohuoService
|
|
|
|
|
|
|
|
|
|
|
|
// 增加对应的产品列表
|
|
|
|
// 增加对应的产品列表
|
|
|
|
for (PayBaohuoProduct product : prodList) {
|
|
|
|
for (PayBaohuoProduct product : prodList) {
|
|
|
|
product.setWoId(bo.getId());
|
|
|
|
product.setWoId(add.getId());
|
|
|
|
product.setTenantId(bo.getTenantId());
|
|
|
|
product.setTenantId(bo.getTenantId());
|
|
|
|
PayBaohuoProductBo productBo= BeanUtil.toBean(product,PayBaohuoProductBo.class);
|
|
|
|
PayBaohuoProductBo productBo= BeanUtil.toBean(product,PayBaohuoProductBo.class);
|
|
|
|
bhproductService.insertByBo(productBo);
|
|
|
|
bhproductService.insertByBo(productBo);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 增加对应的员工列表
|
|
|
|
// 增加对应的员工列表
|
|
|
|
for (PayBaohuoEmployee employee : empList) {
|
|
|
|
for (PayBaohuoEmployee employee : empList) {
|
|
|
|
employee.setWoId(bo.getId());
|
|
|
|
employee.setWoId(add.getId());
|
|
|
|
employee.setEmpId(employee.getEmpId());
|
|
|
|
employee.setEmpId(employee.getEmpId());
|
|
|
|
employee.setMonth(DateUtil.format(bo.getInstorageTime(), "yyyy-MM"));
|
|
|
|
employee.setMonth(DateUtil.format(bo.getInstorageTime(), "yyyy-MM"));
|
|
|
|
employee.setIntime(bo.getInstorageTime());
|
|
|
|
employee.setIntime(bo.getInstorageTime());
|
|
|
|
@ -294,9 +327,9 @@ public class PayWorkOrderBaohuoServiceImpl implements IPayWorkOrderBaohuoService
|
|
|
|
// 为每个工单的员工都增加对应的工时
|
|
|
|
// 为每个工单的员工都增加对应的工时
|
|
|
|
for (PayBaohuoWorktime sgrWorkTime : worktimeList) {
|
|
|
|
for (PayBaohuoWorktime sgrWorkTime : worktimeList) {
|
|
|
|
sgrWorkTime.setId(null);
|
|
|
|
sgrWorkTime.setId(null);
|
|
|
|
sgrWorkTime.setWoId(bo.getId());
|
|
|
|
sgrWorkTime.setWoId(add.getId());
|
|
|
|
sgrWorkTime.setEmpId(employee.getEmpId());
|
|
|
|
sgrWorkTime.setEmpId(employee.getEmpId());
|
|
|
|
sgrWorkTime.setBheId(employee.getId());
|
|
|
|
sgrWorkTime.setBheId(payBaohuoEmployeeBo.getId());
|
|
|
|
sgrWorkTime.setTenantId(bo.getTenantId());
|
|
|
|
sgrWorkTime.setTenantId(bo.getTenantId());
|
|
|
|
//sgrWorkTime.setIntime(sgrWorkOrderBaohuo.getInstorageTime());
|
|
|
|
//sgrWorkTime.setIntime(sgrWorkOrderBaohuo.getInstorageTime());
|
|
|
|
PayBaohuoWorktimeBo payBaohuoWorktimeBo = BeanUtil.toBean(sgrWorkTime, PayBaohuoWorktimeBo.class);
|
|
|
|
PayBaohuoWorktimeBo payBaohuoWorktimeBo = BeanUtil.toBean(sgrWorkTime, PayBaohuoWorktimeBo.class);
|
|
|
|
@ -322,6 +355,7 @@ public class PayWorkOrderBaohuoServiceImpl implements IPayWorkOrderBaohuoService
|
|
|
|
* 修改包活派工单
|
|
|
|
* 修改包活派工单
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
|
|
|
|
@Transactional
|
|
|
|
public Boolean updateByBo(PayWorkOrderBaohuoBo bo) {
|
|
|
|
public Boolean updateByBo(PayWorkOrderBaohuoBo bo) {
|
|
|
|
List<PayBaohuoWorktime> worktimeList = bo.getWorktimeList();
|
|
|
|
List<PayBaohuoWorktime> worktimeList = bo.getWorktimeList();
|
|
|
|
|
|
|
|
|
|
|
|
@ -374,12 +408,14 @@ public class PayWorkOrderBaohuoServiceImpl implements IPayWorkOrderBaohuoService
|
|
|
|
searchBaohuoWorktime.setEmpId(emp.getEmpId());
|
|
|
|
searchBaohuoWorktime.setEmpId(emp.getEmpId());
|
|
|
|
List<PayBaohuoWorktimeVo> baohuoWorktimes = bhworktimeService.queryList(searchBaohuoWorktime);
|
|
|
|
List<PayBaohuoWorktimeVo> baohuoWorktimes = bhworktimeService.queryList(searchBaohuoWorktime);
|
|
|
|
for (PayBaohuoWorktimeVo baohuoWorktime : baohuoWorktimes) {
|
|
|
|
for (PayBaohuoWorktimeVo baohuoWorktime : baohuoWorktimes) {
|
|
|
|
|
|
|
|
if(!baohuoWorktime.getWoId().equals(bo.getId())){
|
|
|
|
if (DateCompareUtil.isContainOrOverlap(baohuoWorktime.getStime(), baohuoWorktime.getEtime(), bhworktime.getStime(), bhworktime.getEtime())) {
|
|
|
|
if (DateCompareUtil.isContainOrOverlap(baohuoWorktime.getStime(), baohuoWorktime.getEtime(), bhworktime.getStime(), bhworktime.getEtime())) {
|
|
|
|
throw new ServiceException("员工:"+ emp.getEmpName()+ "已经存在 " +DateUtil.format(bhworktime.getStime(), "yyyy-MM-dd HH:mm:ss") + " 到 " + DateUtil.format(bhworktime.getEtime(), "yyyy-MM-dd HH:mm:ss") + " 该时间段包活工单工时");
|
|
|
|
throw new ServiceException("员工:"+ emp.getEmpName()+ "已经存在 " +DateUtil.format(bhworktime.getStime(), "yyyy-MM-dd HH:mm:ss") + " 到 " + DateUtil.format(bhworktime.getEtime(), "yyyy-MM-dd HH:mm:ss") + " 该时间段包活工单工时");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 判断是否包含在考勤的时间段内
|
|
|
|
// 判断是否包含在考勤的时间段内
|
|
|
|
for (PayBaohuoEmployee employee : empList) {
|
|
|
|
for (PayBaohuoEmployee employee : empList) {
|
|
|
|
@ -485,7 +521,7 @@ public class PayWorkOrderBaohuoServiceImpl implements IPayWorkOrderBaohuoService
|
|
|
|
sgrWorkTime.setId(null);
|
|
|
|
sgrWorkTime.setId(null);
|
|
|
|
sgrWorkTime.setWoId(bo.getId());
|
|
|
|
sgrWorkTime.setWoId(bo.getId());
|
|
|
|
sgrWorkTime.setEmpId(employee.getEmpId());
|
|
|
|
sgrWorkTime.setEmpId(employee.getEmpId());
|
|
|
|
sgrWorkTime.setBheId(employee.getId());
|
|
|
|
sgrWorkTime.setBheId(payBaohuoEmployeeBo.getId());
|
|
|
|
sgrWorkTime.setTenantId(bo.getTenantId());
|
|
|
|
sgrWorkTime.setTenantId(bo.getTenantId());
|
|
|
|
//sgrWorkTime.setIntime(sgrWorkOrderBaohuo.getInstorageTime());
|
|
|
|
//sgrWorkTime.setIntime(sgrWorkOrderBaohuo.getInstorageTime());
|
|
|
|
PayBaohuoWorktimeBo payBaohuoWorktimeBo = BeanUtil.toBean(sgrWorkTime, PayBaohuoWorktimeBo.class);
|
|
|
|
PayBaohuoWorktimeBo payBaohuoWorktimeBo = BeanUtil.toBean(sgrWorkTime, PayBaohuoWorktimeBo.class);
|
|
|
|
|