|
|
@ -2,6 +2,7 @@ package org.nl.wms.pm_manage.form_data.service.impl; |
|
|
|
|
|
|
|
import cn.hutool.core.date.DateUtil; |
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
|
import com.github.pagehelper.Page; |
|
|
@ -11,11 +12,14 @@ import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.nl.common.base.TableDataInfo; |
|
|
|
import org.nl.common.domain.query.PageQuery; |
|
|
|
import org.nl.common.exception.BadRequestException; |
|
|
|
import org.nl.common.utils.CodeUtil; |
|
|
|
import org.nl.common.utils.CopyUtil; |
|
|
|
import org.nl.common.utils.IdUtil; |
|
|
|
import org.nl.common.utils.SecurityUtils; |
|
|
|
import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService; |
|
|
|
import org.nl.wms.basedata_manage.service.IStructattrService; |
|
|
|
import org.nl.wms.basedata_manage.service.IBsrealStorattrService; |
|
|
|
import org.nl.wms.basedata_manage.service.IMdPbMeasureunitService; |
|
|
|
import org.nl.wms.basedata_manage.service.dao.BsrealStorattr; |
|
|
|
import org.nl.wms.basedata_manage.service.dao.MdPbMeasureunit; |
|
|
|
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService; |
|
|
|
import org.nl.wms.pm_manage.form_data.service.dao.dao.PmFormData; |
|
|
|
import org.nl.wms.pm_manage.form_data.service.dao.dto.PmFormDataParam; |
|
|
@ -23,7 +27,6 @@ import org.nl.wms.pm_manage.form_data.service.dao.mapper.PmFormDataMapper; |
|
|
|
import org.nl.wms.pm_manage.form_data.service.dto.FormDataQuery; |
|
|
|
import org.nl.wms.pm_manage.form_data.service.dto.PmFormDataDto; |
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.util.Assert; |
|
|
|
import org.springframework.util.CollectionUtils; |
|
|
@ -36,6 +39,8 @@ import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
import static org.nl.common.domain.query.PageQuery.trimStringFields; |
|
|
|
|
|
|
|
/** |
|
|
|
* <p> |
|
|
|
* 表单信息表 服务实现类 |
|
|
@ -57,15 +62,13 @@ import java.util.stream.Collectors; |
|
|
|
@Slf4j |
|
|
|
public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormData> implements IPmFormDataService { |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private IMdMeMaterialbaseService iMdMeMaterialbaseService; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private PmFormDataMapper pmFormDataMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private IStructattrService iStIvtStructattrService; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private IMdPbMeasureunitService iMdPbMeasureunitService; |
|
|
|
@Resource |
|
|
|
private IBsrealStorattrService iBsrealStorattrService; |
|
|
|
|
|
|
|
@Override |
|
|
|
public Integer syncFormData(String form_type, String dataString) { |
|
|
@ -82,13 +85,44 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void create(PmFormDataParam params) { |
|
|
|
params.setCode(CodeUtil.getNewCode("EXT_BILL")); |
|
|
|
params.setSource_form_date(org.nl.common.utils.DateUtil.parseLocalDateTimeFormatYmd(params.getSource_form_date())); |
|
|
|
MdPbMeasureunit mdPbMeasureunit = iMdPbMeasureunitService.getOne(new LambdaQueryWrapper<MdPbMeasureunit>().eq(MdPbMeasureunit::getMeasure_unit_id, params.getUnit_id())); |
|
|
|
if (ObjectUtil.isEmpty(mdPbMeasureunit)) { |
|
|
|
throw new BadRequestException("没有该计量单位信息"); |
|
|
|
} |
|
|
|
BsrealStorattr bsrealStorattr = iBsrealStorattrService.findById(params.getStor_id()); |
|
|
|
if (ObjectUtil.isEmpty(bsrealStorattr)) { |
|
|
|
throw new BadRequestException("没有该仓库信息"); |
|
|
|
} |
|
|
|
params.setStor_name(bsrealStorattr.getStor_name()); |
|
|
|
params.setUnit_name(mdPbMeasureunit.getUnit_name()); |
|
|
|
pmFormDataMapper.insert(getBasicInfo(params, true)); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pmFormDataMapper.insert(getBasicInfo(params, true)); |
|
|
|
/** |
|
|
|
* 编辑 |
|
|
|
* |
|
|
|
* @param params 对象实体 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void update(PmFormDataParam params) { |
|
|
|
params.setSource_form_date(org.nl.common.utils.DateUtil.parseLocalDateTimeFormatYmd(params.getSource_form_date())); |
|
|
|
MdPbMeasureunit mdPbMeasureunit = iMdPbMeasureunitService.getOne(new LambdaQueryWrapper<MdPbMeasureunit>().eq(MdPbMeasureunit::getMeasure_unit_id, params.getUnit_id())); |
|
|
|
if (ObjectUtil.isEmpty(mdPbMeasureunit)) { |
|
|
|
throw new BadRequestException("没有该计量单位信息"); |
|
|
|
} |
|
|
|
BsrealStorattr bsrealStorattr = iBsrealStorattrService.findById(params.getStor_id()); |
|
|
|
if (ObjectUtil.isEmpty(bsrealStorattr)) { |
|
|
|
throw new BadRequestException("没有该仓库信息"); |
|
|
|
} |
|
|
|
params.setStor_name(bsrealStorattr.getStor_name()); |
|
|
|
params.setUnit_name(mdPbMeasureunit.getUnit_name()); |
|
|
|
pmFormDataMapper.updateById(getBasicInfo(params, false)); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public Object queryAll(FormDataQuery query, PageQuery pageQuery) { |
|
|
|
Page page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()); |
|
|
@ -121,21 +155,8 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD |
|
|
|
public com.baomidou.mybatisplus.extension.plugins.pagination.Page<PmFormDataDto> queryTree(FormDataQuery query, PageQuery pageQuery) { |
|
|
|
Page page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()); |
|
|
|
page.setOrderBy("id DESC"); |
|
|
|
if (ObjectUtil.isNotEmpty(query.getMater()) || ObjectUtil.isNotEmpty(query.getPcsn()) || ObjectUtil.isNotEmpty(query.getBill_code())) { |
|
|
|
if (ObjectUtil.isNotEmpty(query.getPcsn())) { |
|
|
|
query.setPcsn(query.getPcsn().trim()); |
|
|
|
} |
|
|
|
if (ObjectUtil.isNotEmpty(query.getMater())) { |
|
|
|
query.setMater(query.getMater().trim()); |
|
|
|
} |
|
|
|
if (ObjectUtil.isNotEmpty(query.getBill_code())) { |
|
|
|
query.setBill_code(query.getBill_code().trim()); |
|
|
|
} |
|
|
|
} |
|
|
|
trimStringFields(query); |
|
|
|
List<PmFormDataDto> pmFormDataList = this.baseMapper.queryTree2(query); |
|
|
|
if (ObjectUtil.isNotEmpty(pmFormDataList)) { |
|
|
|
handleFormDataList(pmFormDataList, query); |
|
|
|
} |
|
|
|
com.baomidou.mybatisplus.extension.plugins.pagination.Page<PmFormDataDto> dtoPage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPages(), page.getPageSize(), page.getTotal()); |
|
|
|
dtoPage.setRecords(pmFormDataList); |
|
|
|
return dtoPage; |
|
|
@ -150,13 +171,9 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD |
|
|
|
if (!CollectionUtils.isEmpty(childs)) { |
|
|
|
Map<String, List<PmFormDataDto>> childMap = childs.stream().collect(Collectors.groupingBy(PmFormDataDto::getParent_id)); |
|
|
|
for (PmFormDataDto dataDto : pmFormDataDtos) { |
|
|
|
String productArea = dataDto.getForm_data().getString("product_area"); |
|
|
|
dataDto.setProduct_area(productArea); |
|
|
|
List<PmFormDataDto> children = childMap.get(dataDto.getId()); |
|
|
|
if (children != null) { |
|
|
|
for (PmFormDataDto child : children) { |
|
|
|
String childProductArea = child.getForm_data().getString("product_area"); |
|
|
|
child.setProduct_area(childProductArea); |
|
|
|
if (child.getPlan_qty() != null && child.getAssign_qty().compareTo(BigDecimal.ZERO) == 0) { |
|
|
|
BigDecimal total = child.getPlan_qty().subtract(child.getAssign_qty().add(child.getActual_qty() == null ? BigDecimal.ZERO : child.getActual_qty())); |
|
|
|
child.setQty(total.compareTo(BigDecimal.ZERO) > 0 ? total : BigDecimal.ZERO); |
|
|
@ -165,13 +182,6 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD |
|
|
|
} |
|
|
|
dataDto.setChildren(children); |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (ObjectUtil.isNotEmpty(query.getMater()) || ObjectUtil.isNotEmpty(query.getPcsn()) || ObjectUtil.isNotEmpty(query.getBill_code()) || ObjectUtil.isNotEmpty(query.getStatus())) { |
|
|
|
BigDecimal counts = this.baseMapper.queryTreeCounts(query); |
|
|
|
for (PmFormDataDto r : pmFormDataDtos) { |
|
|
|
r.setSto_qty(counts); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|