|
|
@ -1,23 +1,37 @@
|
|
|
|
package jnpf.service.impl;
|
|
|
|
package jnpf.service.impl;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
|
|
|
import com.google.common.collect.Lists;
|
|
|
|
import jnpf.entity.*;
|
|
|
|
import jnpf.entity.*;
|
|
|
|
import jnpf.mapper.YysDayPackageMapper;
|
|
|
|
import jnpf.mapper.YysDayPackageMapper;
|
|
|
|
|
|
|
|
import jnpf.model.yysdaywork.ConfirmRequest;
|
|
|
|
|
|
|
|
import jnpf.model.yysdaywork.ConfirmResponse;
|
|
|
|
import jnpf.service.*;
|
|
|
|
import jnpf.service.*;
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
import jnpf.model.yysdaypackage.*;
|
|
|
|
import jnpf.model.yysdaypackage.*;
|
|
|
|
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
import jnpf.permission.model.authorize.AuthorizeConditionModel;
|
|
|
|
import jnpf.permission.model.authorize.AuthorizeConditionModel;
|
|
|
|
import jnpf.util.GeneraterSwapUtil;
|
|
|
|
import jnpf.util.GeneraterSwapUtil;
|
|
|
|
import jnpf.database.model.superQuery.SuperQueryJsonModel;
|
|
|
|
import jnpf.database.model.superQuery.SuperQueryJsonModel;
|
|
|
|
import jnpf.database.model.superQuery.ConditionJsonModel;
|
|
|
|
import jnpf.database.model.superQuery.ConditionJsonModel;
|
|
|
|
import jnpf.database.model.superQuery.SuperQueryConditionModel;
|
|
|
|
import jnpf.database.model.superQuery.SuperQueryConditionModel;
|
|
|
|
|
|
|
|
|
|
|
|
import java.lang.reflect.Field;
|
|
|
|
import java.lang.reflect.Field;
|
|
|
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.annotation.TableField;
|
|
|
|
import com.baomidou.mybatisplus.annotation.TableField;
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.regex.Pattern;
|
|
|
|
import java.util.regex.Pattern;
|
|
|
|
|
|
|
|
|
|
|
|
import jnpf.model.QueryModel;
|
|
|
|
import jnpf.model.QueryModel;
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
import jnpf.base.model.ColumnDataModel;
|
|
|
|
import jnpf.base.model.ColumnDataModel;
|
|
|
|
|
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
import jnpf.database.model.superQuery.SuperJsonModel;
|
|
|
|
import jnpf.database.model.superQuery.SuperJsonModel;
|
|
|
@ -25,13 +39,17 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
|
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
|
|
|
|
|
|
|
import jnpf.util.*;
|
|
|
|
import jnpf.util.*;
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
|
|
|
import jnpf.base.UserInfo;
|
|
|
|
import jnpf.base.UserInfo;
|
|
|
|
import jnpf.permission.entity.UserEntity;
|
|
|
|
import jnpf.permission.entity.UserEntity;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
|
|
|
|
* yysDayPackage
|
|
|
|
* yysDayPackage
|
|
|
|
* 版本: V3.5
|
|
|
|
* 版本: V3.5
|
|
|
|
* 版权: 引迈信息技术有限公司(https://www.jnpfsoft.com)
|
|
|
|
* 版权: 引迈信息技术有限公司(https://www.jnpfsoft.com)
|
|
|
@ -46,11 +64,20 @@ public class YysDayPackageServiceImpl extends ServiceImpl<YysDayPackageMapper, Y
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private UserProvider userProvider;
|
|
|
|
private UserProvider userProvider;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private YysDeviceDataService yysDeviceDataService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private YysPackageReportService yysPackageReportService;
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public List<YysDayPackageEntity> getList(YysDayPackagePagination yysDayPackagePagination) {
|
|
|
|
public List<YysDayPackageEntity> getList(YysDayPackagePagination yysDayPackagePagination) {
|
|
|
|
return getTypeList(yysDayPackagePagination, yysDayPackagePagination.getDataType());
|
|
|
|
return getTypeList(yysDayPackagePagination, yysDayPackagePagination.getDataType());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/** 列表查询 */
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 列表查询
|
|
|
|
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public List<YysDayPackageEntity> getTypeList(YysDayPackagePagination yysDayPackagePagination, String dataType) {
|
|
|
|
public List<YysDayPackageEntity> getTypeList(YysDayPackagePagination yysDayPackagePagination, String dataType) {
|
|
|
|
String userId = userProvider.get().getUserId();
|
|
|
|
String userId = userProvider.get().getUserId();
|
|
|
@ -245,27 +272,34 @@ public class YysDayPackageServiceImpl extends ServiceImpl<YysDayPackageMapper, Y
|
|
|
|
return this.list(yysDayPackageQueryWrapper);
|
|
|
|
return this.list(yysDayPackageQueryWrapper);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public YysDayPackageEntity getInfo(String id) {
|
|
|
|
public YysDayPackageEntity getInfo(String id) {
|
|
|
|
QueryWrapper<YysDayPackageEntity> queryWrapper = new QueryWrapper<>();
|
|
|
|
QueryWrapper<YysDayPackageEntity> queryWrapper = new QueryWrapper<>();
|
|
|
|
queryWrapper.lambda().eq(YysDayPackageEntity::getId, id);
|
|
|
|
queryWrapper.lambda().eq(YysDayPackageEntity::getId, id);
|
|
|
|
return this.getOne(queryWrapper);
|
|
|
|
return this.getOne(queryWrapper);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void create(YysDayPackageEntity entity) {
|
|
|
|
public void create(YysDayPackageEntity entity) {
|
|
|
|
this.save(entity);
|
|
|
|
this.save(entity);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public boolean update(String id, YysDayPackageEntity entity) {
|
|
|
|
public boolean update(String id, YysDayPackageEntity entity) {
|
|
|
|
return this.updateById(entity);
|
|
|
|
return this.updateById(entity);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void delete(YysDayPackageEntity entity) {
|
|
|
|
public void delete(YysDayPackageEntity entity) {
|
|
|
|
if (entity != null) {
|
|
|
|
if (entity != null) {
|
|
|
|
this.removeById(entity.getId());
|
|
|
|
this.removeById(entity.getId());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/** 验证表单唯一字段,正则,非空 i-0新增-1修改*/
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 验证表单唯一字段,正则,非空 i-0新增-1修改
|
|
|
|
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public String checkForm(YysDayPackageForm form, int i) {
|
|
|
|
public String checkForm(YysDayPackageForm form, int i) {
|
|
|
|
boolean isUp = StringUtil.isNotEmpty(form.getId()) && !form.getId().equals("0");
|
|
|
|
boolean isUp = StringUtil.isNotEmpty(form.getId()) && !form.getId().equals("0");
|
|
|
@ -299,8 +333,10 @@ public class YysDayPackageServiceImpl extends ServiceImpl<YysDayPackageMapper, Y
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return countRecover;
|
|
|
|
return countRecover;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 新增修改数据(事务回滚)
|
|
|
|
* 新增修改数据(事务回滚)
|
|
|
|
|
|
|
|
*
|
|
|
|
* @param id
|
|
|
|
* @param id
|
|
|
|
* @param yysDayPackageForm
|
|
|
|
* @param yysDayPackageForm
|
|
|
|
* @return
|
|
|
|
* @return
|
|
|
@ -323,4 +359,69 @@ public class YysDayPackageServiceImpl extends ServiceImpl<YysDayPackageMapper, Y
|
|
|
|
this.saveOrUpdate(entity);
|
|
|
|
this.saveOrUpdate(entity);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public List<ConfirmResponse> queryList(String groupName, ConfirmRequest request, Map<String, List<YysRequisitionReportEntity>> requisitonMap) {
|
|
|
|
|
|
|
|
//查询所有待确认的数据
|
|
|
|
|
|
|
|
LambdaQueryWrapper<YysDayPackageEntity> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
|
|
|
wrapper.eq(YysDayPackageEntity::getIsConfirm, request.getFlag());
|
|
|
|
|
|
|
|
List<YysDayPackageEntity> root = this.list(wrapper);
|
|
|
|
|
|
|
|
if (org.apache.commons.collections4.CollectionUtils.isEmpty(root)) {
|
|
|
|
|
|
|
|
return Collections.emptyList();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//构建查询条件
|
|
|
|
|
|
|
|
Set<String> deviceCodes = root.stream().map(YysDayPackageEntity::getDeviceCode).collect(Collectors.toSet());
|
|
|
|
|
|
|
|
Set<Date> dates = root.stream().map(YysDayPackageEntity::getManufactureTime).collect(Collectors.toSet());
|
|
|
|
|
|
|
|
//数采表符合条件的数据
|
|
|
|
|
|
|
|
LambdaQueryWrapper<YysDeviceDataEntity> queryWrapper = new LambdaQueryWrapper<>(YysDeviceDataEntity.class);
|
|
|
|
|
|
|
|
queryWrapper.in(YysDeviceDataEntity::getProductionTime, dates);
|
|
|
|
|
|
|
|
queryWrapper.in(YysDeviceDataEntity::getProductionLine, deviceCodes);
|
|
|
|
|
|
|
|
List<YysDeviceDataEntity> data = yysDeviceDataService.list(queryWrapper);
|
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(data)) {
|
|
|
|
|
|
|
|
return Collections.emptyList();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//数采数据根据生产时间和产线分组 相加当日生产数量
|
|
|
|
|
|
|
|
Map<String, Integer> resultMap = data.stream()
|
|
|
|
|
|
|
|
.collect(Collectors.groupingBy(
|
|
|
|
|
|
|
|
item -> item.getProductionTime() + "-" + item.getProductionLine(),
|
|
|
|
|
|
|
|
Collectors.mapping(
|
|
|
|
|
|
|
|
item -> Integer.parseInt(item.getDayNum()),
|
|
|
|
|
|
|
|
Collectors.summingInt(i -> i)
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
));
|
|
|
|
|
|
|
|
//再将工单分组
|
|
|
|
|
|
|
|
Map<String, List<YysDayPackageEntity>> rootMap = root.stream()
|
|
|
|
|
|
|
|
.collect(Collectors.groupingBy(obj -> String.join("-", obj.getManufactureTime().toString(), obj.getDeviceCode())));
|
|
|
|
|
|
|
|
//查询报工确认数据
|
|
|
|
|
|
|
|
List<YysPackageReportEntity> reportEntityList = yysPackageReportService.list();
|
|
|
|
|
|
|
|
Map<String, List<YysPackageReportEntity>> packMap = reportEntityList.stream().collect(Collectors.groupingBy(YysPackageReportEntity::getWorkId));
|
|
|
|
|
|
|
|
//进行平均分配
|
|
|
|
|
|
|
|
List<ConfirmResponse> result = Lists.newArrayList();
|
|
|
|
|
|
|
|
for (Map.Entry<String, List<YysDayPackageEntity>> entry : rootMap.entrySet()) {
|
|
|
|
|
|
|
|
if (resultMap.containsKey(entry.getKey())) {
|
|
|
|
|
|
|
|
Integer total = resultMap.get(entry.getKey());
|
|
|
|
|
|
|
|
List<YysDayPackageEntity> collected = entry.getValue().stream().sorted(Comparator.comparing(YysDayPackageEntity::getSort)).collect(Collectors.toList());
|
|
|
|
|
|
|
|
for (YysDayPackageEntity packageEntity : collected) {
|
|
|
|
|
|
|
|
ConfirmResponse confirmResponse = BeanUtil.copyProperties(packageEntity, ConfirmResponse.class);
|
|
|
|
|
|
|
|
confirmResponse.setGroupName(groupName);
|
|
|
|
|
|
|
|
if (packMap.containsKey(packageEntity.getId())) {
|
|
|
|
|
|
|
|
confirmResponse.setPackageReportList(packMap.get(packageEntity.getId()));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (requisitonMap.containsKey(packageEntity.getId())) {
|
|
|
|
|
|
|
|
confirmResponse.setRequisitionReportList(requisitonMap.get(packageEntity.getId()));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (Integer.parseInt(packageEntity.getPlanNumber()) <= total) {
|
|
|
|
|
|
|
|
confirmResponse.setIsConfirmNums(packageEntity.getPlanNumber());
|
|
|
|
|
|
|
|
total -= Integer.parseInt(packageEntity.getPlanNumber());
|
|
|
|
|
|
|
|
result.add(confirmResponse);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
confirmResponse.setIsConfirmNums(total.toString());
|
|
|
|
|
|
|
|
result.add(confirmResponse);
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|